Skip to content

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=0temperature=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 好像是在做这件事,还没深入看。
  • temperaturetop_p 有什么区别?课程里提到两个都控制随机性,但没有解释为什么两个参数同时存在。

延伸内容

关于 top_p(核采样): 简单理解是另一种控制随机性的方式——与其设定"多随机",不如设定"只从概率总和达到 p% 的词里选"。一般建议 temperaturetop_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)的实际效果对比。

面向开发者的 AI 实战路线——Vibe Coding 与 AI 应用开发