大模型基础概念
大模型基础概念
一、Token:模型眼中的”字”
什么是 Token
人类读文字是一个字一个字读的,模型处理文字的基本单位叫 Token。
Token 不等于字,也不等于词,是模型自己学出来的一种切分方式。
以英文为例:
1 | "Hello, world!" → ["Hello", ",", " world", "!"] 共 4 个 Token |
以中文为例:
1 | "你好世界" → ["你好", "世界"] 共 2 个 Token |
规律大概是这样:常见词/词组通常是 1 个 Token,生僻词、专业术语会被拆成多个,中文平均 1 个汉字约等于 0.6-0.7 个 Token,数字和标点也占 Token。
为什么要理解 Token
有两个很实际的原因。
第一是计费。所有大模型 API 按 Token 计费,输入和输出分开算:
第二是上限。每个模型每次能处理的 Token 总量有上限,超了就报错。
Token 估算经验值
| 内容 | 大约 Token 数 |
|---|---|
| 1 个英文单词 | 1-2 个 Token |
| 1 个中文汉字 | 0.6-0.7 个 Token |
| 1 页 A4 中文文字(约 800 字) | 约 550 个 Token |
| 一本 10 万字小说 | 约 7 万 Token |
| 一次普通对话(来回 5 轮) | 约 500-1000 Token |
不想手动算的话,可以去 platform.openai.com/tokenizer 直接粘贴文字查 Token 数,挺好用的。 国内的也有,但是不稳定。
二、上下文窗口:模型的”工作台”
是什么
大模型每次处理请求时,能接收的 Token 总量有上限,这个上限叫上下文窗口(Context Window)。
可以把它比作工作台:工作台大小固定,你能摆多少材料,模型就能”看到”多少内容。超出工作台的内容,模型完全不知道。
主流模型窗口大小
| 模型 | 上下文窗口 | 约等于 |
|---|---|---|
| GPT-4o | 128K Token | 约 18 万汉字 |
| Claude 3.5 Sonnet | 200K Token | 约 28 万汉字 |
| Gemini 1.5 Pro | 1M Token | 约 140 万汉字 |
| DeepSeek-V3 | 64K Token | 约 9 万汉字 |
| 通义千问 Max | 32K Token | 约 4.5 万汉字 |
工程上会遇到的三个问题
问题一:多轮对话为什么会”失忆”?
应该有很多人发现跟 ChatGPT 聊很久之后,它开始忘记前面说过的内容。原因就是历史对话累积的 Token 超过了上下文窗口,最早的内容被截断了。
问题二:长文档处理
要让模型分析一份 10 万字的合同,但模型上下文只有 32K Token(约 4.5 万汉字),合同放不进去。这正是 RAG 要解决的问题,后面课程会讲。
问题三:成本控制
上下文越长,每次请求费用越高。生产系统需要管理上下文长度,不能无限增长。
三、消息结构:System、User、Assistant
调用大模型 API,输入不是一段文字,而是一个消息列表,每条消息有固定角色。
| 角色 | 说明 | 类比 |
|---|---|---|
| system | 给模型的背景设定和行为指令 | 员工入职培训手册 |
| user | 用户发送的消息 | 用户的每次输入 |
| assistant | 模型的回复 | 模型的每次输出 |
一次多轮对话的消息结构长这样:
1 | [ |
模型收到这个列表,就能理解整个对话上下文,给出连贯的回复。
System Prompt 很重要
System Prompt 是整个 AI 应用的”灵魂”,决定了模型的身份、能做什么、不能做什么、用什么风格回答。
举一个某线上课程商店客服写得比较完整的例子:
1 | 你是xxx的智能客服助手。 |
同样的模型,有这个 System Prompt 和没有,效果天差地别。
四、Temperature:控制模型的”随机性”
模型是怎么生成文字的
模型生成每个词,实际上是在做概率分布采样。比如补全”今天天气很”这句话:
1 | "好" → 40% 概率 |
模型不是每次都选概率最高的词,而是按概率”抽签”。Temperature 就是控制这个抽签过程的参数。
Temperature 的效果
Temperature = 0:每次都选概率最高的词,结果确定,每次运行一样,适合代码生成、数据提取这类要求精确的场景。
Temperature = 0.7(默认):适当随机,有变化但总体合理,适合聊天对话、问答系统。
Temperature >= 1.5:高度随机,极具创意但可能不合逻辑,适合头脑风暴,但很少用这么高。
举个例子:
1 | 提示:写一句关于春天的话 |
开发中怎么选
| 应用场景 | 推荐 Temperature |
|---|---|
| JSON 数据提取 | 0 |
| SQL 生成 | 0 ~ 0.2 |
| 问答系统 | 0.3 ~ 0.7 |
| 聊天助手 | 0.7 |
| 文案创作 | 0.8 ~ 1.0 |
五、其他常用参数
Top-P(核采样)
和 Temperature 类似,也是控制随机性的。Top-P = 0.9 表示只从累积概率达到 90% 的词里随机选,排除掉长尾低概率词。
实践建议:Temperature 和 Top-P 不要同时调,选一个就够了。OpenAI 官方推荐调 Temperature,固定 Top-P = 1。
Max Tokens(最大输出长度)
控制模型单次回复最多输出多少 Token。不要设太小(回复被截断),也不要不设(遇到”话痨”模型会产生大量 Token 费用)。
Stop Sequences(停止序列)
指定当模型输出包含某些特定字符串时立即停止生成,用得不多,遇到了再查。
参数速查
| 参数 | 默认值 | 常用设置 |
|---|---|---|
| temperature | 1.0 | 精确任务用 0~0.3,对话用 0.7 |
| top_p | 1.0 | 通常不动 |
| max_tokens | 模型上限 | 根据场景设合理上限 |
六、概念串联
一次完整的 API 调用长这样:
1 | { |
背后发生了什么:
消息列表被 Tokenize,计算总 Token 数,检查是否超出上下文窗口
模型根据消息内容生成概率分布
Temperature = 0.3,偏向确定性,大概率选高概率词
模型逐个 Token 生成,直到遇到结束符或达到 max_tokens
返回结果,按(输入 Token + 输出 Token)计费
这套流程理解了,后面写代码的时候就知道每个参数在控制什么了。







