1. 参数分析及建议
1.1 frequency_penalty: Optional[float] = 0.0
- 作用 :用于控制重复的程度。
- 范围:
-2.0
到2.0
,默认0.0
。 - 较高值会惩罚重复的词语,适合创意性任务。
- 范围:
- 建议 :
- 对于生成创意内容(如诗歌或故事),可设置为
0.5
左右。 - 对于技术或正式文档生成,可保持
0.0
。
- 对于生成创意内容(如诗歌或故事),可设置为
1.2 max_tokens: Optional[int] = 4096
- 作用 :设置生成的最大 token 数。
4096
是一个合理的默认值,与 GPT-4 的上下文长度一致。
- 建议 :
- 如果使用 GPT-4-32k 模型,建议增加为
8192
或更高。 - 对于特定任务(如摘要生成或短回答),可以减少到
500-1000
。
- 如果使用 GPT-4-32k 模型,建议增加为
1.3 n: Optional[int] = 1
- 作用 :生成的回答选项数量。
- 默认值
1
表示仅生成一个回答。
- 默认值
- 建议 :
-
如果需要比较多个回答或选择最佳答案,可以设置为
3
或更高,但生成成本会增加。 -
示例:
n: Optional[int] = 3 # 生成 3 个选项
-
1.4 presence_penalty: Optional[float] = 0.0
- 作用 :控制模型生成新主题内容的倾向。
- 范围:
-2.0
到2.0
,默认0.0
。 - 较高值会增加生成新主题的可能性。
- 范围:
- 建议 :
- 如果需要生成更具创意的内容,可设置为
0.5
。 - 如果需要保持一致性和聚焦某个主题,可保持
0.0
。
- 如果需要生成更具创意的内容,可设置为
1.5 stop: Optional[str] = None
- 作用 :设置模型生成内容的终止符号。
- 例如,设置为
"\n"
时,模型会在换行符处停止生成。
- 例如,设置为
- 建议 :
-
如果任务需要明确的终止标志,可以设定。
-
示例:
stop: Optional[str] = "\n"
-
1.6 stream: Optional[bool] = False
- 作用 :控制是否以流式方式接收输出。
- 开启流式时,生成的内容会实时返回,而不是一次性返回全部结果。
- 建议 :
- 保持默认值
False
即可。 - 如果需要在生成长内容时实时更新,可以设置为
True
。
- 保持默认值
1.7 temperature: Optional[float] = 0.7
- 作用 :控制生成的随机性。
- 范围:
0.0
到2.0
。 - 较高值(如
1.0
)会使输出更随机,较低值(如0.2
)会使输出更确定。
- 范围:
- 建议 :
- 保持
0.7
适合大多数任务。 - 对于正式任务或高确定性的回答,可降低到
0.2-0.5
。 - 对于创意性任务或生成内容,可提升到
1.0
。
- 保持
1.8 top_p: Optional[float] = 1.0
- 作用 :控制生成内容的多样性(核采样)。
- 范围:
0.0
到1.0
。 - 较低值(如
0.5
)限制生成内容只使用高概率词汇,较高值(如1.0
)更自由。
- 范围:
- 建议 :
- 保持默认值
1.0
,适合大多数任务。 - 如果需要更保守的输出,可以设置为
0.8
或更低。
- 保持默认值
2. 配置建议
以下是针对不同任务类型的配置建议:
2.1 通用配置
适用于大多数问答、对话场景:
OpenChat(
messages=[Message(content="Hello!", role="user")],
temperature=0.7,
max_tokens=2048,
top_p=1.0
)
2.2 创意任务
适用于故事、诗歌等创意内容生成:
OpenChat(
messages=[Message(content="请写一个关于友谊的诗歌", role="user")],
temperature=1.0,
max_tokens=3000,
top_p=0.9,
presence_penalty=0.5,
frequency_penalty=0.5
)
2.3 正式任务
适用于技术文档、代码生成等严谨内容:
OpenChat(
messages=[Message(content="用Python写一个冒泡排序算法", role="user")],
temperature=0.3,
max_tokens=500,
top_p=0.8,
presence_penalty=0.0,
frequency_penalty=0.0
)