楼层: 首页/ 软件技术/ Rust + AI 全栈/ 学习路线与面试重点
10

学习路线与面试重点

Roadmap & Interview

最后给你一张地图和一份高频题清单。别贪多,按顺序来,每一步都跑代码。

学习路线图

1. Rust 基础(所有权 / 借用 / trait / 错误处理) 2. 异步后端(Tokio + Axum + SQLx)← 见本门户另一篇 3. 数据处理(polars / ndarray / tokenizers) 4. 推理框架(candle 跑一个 Qwen 量化模型) 5. 向量库 + RAG(qdrant + Embedding) 6. LLM API + Function Calling 7. Agent 系统(ReAct 循环 + 工具注册) 8. Tauri 2.0 跨端打包 9. 性能优化(量化 / 批处理 / Release profile) 10. 完整项目实战

推荐资源

  • The Rust Programming Language(官方书,免费在线)—— Rust 圣经。
  • Rust By Example—— 边写边学。
  • Tokio 官方教程—— async 生态。
  • candle examples—— GitHub 上 candle 的 examples 目录。
  • Awesome Rust ML—— Rust ML 生态列表。

高频面试题(折叠答案)

面试重点 · 20 题速记

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 是生产;让数据不出本地,让延迟低到无感。