5167d9e36e
Deploy Wiki to Production / deploy (push) Has been cancelled
覆盖 27 个此前缺少返回链接的报告页和独立页面(共 50 个 HTML 页,index.html 首页除外) - 标准报告页:header/header-bar 内插入 back-link - 特殊页面:深国际、中医馆、YqBoot、交互式演示等单独适配 - 统一文案「← 返回知识库」,URL 按目录深度自动推算
512 lines
32 KiB
HTML
512 lines
32 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>AI 核心技能原理说明</title>
|
||
<style>
|
||
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
|
||
html{font-size:16px;-webkit-text-size-adjust:100%}
|
||
body{
|
||
font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans SC","Helvetica Neue",sans-serif;
|
||
color:#1d1d1f;background:#fff;line-height:1.7;-webkit-font-smoothing:antialiased;
|
||
}
|
||
.wrapper{max-width:800px;margin:0 auto;padding:56px 48px 72px}
|
||
|
||
h1{font-size:2rem;font-weight:700;letter-spacing:.04em;margin-bottom:8px}
|
||
h2{font-size:.875rem;font-weight:600;color:#86868b;text-transform:uppercase;letter-spacing:.08em;margin:40px 0 16px;padding-bottom:8px;border-bottom:1px solid #e5e5ea}
|
||
h3{font-size:1.05rem;font-weight:600;color:#1d1d1f;margin:20px 0 8px}
|
||
h4{font-size:.875rem;font-weight:600;color:#515154;margin:12px 0 4px}
|
||
|
||
p{margin-bottom:8px;font-size:.9375rem;color:#333}
|
||
ul,ol{margin:6px 0 6px 20px;font-size:.9rem;color:#333}
|
||
li{margin-bottom:4px}
|
||
|
||
pre{background:#f5f5f7;border-radius:6px;padding:14px 18px;overflow-x:auto;font-size:.8125rem;line-height:1.6;margin:10px 0;white-space:pre}
|
||
code{font-family:"SF Mono","Cascadia Code","Consolas",monospace;font-size:.8125rem}
|
||
p code,li code{background:#f5f5f7;padding:1px 6px;border-radius:3px;font-size:.8125rem}
|
||
|
||
table{width:100%;border-collapse:collapse;margin:12px 0;font-size:.85rem}
|
||
thead th{text-align:left;padding:8px 12px;font-size:.75rem;font-weight:600;color:#86868b;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e5e5ea}
|
||
tbody td{padding:8px 12px;border-bottom:1px solid #f0f0f3;vertical-align:top}
|
||
tr:last-child td{border-bottom:none}
|
||
|
||
strong{color:#1d1d1f}
|
||
|
||
.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 24px}
|
||
.tag-row span{font-size:.75rem;color:#515154;background:#f5f5f7;padding:4px 12px;border-radius:4px;font-weight:500}
|
||
|
||
.summary-box{background:#f5f5f7;border-radius:8px;padding:18px 22px;margin:14px 0;font-size:.9rem}
|
||
|
||
@media(max-width:640px){
|
||
.wrapper{padding:28px 16px 48px}
|
||
h1{font-size:1.625rem}
|
||
table{font-size:.78rem}
|
||
pre{padding:10px 14px;font-size:.75rem}
|
||
}
|
||
|
||
@media print{
|
||
.wrapper{max-width:100%;padding:0}
|
||
h2{margin-top:28px}
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="wrapper">
|
||
|
||
<a href="./index.html" style="display:inline-block;margin-bottom:8px;color:var(--color-primary);text-decoration:none;font-size:13px;">← 返回知识库</a>
|
||
<h1>AI 核心技能原理说明</h1>
|
||
<p style="color:#86868b;font-size:.875rem">系统梳理大模型应用开发的关键技术原理,涵盖从基础模型到上层应用的完整技术栈。</p>
|
||
|
||
<div class="tag-row">
|
||
<span>LLM 基础</span><span>Prompt Engineering</span><span>Agent 架构</span>
|
||
<span>Skills 编排</span><span>RAG 知识库</span><span>AI Coding</span><span>YOLO 视觉</span>
|
||
</div>
|
||
|
||
<!-- ===== 1. LLM ===== -->
|
||
<h2>大语言模型(LLM)基础</h2>
|
||
|
||
<h3>核心原理</h3>
|
||
<ul>
|
||
<li><strong>Transformer 架构</strong>:所有现代 LLM 的基础。核心是 Self-Attention 机制——每个 token 计算与序列中所有其他 token 的相关性权重,并行处理,突破 RNN 的串行瓶颈,解决长距离依赖问题。</li>
|
||
</ul>
|
||
|
||
<h4>训练三阶段</h4>
|
||
<ol>
|
||
<li><strong>Pre-training(预训练)</strong>:海量语料上做 Next Token Prediction,学习语言的统计规律和世界知识</li>
|
||
<li><strong>SFT(监督微调)</strong>:用高质量指令-回答对训练,让模型学会"对话"</li>
|
||
<li><strong>RLHF(人类反馈强化学习)</strong>:用人类偏好数据训练奖励模型,再用 PPO 优化,对齐人类价值观。解决"模型能力强但不一定听话"的对齐问题</li>
|
||
</ol>
|
||
|
||
<h3>关键概念</h3>
|
||
<table>
|
||
<thead><tr><th>概念</th><th>说明</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>Token</strong></td><td>模型处理的最小文本单元,中文约 1.5-2 字符/token</td></tr>
|
||
<tr><td><strong>Context Window</strong></td><td>模型一次能处理的 token 上限(如 128K、200K)</td></tr>
|
||
<tr><td><strong>Temperature</strong></td><td>控制输出随机性,0 = 确定性,1 = 高随机</td></tr>
|
||
<tr><td><strong>Top-P / Top-K</strong></td><td>采样策略,限制候选 token 范围,平衡多样性与质量</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h3>主流模型对比</h3>
|
||
<table>
|
||
<thead><tr><th>模型</th><th>特点</th><th>适用场景</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>GPT-4o</strong></td><td>多模态,综合能力最强</td><td>复杂推理、多模态任务</td></tr>
|
||
<tr><td><strong>Claude 4</strong></td><td>长上下文 200K,安全性高,代码能力强</td><td>长文档分析、代码生成</td></tr>
|
||
<tr><td><strong>DeepSeek-V3</strong></td><td>开源,MoE 架构,性价比极高</td><td>国内部署、成本敏感场景</td></tr>
|
||
<tr><td><strong>通义千问</strong></td><td>中文优化,阿里云生态深度集成</td><td>政务、企业中文场景</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<!-- ===== 2. Prompt ===== -->
|
||
<h2>Prompt Engineering</h2>
|
||
|
||
<h3>核心方法论</h3>
|
||
<table>
|
||
<thead><tr><th>技术</th><th>原理</th><th>示例</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>Zero-shot</strong></td><td>不给示例,直接提问</td><td>"将以下文本分类为正面/负面:..."</td></tr>
|
||
<tr><td><strong>Few-shot</strong></td><td>给 2-5 个示例,模型学习输入输出模式</td><td>示例 1 → 示例 2 → 新输入</td></tr>
|
||
<tr><td><strong>CoT(思维链)</strong></td><td>要求模型"一步步思考",激活推理能力</td><td>"让我们一步步分析:首先...其次..."</td></tr>
|
||
<tr><td><strong>结构化输出</strong></td><td>约束输出格式(JSON / XML)</td><td>"请以 JSON 格式返回,包含 name、age 字段"</td></tr>
|
||
<tr><td><strong>Self-Consistency</strong></td><td>多次采样 + 投票,提升推理准确率</td><td>同一问题跑 5 次,取多数答案</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h3>为什么 CoT 有效</h3>
|
||
<ul>
|
||
<li>LLM 是自回归的——每个 token 基于前文生成</li>
|
||
<li>写出推理过程 = 给模型更多"思考空间",中间步骤的 token 约束了后续输出的方向</li>
|
||
<li>复杂推理任务(数学、逻辑)中 CoT 可将准确率从 ~20% 提升到 ~80%</li>
|
||
</ul>
|
||
|
||
<h3>Function Calling 原理</h3>
|
||
<ol>
|
||
<li>定义函数的 JSON Schema(函数名、参数、描述)</li>
|
||
<li>模型判断用户意图 → 返回函数名 + 结构化参数(而非自然语言)</li>
|
||
<li>应用层执行函数 → 结果回传模型 → 模型生成最终回复</li>
|
||
<li>本质:让模型"学会"输出结构化指令,模型不直接调用函数,而是输出参数由应用层执行</li>
|
||
</ol>
|
||
|
||
<!-- ===== 3. Agent ===== -->
|
||
<h2>Agent 智能体</h2>
|
||
|
||
<h3>核心架构:ReAct 循环</h3>
|
||
<pre>用户输入 → Agent Core(LLM)
|
||
│
|
||
├─ 规划(Plan)
|
||
├─ 调用工具(Tool Use)
|
||
├─ 观察结果(Observation)
|
||
├─ 反思调整(Reflection)
|
||
└─ 循环直到目标达成 → 输出</pre>
|
||
|
||
<h3>关键设计模式</h3>
|
||
<table>
|
||
<thead><tr><th>模式</th><th>原理</th><th>适用场景</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>ReAct</strong></td><td>Reasoning + Acting 交替:思考一步 → 执行一步 → 观察 → 再思考</td><td>需要与外部交互的任务</td></tr>
|
||
<tr><td><strong>Plan-and-Execute</strong></td><td>先生成完整计划,再逐步执行</td><td>复杂多步任务</td></tr>
|
||
<tr><td><strong>Multi-Agent</strong></td><td>多个 Agent 分工协作,各司其职</td><td>跨领域复杂流程</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h3>多 Agent 协作</h3>
|
||
<ul>
|
||
<li><strong>分工原则</strong>:每个 Agent 有明确角色和工具集,互不越界</li>
|
||
<li><strong>通信方式</strong>:共享内存/消息队列(Agent A 输出 → Agent B 输入)、中央调度器(Orchestrator 统一分发任务、汇总结果)</li>
|
||
<li><strong>冲突仲裁</strong>:定义优先级规则或由调度 Agent 决策</li>
|
||
</ul>
|
||
|
||
<h3>安全护栏(Guardrails)</h3>
|
||
<ul>
|
||
<li><strong>输入护栏</strong>:敏感词过滤、注入攻击检测</li>
|
||
<li><strong>输出护栏</strong>:内容合规校验、事实性核查</li>
|
||
<li><strong>行为护栏</strong>:限制可调用的工具范围、设置最大循环次数防止死循环</li>
|
||
</ul>
|
||
|
||
<div class="summary-box">
|
||
<strong>Agent vs 普通 LLM 调用</strong>:Agent 的核心区别在于拥有自主规划 + 工具调用 + 循环决策能力,不是一次问答,而是多步自主完成任务。
|
||
</div>
|
||
|
||
<!-- ===== 4. Skills ===== -->
|
||
<h2>Skills 编排系统</h2>
|
||
|
||
<h3>设计理念</h3>
|
||
<p>将业务能力封装为标准化、可复用的 Skill 模块,由 LLM 根据用户意图自动选择并编排执行。</p>
|
||
|
||
<h3>架构流程</h3>
|
||
<pre>用户输入
|
||
↓
|
||
意图识别(LLM)
|
||
↓
|
||
Skill 路由(语义匹配最相关的 Skill 组合)
|
||
↓
|
||
编排执行(串行 / 并行 / 条件分支)
|
||
↓
|
||
结果聚合 → 输出</pre>
|
||
|
||
<h3>Skill 定义规范</h3>
|
||
<pre>{
|
||
"name": "report_generator",
|
||
"description": "根据查询条件生成业务报表",
|
||
"parameters": {
|
||
"report_type": "销售报表 / 库存报表 / 财务报表",
|
||
"date_range": "起止日期",
|
||
"format": "PDF / Excel"
|
||
},
|
||
"auth_required": true
|
||
}</pre>
|
||
|
||
<h3>关键机制</h3>
|
||
<table>
|
||
<thead><tr><th>机制</th><th>说明</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>热加载</strong></td><td>Skill 注册/下线不重启系统,通过配置中心或数据库动态生效</td></tr>
|
||
<tr><td><strong>自动路由</strong></td><td>LLM 用语义匹配(Embedding 相似度)找到最相关的 Skill</td></tr>
|
||
<tr><td><strong>依赖解析</strong></td><td>Skill A 的输出可能是 Skill B 的输入,编排引擎自动处理依赖顺序</td></tr>
|
||
<tr><td><strong>降级策略</strong></td><td>首选 Skill 不可用时,自动回退到备选方案或转人工</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<div class="summary-box">
|
||
<strong>与 Function Calling 的关系</strong>:Skills 编排是更高层的抽象,一个 Skill 可能包含多个 Function Call。类比:Skills 编排 ≈ 微服务 + API 网关 + 服务编排,只是"路由规则"由 LLM 动态决定。
|
||
</div>
|
||
|
||
<!-- ===== 5. RAG ===== -->
|
||
<h2>知识库(RAG)系统</h2>
|
||
|
||
<h3>为什么需要 RAG</h3>
|
||
<ul>
|
||
<li>LLM 训练数据有截止日期,无法回答最新问题</li>
|
||
<li>LLM 可能产生幻觉(编造不存在的事实)</li>
|
||
<li>企业私有数据不能用于训练公共模型</li>
|
||
<li>RAG = 检索(<strong>R</strong>etrieve)+ 增强(<strong>A</strong>ugment)+ 生成(<strong>G</strong>enerate)</li>
|
||
</ul>
|
||
|
||
<h3>核心流程</h3>
|
||
<pre><strong>文档入库(离线)</strong>:
|
||
原始文档 → 解析 → 分块 → Embedding → 存入向量数据库
|
||
|
||
<strong>在线问答</strong>:
|
||
用户提问 → Embedding → 向量检索(Top-K)→ 拼接 Prompt → LLM 生成 → 返回</pre>
|
||
|
||
<h3>分块策略(Chunking)</h3>
|
||
<table>
|
||
<thead><tr><th>策略</th><th>适用场景</th><th>优缺点</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>固定长度</strong></td><td>通用场景</td><td>实现简单但可能切断语义</td></tr>
|
||
<tr><td><strong>语义分块</strong></td><td>长文档</td><td>按段落/章节切分,语义完整</td></tr>
|
||
<tr><td><strong>滑动窗口</strong></td><td>需要上下文</td><td>相邻块有重叠,避免信息断裂</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h3>Embedding 模型选择</h3>
|
||
<ul>
|
||
<li>中文:bge-large-zh、text2vec-large-chinese、m3e</li>
|
||
<li>多语言:text-embedding-3-large(OpenAI)、bge-m3</li>
|
||
<li>Embedding 本质:将文本映射到高维向量空间,语义相近的文本向量距离近</li>
|
||
</ul>
|
||
|
||
<h3>检索优化</h3>
|
||
<table>
|
||
<thead><tr><th>技术</th><th>说明</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>混合检索</strong></td><td>语义检索(向量)+ 关键词检索(BM25)加权融合,提升召回率</td></tr>
|
||
<tr><td><strong>Rerank</strong></td><td>粗召回后用精排模型重排序,提升 Top-N 精度</td></tr>
|
||
<tr><td><strong>元数据过滤</strong></td><td>按时间/分类/权限等结构化字段预过滤,缩小检索范围</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<!-- ===== 6. AI Coding ===== -->
|
||
<h2>AI Coding</h2>
|
||
|
||
<h3>主流工具原理</h3>
|
||
<table>
|
||
<thead><tr><th>工具</th><th>底层原理</th><th>特点</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>Claude Code</strong></td><td>Claude 模型 + 工具调用(文件读写/Shell/搜索),Agent 模式自主执行</td><td>复杂任务拆解,长期上下文</td></tr>
|
||
<tr><td><strong>GitHub Copilot</strong></td><td>Codex 模型,实时上下文(当前文件+相邻Tab+项目结构)补全</td><td>IDE 深度集成,毫秒级响应</td></tr>
|
||
<tr><td><strong>Cursor</strong></td><td>多模型支持,全文件上下文编辑,Composer 模式</td><td>重构友好,Diff 预览</td></tr>
|
||
<tr><td><strong>Aider</strong></td><td>CLI 工具,Git 集成,Map-Reduce 处理大代码库</td><td>终端场景,可脚本化</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h3>三种工作模式</h3>
|
||
<ol>
|
||
<li><strong>补全模式</strong>:根据光标上下文,实时续写代码(Copilot 类)</li>
|
||
<li><strong>对话模式</strong>:自然语言描述需求 → AI 生成/修改代码(Cursor / Claude Code)</li>
|
||
<li><strong>Agent 模式</strong>:AI 自主规划 → 读写文件 → 执行命令 → 检查结果 → 迭代修复(Claude Code)</li>
|
||
</ol>
|
||
|
||
<h3>工程化实践</h3>
|
||
<ul>
|
||
<li><strong>小步提交</strong>:每次 AI 修改控制在 200 行 diff 以内,便于 Review 和回滚</li>
|
||
<li><strong>测试驱动</strong>:先让 AI 写测试,再写实现——"测试是 AI 的 spec"</li>
|
||
<li><strong>代码审查</strong>:AI 生成代码必须人工 Review,重点关注边界条件和安全问题</li>
|
||
<li><strong>上下文质量</strong>:清晰的上下文(项目结构 + 技术栈 + 编码规范)大幅提升 AI 输出质量</li>
|
||
</ul>
|
||
|
||
<!-- ===== 7. YOLO ===== -->
|
||
<h2>AI 视觉(YOLO)</h2>
|
||
|
||
<h3>核心思想</h3>
|
||
<ul>
|
||
<li><strong>You Only Look Once</strong>:将目标检测转化为回归问题</li>
|
||
<li>输入图片 → 单次 CNN 前向传播 → 同时输出边界框 + 类别概率</li>
|
||
<li>相比 R-CNN 系列的两阶段方法(先提候选区 → 再分类),YOLO 更快,适合实时场景</li>
|
||
</ul>
|
||
|
||
<h3>演进路线</h3>
|
||
<table>
|
||
<thead><tr><th>版本</th><th>关键改进</th><th>年份</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>YOLOv5</strong></td><td>工程化最成熟,社区生态好</td><td>2020</td></tr>
|
||
<tr><td><strong>YOLOv8</strong></td><td>无锚框检测,多任务(检测/分割/姿态)统一框架</td><td>2023</td></tr>
|
||
<tr><td><strong>YOLOv10</strong></td><td>NMS-Free,端到端,效率进一步提升</td><td>2024</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h3>训练部署流程</h3>
|
||
<pre>数据采集 → 标注(LabelImg / LabelStudio)→ 数据集划分(训练/验证/测试)
|
||
→ 数据增强(翻转/旋转/色彩抖动/Mosaic)
|
||
→ 模型训练(预训练权重微调)
|
||
→ 模型转换(ONNX / TensorRT)
|
||
→ 边缘/服务端部署</pre>
|
||
|
||
<h3>网络架构:Backbone + Neck + Head</h3>
|
||
<table>
|
||
<thead><tr><th>组件</th><th>作用</th><th>YOLOv8 示例</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>Backbone</strong></td><td>特征提取网络,从原始图像中提取多尺度特征图</td><td>CSPDarknet + C2f 模块(跨阶段局部网络,提升梯度流动)</td></tr>
|
||
<tr><td><strong>Neck</strong></td><td>特征融合层,将不同尺度的特征图进行融合,增强多尺度检测能力</td><td>PAN-FPN(路径聚合网络 + 特征金字塔),自顶向下 + 自底向上双向融合</td></tr>
|
||
<tr><td><strong>Head</strong></td><td>检测头,输出最终的边界框坐标 + 类别概率 + 置信度</td><td>解耦头(Decoupled Head):分类和回归分支分离,各自优化</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h3>关键技术原理</h3>
|
||
|
||
<h4>锚框(Anchor Box)</h4>
|
||
<ul>
|
||
<li>预定义的一组宽高比和尺度的候选框,模型预测的是相对于锚框的偏移量而非绝对坐标</li>
|
||
<li>YOLOv5:基于训练集聚类(K-Means)自动生成锚框尺寸</li>
|
||
<li>YOLOv8:引入 <strong>Anchor-Free</strong> 机制,直接预测目标中心点和宽高,消除锚框超参数调优</li>
|
||
</ul>
|
||
|
||
<h4>NMS(非极大值抑制)</h4>
|
||
<ul>
|
||
<li>同一目标可能产生多个重叠的检测框,NMS 用于去除冗余框</li>
|
||
<li>流程:按置信度排序 → 选取最高分框 → 计算与其他框的 IoU → 抑制 IoU > 阈值的框 → 重复</li>
|
||
<li>YOLOv10:引入 <strong>NMS-Free</strong> 训练,通过一对一标签分配(One-to-One Assignment)在推理时不再需要 NMS 后处理</li>
|
||
</ul>
|
||
|
||
<h4>损失函数</h4>
|
||
<table>
|
||
<thead><tr><th>损失类型</th><th>说明</th><th>常用函数</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>分类损失</strong></td><td>衡量类别预测的准确性</td><td>BCE Loss(二元交叉熵)</td></tr>
|
||
<tr><td><strong>定位损失</strong></td><td>衡量边界框坐标的准确性</td><td>CIoU Loss(考虑重叠面积 + 中心点距离 + 宽高比)</td></tr>
|
||
<tr><td><strong>置信度损失</strong></td><td>衡量"该框包含目标"的置信度</td><td>BCE Loss + Focal Loss(聚焦难分样本)</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h3>核心评估指标</h3>
|
||
<table>
|
||
<thead><tr><th>指标</th><th>定义</th><th>意义</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>IoU</strong></td><td>预测框与真实框的交集 / 并集</td><td>衡量定位精度,> 0.5 通常认为检测正确</td></tr>
|
||
<tr><td><strong>mAP</strong></td><td>所有类别 AP 的平均值</td><td>综合衡量检测精度,最常用的整体指标</td></tr>
|
||
<tr><td><strong>mAP@0.5</strong></td><td>IoU 阈值 = 0.5 时的 mAP</td><td>宽松标准,反映"找得到"的能力</td></tr>
|
||
<tr><td><strong>mAP@0.5:0.95</strong></td><td>IoU 从 0.5 到 0.95(步长 0.05)取平均</td><td>严格标准,反映"定位准"的能力(COCO 数据集主要指标)</td></tr>
|
||
<tr><td><strong>FPS</strong></td><td>每秒处理帧数</td><td>衡量推理速度,实时场景通常需要 ≥ 25 FPS</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h3>模型优化与加速</h3>
|
||
<table>
|
||
<thead><tr><th>技术</th><th>原理</th><th>效果</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>模型量化(INT8)</strong></td><td>将 FP32 权重和激活值映射到 INT8,降低计算精度换取速度</td><td>推理速度 2-4x 提升,精度损失 < 1%</td></tr>
|
||
<tr><td><strong>模型剪枝</strong></td><td>移除不重要的通道/层,减少参数量和计算量</td><td>模型体积缩减 30-50%,速度提升</td></tr>
|
||
<tr><td><strong>TensorRT 加速</strong></td><td>NVIDIA 推理优化引擎:层融合、显存优化、内核自动调优</td><td>推理速度 3-5x 提升,适合 GPU 部署</td></tr>
|
||
<tr><td><strong>ONNX 导出</strong></td><td>将 PyTorch 模型导出为 ONNX 通用格式,跨框架/跨硬件部署</td><td>一次导出,多端部署(GPU / CPU / Edge TPU)</td></tr>
|
||
<tr><td><strong>OpenVINO</strong></td><td>Intel 推理引擎,针对 CPU / VPU / FPGA 优化</td><td>x86 平台 CPU 推理加速,无需 GPU</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h3>主流检测模型对比</h3>
|
||
<table>
|
||
<thead><tr><th>模型</th><th>类型</th><th>精度 (mAP)</th><th>速度</th><th>适用场景</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>YOLOv8</strong></td><td>单阶段 Anchor-Free</td><td>高</td><td>快</td><td>实时检测、边缘部署</td></tr>
|
||
<tr><td><strong>YOLOv10</strong></td><td>单阶段 NMS-Free</td><td>更高</td><td>更快</td><td>端到端实时检测</td></tr>
|
||
<tr><td><strong>Faster R-CNN</strong></td><td>两阶段</td><td>最高</td><td>慢</td><td>高精度离线分析</td></tr>
|
||
<tr><td><strong>SSD</strong></td><td>单阶段</td><td>中等</td><td>快</td><td>轻量级移动端</td></tr>
|
||
<tr><td><strong>RT-DETR</strong></td><td>基于 Transformer</td><td>高</td><td>较快</td><td>端到端 + 全局上下文建模</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h3>视频流推理 Pipeline(工程实践)</h3>
|
||
<pre>
|
||
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
|
||
│ RTSP │───→│ 解码 │───→│ 抽帧 │───→│ YOLO │───→│ 告警 │
|
||
│ 取流 │ │ FFmpeg │ │ (1-N fps)│ │ 推理 │ │ 推送 │
|
||
└──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘
|
||
│
|
||
▼
|
||
┌──────────┐
|
||
│ 目标跟踪 │
|
||
│ DeepSORT │
|
||
└──────────┘
|
||
</pre>
|
||
<ul>
|
||
<li><strong>取流</strong>:FFmpeg / GStreamer 拉取 RTSP 视频流,支持 H.264/H.265 硬解码</li>
|
||
<li><strong>抽帧</strong>:按业务需求设置帧率(实时监控 5-10 fps,高精度场景 25 fps),跳帧策略节省算力</li>
|
||
<li><strong>推理</strong>:预处理(Resize + Normalize)→ GPU 推理 → 后处理(NMS / 坐标映射)</li>
|
||
<li><strong>目标跟踪</strong>:DeepSORT(卡尔曼滤波 + 匈牙利匹配 + ReID 特征),跨帧关联同一目标,实现轨迹追踪与计数</li>
|
||
<li><strong>告警推送</strong>:检测到目标 → 截图存证 → 通过 MQTT / WebSocket / 钉钉机器人实时推送告警</li>
|
||
</ul>
|
||
|
||
<h3>常见应用场景与模型选型</h3>
|
||
<table>
|
||
<thead><tr><th>场景</th><th>检测目标</th><th>推荐模型</th><th>部署方式</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>安全生产</strong></td><td>安全帽、反光衣、烟火、区域入侵</td><td>YOLOv8s</td><td>边缘盒子(Jetson Orin)</td></tr>
|
||
<tr><td><strong>智慧交通</strong></td><td>车牌、车型、车流统计、违停</td><td>YOLOv8m + LPRNet</td><td>边缘服务器(T4 GPU)</td></tr>
|
||
<tr><td><strong>农业物联网</strong></td><td>病虫害识别、果实计数、生长阶段</td><td>YOLOv8n</td><td>边缘网关 / 云端 GPU</td></tr>
|
||
<tr><td><strong>工业质检</strong></td><td>产品缺陷、尺寸偏差、装配完整性</td><td>YOLOv8x</td><td>工业相机 + GPU 工控机</td></tr>
|
||
<tr><td><strong>安防监控</strong></td><td>人脸、人体、异常行为、物品遗留</td><td>YOLOv8l</td><td>NVR + 算力卡 / 中心服务器</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h3>实施场景注意事项(实战经验)</h3>
|
||
|
||
<div class="summary-box">
|
||
以下基于实际项目踩坑经验总结——涉及 GB/T 28181 国标平台、海康/大华 SDK、开源方案(FastBee / WVP-GB28181 / FFmpeg + YOLO)在真实场景中的落地要点。
|
||
</div>
|
||
|
||
<h4>摄像头接入与取流</h4>
|
||
<table>
|
||
<thead><tr><th>问题</th><th>常见坑</th><th>对策</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>协议兼容</strong></td><td>不同品牌摄像头支持的协议不同——海康优先 ISUP / EHOME,大华有私有 SDK,ONVIF 各厂商实现程度不一</td><td>优先对接 GB/T 28181 国标(强制标准),兜底 RTSP;海康/大华单独适配 SDK 以获得完整 PTZ 控制和报警回调</td></tr>
|
||
<tr><td><strong>RTSP 稳定性</strong></td><td>RTSP 基于 UDP,网络抖动导致花屏、断流;长时间运行 TCP 会话可能被防火墙断开</td><td>使用 TCP 传输模式(<code>?tcp</code> 参数);增加断线重连 + 指数退避策略;FFmpeg 设置 <code>-rtsp_transport tcp -stimeout 5000000</code></td></tr>
|
||
<tr><td><strong>多路并发</strong></td><td>直接拉 50+ 路 RTSP 流导致带宽和连接数爆炸,单台服务器网卡成为瓶颈</td><td>分级架构:边缘网关(NVR / 工控机)本地拉流 + 推理,只上传告警事件到中心;或使用流媒体服务(ZLM / SRS)统一收流转发</td></tr>
|
||
<tr><td><strong>视频编码</strong></td><td>H.265 摄像头越来越普及,但部分开源推理框架对 H.265 硬解支持不佳</td><td>确认 GPU 硬解能力(NVIDIA NVDEC / Intel QSV);必要时在接入层统一转码为 H.264;优先选 H.264 流的摄像头子码流做推理</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h4>推理性能与资源规划</h4>
|
||
<table>
|
||
<thead><tr><th>问题</th><th>常见坑</th><th>对策</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>GPU 资源估算</strong></td><td>低估了多路视频并发推理的显存和算力需求,上线后发现 GPU 跑不满或 OOM</td><td>单路 YOLOv8s 约占用 1.5-2GB 显存;一张 T4(16GB)实际可跑 8-12 路(需留显存给解码 + 前后处理);做好压测再承诺路数</td></tr>
|
||
<tr><td><strong>抽帧策略</strong></td><td>全部 25fps 逐帧推理,GPU 资源浪费且告警风暴(同一个目标连续告警几十次)</td><td>按场景定抽帧率:周界入侵 5fps、烟火检测 2fps、车牌识别 10fps;配合跳帧 + 告警去重(同一目标同一区域 N 秒内只告警一次)</td></tr>
|
||
<tr><td><strong>子码流推理</strong></td><td>用主码流(1080P/4K)做推理,分辨率远超模型输入尺寸(640×640),浪费解码 + 预处理算力</td><td>摄像头开启子码流(704×576 或 640×480),专门用于 AI 推理;主码流仅用于录像存储和人工调阅</td></tr>
|
||
<tr><td><strong>批处理 vs 实时</strong></td><td>为提升吞吐量攒批次推理,但引入几百毫秒延迟,告警不及时</td><td>安防场景优先低延迟:单帧推理、不攒批;离线分析(如事后检索)可以用大 batch 提升吞吐</td></tr>
|
||
<tr><td><strong>模型选型误区</strong></td><td>追求大模型高精度(YOLOv8x),忽略边缘设备算力限制</td><td>边缘设备用 YOLOv8n/s + TensorRT INT8 量化;中心服务器可用大模型做二次复核(小模型初筛 → 大模型确认)</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h4>告警策略与误报控制</h4>
|
||
<table>
|
||
<thead><tr><th>问题</th><th>常见坑</th><th>对策</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>误报泛滥</strong></td><td>检测灵敏度设太高或未做区域过滤,一天几百条误报告警,客户直接关系统</td><td>多级过滤:置信度阈值(≥0.6)+ 检测区域 ROI 绘制(排除马路/绿化带等干扰区)+ 时间策略(工作时间告警、非工作时间静默)</td></tr>
|
||
<tr><td><strong>告警风暴</strong></td><td>同一事件持续触发(如一个烟头在画面中 5 分钟,告警 300 次)</td><td>告警去重窗口:同一摄像头 + 同一目标类别 + N 秒内合并为一条;告警升级机制:持续超过 M 分钟升级为严重告警</td></tr>
|
||
<tr><td><strong>目标跟踪丢失</strong></td><td>DeepSORT 在遮挡、光照变化、密集场景下 ID Switch 严重,导致计数不准</td><td>结合 ROI 区域限定跟踪范围;遮挡后给 ReID 特征匹配设置合理的超时时间(如 30 帧);密集场景考虑 ByteTrack(低分框也做匹配,抗遮挡更好)</td></tr>
|
||
<tr><td><strong>昼夜差异</strong></td><td>白天训练模型用在夜间红外画面,检测率断崖下降</td><td>训练集必须包含红外/微光场景样本(至少 20%);或分时段加载不同模型(白天模型 + 夜间模型)</td></tr>
|
||
<tr><td><strong>天气影响</strong></td><td>雨雪雾天气导致画面模糊,检测失效</td><td>数据增强时加入高斯模糊、亮度抖动、模拟雨雪噪声;极端天气自动切换为移动侦测兜底方案</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h4>存储与回溯</h4>
|
||
<table>
|
||
<thead><tr><th>问题</th><th>常见坑</th><th>对策</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>告警截图丢失</strong></td><td>只存告警记录不存截图/短视频,事后追查无依据</td><td>告警触发时同时保存:告警时刻前后各 3 秒的短视频片段 + 关键帧截图 + 检测框标注图;存储策略:热数据 SSD(7 天)、冷数据 NAS/对象存储(90 天)</td></tr>
|
||
<tr><td><strong>录像回溯</strong></td><td>告警记录和录像时间戳不对齐,事后查证时找不到对应录像片段</td><td>告警记录强制记录 NTP 时间戳(精确到毫秒)+ 摄像头编号 + 帧序号;对接 NVR 录像回放 API 实现一键跳转到告警时刻回放</td></tr>
|
||
<tr><td><strong>存储成本</strong></td><td>全量录像 7×24 存储,100 路 1080P 一个月几十 TB</td><td>常态录像:低码率 + 移动侦测录像(只录有动静的);告警录像:高清 + 完整片段;定期清理策略自动化</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h4>系统可靠性与运维</h4>
|
||
<table>
|
||
<thead><tr><th>问题</th><th>常见坑</th><th>对策</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>单点故障</strong></td><td>AI 推理服务挂了,所有摄像头告警全部中断,且没有感知</td><td>服务健康检查 + 自动重启(systemd / k8s 探针);关键通道双机热备;监控告警通道本身的心跳(超过 1 分钟无数据触发运维告警)</td></tr>
|
||
<tr><td><strong>GPU 掉卡</strong></td><td>GPU 长时间运行温度过高掉卡或驱动崩溃,进程无感知卡死</td><td>定时检测 GPU 可用性(nvidia-smi + CUDA 可用性探针);异常时自动重启推理服务;边缘设备注意散热和防尘</td></tr>
|
||
<tr><td><strong>模型更新</strong></td><td>模型迭代后直接全量替换,新模型在某个点位效果变差,缺乏回滚能力</td><td>灰度发布:先在 10% 通道上验证新模型,对比告警准确率;保留上一版本模型,支持一键回滚;记录模型版本 + 通道的告警效果基线</td></tr>
|
||
<tr><td><strong>时钟同步</strong></td><td>服务器、摄像头、NVR 时钟不同步,告警时序混乱,多路联动失败</td><td>全系统强制 NTP 对时;摄像头每天自动校时;告警时间以服务器收到帧的时间戳为准(而非摄像头 OSD 时间)</td></tr>
|
||
<tr><td><strong>日志与审计</strong></td><td>出了事故查不到为什么没告警——是模型没检测到?还是告警规则过滤了?还是推送通道断了?</td><td>全链路埋点:取流状态 → 抽帧计数 → 推理耗时 → 检测结果 → 过滤规则命中 → 告警推送状态,每个环节都可追溯</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h4>国标 GB/T 28181 对接注意事项</h4>
|
||
<ul>
|
||
<li><strong>SIP 信令</strong>:国标基于 SIP 协议,摄像头/NVR 作为 SIP UA 注册到平台。注意 SIP 超时设置(默认 3600 秒),需定期发送心跳保持在线</li>
|
||
<li><strong>目录推送</strong>:平台通过 Catalog 订阅获取设备列表。设备增删改后需触发目录同步,否则平台看不到新设备</li>
|
||
<li><strong>流媒体分发</strong>:AI 推理不要直接从摄像头拉流(摄像头并发拉流能力有限,通常 3-5 路),应通过国标平台的流媒体服务(ZLM / SRS)统一分发</li>
|
||
<li><strong>PTZ 控制</strong>:球机预置位巡航 + AI 检测联动——检测到目标后自动调用预置位、变焦放大做二次确认</li>
|
||
<li><strong>报警订阅</strong>:国标支持摄像头自带报警(移动侦测/IO 输入)的 SIP 订阅推送,可结合 AI 告警做交叉验证</li>
|
||
</ul>
|
||
|
||
<!-- ===== Summary ===== -->
|
||
<h2>技术全景总结</h2>
|
||
<table>
|
||
<thead><tr><th>方向</th><th>核心原理</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><strong>LLM</strong></td><td>Transformer + 三阶段训练,Self-Attention 是核心</td></tr>
|
||
<tr><td><strong>Prompt</strong></td><td>通过输入设计引导模型行为,CoT 通过中间推理 token 约束输出路径</td></tr>
|
||
<tr><td><strong>Agent</strong></td><td>LLM + 规划 + 工具调用 + 循环决策 = 自主完成任务</td></tr>
|
||
<tr><td><strong>Skills 编排</strong></td><td>业务能力模块化,LLM 语义匹配 + 动态路由,自动编排执行</td></tr>
|
||
<tr><td><strong>RAG</strong></td><td>检索外部知识增强 LLM,离线入库 + 在线问答双 Pipeline,解决幻觉与知识时效</td></tr>
|
||
<tr><td><strong>AI Coding</strong></td><td>AI 辅助代码生成/审查/测试,Agent 模式实现自主开发闭环</td></tr>
|
||
<tr><td><strong>YOLO</strong></td><td>单阶段目标检测,Backbone+Neck+Head 架构,一次前向传播同时输出检测框与类别,适合实时视频流推理</td></tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
</div>
|
||
</body>
|
||
</html> |