错题本保存在当前浏览器,需要启用 JavaScript 才能读取和复习;全部课程正文仍可从目录访问。
端侧 AI · 15 天工程路线
目录首页
English
按错题重新建立证据
错题复习
这里汇总当前浏览器中尚未答对的问题。答对后会自动从错题本移除,课程原文和解析仍可随时返回章节查看。
← 目录首页
🎉
当前没有待复习错题
完成章节测试后,答错的问题会自动出现在这里。
提交本轮复习
Day 01 · 神经网络基础
1. 为什么两个线性层之间没有激活函数时可合并?
每层都会自动归一化
线性映射的复合仍是线性映射
权重会在推理时消失
MAC 数必然为零
Day 01 · 神经网络基础
2. 输入 shape 为 [1, 3, 32, 32] 最先应该确认什么?
只确认总字节数
通道位置和 dtype 是否与模型契约一致
先把 batch 改成 32
先把它上传到 NPU
Day 01 · 神经网络基础
3. 对端侧延迟更直接的粗略计算指标是什么?
模型文件名长度
参数量
MACs 与数据搬运量
训练 epoch 数
Day 02 · 训练与推理
1. 为什么推理前要调用 model.eval()?
释放所有权重
使 Dropout、BatchNorm 使用推理行为
自动量化为 int8
把模型转换为 GGUF
Day 02 · 训练与推理
2. ONNX opset 主要声明什么?
模型训练轮数
图中算子应遵循的语义版本
芯片时钟频率
权重压缩比
Day 02 · 训练与推理
3. 转换后最可靠的第一项验证是什么?
只比较文件大小
用固定输入比较源模型与目标 runtime 输出
只检查扩展名
只看模型卡参数量
Day 03 · 模型量化
1. 全整数量化为何需要 representative dataset?
用来重新训练所有权重
估计会随输入变化的激活范围
生成模型名称
提高摄像头帧率
Day 03 · 模型量化
2. 量化饱和最接近 ADC 的哪种问题?
采样率过高
输入超过量程而被夹到最大/最小码
串口波特率不匹配
Flash 擦写
Day 03 · 模型量化
3. ESP-DL 文档中 ESP32 与 ESP32-S3 常使用的策略是?
所有 Conv 必为 per-channel
per-tensor 量化
仅支持 float32
不支持任何量化
Day 04 · 算子与 Kernel
1. 算子融合经常提速的主要原因是?
改变模型训练标签
减少中间张量读写与调度开销
增加 batch 到无限大
自动增加 NPU SRAM
Day 04 · 算子与 Kernel
2. NCHW 到 NHWC 转换的风险是什么?
只会改变文件扩展名
可能增加完整张量 copy 并破坏连续布局
必然提高准确率
能消除所有动态 shape
Day 04 · 算子与 Kernel
3. ONNX Runtime 多个 Execution Provider 的常见回退行为是?
不支持节点时删除节点
按优先级将支持的子图交给 EP,其余可由 CPU 执行
把模型重新训练
把所有节点复制到 Flash
Day 05 · 端侧模型部署
1. 设备端精度明显低于 PC 时,最先比对什么?
网页 CSS
前处理:颜色、resize、归一化与量化
模型文件的修改时间
Wi-Fi SSID
Day 05 · 端侧模型部署
2. Tensor arena 不足通常意味着什么?
模型一定训练过拟合
输入、输出或中间张量无法完成内存分配
Flash 分区表被删除
网络 API 返回 404
Day 05 · 端侧模型部署
3. 何时应把通用 LLM 放到 Linux Edge Host?
ESP32 有 GPIO 时
模型与 KV cache 超出 MCU RAM/算力预算时
温度传感器存在时
只要使用 USB
Day 06 · 端侧视觉流水线
1. 端侧推理峰值 RAM 预算应至少包含?
仅权重
权重、激活、workspace 与 I/O buffer
仅模型名称
仅 FreeRTOS tick
Day 06 · 端侧视觉流水线
2. letterbox 后为什么必须保存缩放和 padding?
为了增加模型参数
把检测框坐标正确映射回原始帧
为了改变 tokenizer
为了关闭 DMA
Day 06 · 端侧视觉流水线
3. 相机帧最安全的处理时机是?
DMA 启动前
驱动报告传输完成并取得 buffer 所有权后
任意 ISR 中
Flash 擦写期间
Day 07 · LLM 基础
1. LLM 预训练中最典型的自监督目标是什么?
记住每篇文档的文件名
根据已有 token 预测下一个 token
把所有句子压成同一向量
直接验证现实世界事实
Day 07 · LLM 基础
2. 哪项最准确地区分参数与上下文?
两者都会在每个 token 后永久更新
参数跨请求复用,上下文属于当前请求可见序列
上下文存于模型权重文件
参数就是 tokenizer 词表
Day 07 · LLM 基础
3. 为什么经过指令对齐的模型仍可能幻觉?
因为对齐会删除 tokenizer
因为生成目标仍是条件概率预测,对齐不能保证每个陈述都真实
因为 KV cache 一定损坏
因为所有模型只能处理英文
Day 08 · Tokenizer
1. LLM 的上下文窗口通常限制什么?
UTF-8 字节数
屏幕字符数
token 数
HTTP 包数
Day 08 · Tokenizer
2. 为什么应使用模型自带 chat template?
它会自动训练模型
不同模型的角色控制 token 和输入格式不同
它能减少所有 KV cache
它只影响网页排版
Day 08 · Tokenizer
3. 先 apply_chat_template(tokenize=False) 再 tokenize 时通常要注意?
强制添加更多 special tokens
避免再次添加模板已经包含的 special tokens
删除所有空格
把 token 变成 float32
Day 09 · Transformer 架构
1. 在 Transformer block 中,FFN 的主要职责是什么?
为每个位置应用共享的非线性表示变换
决定 tokenizer 如何切词
永久保存所有会话 KV
替代 residual connection
Day 09 · Transformer 架构
2. decoder-only LLM 最典型的可见性约束是什么?
每个位置都能读取未来答案
所有位置只能读取自己
每个位置只能读取当前及之前的 token
只能读取图像 patch
Day 09 · Transformer 架构
3. 哪项最准确地描述 Transformer 的训练并行与生成顺序?
训练和生成都不含顺序依赖
已知训练序列的位置可并行计算,但生成的新 token 仍依赖上一步结果
只有 FFN 可以训练
层堆叠可以倒序执行
Day 10 · Attention 机制
1. 论文为什么要把 QKᵀ 除以 √d_k?
让所有 attention head 自动共享 K/V
避免大维度点积让 softmax 饱和并导致梯度变小
自动减少 tokenizer 时间
把 KV cache 转换为 int8
Day 10 · Attention 机制
2. Causal mask 在 decoder self-attention 中保证什么?
所有 head 共享参数
当前位置不能读取未来 token
序列长度固定为 512
自动删除 padding token
Day 10 · Attention 机制
3. 序列长度翻倍时,完整 attention score 矩阵的元素数约如何变化?
保持不变
约变为四倍
约变为两倍
约减半
Day 11 · KV Cache
1. KV cache 容量与 context length 的关系通常是?
完全无关
近似线性增长
必然平方增长
每次减半
Day 11 · KV Cache
2. GQA 如何降低 KV cache?
删除所有 query head
多个 query head 共享较少的 K/V head
让所有 token 使用同一个 embedding
压缩 HTTP 响应
Day 11 · KV Cache
3. PagedAttention 主要直接改善什么?
把参数永久写入 tokenizer
动态会话 KV 的分配、碎片与共享
消除自回归顺序
保证回答事实正确
Day 12 · LLM 量化与 GGUF
1. GGUF metadata 的重要用途是什么?
替代所有模型权重
描述模型与量化等信息以便执行器正确加载
提高 Wi-Fi RSSI
记录训练数据原文
Day 12 · LLM 量化与 GGUF
2. “Q4”为何不必然等于每参数精确 4 bit?
量化不会压缩文件
块量化还需要 scale、min 等辅助数据
GPU 不支持整数
tokenizer 会修改位数
Day 12 · LLM 量化与 GGUF
3. 比较两种 GGUF 量化时最不充分的指标是?
文件大小
固定提示下的延迟与质量代理
峰值内存
相同参数下的吞吐
Day 13 · LLM Runtime
1. TTFT 主要包含哪些阶段?
仅 Decode 采样
请求处理、tokenize、prefill 与首 token 产生前的工作
仅网络 DNS
仅模型下载
Day 13 · LLM Runtime
2. ONNX Runtime Execution Provider 的职责是?
训练 tokenizer
识别并执行自己支持的节点或子图
生成 GitHub Pages
为 Flash 加密
Day 13 · LLM Runtime
3. 为什么子图切分可能降低端到端性能?
它必然删除所有算子
边界会增加设备间 copy、同步与调度开销
它会让权重变成文本
它自动禁用 cache
Day 14 · LLM 性能与 Infra
1. Time to First Token 的定义最接近?
相邻两个输出 token 间隔
请求发出到收到第一个响应 token 的时间
整个模型下载时间
每秒摄像头帧数
Day 14 · LLM 性能与 Infra
2. 为什么张量并行通常优先限制在同一高速互连域内?
因为 TP 不需要任何通信
因为 TP 只能用于卷积网络
因为层内 collective 频繁,链路延迟和带宽直接进入每层关键路径
因为节点间网络不能传浮点数
Day 14 · LLM 性能与 Infra
3. 哪种情况最可能让 Prefill/Decode 解耦比共置更慢?
长 prompt、空闲高速 KV 链路且两阶段负载失衡
短 prompt、Decode 已命中前缀且 KV 迁移链路拥塞
两类 worker 能独立扩缩容
Prefill 与 Decode 使用不同的最优 batch 形状
Day 15 · 端侧 LLM 产品化
1. ESP32 + Edge Host 架构中,哪项应留在 ESP32 的确定性边界内?
LLM 的所有权重
执行器白名单、范围检查和失联降级
云端训练循环
GGUF 转换脚本
Day 15 · 端侧 LLM 产品化
2. 一个 Q4 权重文件小于设备可用 RAM,为什么运行时仍可能 OOM?
Q4 文件在加载后一定自动变成 Q16
除权重外还有 KV、临时 buffer、设备副本、runtime 与 OS;加载峰值也可能高于稳态
只有 tokenizer 会占用其余内存
只要使用 mmap 就永远不会 OOM
Day 15 · 端侧 LLM 产品化
3. NPU 标称 TOPS 很高但端到端 Decode 仍慢,最可信的解释是什么?
TOPS 同时完整衡量 tokenizer、采样和所有内存访问
生成模型不做矩阵计算
算子覆盖不足导致 CPU fallback,且 delegate 边界复制、KV 带宽和小步同步主导
NPU 只能运行浮点模型