ChatGpt的参数意义和运用调整模型生成答案的倾向性生成内容

目录

一般参数:

调整模型生成答案的倾向性:


一般参数:

  1.  temperature:控制生成文本的随机性。较高的温度会导致更加随机和多样化的生成文本,而较低的温度则会更加保守和精准。取值范围为0到1,一般默认为0.5。

  2. top_p:指定生成文本的多样性。该参数与温度类似,可以控制生成文本的随机性,但是会更加保守和精准。如果设置了top_p,则在保证生成文本的概率总和超过top_p之前,会一直选择概率最高的单词进行生成。一般取值范围为0到1,一般默认为1.0。

  3. frequency_penalty:控制重复单词的惩罚力度。较大的惩罚力度会导致生成文本中不太可能出现相同的单词,而较小的惩罚力度则会容忍一定程度的重复。取值范围为0到1,一般默认为0。

  4. presence_penalty:控制模型生成与文本样本中不同的单词的惩罚力度。较大的惩罚力度会导致生成文本中更多地包含文本样本中未出现的单词,而较小的惩罚力度则会限制生成文本的多样性。取值范围为0到1,一般默认为0。

  5. best_of:指定API返回多少个完整的响应中的最佳响应。如果指定了best_of,则API将生成多个响应并从中选择最佳响应。

  6. timeout:指定等待API返回响应的最长时间(以毫秒为单位)。

  7. echo:指定是否返回输入的请求。

  8. prompt:指定API的输入文本。

  9. engine:指定要使用的OpenAI语言模型。

  10. max_tokens:指定API生成文本的最大长度。

  11. n:指定API生成的文本数量。

  12. stop:指定当API生成的文本中出现此字符串时停止生成文本

来个python举例:

import openai

# 设置 OpenAI API 凭据
openai.api_key = 'YOUR_API_KEY_HERE'

# 设置生成文本的提示
prompt = "在一个令人震惊的发现中,科学家们在安第斯山脉的一个偏远、以前未开发的山谷里发现了一群独角兽。更令研究人员惊讶的是,这些独角兽竟然说着流利的英语。"

# 设置 OpenAI 模型
model = "text-davinci-002"

# 设置最大生成 token 数量
max_tokens = 100

# 设置 "temperature" 参数,控制生成文本的创造力
temperature = 0.5

# 设置 "top_p" 参数,控制生成文本的多样性
top_p = 1

# 设置 "frequency_penalty" 参数,防止生成的文本重复
frequency_penalty = 0

# 设置 "presence_penalty" 参数,防止生成的文本包含特定单词或短语
presence_penalty = 0

# 设置 "best_of" 参数,控制生成的响应数量
best_of = 1

# 设置 "timeout" 参数,控制 API 生成文本的最大时间
timeout = 5

# 设置 "echo" 参数,将提示包含在生成的文本中
echo = True

# 设置 "logit_bias" 参数,控制生成文本的倾向性
logit_bias = {"unicorn": 1.0}

# 使用 OpenAI API 生成文本
response = openai.Completion.create(
    engine=model,
    prompt=prompt,
    max_tokens=max_tokens,
    temperature=temperature,
    top_p=top_p,
    frequency_penalty=frequency_penalty,
    presence_penalty=presence_penalty,
    best_of=best_of,
    timeout=timeout,
    echo=echo,
    logit_bias=logit_bias
)

# 打印生成的文本
print(response.choices[0].text.strip())

调整模型生成答案的倾向性:

logit_bias 是一个可选参数,用于设置某些词或短语的偏置,以调整模型生成答案的倾向性。可以将其传递给 openai.Completion.create() 方法,如下所示:

response = openai.Completion.create(
    engine="text-davinci-002",
    prompt=prompt,
    temperature=0.7,
    max_tokens=1024,
    n=1,
    stop=None,
    logit_bias={"positive": 2.0, "negative": -2.0}
)

在上述代码中,logit_bias 参数是一个字典,其中包含两个键值对:positivenegative。这些键表示您希望增加或减少的概率,以及它们所应用的词汇类别。在这种情况下,将增加 positive 类别的概率,减少 negative 类别的概率。

注意:这个{"positive": 2.0, "negative": -2.0}里面的key是自定义的,后面的值用正负号来调整倾向性的,比如: {"店铺": 2.0, "商铺": -2.0},那么结果里面关于店铺的词频就出现的多,商铺的词频就出现的少。

你可能感兴趣的:(日常代码,python,机器学习,开发语言)