在大语言模型领域,这种根据提示来预测对应的文字输出的过程,被称为Completion,中文译为“补全”。
能够完成Completion过程的模型,则被成为Completion模型。
OpenAI在Completion模型模型基础上,进一步微调训练得到了对话类模型,也就是Chat Completion模型。相比Completion模型,
Chat Completion模型在大量对话预料上进行了微调训练,
并且在模型内部新增了system、user和assistant等参数,用于设置聊天语境及不同的聊天角色,从而使得模型能够更好的理解人类意图,
从而更好的完成对话类任务。
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.Completion.create(
? ? ? ? ? ?model="text-davinci-003",
? ? ? ? ? ?prompt="Say this is a test"
? ? ? ? ? ?)
生成式大模型的结果往往是无法复现的。尽管从理论上来说,当temperature取值为0的时候,模型在每个步骤中总是选择最可能的下一个token,
这会导致生成的文本变得确定和可预测,
但在实践过程中,由于模型内部的计算精度和舍入误差等因素,也可能无法完全保证结果的完全一致性。
在函数中设置model和prompt参数,这两个是必填的参数。其中model表示调用的模型,而prompt则表示提示词。
参数n (就返回n个completion)
参数temperature (temperature参数是非常核心的用于控制模型输出结果随机性的参数。其取值范围在0-2之间,默认值为1,数值越大模型随机性越大)
参数presence_penalty (presence_penalty更多的是控制返回语句的精炼程度。presence_penalty参数在[-2,2]中取值,数值越大,返回结果越精炼,数值越小,返回结果越啰嗦)
一些大语言模型具备三种不同的模式,分别为精确模式、平衡模式和创造力模式(例如早期的Bing AI聊天),其功能的实现都是通过大模型的参数调整来完成的,而支持这些不同模式功能实现的最基础的两个参数就是presence_penalty参数和temperature参数。
参数best_of (best_of能够让一个模型预测多组结果,并择优进行输出:例子:如果设置best_of=6,则代表总共创建6个备选文本,再从中选取概率最大(得分最高)的一组进行输出)
返回结果response包含了text_completion id(completion任务编码),以及返回结果和模型参数。