Appearance
LLM 基础概念复盘
日期: 2026-03-31
关联章节: → LLM 基础概念
前置知识: 无特别要求,会用 Python 基础即可
用自己的话说
Token 是什么: 模型处理文字不是一个字一个字读,而是按"token"切分。中文大概 1 个字是 1–1.5 个 token,英文大概 3–4 个字母是 1 个 token。这意味着同样语义的一句话,用中文写反而比英文贵一点(消耗更多 token)。
上下文窗口: 模型每次能"看到"的内容有上限,超出这个上限的部分它完全不知道。就像和一个短期记忆只有几千字的人对话——如果你们的对话太长,他前面说的事情他就忘了。实际开发时这个限制会频繁出现,需要手动管理哪些内容放进上下文。
温度(Temperature): 控制输出的随机程度。温度 = 0,模型几乎每次都给同一个答案(适合写代码、提取结构化数据);温度越高,输出越多样,但也越容易跑偏(适合头脑风暴、创意写作)。我最初以为温度高就是"更聪明",现在理解了它其实是"更随机"。
为什么模型会"不知道": 模型的知识有训练截止日期,对截止日期之后发生的事一无所知。它也没有互联网连接(除非你特别给它工具),不能查实时信息。
实验 / 练习记录
实验 1:用不同温度问同一个问题
做了什么: 用 OpenAI API 调用 gpt-4o-mini,对同一个问题("推荐三本关于 AI 的书")分别用 temperature=0 和 temperature=1 各问 3 次。
输入(temperature=0):
python
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "推荐三本关于 AI 的书"}],
temperature=0
)输出观察: temperature=0 时,3 次的回答几乎完全相同;temperature=1 时,每次推荐的书和理由都有明显变化。
结论: 对于有"标准答案"的任务(如代码生成、JSON 提取),用低温度;对于"没有唯一答案"的任务(如头脑风暴、改写文案),可以适当提高温度。
实验 2:感受上下文窗口
做了什么: 写一段对话,先让模型记住一个数字,然后中间插入大段无关内容,再让模型回忆这个数字。
结论: 在上下文足够短的情况下没有问题;但如果对话内容很长,模型确实会"忘记"前面的信息。这让我意识到在做多轮对话应用时,需要考虑如何压缩或管理历史消息。
还不清楚的点
- 上下文窗口满了之后,模型是直接截断还是有某种总结机制?LangChain 的
ConversationSummaryMemory好像是在做这件事,还没深入看。 temperature和top_p有什么区别?课程里提到两个都控制随机性,但没有解释为什么两个参数同时存在。
延伸内容
关于 top_p(核采样): 简单理解是另一种控制随机性的方式——与其设定"多随机",不如设定"只从概率总和达到 p% 的词里选"。一般建议 temperature 和 top_p 只调其中一个,不要同时改。
关于 Token 计费: OpenAI 按 input token + output token 分别计费,output 通常比 input 贵一些。这意味着让模型生成更长的回答,成本会更高。实际应用中可以用 tiktoken 库提前估算 token 数量。
延伸阅读
- OpenAI Tokenizer 工具:可以直接粘贴一段文字,看它被切分成多少 token,直观感受 token 的粒度
- 课程 资源库 中的 OpenAI Cookbook,有完整的 API 调用示例
下一步: 读完 Prompt 工程,然后专门写一篇"Prompt 工程实验"笔记,记录几种 Prompt 模式(Zero-shot、Few-shot、Chain-of-thought)的实际效果对比。