参数配置是优化模型输出的关键。本章详细介绍各个参数的作用和调优方法。
| 参数 | 说明 | 影响程度 |
|---|---|---|
| temperature | 输出随机性 | 高 |
| top_p | 核采样 | 中 |
| top_k | 候选词限制 | 中 |
| num_ctx | 上下文长度 | 高 |
| num_predict | 最大输出长度 | 中 |
| repeat_penalty | 重复惩罚 | 中 |
| stop | 停止词 | 低 |
控制模型输出的随机性和创造性。
temperature 越高,模型选择的词范围越广;越低,模型越倾向于选择高概率的词。
0.0 - 2.0
| 场景 | 推荐值 | 说明 |
|---|---|---|
| 代码生成 | 0.1-0.3 | 需要准确、一致的输出 |
| 事实问答 | 0.1-0.3 | 减少幻觉 |
| 翻译 | 0.3-0.5 | 保持准确性 |
| 日常对话 | 0.6-0.8 | 平衡自然和准确 |
| 创意写作 | 0.8-1.0 | 鼓励创新 |
| 头脑风暴 | 1.0-1.2 | 激发创意 |
PARAMETER temperature 0.3
temperature = 0.1:
用户:什么是机器学习?
助手:机器学习是人工智能的一个分支,它使计算机系统能够从数据中学习并改进,
而无需明确编程。
temperature = 1.0:
用户:什么是机器学习?
助手:想象一下,机器学习就像是教计算机"钓鱼"而不是直接给它鱼!
这是一种神奇的技术,让计算机能够通过经验变得更聪明...
核采样参数,控制模型考虑的词的概率累积阈值。
模型会从概率累积达到 top_p 的词中选择,过滤掉概率太低的词。
0.0 - 1.0
| 场景 | 推荐值 |
|---|---|
| 精确任务 | 0.5-0.7 |
| 一般对话 | 0.9 |
| 创意任务 | 0.95-1.0 |
PARAMETER top_p 0.9
限制模型每次选择的候选词数量。
模型只从概率最高的 k 个词中选择。
1 - 100+
| 场景 | 推荐值 |
|---|---|
| 精确任务 | 10-20 |
| 一般对话 | 40 |
| 创意任务 | 60-100 |
PARAMETER top_k 40
设置上下文窗口大小,影响模型能"记住"的内容长度。
模型在生成时会考虑上下文窗口内的所有内容。
取决于模型,常见值:
| 模型 | 最大值 |
|---|---|
| Llama 3.2 | 128000 |
| Llama 3.1 | 128000 |
| Mistral | 32768 |
| Qwen 2.5 | 128000 |
PARAMETER num_ctx 4096
| 场景 | 推荐值 |
|---|---|
| 短对话 | 2048 |
| 长文档 | 8192-16384 |
| 代码分析 | 4096-8192 |
限制模型生成的最大 token 数量。
| 值 | 说明 |
|---|---|
| -1 | 无限制 |
| -2 | 无限制,遇到停止词自动停止 |
| 正数 | 限制最大 token 数 |
PARAMETER num_predict 512
# 短回答
PARAMETER num_predict 100
# 长文章
PARAMETER num_predict 2000
# 无限制
PARAMETER num_predict -1
惩罚重复内容,减少模型重复相同词句。
对已经出现过的词降低其概率。
1.0 - 2.0
PARAMETER repeat_penalty 1.2
| 场景 | 推荐值 |
|---|---|
| 普通对话 | 1.1 |
| 长文本生成 | 1.2-1.3 |
| 代码生成 | 1.0-1.1 |
设置停止词,遇到这些词时停止生成。
PARAMETER stop "###"
PARAMETER stop "<|end|>"
PARAMETER stop "User:"
# 防止模型继续生成用户输入
PARAMETER stop "User:"
PARAMETER stop "用户:"
# 使用特殊标记
PARAMETER stop "<|eot_id|>"
设置随机种子,使输出可复现。
PARAMETER seed 42
PARAMETER temperature 0.2
PARAMETER top_p 0.9
PARAMETER num_ctx 8192
PARAMETER repeat_penalty 1.1
PARAMETER temperature 0.9
PARAMETER top_p 0.95
PARAMETER num_ctx 4096
PARAMETER repeat_penalty 1.3
PARAMETER temperature 0.1
PARAMETER top_p 0.7
PARAMETER num_ctx 2048
PARAMETER repeat_penalty 1.1
PARAMETER temperature 0.5
PARAMETER num_ctx 16384
PARAMETER num_predict 2000
在对话中可以临时调整参数:
>>> /set parameter temperature 0.5
Set parameter 'temperature' to '0.5'
>>> /set parameter top_p 0.8
Set parameter 'top_p' to '0.8'