(一)旅行助手的微调数据是怎么来的:从场景生成到工具调用轨迹

背景: 这是我自己的一个旅行项目——一个跑在本地的旅行助手 Agent,基座是 Qwen3-0.6B(RTX 4060),能查攻略(Milvus + RAG)、查天气(和风天气)、查路线(高德地图)。它靠提示词也能调工具,但调用并不稳定,所以我正在基于这个项目做微调。这篇讲数据那一环:训练用的对话轨迹是怎么造出来的。

大模型微调最容易被误解的地方,是把“训练数据”理解成一堆问题和答案。对 Agent 来说,真正要学的是一条可执行的轨迹:什么时候应该追问,什么时候应该调用工具,工具参数如何组织,工具返回后怎样继续工作,最后怎样把结果说给用户。

阅读更多

(二)LoRA 是怎么接进旅行助手的:Qwen3-0.6B 微调脚本拆解

背景: 这是我自己的一个旅行项目——一个跑在本地的旅行助手 Agent,基座是 Qwen3-0.6B(RTX 4060),能查攻略(Milvus + RAG)、查天气(和风天气)、查路线(高德地图)。它靠提示词也能调工具,但调用并不稳定,所以我正在基于这个项目做微调。这篇拆的是训练代码本身。

上一篇文章讲了旅行助手的微调数据如何生成。这篇继续往下看训练代码,专门拆解项目中的 train_qwen_lora.py:模型怎样加载,LoRA 适配器怎样插入,哪些 token 会参与 loss,Trainer 怎样完成训练,以及训练完成后如何使用 LoRA。

阅读更多

(三)旅行助手中的大模型微调:从 Qwen3-0.6B 到可调用工具的本地 Agent

背景: 这是我自己的一个旅行项目——一个跑在本地的旅行助手 Agent,基座是 Qwen3-0.6B(RTX 4060),能查攻略(Milvus + RAG)、查天气(和风天气)、查路线(高德地图)。它靠提示词也能调工具,但调用并不稳定,所以我正在基于这个项目做微调。这篇是总览:从环境准备到本地联调的完整过程。

这次实践得到一个很明确的结论:微调负责让模型学会做事,RAG 负责提供知识,工具负责连接真实世界。 把三件事混成一件事,模型会变得难以调试;把它们拆开,旅行助手的每一步都能单独验证。

阅读更多

Transformer 原理

GPT-3 175B 的配置表里有三个数字,第一次看很容易混在一起:

1
2
3
96 层
12288 隐藏维度
96 个注意力头

它们说的完全不是一回事:

  • 96 层:文字要连续加工 96 轮。
  • 96 个头:每一轮里,同时有 96 个「小组」从不同角度聚合信息。
  • 12288:每个 Token 用 12288 个数字表示。

这一篇就沿着这三个数字,把注意力机制从头捋一遍。

阅读更多

Transformer 原理 2

上一篇把 Q、K、V 和多头注意力拆开了,但那是局部。这一篇把整条链路走完——文字进去,下一个 Token 出来,中间每一步的形状变化都标清楚;最后再按 GPT-3 175B 的真实配置,把「1750 亿参数」这个数自己算一遍。

整套图用的是 GPT-3 175B 的示例尺寸:

1
2
3
4
5
96 个 Transformer 层
每个 Token 12288 维
每层 96 个注意力头
每个头 128 维
FFN 中间层 12288 × 4 = 49152 维
阅读更多