学习路线与面试重点
最后给你一张地图和一份高频题清单。别贪多,按顺序来,每一步都跑代码。
学习路线图
推荐资源
- The Rust Programming Language(官方书,免费在线)—— Rust 圣经。
- Rust By Example—— 边写边学。
- Tokio 官方教程—— async 生态。
- candle examples—— GitHub 上 candle 的 examples 目录。
- Awesome Rust ML—— Rust ML 生态列表。
高频面试题(折叠答案)
1. 为什么用 Rust 做 AI 推理而不是 Python?
看答案
无 GC 停顿、延迟稳定、单文件部署、内存占用小、数据可不出本地。
2. candle、ort、tch-rs 怎么选?
看答案
大语言模型选 candle(GGUF 量化、纯 Rust);多模态 ONNX 选 ort;必须跑 PyTorch .pt 选 tch-rs。
3. GGUF 量化是什么?Q4_K_M 损失多大?
看答案
把权重从 FP16 压到 4bit,内存降 4 倍。Q4_K_M 精度损失普通人不可感知,是端侧部署甜点位。
4. RAG 的七步流水线?
看答案
文档加载 → chunk 切分 → Embedding 向量化 → 存向量库 → 查询向量化 → 检索 top-K → 拼 prompt 送 LLM 生成。
5. 为什么 RAG 比微调更常用?
看答案
RAG 不用训练,知识更新只要改向量库;可解释(能引用来源);成本低;不会幻觉(有资料约束)。
6. Function Calling 的四步循环?
看答案
定义工具 schema → LLM 决定调哪个 → 代码执行工具 → 结果回喂 LLM → 最终回答。
7. 流式输出 SSE 怎么实现?
看答案
reqwest 拿 bytes_stream,逐 chunk 解析 data: 行,取 delta.content,通过 Axum 的 SSE response 推给前端。
8. Tauri 和 Electron 的本质区别?
看答案
Tauri 用系统 WebView + Rust 后端,包体 3MB;Electron 内置 Chromium + Node,包体 200MB。
9. Tauri 的 #[tauri::command] 是什么?
看答案
把 Rust 函数暴露给前端,前端用 invoke('命令名', {参数}) 调用。支持 async command。
10. ReAct 循环是什么?
看答案
Reason(思考)+ Act(行动调工具)+ Observe(观察结果),循环直到 LLM 判断任务完成。
11. 本地 Agent 为什么强调"数据不出域"?
看答案
Agent 要读本地文件、跑命令,敏感数据不能上传云端。Rust 编译成本地二进制,天然支持。
12. 连续批处理(continuous batching)解决什么问题?
看答案
静态批处理要等所有请求凑齐, GPU 利用率低。连续批处理来一个插一个,跑完替换,吞吐量翻几倍。
13. KV Cache 是什么?为什么重要?
看答案
Transformer 自注意力的 Key/Value 缓存,避免每步重算。长对话 KV Cache 会爆,要设上限。
14. polars 为什么比 Pandas 快?
看答案
多线程并行 + Arrow 列式存储 + Lazy 查询优化。Pandas 单线程。
15. qdrant 和 Milvus 有什么区别?
看答案
qdrant 用 Rust 写,单二进制部署,轻量;Milvus 用 Go,分布式架构,重。小项目选 qdrant。
16. 怎么做 prompt 注入防护?
看答案
系统提示词和用户输入明确分隔,对工具调用加白名单,危险操作要人工审批,输出前过滤。
17. Tauri 的 capabilities 是什么?
看答案
权限白名单配置文件。前端默认什么权限都没有,要用 fs/HTTP 必须在 capabilities 里显式授权。
18. 怎么控制 LLM 成本?
看答案
tiktoken 数 token、对话历史摘要压缩、按难度选模型(简单问题用小模型)、缓存重复请求。
19. Rust AI 推理怎么 profile?
看答案
criterion 微基准、samply/perf 火焰图、tracing span 看哪步慢、对比 batch size 和量化等级的吞吐。
20. 为什么 Rust AI 生态不像 Python 那样"全家桶"?
看答案
Rust 遵循 Unix 哲学,每个 crate 做一件事:candle 跑模型、polars 洗数据、qdrant 存向量、rig 编排。开发者组合,灵活但需要理解分层。
1.(概念题)为什么说"Python 训练,Rust 部署"?
查看答案
Python 训练生态无可替代(PyTorch/Jupyter),但生产部署慢、GIL、依赖乱。Rust 推理延迟低、包体小、无 GC 停顿,适合上线。
2.(选型题)要在手机上跑一个 3B 中文模型,选 candle、ort 还是 tch-rs?
查看答案
candle。纯 Rust 可交叉编译到 Android/iOS,GGUF 量化包体小。ort 依赖动态库,tch-rs 依赖 2GB libtorch,都不适合端侧。
3.(流程题)用户问一个问题,RAG 系统内部发生了什么?
查看答案
问题 → Embedding 向量 → qdrant 检索 top-K 文档块 → 拼"基于以下资料:...\n问题:..."→ LLM 生成答案。
4.(架构题)Tauri 应用里,前端怎么收到 LLM 流式输出?
查看答案
Rust 后端调 OpenAI SSE 流,每收到一个 token 就 app.emit('llm-token', token);前端 listen('llm-token') 实时追加到聊天框。
5.(优化题)7B 模型在笔记本上跑太慢,三条优化建议?
查看答案
① 换 Q4_K_M 量化(内存降 4 倍);② 减小 max_seq_len(KV Cache 小);③ 用 GPU(Metal/CUDA)而不是纯 CPU。
① 你已经能从 candle 跑模型 一路讲到 Tauri 打包桌面端:推理三剑客、RAG、Function Calling、ReAct Agent、性能优化。
② 下一步:把项目一(RAG 知识库)跑通,再把它包成 Tauri 桌面应用,就是一个能交付的 AI 产品。
③ Rust + AI 的核心心法:Python 是研究,Rust 是生产;让数据不出本地,让延迟低到无感。