AI 模型参数完全指南 —— 从入门到精通(小白友好)
🧠 AI 模型参数完全指南 —— 从入门到精通
目标用户:想系统理解大语言模型(LLM)中各种术语的开发者、产品经理和技术爱好者
适用模型:GPT-4/4o、Claude 3、Llama 3、Qwen 2.5、Gemini 1.5 等主流开源 & 闭源模型
更新时间:v1.0 | 2026-06-08
目录
- 核心概念速览
- 参数量(Parameters)
- Token 相关
- 上下文窗口与长度
- 生成参数:控制模型行为的"旋钮"
- 推理 & 工程类参数
- 微调 & 训练相关参数
- 各主流模型的默认参数对照表
- 常见误区 & 最佳实践
1. 核心概念速览
在深入之前,先给一个**"一碗面"视角**:
| 术语 | 一句话理解 | 生活类比 |
|---|---|---|
| Parameters(参数) | 模型的大脑神经元连接数 | 书的字数——越厚知道的越多 |
| Token | 模型读取/输出的基本单位 | 单词的碎片(中文约1字=0.75 token) |
| Context Window(上下文窗口) | 模型一次能"记住"的最大 token 数 | 黑板宽度——超出就看不见了 |
| Context Length | 实际输入的 token 数量 | 黑板上写了多少字 |
| Temperature(温度) | 控制输出随机性的旋钮 | 做菜放多少辣椒——0 度不放,2 度狂辣 |
| Top-K | 只从概率最高的 K 个词中选 | 只考虑前 5 个最可能的下一个词 |
| Top-P (nucleus sampling) | 只从累积概率 ≥ P 的词中选择 | 只考虑占 90% 可能性的那些词 |
2. 参数量(Parameters)
2.1 什么是参数?
参数 = 模型在训练过程中学习到的权重(weights)。
每个参数本质上是一个数字,代表两个神经元之间的"连接强度"。模型的智能来自于这些参数的数量和排列方式。
🧩 直观理解:把模型想象成一台超级复杂的钢琴。每个键就是一个参数。8B(80亿)参数 = 80 亿个精密调过的键。你弹不同的组合,就产生不同的"音符"(输出)。
2.2 参数与模型能力的关系
| 参数量级 | 代表模型 | 能力描述 |
|---|---|---|
| 1B ~ 3B | Qwen2.5-1.5B、Phi-3-mini | 轻量设备运行;基本对话、简单推理 |
| 7B ~ 14B | Llama 3-8B、Qwen2.5-7B、Mistral-7B | 本地可跑;较好的逻辑和编码能力 |
| 30B ~ 70B | Qwen2.5-32B/72B、Mixtral 8x7B | 接近 GPT-3 级别;复杂任务胜任力 |
| 100B ~ 200B+ | Claude Opus (估计)、GPT-4 (估计) | 行业顶尖;人类级通用智能 |
| 数千亿(T) | GPT-4o 估计 2T | 多模态巨无霸;跨领域推理天花板 |
2.3 参数越多越好吗?
不一定。 有"边际收益递减"效应:
性能 ───────────╮
│ ╲
│ ╲ 边际收益递减
│ ╲____
└──────────────→ 参数量
1B 70B 2T
关键发现(来自多项研究):
- 数据质量和训练效率比单纯增大参数量更重要
- 同样参数的模型,训练数据质量好 3 倍 → 性能提升远大于参数量翻倍
- **MoE(混合专家)**架构可以让有效参数量极大,但实际计算的参数较少
2.4 MoE vs Dense 模型
| 特性 | Dense(稠密) | MoE(混合专家) |
|---|---|---|
| 每次推理激活的参数 | 全部 | 只激活部分(如 1/8) |
| 训练参数量 | 70B | 可以 560B(但计算量 = 70B) |
| 代表模型 | Llama 3-70B、Qwen2.5-72B | Mixtral 8x7B、Gemini 1.5 Pro |
| 延迟 | 较慢 | 更快速(按有效参数算) |
3. Token 相关
3.1 什么是 Token?
Token 是模型处理文本的最小单位。 它不是单词,也不是字符——而是一种分词后的片段。
不同语言的 Token 化示例:
| 语言 | 输入文本 | Token 数 | 说明 |
|---|---|---|---|
| 英文 | “Hello world” | 2 tokens | 两个完整单词 |
| 中文 | “你好世界” | ~3 tokens | "你"1, "好世"1, "界"1(取决于分词器) |
| 英文代码 | let x = Math.abs(-5); |
~9 tokens | 运算符、关键字各算独立 token |
| Tokenizer 示例 | “unbelievable” | “un” + “believe” + “able” | BPE/SentencePiece 分词法 |
📊 Token 与字符的估算关系:
英文: 1 token ≈ 0.75 ~ 1 个单词
中文: 1 token ≈ 1 ~ 1.5 个字(汉字/字)
代码: 1 token ≈ 0.4 ~ 0.6 个字符(因为运算符独立分词)
3.2 Tokenizer 类型
| 类型 | 代表模型 | 特点 |
|---|---|---|
| BPE (Byte-Pair Encoding) | GPT-2/3/4、Llama | 合并高频字符对,最主流 |
| WordPiece | BERT、DeBERTa | 原始子词分词法 |
| Unigram / SentencePiece | Qwen、Gemini | 概率性分词,效率更高 |
| Char-level | 部分早期模型 | 每个字符一个 token,token 数极大 |
3.3 Token 的限制与计费
各大平台按 Token 数量收费:
| 服务 | 输入价格 (每百万 tokens) | 输出价格 (每百万 tokens) |
|---|---|---|
| GPT-4o mini | $0.15 | $0.60 |
| GPT-4o | $2.50 | $10.00 |
| Claude Haiku 3.5 | $0.80 | $4.00 |
| Claude Sonnet 3.5 | $3.00 | $15.00 |
| Qwen Plus(阿里云) | ~¥1.5/万 tokens | ~¥6/万 tokens |
💡 省钱技巧:把用户输入压缩到核心意图 + 精简 prompt template,可以大幅减少 token 消耗。
4. 上下文窗口与长度
4.1 核心定义
| 术语 | 定义 | 类比 |
|---|---|---|
| Context Window(上下文窗口) | 模型能容纳的最大 token 数 | “黑板的尺寸” |
| Context Length(上下文长度) | 实际使用的 token 数量 | “黑板上写了多少字” |
| KV Cache(键值缓存) | 模型已处理部分的中间状态缓存 | “笔记草稿本”——占满就写不下 |
4.2 各模型的上下文窗口对比
| 模型 | 最大上下文窗口 | 实际可用(含输出预留) | 代表用途 |
|---|---|---|---|
| GPT-4o mini | 128K (~131K) tokens | ~125K tokens | 长文档摘要、代码分析 |
| GPT-4o | 128K tokens | ~120K tokens | 通用最强 |
| Claude 3.5 Sonnet | 200K tokens | ~190K tokens | 超长文档处理之王 |
| Claude 3.5 Haiku | 200K tokens | — | 轻量长文本 |
| Qwen 2.5 72B | 128K tokens | — | 中文长文最强之一 |
| Llama 3.1 405B | 128K tokens | — | 开源最大参数 |
| Gemini 1.5 Pro | 1M (百万) tokens | ~950K tokens | 能读整本《三体》! |
4.3 "上下文窗口"有多长?一个直观的例子
128K tokens ≈ 96,000 个英文单词 ≈ 160,000 个中文字 ≈
• 一部中型小说(如《哈利波特与魔法石》)
• 约 300-400 页 A4 文档
• GPT-4o 的 128K 上下文
200K tokens (Claude) ≈ 一条鲸鱼的叫声长度 🐋
1M tokens (Gemini 1.5) ≈
• 《红楼梦》完整版(约 80 万字)
• 一部电影的全部剧本 + 拍摄笔记
• 连续处理 30 分钟的高清视频帧
4.4 超出上下文窗口会怎样?
三种常见策略:
- 截断(Truncation) → 直接丢弃尾部内容(最粗暴)
- 滑动窗口 → 保留最近 N 个 token,前面的丢掉
- RAG(检索增强) → 把超长文档切块,按需检索相关部分拼接
⚠️ 坑点提示:很多 API 在 token 接近上限时不会报错,而是悄悄截断!建议用
tokenizer提前计算。
4.5 上下文窗口 vs KV Cache 的关系
总可用输出量 = Context Window - (Prompt Token + KV Cache开销)
举例(GPT-4o, 128K window):
输入 prompt: 100K tokens
KV Cache 预留(按 prompt 的 ~1.1x 估算): 110K tokens
→ 实际上只剩 128K - 100K - 剩余 ≈ 约 15-20K tokens 可输出
⚠️ 注意:KV Cache 在 API 层面由服务端管理,你只需关心总 window。
5. 生成参数(控制模型行为的"旋钮")
5.1 Temperature(温度)⭐ 最重要的参数
公式化理解:softmax( logits / temperature )
| Temperature 值 | 输出风格 | 适用场景 | 生活类比 |
|---|---|---|---|
| 0(或极小如 1e-7) | 确定性最高,每次都一样 | 代码生成、数学解题 | “严格按菜谱做菜” 📋 |
| 0.1 ~ 0.3 | 几乎确定,偶尔变化 | API 调用调试、一致性要求高的任务 | “按方抓药,只允许微调” 💊 |
| 0.5 | 平衡创意与准确 | 通用对话 | “正常烹饪,加一点自己的风格” 👨🍳 |
| 0.7 ~ 1.0(默认) | 明显随机性 | 日常聊天、头脑风暴 | “放开做!创意第一” 🎨 |
| 1.2 ~ 1.5 | 高度创意,可能不靠谱 | 诗歌、故事创作 | “自由发挥,怎么开心怎么来” ✨ |
| > 2.0 | 完全随机,像胡言乱语 | 实验/恶搞 | “掷骰子做菜” 🎲 |
🔬 生动示例:让模型翻译一句话
输入:“把这只猫抱起来”
| Temperature | 输出示例 |
|---|---|
| 0.0 | 把这只猫抱起来(唯一结果,每次一样) |
| 0.3 | 抱起这只猫 / 将这只猫咪抱起来(微调变体) |
| 0.7 (默认) | 把猫咪抱起来呀~ / 来,让妈妈抱抱这个小猫 😺 |
| 1.5 | 让我们一起拥抱这只毛茸茸的小天使吧!它一定很温暖吧!🌟💕 |
最佳实践:
# 代码生成 → 要确定性和准确
{"temperature": 0}
# 写故事/创意 → 要高随机性
{"temperature": 0.8}
# 客服回答 → 要一致但自然
{"temperature": 0.3}
5.2 Top-K
定义:在每个生成步骤,只从概率最高的 K 个候选词中采样。
| Top-K | 效果 | 类比 |
|---|---|---|
| 1 | 总是选最高概率的词(贪婪解码) | “只看第一名” 🥇 |
| 10~20 | 小范围内随机,结果可靠 | “从前十名中选个幸运儿” 🎯 |
| 40~50(常见默认) | 平衡创造力与相关性 | “前五十名里挑一挑” 📚 |
| 100+ | 更多样化但可能偏离主题 | “海选!也许有惊喜?” 🌊 |
🔬 生动示例:
输入:“我喜欢吃______”
假设模型计算出的 Top-20 候选词及其概率:
排名 | 词 | 概率
1 | 苹果 | 15%
2 | 米饭 | 10%
3 | 火锅 | 8%
4 | 面条 | 7%
...
10 | 披萨 | 3%
11 | 沙拉 | 2.5%
12 | 炸鸡 | 2%
...
- Top-K=5 → 只从 {苹果, 米饭, 火锅, 面条, 披萨} 中选 ✅
- Top-K=3 → 只从 {苹果, 米饭, 火锅} 中选,更少创意 ❓
- Top-K=20 → 包含 {炸鸡(2%)},可能跑出"我喜欢吃鸡排"这种结果 🐔
5.3 Top-P (Nucleus Sampling)
定义:按概率从高到低累积选择候选词,直到累积概率达到 P。
| Top-P | 效果 | 类比 |
|---|---|---|
| 0.1~0.3 | 极严格,只选最可能的 | “只要最有把握的前几位” 🎯 |
| 0.8~0.95(默认) | 平衡质量和多样性 | “只要占 90% 可能性的那些词” ✅ |
| 1.0 | 等同于不设限制(但仍有 Top-K) | “全部都行,随便挑” 🌈 |
🔬 生动示例:
Top-P = 0.9 → 从概率最高开始加,加到 ≥ 90% 为止:
苹果 15% → 累计 15% ❌
米饭 10% → 累计 25% ❌
火锅 8% → 累计 33% ❌
面条 7% → 累计 40% ❌
...
寿司 3% → 累计 89% ❌
披萨 2.5% → 累计 91.5% ✅ STOP!
→ 候选池包含前 N 个词(使累积 ≥ 90%),然后从中随机选一个。
Top-K vs Top-P:怎么选?
| Top-K | Top-P | |
|---|---|---|
| 控制方式 | “只考虑前 K 个” | “只要占 P% 概率的” |
| 适合场景 | 需要固定候选数量 | 动态适应不同分布 |
| 默认推荐 | 40~50 | 0.8~0.95 |
| 能否一起用 | ✅ 可以!两者互补 | ✅ 可以!通常同时生效 |
💡 最佳实践:Top-K=50 + Top-P=0.9 是 OpenAI API 的默认组合,适合大多数场景。
5.4 Repetition Penalty(重复惩罚)
定义:防止模型反复输出相同内容。值 > 1 表示惩罚重复,< 1 鼓励重复。
| 值 | 效果 |
|---|---|
| 1.0 | 无惩罚(默认) |
| 1.1~1.2 | 轻度惩罚 → 减少简单重复 ✅ |
| 1.3~1.5 | 重度惩罚 → 可能使句子不自然 ⚠️ |
| > 2.0 | 过度惩罚 → 输出变怪 |
🔬 生动示例:
不带惩罚:
"AI 是人工智能。AI 是人工智能。AI 是人工智能。..."
→ 无限循环复读机 📢
Penalty=1.2:
"AI 是人工智能。它指的是智能模拟人类思维的计算系统。
这类技术被称为..."
→ 自然地换表达方式 ✅
5.5 Max Tokens / Max New Tokens
定义:模型输出时允许生成的最大 token 数。
| 值 | 效果 |
|---|---|
| 未设置(默认) | 可能输出几千 token,直到模型自行停止 |
| 256 | ~170 个汉字,适合短回答、分类 |
| 512 | ~340 个汉字,适合中等回复 |
| 1024~2048 | ~680-1360 字,适合长回答、代码 |
| 4096+ | 超长输出(需要确认上下文窗口够大) |
💡 重要:
max_tokens不包含你输入的 prompt,它只限制模型输出部分。
5.6 Frequency Penalty & Presence Penalty (OpenAI 特有)
这两个参数在 OpenAI API 中独立存在:
Frequency Penalty(频率惩罚)
- 范围:-2.0 ~ 2.0(默认 0)
- 正值:降低已出现词的重复概率
- 值越大,越倾向于说新内容
Presence Penalty(存在惩罚)
- 范围:-2.0 ~ 2.0(默认 0)
- 正值:降低任何至少出现过一次的词
- 与 Frequency Penalty 不同:只要出现过就惩罚,不看出现了几次
| Penalty | 公式化效果 | 区别 |
|---|---|---|
| Presence | word_seen ? penalty : 0 | “出现过就不让你再说” 😠 |
| Frequency | count(word) * penalty | “说得越多罚越重” 📊 |
5.7 Seed(种子值)
定义:固定随机种子,确保相同输入+相同 seed → 相同输出。
# 调试时的朋友!
{
"model": "gpt-4o",
"prompt": "...",
"seed": 42, # 固定种子 → 每次结果一致
"temperature": 0.7
}
适用场景:
- 🔧 调试 API 调用时,确认问题是不是随机性导致的
- 🧪 A/B 测试时控制变量
- 📋 需要可复现的结果(如评估/评测)
5.8 Stop Sequences(停止序列)
定义:当模型输出包含指定字符串时,立即停止。
{
"stop": ["\n\n", "总结:", "【结束】"]
}
🔬 生动示例:
输入:“请给我三个建议”
不加 stop → 模型可能滔滔不绝说10条
stop: "\n\n" →
"1. 保持练习
(这里停住)→ 适合需要固定格式的场景"
stop: "【结束】" → 可以手动给一个终止符,方便程序识别输出边界
5.9 Logprobs & Top-logprobs(OpenAI API 特有)
Logprobs:模型对每个生成 token 的对数概率。
- 范围:(-∞, 0]
- 值越接近 0 → 模型越确定
logprob = -2.3≈ e^(-2.3) ≈ 10% 的概率
应用场景:
- 🔍 评估置信度:如果某个关键词的 logprobs 很低(如 -5.0),说明模型"很不确定"这个结果
- 📊 自动化评测:不用依赖输出文本,直接分析概率分布
- 🎯 对抗检测:异常高的 logprobs 可能提示 prompt injection
5.10 Response Format(响应格式)
# OpenAI JSON mode - 强制输出合法 JSON
{
"response_format": {"type": "json_object"}
}
# Anthropic text/prompt_claude_3_5_sonnet 的 system prompt 约束
# 或者用 JSON Schema 格式约束
用途: 让模型输出结构化数据,方便代码直接解析。
6. 推理 & 工程类参数
6.1 Batch Size(批量大小)
定义:一次同时处理多少个请求。
| Batch Size | 特点 |
|---|---|
| 1 (greedy) | 最稳定,延迟最高(每次只算一个) |
| 8~32 | 吞吐量提升 5-10x ✅ |
| 64+ | GPU 利用率接近最大,但延迟抖动大 ⚠️ |
📊 类比:餐厅出餐
Batch Size = 1: 厨师一次只炒一道菜 → 每道菜等得久,但每道都完美
Batch Size = 16: 厨师同时炒 16 道菜 → 平均速度大幅提升!
Batch Size = 256: 试图同时炒 256 道菜 → 锅不够了,容易糊 🔥
6.2 Max Concurrency / Parallelism(最大并发数)
定义:允许同时处理的请求数量。
| 并发数 | 适用场景 |
|---|---|
| 1~4 | 小规模部署、测试环境 |
| 16~64 | 生产环境中等流量 |
| 100+ | 大规模 API 服务(需 GPU 集群) |
6.3 GPU Memory / VRAM 需求估算
推理时显存消耗 ≈:
总 VRAM ≈
权重 (FP16) : params × 2 bytes
KV Cache : seq_len × hidden_dim × layers × 2 bytes
激活值 & 梯度 : ~0.5×~1× 权重
框架开销 : ~10~20%
实操估算(近似公式):
| 模型 | 参数量 | FP16 显存(仅权重) | KV Cache (32K seq) | 总显存需求 |
|---|---|---|---|---|
| Llama 3-8B | 8B | ~16 GB | ~4 GB | ~25 GB |
| Qwen2.5-72B | 72B | ~144 GB | ~20 GB | ~200 GB |
| GPT-3 (175B) | 175B | ~350 GB | — | 需多卡 |
💡 量化后显存需求(大幅减少!):
- INT8 量化:参数量 × 1 byte → 节省 50%
- INT4 量化:参数量 × 0.5-0.75 bytes → 可把 72B 塞进单张 RTX 4090 (24GB)!
6.4 Latency(延迟)
首 token 延迟 (TTFT, Time to First Token):从发送请求到收到第一个 token 的时间
- 对用户体验最敏感的部分 ❗
- OpenAI GPT-4o: 0.52s TTFT(正常负载)
- Llama 3 8B (本地 RTX 4090): 0.10.5s TTFT ✅
每 token 延迟 (TPOT, Tokens Per Second):生成每个 token 的时间
- GPT-4o: 50100 TPS
- Llama 3 8B (本地): 4060 TPS
- Qwen2.5-72B (本地 A100): 1530 TPS
🏎️ 类比:高速公路
- TTFT = 上高速闸机口需要的时间(首 token)
- TPS = 每经过一个收费站花的时间(后续每个 token)
- 总延迟 = TTFT + (max_tokens × 1/TPS)
7. 微调 & 训练相关参数
7.1 Learning Rate(学习率)⭐
定义:每次参数更新时,权重调整的幅度。
| 学习率 | 效果 | 类比 |
|---|---|---|
| 太小 (1e-6 ~ 5e-6) | 训练极慢但稳定 | “蚂蚁搬山” 🐜 - 每一步都很小,但不会迷路 |
| 适中 (1e-4 ~ 5e-4) | ✅ 最佳区域 | “正常步行” 🚶 - 不快不慢 |
| 太大 (1e-2 ~ 0.1) | 训练爆炸/震荡 | “兔子跳崖” 🐰 - 一步跨太大直接飞出去 |
🔬 生动示例:下山找最低谷
学习率 = 0.001: ──→──→──→──→ (稳稳走到山谷底部) ✅
学习率 = 0.5: ⚡⚡⚡↗↘↗↘ (来回弹跳,永远到不了底部) ❌
学习率 = 0.00001: ···· (走了三天还没到山脚) 🐢
最佳实践:
# 常见微调学习率
fine_tune_lr = 1e-4 ~ 2e-5 # LoRA/PEFT 微调推荐值
full_train_lr = 1e-4 ~ 5e-5 # 全量训练
# Learning Rate Scheduler(学习率调度)
scheduler = CosineAnnealingLR() # 余弦退火:逐渐减小,最常用
7.2 Epoch(轮次)
定义:训练数据被完整遍历的次数。
| Epoch | 效果 |
|---|---|
| 1 | 模型只看了每一篇文章一次 → 可能没学够 |
| 3~10 | ✅ 常见范围;过少欠拟合,过多过拟合 |
| 50+ | 几乎一定会过拟合(死记硬背而非理解) |
🎓 类比:复习考试
- Epoch = 1: 只看了一遍课本 → 考场上啥也想不起来
- Epoch = 3-5: ✅ 充分复习了 → 成绩不错
- Epoch = 20: 把每道题背下来了但换个数字就不会了(过拟合!)
7.3 Batch Size (训练时)
| 训练 Batch Size | 效果 |
|---|---|
| 1 (SGD) | 每个样本单独更新,梯度噪音大,但能跳出局部最优 🎯 |
| 32~64 | ✅ 常见选择;平衡质量和速度 |
| 256~1024+ | 大规模训练(需要分布式并行) |
梯度累积 (Gradient Accumulation): 当显存不够时,用大 effective_batch_size = batch_size × accumulation_steps。
7.4 LoRA / PEFT 相关参数
LoRA (Low-Rank Adaptation):只在权重矩阵上添加低秩分解的可训练层。
| 参数 | 常见值 | 效果 |
|---|---|---|
| rank ® | 8, 16, 32, 64 | 越大可学习的信息越多,但参数量也越大 |
| alpha | r * 1~2 | LoRA 的缩放系数;通常 alpha = r × 1~2 |
| dropout | 0.05~0.1 | 防止过拟合 |
| target_modules | “q_proj”, “v_proj” 等 | 指定对哪些层应用 LoRA |
# 典型 LoRA 配置
lora_config = {
"r": 16, # 秩:16 个低维方向
"lora_alpha": 32, # α = 16 × 2 = 32
"lora_dropout": 0.05,
"target_modules": ["q_proj", "k_proj", "v_proj", "o_proj"],
}
# LoRA 训练参数量:7B 模型中只约 0.1%~1% 的参数会被更新!
7.5 Loss(损失函数)
定义:衡量模型输出与真实标签之间的差距。
| Loss 类型 | 适用任务 | 代表公式 |
|---|---|---|
| Cross Entropy (交叉熵) | 分类、语言建模 | -Σ y * log(p) |
| MSE (均方误差) | 回归任务 | mean((pred - true)²) |
| KL Divergence | 知识蒸馏、对齐阶段 | Σ p * log(p/q) |
Loss 下降曲线解读:
Loss
│╲ ← 正常训练:快速下降 → 趋于稳定
│ ╲_____
│ ╲___ ← 过拟合开始:train_loss ↓ 但 val_loss ↑
│ ╲__________
└────────────────────→ Epoch
欠拟合区 ✅最佳点 ❌过拟合区
7.6 Warmup(预热步数)
定义:在前 N 步训练中,学习率从 0 线性增加到最大值。
| 场景 | Warmup 比例 | 原因 |
|---|---|---|
| Transformer 训练 | 5%~10% 的总步数 | 避免初期梯度爆炸 🔥 |
| 微调已有预训练模型 | 200~1000 steps | 小模型不需要太多预热 |
8. 各主流模型的默认参数对照表
8.1 API 默认参数一览
| 参数 | OpenAI (GPT) | Anthropic (Claude) | vLLM / Ollama(开源) |
|---|---|---|---|
| temperature | 1.0 | 1.0 | 1.0 |
| top_p | 1.0 | 1.0 | 0.9~1.0 |
| top_k | (不单独暴露) | (不单独暴露) | 50(默认) |
| frequency_penalty | 0.0 | 0.0 (有但不同名) | - |
| presence_penalty | 0.0 | — | - |
| max_tokens | 无上限* | 4096 | 取决于上下文窗口* |
| seed | None | None | - |
*OpenAI API 的
max_tokens默认为模型允许的最大输出。
8.2 Ollama 默认参数(运行本地模型时)
{
"model": "qwen2.5:7b",
"temperature": 0.8, // Ollama 默认
"top_p": 0.9, // Ollama 默认
"num_predict": -1, // -1 = 无限制(直到停止 token)
"repeat_penalty": 1.1, // Ollama 默认重复惩罚
"context_length": 4096, // 取决于模型
}
8.3 vLLM 推理引擎关键参数
{
"gpu_memory_utilization": 0.9, # GPU 显存利用率 (0~1)
"max_model_len": 32768, # 最大上下文长度
"max_num_seqs": 256, # 最大并发序列数
"tensor_parallel_size": 4, # 张量并行卡数
"enable_prefix_caching": True, # 前缀缓存(加速重复 prompt)
}
9. 常见误区 & 最佳实践
❌ 常见误区
| 误区 | 真相 |
|---|---|
| “参数越多模型一定越好” | 数据质量 > 参数量;同一参数量下,训练好的小模型可能打败粗训的大模型 |
| “Temperature=0 就一定不出错” | Temperature=0 只保证每次输出一致,不代表正确 |
| “上下文窗口越大越省钱” | 更长的 prompt = 更多 KV Cache = 更高的推理成本 和延迟 |
| “Top-P=1.0 就是无限制” | 不一定——可能仍有 Top-K 或 Temperature 在起作用 |
| “Batch Size 越大越好” | GPU 有最佳区间;过大反而降低吞吐量并增加延迟抖动 |
✅ 最佳实践清单
开发阶段:
temperature: 0 # 确保结果可复现
seed: 42 # 固定随机种子
top_p: 1.0 # 让模型自由发挥(调试时不需要限制)
生产环境-代码生成:
temperature: 0~0.2 # 要确定性
top_p: 0.9
frequency_penalty: 0.5 # 减少注释重复
生产环境-创意写作:
temperature: 0.8~1.2 # 高随机性
top_p: 0.95
stop_sequences: ["\n\nEND"] # 方便程序截断
生产环境-客服/助手:
temperature: 0.3~0.5 # 平衡一致性和自然度
top_p: 0.9
max_tokens: 1024 # 限制不要说太多
长文档处理:
use_chunking: true # 切块后分批处理
embedding_model: text-embedding-3-small # RAG 用
chunk_overlap: 200 # 重叠避免信息丢失
微调训练:
learning_rate: 1e-4 ~ 5e-5
batch_size: 8~32 # 根据显存调整
epochs: 3~5 # 微调不宜过多
warmup_ratio: 0.05~0.1
lora_rank: 16 # LoRA 秩
评估模型输出置信度:
logprobs: True # OpenAI API 开启
关键 token logprob > -2.3 → 比较可信
附录 A:快速决策树——我该调哪个参数?
你需要调整参数 →
├── "结果不稳定,每次都一样不行" → 调高 Temperature (0.5 → 1.0)
├── "结果太随机/不靠谱" → 调低 Temperature (1.0 → 0.3) + 提高 frequency_penalty
├── "模型在重复说相同的话" → 增加 Repetition Penalty (1.0 → 1.2)
├── "输出被截断了,不够长" → 增大 Max Tokens / Context Window
├── "太慢了" → 用更小的模型 / 量化 / 降低 temperature
├── "想看到模型的置信度" → 开启 logprobs
├── "想让结果可复现" → 固定 seed + Temperature=0
├── "输出格式不对" → 用 Response Format (JSON) + System Prompt
└── "微调时 loss 不下降" → 检查学习率、Epoch、数据质量
附录 B:术语中英对照表
| 中文 | English | 缩写/符号 |
|---|---|---|
| 参数 | Parameters | params / W |
| Token | Token | tok |
| 上下文窗口 | Context Window | CW |
| 上下文长度 | Context Length | CL |
| KV Cache | Key-Value Cache | KV-cache |
| 温度 | Temperature | T |
| 最高K个词采样 | Top-K Sampling | — |
| Nucleus Sampling | Top-P / Nucleus Sampling | — |
| 重复惩罚 | Repetition Penalty | RP |
| 频率惩罚 | Frequency Penalty | FP |
| 存在惩罚 | Presence Penalty | PP |
| 学习率 | Learning Rate | LR / α |
| 轮次 | Epoch | — |
| 批量大小 | Batch Size | BS / B |
| 首 token 延迟 | Time to First Token | TTFT |
| 每 token 延迟 | Tokens Per Second | TPS / TPOT |
| 损失函数 | Loss Function | L |
| 梯度 | Gradient | ∇ |
| 学习率调度器 | Learning Rate Scheduler | LR Scheduler |
| 低秩自适应 | LoRA | Low-Rank Adaptation |
| 交叉熵 | Cross Entropy | CE |
| KL 散度 | KL Divergence | KL-div |
| 权重量化 | Weight Quantization | INT8 / INT4 |
附录 C:各主流模型规格速查
| 模型 | 参数量 | 上下文窗口 | 默认 T | 最佳运行硬件 |
|---|---|---|---|---|
| GPT-4o mini | ~? (闭源) | 128K | 1.0 | API |
| GPT-4o | ~? (闭源) | 128K | 1.0 | API |
| Claude 3.5 Sonnet | ~? (闭源) | 200K | 1.0 | API |
| Claude 3.5 Haiku | ~? (闭源) | 200K | 1.0 | API |
| Gemini 1.5 Pro | ~? (闭源) | 1M | — | API |
| Llama 3.1 8B | 8B | 128K | 1.0 | RTX 4090 / Mac M2+ |
| Llama 3.1 70B | 70B | 128K | 1.0 | 8×A100 或 4×A6000 |
| Llama 3.1 405B | 405B | 128K | — | 需超大集群 |
| Qwen 2.5 7B | 7B | 128K | 0.7~1.0 | RTX 3060+ / Mac M1+ |
| Qwen 2.5 32B | 32B | 128K | 0.7~1.0 | 4×RTX 3090/4090 |
| Qwen 2.5 72B | 72B | 128K | 0.7~1.0 | 4×A100 / Mac Studio M2Ultra+ |
| Mistral Nemo | 12B | 128K | — | RTX 3060+ (INT8) |
注:参数量闭源模型未公开,
~?表示估计值。
📌 总结卡片
╔══════════════════════════════════════════════════╗
║ AI 模型参数一句话总结 ║
╠══════════════════╦════════════════════════════════╣
║ Parameters ║ 模型有多少"神经元" ║
║ Token ║ 模型读/写的"最小单位" ║
║ Context Window ║ 模型的"短期记忆"上限 ║
║ Temperature ║ "创作激情度" 0=机器, 1=人类 ║
║ Top-K / Top-P ║ "候选池大小",控制多样性 ║
║ Max Tokens ║ 模型最多能说多少字 ║
║ Learning Rate ║ 学习时每一步走多大 ║
║ Batch Size ║ 一次喂多少数据 ║
║ Epoch ║ 数据看了几遍 ║
║ Repetition Penalty║ "别再说了"强度 ║
╚══════════════════╩════════════════════════════════╝
taohuaracing监制
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)