大模型学习笔记 day01
role参数的三类定义
system
-
作用:设定模型的背景、行为或任务规则。
-
使用场景:通常在对话开始时定义模型的身份或任务目标。
{"role": "system", "content": "你是一个只用法语回答的助手"}
user
-
作用:表示用户输入的问题或指令,是模型生成回复的直接依据
-
使用场景:用户向模型提问或发出操作请求时使用
-
注意:若对话中存在历史记录,需按时间顺序维护user和assistant交替的消息列表。
assistant
-
作用:表示模型生成的回复内容,用于多轮对话中传递上下文。
-
使用场景:需要模型基于历史对话生成连贯回复时,需将之前的模型响应以assistant角色加入messages列表。
-
示例:
{"role": "assistant", "content": "This is a test response."}
多轮对话示例:
# 初始化消息列表(可包含system角色设定背景)
messages = [{"role": "system", "content": "你是一个擅长对话连贯性管理的助手"}]# 第1轮对话
messages.append({"role": "user", "content": "Q1"}) # 用户首次提问
response_1 = client.chat.completions.create(model="gpt-3.5-turbo",messages=messages
)
messages.append({"role": "assistant", "content": response_1.choices[0].message.content}) # 保存回答# 第2轮对话
messages.append({"role": "user", "content": "Q2"}) # 用户追加提问
response_2 = client.chat.completions.create(model="gpt-3.5-turbo",messages=messages
)
messages.append({"role": "assistant", "content": response_2.choices[0].message.content})# 第3轮对话
messages.append({"role": "user", "content": "Q3"}) # 用户第三次提问
response_3 = client.chat.completions.create(model="gpt-3.5-turbo",messages=messages
)
messages.append({"role": "assistant", "content": response_3.choices[0].message.content})# 第4轮对话
messages.append({"role": "user", "content": "Q4"}) # 用户第四次提问
response_4 = client.chat.completions.create(model="gpt-3.5-turbo",messages=messages
)
messages.append({"role": "assistant", "content": response_4.choices[0].message.content})# 第5轮对话
messages.append({"role": "user", "content": "Q5"}) # 用户第五次提问
response_5 = client.chat.completions.create(model="gpt-3.5-turbo",messages=messages
)
messages.append({"role": "assistant", "content": response_5.choices[0].message.content}) # 最终回答
常用Completion.create函数参数
max_tokens
可选参数,默认为16,代表返回结果的token数量;
temperature
可选参数,取值范围为0-2,默认值为1。参数代表采样温度,数值越小,则模型会倾向于选择概率较高的词汇,生成的文本会更加保守;而当temperature值较高时,模型会更多地选择概率较低的词汇,生成的文本会更加多样(建议的调整范围在[0.8,1.2]之间)
n
可选参数,默认值为1,表示一个提示返回几个Completion;
presence_penalty
参数在[-2,2]中取值,数值越大,返回结果越精炼,数值越小,返回结果越重复。
调用大模型进行Completion时,presence_penalty参数和temperature参数搭配进行使用。如果希望模型更加具有创造力,则会增加temperature取值,并且适当降低presence_penalty取值