ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

我的超详细大模型学习路线:从Transformer到SFT与RLHF的TaoToken实战笔记

我的超详细大模型学习路线:从Transformer到SFT与RLHF的TaoToken实战笔记 1. 从Transformer到RLHF我的大模型学习路线踩坑复盘大模型、LLM、Transformer、SFT、RLHF 这几个词如果你刚开始系统入门大概率会在各种课程目录和招聘 JD 里反复看到。我自己的路线是先把 Transformer 的注意力机制手推一遍再跑通一个最小 LLM 推理接着做 SFT 和 LoRA 微调最后啃 RLHF/DPO 的对齐逻辑。听起来很顺但真正卡住我的不是数学而是调用链路——每换一个阶段就要重新配一次 Key、换一次 Base URL、改一次环境变量学到后面光配置就耗掉一半精力。这篇笔记面向想系统入门大模型的开发者主线是学习路线但我会把 TaoToken 作为统一 Key/API 通道贯穿进去。原因很简单从 Transformer 验证、LLM 推理、SFT 数据构造到 RLHF 偏好对比你都需要一个稳定的模型调用入口。与其在每个阶段折腾不同厂商的鉴权不如先把通道固定下来把精力留给算法本身。下面我会给出可复制的settings.json与config.toml骨架并逐阶段给出验证动作让你边学边跑通。2. TaoToken 前置统一 Key 与 API 通道准备TaoToken 在这里的角色是统一的大模型 API 接入层。你注册后拿到一个 Key就可以通过同一个 Base URL 调用不同模型适合学习阶段频繁切换模型做对比实验。官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 注意 API 地址不加 UTM 参数。你需要准备三样东西一个 API Key、一个 Base URL、一个默认模型名。Key 在控制台的 API Keys 页面创建建议按学习阶段建多个 Key比如learn-transformer、learn-sft、learn-rlhf方便后面排查是哪个阶段的调用出了问题。注意Key 只显示一次创建后立刻复制到本地环境变量或配置文件不要硬编码进 Git 仓库。环境变量方式适合临时实验export TAOTOKEN_API_KEYsk-你的key export TAOTOKEN_BASE_URLhttps://taotoken.net/api但学习路线跨度长环境变量容易丢所以我更推荐用配置文件固化下来。下面两节分别给settings.json和config.toml的骨架。3. 可复制配置settings.json 与 config.toml 骨架3.1 settings.json给 Claude Code / Anthropic 风格客户端用如果你用 Claude Code 或 Anthropic 风格的 SDK 做 Agent 实验settings.json是常见入口。核心是把 Base URL 指向 TaoToken 的 API 地址并把 Key 通过环境变量注入。{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的key, ANTHROPIC_MODEL: claude-sonnet-4-20250514 }, permissions: { allow: [Bash, Read, Write] } }这里ANTHROPIC_BASE_URL是关键它决定了请求走 TaoToken 通道。ANTHROPIC_MODEL可以先填一个你账号可用的模型名后面做 SFT 对比时再换。3.2 config.toml给通用 OpenAI 兼容客户端用大多数 Python 学习脚本用 OpenAI 兼容接口就够了config.toml适合放项目级配置。[llm] base_url https://taotoken.net/api api_key sk-你的key default_model gpt-4o-mini timeout 60 max_retries 3 [llm.stages] transformer gpt-4o-mini sft gpt-4o rlhf gpt-4o[llm.stages]是我自己加的用来标记不同学习阶段默认用哪个模型。Transformer 阶段只需要验证注意力输出用便宜的小模型即可SFT 和 RLHF 阶段需要更强的指令跟随和偏好判断换成大模型。3.3 Python 读取配置的最小示例import tomllib from openai import OpenAI with open(config.toml, rb) as f: cfg tomllib.load(f) client OpenAI( base_urlcfg[llm][base_url], api_keycfg[llm][api_key], ) resp client.chat.completions.create( modelcfg[llm][stages][transformer], messages[{role: user, content: 用一句话解释自注意力机制}], ) print(resp.choices[0].message.content)这段代码跑通说明你的统一通道已经就绪后面每个阶段都可以复用这个client。4. 逐阶段验证Transformer、LLM、SFT、RLHF 的调用动作4.1 Transformer 阶段验证注意力理解这个阶段你不需要训练只需要让模型帮你检查对注意力公式的理解。我试过用模型做“反向提问”把自己推导的 QKV 公式发给它让它指出维度错误。prompt 我推导的缩放点积注意力 Attention(Q,K,V) softmax(QK^T / sqrt(d_k)) V 其中 Q 是 (batch, heads, seq, d_k)K 是 (batch, heads, seq, d_k)。 请指出维度是否匹配并说明 sqrt(d_k) 的作用。 如果模型能准确指出QK^T后维度是(batch, heads, seq, seq)说明你的理解没问题。这一步的验证标准是模型回答与你的手推结果一致且能补充数值稳定性解释。4.2 LLM 推理阶段跑通最小生成用同一个 client 做一次流式生成确认 token 逐块返回。stream client.chat.completions.create( modelcfg[llm][stages][transformer], messages[{role: user, content: 写一个 Python 函数计算斐波那契数列}], streamTrue, ) for chunk in stream: delta chunk.choices[0].delta.content if delta: print(delta, end)成功结果是终端逐字输出代码。如果卡住不动先检查base_url是否漏了/api再检查 Key 是否过期。4.3 SFT 阶段构造指令数据并验证格式SFT 的核心是数据格式。你可以先用模型帮你生成一批指令-响应对再人工筛选。sft_prompt 请生成 3 条 SFT 训练样本JSON 数组格式每条包含 instruction 和 output 字段。 主题把一段中文翻译成英文。 拿到数据后用json.loads校验格式。这一步的验证标准是生成的 JSON 能被解析且 instruction 与 output 语义对应。如果模型返回了多余的解释文字在 prompt 里加一句“只输出 JSON不要任何解释”。4.4 RLHF 阶段偏好对比与 DPO 数据构造RLHF 学习阶段最实用的是构造偏好对。让模型对同一个 prompt 生成两个回答你标注哪个更好形成chosen/rejected数据。compare_prompt 同一个问题生成两个回答分别标记为 A 和 B。 问题解释什么是过拟合。 要求A 回答简洁B 回答详细。 拿到 A/B 后你人工判断哪个更符合偏好整理成 DPO 训练格式。这一步的验证标准是你能稳定产出{prompt, chosen, rejected}三元组且 chosen 与 rejected 有明确质量差异。5. 本篇常见错排查报错一401 Unauthorized。最常见原因是 Key 复制时带了空格或者用了控制台里已删除的 Key。解决方式是重新创建一个 Key直接粘贴到配置文件不要手动输入。报错二404 Not Found。检查base_url是否写成了https://taotoken.net而漏了/api。API 地址必须是 https://taotoken.net/api 不带 UTM 参数。报错三model not found。模型名拼写错误或者你的账号没有该模型权限。解决方式是先在模型对话页面确认可用模型列表再填进config.toml。报错四请求超时。学习阶段网络环境不稳定时容易遇到。在config.toml里把timeout调到 120max_retries调到 5再重试。报错五流式输出中断。通常是客户端没处理delta.content为 None 的情况。加一层if delta:判断即可。提示排查时先用最小请求验证通道再逐步加参数。不要一上来就跑完整 SFT 脚本否则分不清是配置问题还是代码问题。6. 学习路线收尾把通道固定把精力留给算法从 Transformer 到 SFT 再到 RLHF真正消耗时间的不是公式而是反复配置调用环境。把 TaoToken 作为统一通道固定下来后你可以在每个阶段复用同一个 client只换模型名和 prompt。需要创建 Key 就去 API Keys 页面接入细节看接入文档想快速验证模型能力直接用模型对话页面如果后面要长期做编码或 Agent 实验可以了解 Coding Plan。我的建议是每学完一个阶段就把该阶段的验证脚本存成一个独立文件比如stage1_transformer.py、stage3_sft.py。这样下次换模型或换 Key 时你只需要改config.toml不用动业务代码。学习路线很长但通道只需要配一次。
返回列表