赞
踩
提示词 Prompt 的 两种用法 :
提示词 Prompt 构成 :
大模型 对 提示词 Prompt 开头和结尾的文本更加敏感 , 最重要的内容要放在开头和结尾 , 开头 > 结尾 ;
相对来说 重要性不太强的内容 , 放在中间位置 ;
在文章开头 定义角色 , 会将 问题领域 收窄 , 减少歧义 ,
比如 : 你定义 " 你是一个 程序员 " 提示词 , 就会将整个问题领域 局限在 编程领域 , 当我们提出 " 模式 " 一词 时 ,
这样能极大的提升准确性 , 得到更好的输出结果 ;
提示词 Prompt 需要 不断的进行调优 , 每当 通过 提示词 得到的结果不满意 , 我们就对 提示词 进行迭代修改 , 不断进行调优 , 直到得到 令我们满意的输出为止 ;
知道训练数据 : 了解 提示词 的 训练数据 , 如果是 自己训练的数据 , 肯定知道 写什么提示词 能得到最佳结果 ;
不知道训练数据 : 如果不知道 GPT 的训练数据 , 那就需要 不断与 大模型 进行聊天 , 了解 GPT 都训练了哪些数据 , 都输出了哪些数据 ;
如何 知道 GPT 大模型训练了哪些数据 , 借助这些数据 进行 提示词 Prompt 的 调优 , 以 " 西游记 " 为例 ,
如果知道 GPT ( Generative Pre-trained Transformer ) 大模型 训练 " 西游记 " 相关知识文本 的 数据 , 参考 该方面知识 的 " 训练数据 " 进行 提示词 Prompt 调优 , 是最佳途径 ;
跟 GPT 大模型聊天 , 就 聊 " 西游记 " 相关内容 , 聊 几十轮 对话 , 看看 大模型 都训练了哪些数据 ;
尽量选择 与 GPT 输出的内容 类似的 文本 作为 提示词 ;
不断尝试 修改 提示词 , 增加一个字 , 减少一个字 , 使用不同的间隔 和 标点符号 , 对输出结果都有一定的影响 ;
该方案有一定的运气成分 , 门槛比较低 ;
高质量提示词 有如下特点 :
高质量的提示词 , 都是 几百字 或者 上千字 的 , 内容丰富 的 " 小作文 " ;
OpenAI 的大模型 出现最早 , 其它的大模型的 API 基本都参考 OpenAI 的大模型 , 学会使用 OpenAI 的 API , 基本其它的大模型提供的 API 都可以很快学会 ;
OpenAI 提供了两种 API 版本 :
基本上使用 对话 API 就可以解决所有问题 , 续写文本 API 几乎很少使用 ;
续写文本 API : https://platform.openai.com/docs/api-reference/completions/create
官方给出了一个 调用 OpenAI 续写文本 API 的 Python 示例代码 :
from openai import OpenAI
client = OpenAI()
client.completions.create(
model="gpt-3.5-turbo-instruct",
prompt="Say this is a test",
max_tokens=7,
temperature=0
)
在之前的博客 【AI 大模型】OpenAI 接口调用 ① ( 安装 openai 软件包 | 查看 openai 软件包版本 | PyCharm 中开发 Python 程序调用 OpenAI 接口 ) 中 , 购买了 API-KEY , 设置 API-KEY 和 请求地址 ,
sk-6o3KJuuocEXpb1Ug39D0A4913a844fCaBa892eDe9814Df8a
,https://api.xiaoai.plus/v1
,这是一个 GPT 3.5 的 API-KEY ;
from openai import OpenAI
client = OpenAI(
api_key="sk-6o3KJuuocEXpb1Ug39D0A4913a844fCaBa892eDe9814Df8a",
base_url="https://api.xiaoai.plus/v1",
)
completion = client.completions.create(
model="gpt-3.5-turbo-instruct",
prompt="Say this is a test",
max_tokens=7,
temperature=0
)
print(completion.choices[0].message)
在 PyCharm 中 直接执行该代码 , 这个代码执行的时间比较长 , 需要等待 几分钟 左右 , 执行结果如下 :
{'role': 'assistant', 'content': '*nods* Understood. I am now roleplaying as an AI assistant with broad knowledge'}
对话 API : https://platform.openai.com/docs/api-reference/chat/create
官方给出的示例如下 :
from openai import OpenAI
client = OpenAI()
completion = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
)
print(completion.choices[0].message)
同理 , 设置 API-KEY 和 请求地址 ,
sk-6o3KJuuocEXpb1Ug39D0A4913a844fCaBa892eDe9814Df8a
,https://api.xiaoai.plus/v1
,这是一个 GPT 3.5 的 API-KEY ;
最终代码如下 :
from openai import OpenAI client = OpenAI( api_key="sk-6o3KJuuocEXpb1Ug39D0A4913a844fCaBa892eDe9814Df8a", base_url="https://api.xiaoai.plus/v1", ) completion = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello!"} ] ) print(completion.choices[0].message)
在 PyCharm 中执行上述代码 , 执行结果为 :
ChatCompletionMessage(content='Hello! How can I assist you today?', role='assistant', function_call=None, tool_calls=None)
OpenAI API 中的重要参数说明 :
OpenAI 参数示例 :
from openai import OpenAI client = OpenAI( api_key="sk-6o3KJuuocEXpb1Ug39D0A4913a844fCaBa892eDe9814Df8a", base_url="https://api.xiaoai.plus/v1", ) completion = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello!"} ], # 下面的参数都是默认参数值 temperature=1, # 控制生成结果的多样性 stream=False, # 控制是否以数据流模式进行生成 top_p=1, # 在随机采样时 只考虑累计概率前百分之多少的 token n=1, # 一次生成的结果数量 max_tokens=100, # 每条生成结果的最大 token 数量 presence_penalty=0, # 对已经出现过的 token 的概率进行降权 frequency_penalty=0, # 根据 token 的出现频次 对其生成概率进行降权 logit_bias={}, # 对指定的 token 进行手工加权或降权 ) print(completion.choices[0].message)
执行上述代码结果 :
ChatCompletionMessage(content='Hello! How can I assist you today?', role='assistant', function_call=None, tool_calls=None)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。