跳到主要内容

案例串联与复盘

建议学时

4 学时。

建议拆成四段:

时段内容课堂产出
第 1 学时传统视觉模型案例视觉部署评审表
第 2 学时小型 LLM 案例Qwen 部署复盘表
第 3 学时VLM/Agent 与端云协同案例系统架构复盘图
第 4 学时最终项目报告展示与答辩端侧部署评估报告

学习目标

  • 把端侧部署问题框架、量化、精度修复、压缩蒸馏、推理加速、runtime 和系统架构串成完整工程路径。
  • 能复盘传统视觉模型、小型 LLM、VLM 和 Hybrid Agent 的不同优化路线。
  • 能输出一份可执行、可评审的端侧部署方案。
  • 能比较 Ubuntu Server 和 Jetson 两条部署路径的收益与限制。
  • 能把失败样例、异常日志和未达标原因写入报告,而不是只展示最好结果。
  • 能判断一个 40+ 学时课程最终项目的体量是否足够支撑真实学习成果。

问题背景

课程最后不再只做 Q&A,而是用案例把全书内容串起来。不同模型形态的优化路径不同,不能用同一套指标粗暴套用。

传统视觉模型更关注 INT8 PTQ/QAT、结构化剪枝、TensorRT/TFLite/ONNX Runtime 和真实设备延迟;小型 LLM 更关注 GGUF、AWQ/GPTQ、INT4/INT5、group size、KV Cache、首 token、tokens/s 和本地 runtime;VLM 和 Hybrid Agent 还需要系统级架构设计。

本章的重点是“复盘能力”。学习者需要解释:为什么这样选模型,为什么这样选量化,为什么这样选 runtime,为什么这个结果可以或不可以上线。

总体复盘闭环

这个闭环要求每一步都有证据。没有证据的“感觉更快”“好像质量还可以”不能作为课程项目结论。

公开资料怎么转成本章内容

案例复盘最容易变成“讲故事”或“展示最高数字”。MLPerf、Nsight、llama-bench、ML Systems Book、Jetson 资料和课程公开运行记录提供的不是可照抄的结论,而是复盘方法:每个案例都要写清目标、条件、指标、日志、失败样例和下一步动作。

外部资料中的经典内容本章吸收什么课程里的落点
MLPerf Inference报告要有明确 workload、指标和条件评分建议、复盘闭环和最终报告模板
llama.cpp / llama-benchLLM 本地运行和标准 benchmark 记录Qwen 小型 LLM 案例与推理加速复盘
Nsight Systemsprofiling 结果要回到时间线和资源瓶颈失败样例归因和“不要只看最快结果”
Jetson documentation / Jetson AI Lab边缘设备功耗、温度、共享内存和长期稳定性Jetson 迁移案例和 Ubuntu vs Jetson 对比
ML Systems Book系统可靠性、部署生命周期和复盘视角端云协同、风险清单、上线边界
课程公开运行记录脱敏日志、失败记录和未测说明作业中的失败复盘和最终报告附录

把外部案例或同学项目搬进课堂复盘时,统一按下面的最小结构重写:

复盘项必填问题不能只写
目标场景、设备、workload 和阈值是什么“要跑得快”
条件模型、runtime、量化、ctx、硬件版本是什么“用某框架测试”
结果质量、延迟、tokens/s、内存、功耗分别怎样单个最快数字
失败OOM、超时、质量退化、fallback、降频有没有只展示成功截图
归因是模型、量化、runtime、硬件还是系统问题“可能环境有问题”
下一步重测哪一个变量,成功标准是什么“后续继续优化”

本课程重绘:案例复盘证据链

Hugging Face 的模型评估和 QA 标签图提醒学生:案例复盘要有评估口径和标签定义,不能只展示最好的一次输出。本章把它重画成项目复盘证据链。

来源图思路案例复盘吸收什么转成课程输出
Hugging Face model evaluation example每个案例要写清 workload、metric 和条件复盘表、评分建议、答辩证据
Hugging Face QA labels输出质量要有正确、部分正确、失败等分类失败样例、质量备注、下一步验证
外部评估图只是参考不把别人的评估数字写进本课程结论替换成自己的日志和固定 prompt 结果

因此,本章把外部资料转成一套答辩规则:结论要能复现,失败要能归因,下一步要能执行。

如果后续要把外部案例、厂商 demo 或同学项目资料先“贴进来”,统一按下面的格式粘贴。这样可以先保留材料,再在二次编辑时删掉不适合课程主线的部分。

粘贴材料保留什么立刻补什么二次编辑时删什么
架构图组件、数据流、端侧/云端边界本课程对应的 Qwen、runtime、设备、日志字段不能验证的营销结论
性能截图workload、硬件、指标名、条件本课程是否有同口径实测外部最高分或排名数字
demo 截图输入、输出、交互路径失败样例和不可复现限制只展示成功的宣传语
论文表格方法类别、适用条件、误差来源为什么和 Q8/Q5/Q4 或 Jetson 有关与本课程无关的数据集细节
官方命令关键参数、环境前提、输出日志改成本课程目录和模型路径过长的安装说明和无关选项
评估图指标、标签、样本分布固定 prompt 集和评分规则外部模型成绩对比

把材料贴进案例后,答辩前还要过一张证据表。它来自 MLPerf、Nsight、ML Systems Book 和课程公开运行记录的共同要求:结论必须可复查。

答辩问题需要展示的证据失败时的合格说法
为什么选这个模型模型来源、许可证、hash、baseline 输出“模型来源未完整记录,本轮只作草稿结论”
为什么选这个量化档Q8/Q5/Q4 速度、内存、质量对比“Q4 质量退化,默认不推荐”
为什么认为瓶颈在这里timing、llama-bench、资源采样或 traceback“采样不足,下一轮只重测这个变量”
为什么 API 能集成请求、响应、HTTP 状态、elapsed、server log“只通过 CLI,API 尚未验证”
为什么风险可接受第 7 节风险登记和缓解动作“风险未闭环,不能上线推荐”

案例一:传统视觉模型

传统视觉模型是端侧部署最成熟的路径之一。它适合讲清楚量化、runtime 和硬件加速之间的关系。

项目复盘问题常见证据
模型选择模型是否适合目标输入和设备模型结构、输入尺寸、参数量、任务指标
量化方式PTQ 是否足够,是否需要 QAT校准数据、精度对比、失败样例
RuntimeTensorRT、ONNX Runtime、TFLite 是否适配导出日志、算子支持、推理日志
设备Ubuntu GPU、Jetson、移动端差异nvidia-smitegrastats、设备信息
稳定性长时间运行是否降频或内存泄漏连续运行日志、温度记录

视觉模型案例不要求本课程每个学生完整训练模型,但要能读懂一个视觉部署方案的关键风险。

案例二:Qwen 小型 LLM

本课程主线项目围绕 Qwen 小模型、本地量化和 llama.cpp 展开。

阶段任务产出
Baseline跑通 FP16 或指定 GGUF 模型加载日志、基础响应样例
量化对比比较 Q8/Q5/Q4 等格式结果表,不编造数字
KV Cache改变 ctx-size 观察内存和速度上下文长度记录
Runtime调整 GPU offload、threads、server命令和日志
服务化暴露 OpenAI-compatible APIPython smoke test
复盘写部署评估报告结论、风险、下一步

LLM 案例的复盘必须同时看“能否回答”和“能否稳定服务”。如果只展示一次问答成功,不能算完成部署。

案例三:Jetson 迁移

Jetson 迁移案例用于验证学习者是否理解端侧硬件约束。

对比项Ubuntu ServerJetson需要解释
模型加载待填待填文件大小、内存、runtime
首 token待填待填prefill、GPU offload、上下文
tokens/s待填待填decode、kernel、功耗模式
内存峰值待填待填显存/共享内存、KV Cache
温度/功耗通常非主线待填热稳定性、功耗模式
失败日志待填待填依赖、编译、OOM、fallback

Jetson 的目标不是证明它比服务器更快,而是证明方案是否能迁移到边缘约束下运行,并能解释差异。

案例四:VLM 与 Hybrid Agent

VLM 和 Hybrid Agent 用于把课程从单模型部署扩展到系统架构。

案例端侧部分云端部分复盘重点
图片问答预处理、小模型初筛复杂 VLM 问答隐私、图像质量、fallback
工业巡检Jetson 采集、检测、告警趋势分析、报告生成实时性、误报、稳定性
本地文件助手本地索引、摘要、权限控制高级推理或知识补全工具权限、数据边界
设备运维 Agent本地状态读取和规则处理云端 planner 或专家模型安全边界、人工确认

这类案例的复盘不能只写“使用 Agent”。必须画出组件、数据流、权限边界和失败路径。

核心概念回收

课程模块在复盘中如何体现
前置知识能解释 tokenizer、prefill/decode、KV Cache、memory footprint
端侧框架能说明任务、硬件、runtime、端云协同的选择
量化压缩能比较不同量化格式和质量风险
推理加速能区分模型变小、算子加速、runtime 调优和硬件加速
Ubuntu/Jetson 实作能把同一方案放到两类硬件上比较
Profiling能记录并解释延迟、tokens/s、内存、温度和失败日志
VLM/Agent能从单模型走向系统设计

最终项目要求

最终项目建议以“端侧 Qwen 小模型部署评估报告”为主线,也可以扩展到视觉、VLM 或 Agent 场景。

必须包含:

模块最低要求
项目背景说明任务、目标用户、端侧必要性和约束
模型选择说明模型来源、尺寸、许可证和选择理由
环境记录Ubuntu Server 或 Jetson 的设备信息和软件栈
Baseline原始运行命令、日志和输出样例
量化对比至少两种量化格式或参数设置,不编造数字
推理加速至少一次 runtime 参数或硬件路径对比
Profiling延迟、tokens/s、内存、温度/功耗或 CPU/GPU 使用记录
服务化如果做 LLM,建议提供本地 API smoke test
风险复盘质量、性能、内存、许可证、维护和安全边界
结论当前是否可用,下一步如何优化

加分项:

  • Ubuntu Server 与 Jetson 双路径对比。
  • VLM 或 Agent 的端云协同设计。
  • 失败样例分类和质量修复建议。
  • 自动化记录脚本或 profiling 模板。

最终报告模板

# 端侧模型部署评估报告

## 1. 项目背景

- 任务:
- 目标用户:
- 为什么需要端侧:
- 隐私/网络/成本/实时性约束:

## 2. 方案概览

| 项目 | 选择 | 理由 |
| --- | --- | --- |
| 模型 | 待填 | 待填 |
| 量化格式 | 待填 | 待填 |
| Runtime | 待填 | 待填 |
| 硬件 | 待填 | 待填 |
| 服务形态 | 待填 | 待填 |

## 3. 实验结果

| 实验 | 命令/参数 | 结果 | 证据 |
| --- | --- | --- | --- |
| Baseline | 待填 | 待填 | 日志 |
| 量化对比 | 待填 | 待填 | 表格 |
| 推理加速 | 待填 | 待填 | 日志 |
| Jetson 迁移 | 待填 | 待填 | tegrastats |

## 4. 失败样例

| 样例 | 现象 | 可能原因 | 下一步 |
| --- | --- | --- | --- |
| 待填 | 待填 | 待填 | 待填 |

## 5. 结论

- 当前是否达到业务可用:
- 最大瓶颈:
- 下一步建议:

课堂答辩问题

教师或同学可以用下面的问题检查项目质量:

  • 这个任务为什么必须端侧部署,云端方案有什么不足?
  • 当前模型选择是否过大或过小,有没有替代方案?
  • 量化后质量是否下降,证据是什么?
  • 低比特模型是否真的更快,还是只是更小?
  • Runtime 是否真正使用了目标硬件后端?
  • 上下文长度变化时,KV Cache 如何影响内存和速度?
  • Jetson 上是否记录了功耗模式和温度?
  • 服务化后如何处理并发、超时、日志和重启?
  • 如果本地模型失败,端云协同或人工确认如何介入?
  • 当前方案最大的上线风险是什么?

评分建议

维度比例评价重点
问题定义15%任务、约束、端侧必要性是否清楚
技术路线20%模型、量化、runtime、硬件选择是否有理由
实验记录25%命令、日志、表格和失败样例是否完整
系统设计20%服务化、端云协同、权限和 fallback 是否考虑
复盘表达20%能否解释瓶颈、风险和下一步

评分不应鼓励“跑出最高数字”,而应鼓励可复现、可解释、可改进的工程报告。

代码/命令示例

部署评审清单可以以 Markdown 表格保存,作为每个项目的复盘模板:

| 项目 | 当前结论 | 证据 | 下一步 |
| --- | --- | --- | --- |
| Baseline | 待填 | 待填 | 待填 |
| 量化格式 | 待填 | 待填 | 待填 |
| Runtime | 待填 | 待填 | 待填 |
| 首 token | 待填 | 待填 | 待填 |
| tokens/s | 待填 | 待填 | 待填 |
| 峰值显存/内存 | 待填 | 待填 | 待填 |
| 温度/功耗 | 待填 | 待填 | 待填 |
| 质量风险 | 待填 | 待填 | 待填 |

配套实作

对应实作章节:

最终实作复盘应回答:

  • 当前 Qwen 小模型是否达到课程定义的“业务可用”。
  • 如果没有,是质量、速度、内存、runtime、硬件还是服务化问题。
  • 下一轮应该换量化类型、换模型尺寸、调 runtime 参数,还是改变系统架构。
  • 如果迁移到 Jetson,主要差异来自性能、内存、功耗、温度还是模型质量。
  • 如果扩展到 VLM/Agent,哪些组件应端侧运行,哪些组件应云端兜底。

验收结果

产物验收标准
小型 LLM 复盘表从目标、baseline、量化、runtime、profiling 到结论完整记录
风险清单至少覆盖质量、延迟、显存/内存、许可证、模型来源和部署维护
后续路线能明确下一步是继续优化、换模型、换 runtime 还是端云协同
Ubuntu vs Jetson 对比能说明两个硬件路径各自适合的部署场景
最终项目报告能被别人按命令和表格复现实验过程

常见问题

  • 只汇报最好结果:复盘需要保留失败样例和参数,才能指导下一轮。
  • 把模型问题和系统问题混在一起:输出差、速度慢、服务不稳要分开定位。
  • 没有验收阈值:没有阈值就无法判断“是否达标”。
  • 忽略上线后的环境差异:开发机、测试机和目标设备的驱动、温度、并发和网络都可能不同。
  • 把报告写成命令集合:命令只是证据,报告还必须解释决策和风险。

作业

复盘题

  1. 把四个案例中的任意一个换成你自己的业务场景,重写“部署判断”,说明哪些结论可以直接迁移、哪些必须重新实验。
  2. 从你的全部实验记录中挑出一个失败样例(OOM、质量退化、降频或服务超时),按“现象、证据、归因、下一步”四段写一份复盘。

报告题

  1. 按最终报告模板完成部署评估报告初稿,并用自学与实作粒度标准的学生自查清单逐项自查。
  2. 互评:与同学交换报告,用本章评分建议表打分,并写出三条可执行的改进意见。

参考资料

本章吸收方式: