OpenAI 常用参数
max_tokens
:控制生成内容的长度。temperature
:控制生成内容的随机性和创造性。n
:生成多个回答供选择。top_p
:通过概率控制生成内容的多样性。presence_penalty
:鼓励生成新内容,避免重复。frequency_penalty
:减少词语重复,提高多样性。stream
:控制生成的文本是否以流式方式逐步发送。
1. temperature
(温度参数)
- 作用:控制输出概率分布的平滑程度,即生成文本的随机性。值范围[0,1],值越大,生成的文本越随机。
例子
输入:你要写一首关于秋天的诗。
- temperature = 0.2(低温度,收敛回答):
- 回应:“秋天的树叶飘舞在风中,金黄色的田野映入眼帘。”
- temperature = 0.8(高温度,更随机):
- 回应:“秋天的旋律在微风中回荡,金黄的梦幻洒满田野。”
2. top_p
(控制采样)
- 定义:确定生成文本时考虑的 token 累计概率。值为0到1之间,常用来替代
temperature
设置。top_p
为0.9时,模型仅在最有可能的 token 集合(累计概率达到0.9)中进行选择。 - 作用:动态限制候选词的选择范围,避免模型选择过低概率的词汇,同时保留一定的多样性。控制生成内容的多样性,top_p越小,生成内容越确定。
例子:
- 输入:描述一个梦想中的度假胜地。
- top_p = 0.9(较有创意):
- 回应:“岛屿被蓝色的海水环绕,白色沙滩上点缀着茅草屋,椰子树随风摇曳。”
- top_p = 0.5(较确定):
- 回应:“度假胜地是一座热带岛屿,有着美丽的海滩和清澈的海水,适合享受安静的时光。”
主要区别
参数 | 作用 | 影响 | 适用场景 |
---|---|---|---|
temperature |
调整生成的随机性 | 高温度生成更多样但可能不准确,低温度生成更稳定但可能重复 | 需要控制文本创造性或稳定性时 |
top_p |
控制采样范围 | 仅从概率较高的词中采样,动态调整候选池 | 需要平衡多样性和连贯性时 |
3. n
(生成数量)
- 作用:指定每次请求生成多少个独立的文本候选。
- 机制:
n = 1
(默认):返回一个生成结果。n > 1
:返回多个不同的生成结果(每个结果都是独立生成的)。
- 应用场景:
- 通常用于需要多样性选择的场景,比如生成多个候选答案来挑选最佳的回答。
4. max_tokens
(最大生成长度)
- 作用:限制生成文本的最大长度,以 tokens 为单位。
- 机制:
max_tokens
设置一个上限,超过这个值时,模型会停止输出。- 如果
max_tokens
过小,可能导致句子被截断,影响可读性。 max_tokens
过大可能会导致不必要的冗长输出,并增加计算成本。
- 应用场景:
- 限制输出长度,适用于对话系统、摘要生成等需要短文本的任务。
- 避免无限制的文本生成,提高效率。
- 应用的时候设置10个 token , 可能左右会使用10个左右的 token, 要根据具体分词策略来计算。比如:
秋风起
,秋风
可以作为一个 token , 也可能是风起
作为一个 token。
5. presence_penalty
(出现惩罚/阻止调整)
- 作用:影响模型生成新主题内容(新词)的倾向,减少重复内容,提高生成的多样性。值范围通常在-2.0到2.0之间。较高的值鼓励模型生成前面未出现过的新内容。
- 应用场景:
- 适用于对话、创意写作,避免模型不断重复相同的短语。
- 适用于故事生成,让模型更愿意引入新概念。
- 例子:
- 输入:重新生成描述夏天的句子。
- presence_penalty = 1.0(较高惩罚):
- 回应:“夏天阳光充足,清凉的冰淇淋是人们的最爱。”
- presence_penalty = 0.0(无惩罚):
- 回应:“夏天阳光灿烂,人们喜欢躺在沙滩上享受日光浴。”
6. frequency_penalty
(重复词惩罚因子)
作用:减少重复词的出现,使文本更加多样化。值范围通常[-2.0,2.0]。高值会减少模型重复使用某些词或短语的频率。
用法:用来减少重复词语,提高输出的流畅度和多样性。
例子:
- 输入:描述你的一天。
- frequency_penalty = 1.5(较高惩罚):
- 回应:“我的一天开始于晨跑,然后享用早餐并开始工作。午餐后,进行一些锻炼和阅读。”
- frequency_penalty = 0.0(无惩罚):
- 回应:“我的一天从晨跑开始,之后吃早餐准备工作。午饭后,我会去健身房锻炼,结束后读书放松。”
5. stream
(流式输出)
- 作用:控制模型是否逐步返回生成的文本,而不是等待完整生成后再返回。
- 机制:
stream = False
(默认):模型等待完整生成后再一次性返回所有结果。stream = True
:模型逐步返回 token,使用户可以实时看到输出。
- 应用场景:
- 适用于对话机器人、实时应用(如 AI 助手、代码补全)。
- 增强用户体验,使生成过程更加流畅(类似于 ChatGPT 的流式响应)。
1
2
3
4
5
6
7response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": "解释一下量子力学"}],
stream=True
)
for chunk in response:
print(chunk['choices'][0]['delta']['content'], end='')
参数总结对比
参数 | 作用 | 典型取值 | 影响 |
---|---|---|---|
n |
生成多少个不同的输出 | 1-10(通常 1) | 控制输出数量,提高选择性 |
max_tokens |
限制最大输出长度 | 50-4000 | 避免超长生成或截断句子 |
presence_penalty |
促使生成新词,减少重复 | -2.0 到 2.0 | 促进创造性,减少重复内容 |
frequency_penalty |
降低重复词出现的频率 | -2.0 到 2.0 | 减少冗余,提高文本质量 |
stream |
控制是否逐步返回生成文本 | True/False | 适用于实时交互,提高用户体验 |
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信支付

支付宝支付
OpenAI 常用参数
http://neurowave.tech/2025/02/21/2-OpenAI常用参数/