参数配置

参数配置是优化模型输出的关键。本章详细介绍各个参数的作用和调优方法。

参数概览

参数说明影响程度
temperature输出随机性
top_p核采样
top_k候选词限制
num_ctx上下文长度
num_predict最大输出长度
repeat_penalty重复惩罚
stop停止词

temperature 参数

作用

控制模型输出的随机性和创造性。

原理

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 参数

作用

核采样参数,控制模型考虑的词的概率累积阈值。

原理

模型会从概率累积达到 top_p 的词中选择,过滤掉概率太低的词。

取值范围

0.0 - 1.0

推荐值

场景推荐值
精确任务0.5-0.7
一般对话0.9
创意任务0.95-1.0

示例

PARAMETER top_p 0.9

与 temperature 的关系

  • top_p 控制候选词范围
  • temperature 控制在范围内的选择倾向
  • 通常只调整其中一个即可

top_k 参数

作用

限制模型每次选择的候选词数量。

原理

模型只从概率最高的 k 个词中选择。

取值范围

1 - 100+

推荐值

场景推荐值
精确任务10-20
一般对话40
创意任务60-100

示例

PARAMETER top_k 40

num_ctx 参数

作用

设置上下文窗口大小,影响模型能"记住"的内容长度。

原理

模型在生成时会考虑上下文窗口内的所有内容。

取值范围

取决于模型,常见值:

模型最大值
Llama 3.2128000
Llama 3.1128000
Mistral32768
Qwen 2.5128000

注意事项

  • 值越大,内存占用越高
  • 值越大,推理速度越慢
  • 根据实际需求设置

示例

PARAMETER num_ctx 4096

推荐值

场景推荐值
短对话2048
长文档8192-16384
代码分析4096-8192

num_predict 参数

作用

限制模型生成的最大 token 数量。

取值

说明
-1无限制
-2无限制,遇到停止词自动停止
正数限制最大 token 数

示例

PARAMETER num_predict 512

使用场景

# 短回答
PARAMETER num_predict 100

# 长文章
PARAMETER num_predict 2000

# 无限制
PARAMETER num_predict -1

repeat_penalty 参数

作用

惩罚重复内容,减少模型重复相同词句。

原理

对已经出现过的词降低其概率。

取值范围

1.0 - 2.0

  • 1.0:不惩罚
  • 1.1:默认值,轻微惩罚
  • 1.5:较强惩罚
  • 2.0:强烈惩罚

示例

PARAMETER repeat_penalty 1.2

使用场景

场景推荐值
普通对话1.1
长文本生成1.2-1.3
代码生成1.0-1.1

stop 参数

作用

设置停止词,遇到这些词时停止生成。

示例

PARAMETER stop "###"
PARAMETER stop "<|end|>"
PARAMETER stop "User:"

使用场景

# 防止模型继续生成用户输入
PARAMETER stop "User:"
PARAMETER stop "用户:"

# 使用特殊标记
PARAMETER stop "<|eot_id|>"

seed 参数

作用

设置随机种子,使输出可复现。

示例

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'

调优技巧

输出太随机

  1. 降低 temperature(如 0.3)
  2. 降低 top_p(如 0.8)
  3. 降低 top_k(如 20)

输出太单调

  1. 提高 temperature(如 0.9)
  2. 提高 top_p(如 0.95)
  3. 提高 top_k(如 60)

内容重复

  1. 提高 repeat_penalty(如 1.3)
  2. 增大 repeat_last_n

回答不完整

  1. 增大 num_predict
  2. 检查 stop 参数

长文档处理问题

  1. 增大 num_ctx
  2. 确保内存足够