跳到主要内容

资料对比与课程取舍

建议学时

2 学时。

本页适合放在课程导读或教师备课阶段使用。它回答一个关键问题:为什么本课程不是简单拼接量化论文、runtime 文档、Jetson 教程和 LLM 实作,而要重新组织成一门端侧部署课程。

本页目标

本课程参考公开课程、在线教材、论文和官方文档,但不会照搬任何一个来源。我们要做的是:吸收它们对知识结构、方法边界、实验设计和工程指标的优点,同时去掉不适合本课程目标的内容。

课程目标是端侧模型量化部署,不是泛 AI 课程、论文综述课、厂商 API 手册或数据中心 serving 课程。

取舍原则

原则保留舍弃
面向部署真实设备、runtime、profiling、功耗、稳定性只在论文 benchmark 中成立的结论
面向课程可讲、可学、可实验、可复盘零散命令堆砌
面向端侧内存、带宽、功耗、Jetson、边缘设备、端云协同纯云端高并发集群优化
面向工程判断方法适用条件、风险、失败模式只给“最佳实践”口号
面向项目产出部署评估报告、实验表格、复盘问题只展示 demo 成功

对比框架

这张图强调:不同资料的价值不同。课程资料提供结构,论文提供方法动机,官方文档提供可靠术语和流程,工具项目提供可执行实验。

资料对比

来源取其精华去其糟粕
MIT 6.5940 / EfficientML高效模型、量化、剪枝、硬件感知优化的课程骨架TinyML 电路级和硬件设计细节不作为主线
The Machine Learning Systems Book指标、部署、可靠性、性能评估、系统边界泛 MLOps、组织流程、平台治理不展开
Hugging Face LLM Coursetokenizer、Transformer、生成、chat template 基础训练/微调长线内容只保留必要背景
PyTorch / ONNX / TFLite / OpenVINOPTQ/QAT、校准、静态/动态量化、误差分析不做逐 API 讲解,避免成为工具手册
GPTQ / AWQ / SmoothQuant / LLM.int8LLM 量化方法动机、误差来源、outlier 处理复杂证明和榜单复述不作为课堂重点
llama.cpp / QwenGGUF、本地 LLM、server、benchmark、低比特实作不追逐全部模型格式和参数枚举
vLLM / TensorRT-LLM / MLC LLMKV Cache、服务化、GPU/跨平台部署思路高并发集群级 serving 只作为延伸
Jetson / JetPack / TensorRT边缘设备环境、功耗、tegrastats、TensorRT、DLA 概念不展开所有 Jetson 型号和硬件细节
MLPerf / Nsight / llama-benchprofiling 和 benchmark 方法竞赛级 benchmark 流程不作为必做实验
VLM / Agent 资料组件拆解、工具权限、端云协同、失败恢复追逐快速变化的框架接口和营销式 agent demo

吸收到课程结构中

课程部分主要吸收来源课程化处理
前置知识Hugging Face、ML Systems Book用 tokenizer、prefill/decode、latency/memory 建立共同语言
端侧部署框架ML Systems Book、EfficientML、Jetson docs把质量、延迟、内存、功耗、维护成本放到同一决策表
量化压缩PyTorch、ONNX、TFLite、OpenVINO、GPTQ/AWQ/SmoothQuant用方法路线和失败模式组织,不按 API 罗列
推理加速TensorRT、TensorRT-LLM、vLLM、llama.cpp、MLC LLM从图、kernel、memory、runtime、hardware 五层讲
Ubuntu / Jetson 实作Qwen、llama.cpp、Jetson、NVIDIA 文档统一落到 Qwen 小模型部署评估报告
ProfilingMLPerf、Nsight、llama-bench、nvidia-smitegrastats建立课堂可操作的实验记录模板
VLM / AgentHF 多模态、OpenAI tool/agent 文档、系统资料讲系统设计、权限和端云协同,不做完整平台课

课程主线的形成

外部资料覆盖面很广,本课程把它们收束成一条主线:

这条主线的好处是每个知识点都有落点:

  • 学 tokenizer,是为了理解本地模型输入格式和上下文。
  • 学 KV Cache,是为了解释内存和首 token/tokens/s。
  • 学 PTQ/QAT,是为了理解模型质量和部署格式。
  • 学 runtime,是为了理解模型为什么“能跑但不快”。
  • 学 Jetson,是为了看到功耗、温度和边缘硬件限制。
  • 学 VLM/Agent,是为了从单模型走向系统设计。

为什么保留 7 部分结构

7 部分结构能把课程从“大纲列表”变成“完整学习路径”。

部分功能如果删除会怎样
导读说明课程定位、资料取舍和学时学生不知道课程边界
Part I 前置知识补齐 LLM、系统、Linux/GPU 基础实作时只会复制命令
Part II 端侧部署框架建立决策矩阵和端云协同视角量化和 runtime 会变成零散技巧
Part III 量化与压缩讲模型侧优化无法解释低比特、PTQ/QAT 和精度风险
Part IV 推理加速与 Runtime讲执行侧优化无法解释速度瓶颈和硬件后端
Part V Ubuntu / Jetson 实作建立可验证经验课程会停留在理论
Part VI 案例复盘形成项目报告和评审能力学生缺少收束和迁移能力

为什么体量要做到 40+ 学时

如果只讲量化概念和几个命令,8 到 12 学时也能完成。但那样学生通常只能获得“跑过一次 demo”的经验。

要让学生具备端侧部署判断能力,至少需要覆盖:

能力需要内容不足时的表现
理解模型输入输出tokenizer、chat template、prefill/decode本地模型答非所问,不知道原因
选择量化方案PTQ/QAT、GGUF、GPTQ/AWQ、质量风险只会选最小文件
判断速度瓶颈runtime、kernel、KV Cache、GPU offload模型慢时只会换模型
处理硬件差异Ubuntu Server、Jetson、功耗、温度服务器结果无法迁移
服务化本地 API、日志、失败恢复命令行 demo 无法集成
系统设计VLM/Agent、端云协同、权限不知道真实产品如何落地
项目复盘指标、表格、失败样例、结论只有结果,没有判断

因此本课程设计为 52 学时完整版,并可裁剪为 40 学时。40 学时版本应保留主线,减少论文精读和多 runtime 展开。

量化压缩与推理加速的边界

量化压缩和推理加速经常被混在一起,但课程中要区分清楚。

类别解决什么不保证什么
量化降低精度、模型大小、部分内存和带宽不保证速度一定变快
剪枝移除不重要连接、通道或结构不保证 runtime 能利用稀疏性
蒸馏用小模型逼近大模型行为不保证所有任务质量保持
图优化融合算子、删除冗余、改变执行图不改变模型能力本身
Kernel 优化提升具体算子执行效率依赖硬件和 runtime
KV 管理降低长上下文服务内存压力不直接提升模型知识能力
服务化优化提升并发、稳定性和接口可用性不解决单次质量问题

课程要让学生知道:模型变小、执行变快、服务稳定是三个相关但不同的问题。

Ubuntu 与 Jetson 的课程取舍

Ubuntu Server 和 Jetson 都保留,是因为它们分别服务于不同学习目标。

路径保留原因课程边界
Ubuntu Server构建快、调参快、适合建立 baseline不把服务器结果当成端侧最终结论
Jetson能观察功耗、温度、共享内存、边缘部署不展开所有板卡型号和硬件设计
双路径对比训练迁移和解释能力不追求两个平台结果完全一致

Jetson 是本课程的边缘硬件主线,但不是唯一硬件答案。课程也会提到移动端、Apple、ONNX Runtime、TFLite、ExecuTorch 和 MLC LLM,用于建立广义端侧视野。

VLM/Agent 的课程取舍

VLM/Agent 很容易让课程发散。这里的取舍是:

保留舍弃
VLM 组件拆解:预处理、vision encoder、projector、LLM从零训练 VLM
VLM 端侧瓶颈:视觉 token、分辨率、OCR、小目标追逐模型排行榜
Agent 权限、工具、状态、失败恢复复杂 agent 框架全栈开发
端云协同:隐私、本地初筛、云端兜底把所有任务强行本地化
Jetson 作为边缘节点的角色把 Jetson 当成云端 GPU 替代品

这样处理能让 VLM/Agent 成为系统设计能力的延伸,而不是把课程变成另一个主题。

最终产出取舍

课程最终产出不是“一个能跑的脚本”,而是一份部署评估报告。

产出必须包含不接受
实验记录命令、参数、日志、设备信息只写“运行成功”
量化对比至少两个方案和质量观察只看模型文件大小
性能记录延迟、tokens/s、内存、温度/功耗只贴一次输出截图
系统设计API、端云协同、fallback、权限只给命令行 demo
复盘结论达标与否、瓶颈、下一步没有判断标准

这个产出设计来自 ML systems、benchmark 和工程课程的共同经验:结果必须可解释,才能指导下一轮优化。

课程不做什么

  • 不把所有量化论文做成详细数学证明课。
  • 不把 PyTorch、ONNX Runtime、TensorRT、TFLite 每个 API 都讲一遍。
  • 不把 Jetson 硬件型号和电气细节作为主线。
  • 不做数据中心 LLM serving 集群课程。
  • 不做完整 MLOps 平台建设课程。
  • 不做完整 Agent 平台开发课程。
  • 不承诺任何硬件上的固定性能数字。

课程要做什么

  • 让学习者能解释端侧部署为什么难。
  • 让学习者能选择量化、压缩、推理加速和 runtime 路线。
  • 让学习者能在 Ubuntu Server 和 Jetson 上跑通小模型实验。
  • 让学习者能记录和解释性能、内存、功耗、温度、质量下降和 fallback。
  • 让学习者能设计本地推理、云端推理和端云协同的边界。
  • 让学习者能输出一份可评审的端侧部署方案。

教师备课检查表

## 备课检查

- 本章是否对应 7 部分结构中的明确位置:
- 本章是否有可执行实验或案例:
- 本章是否说明了方法适用条件:
- 本章是否避免编造性能数字:
- 本章是否有失败模式:
- 本章是否能连接最终项目报告:
- 本章参考资料是否以官方文档/论文/成熟课程为主:

学生阅读检查表

## 资料取舍记录

- 我阅读的资料:
- 资料解决的问题:
- 我吸收到课程项目中的内容:
- 我没有采用的内容:
- 不采用的原因:
- 对实验设计的影响:

参考资料