赞
踩
技术先知们越来越频繁地提及prompt这个词语,究竟什么是prompt,我用一种很急切的心情去挖掘prompt这个词的含义,生怕落后了就被淘汰。
prompt狭义的解释是:
Prompt是一种人工智能模型API,由OpenAI开发。它可以用于生成文本和回答问题,可以为开发者提供快速、高效的解决方案。Prompt可以接收用户输入,并使用机器学习算法来预测输出结果。使用Prompt,开发者可以通过简单的API调用,快速生成各种文本,例如文章、电子邮件、聊天记录、语音指令等等。Prompt还可以用于回答各种问题,例如自然语言问答、搜索建议、文本摘要等等。这使得它成为处理文本数据和自然语言处理任务的重要工具之一。
想了解prompt,于是,我就从openAI 的 API 着手, 我先注册一个 Prompt账号, 下面是注册账号的流程:
在您的Web浏览器中打开Prompt的网站:https://beta.openai.com/signup/
输入您的电子邮件地址,创建一个密码,并同意使用条款和隐私政策。
按照提示输入您的个人信息。
点击“创建账户”按钮。
您将收到一封确认邮件,请按照邮件中的指示完成账户确认。
登录您的Prompt账户,并按照提示创建一个API密钥。
Prompt是一种高级工具,需要具备一定的编程和人工智能技能。如果是初学者,可能需要先了解一些基本的编程和人工智能知识,然后再开始学习Prompt。
不用怕,初生牛犊不怕虎。
首先,我看看OpenAI API 能做什么?
OpenAI告诉我:
OpenAI 训练了先进的语言模型,非常擅长理解和生成文本。我们的API提供对这些模型的访问,可以用于解决几乎任何涉及处理语言的任务。
OpenAI 提供了不同能力水平的模型,适用于不同的任务,以及微调您自己的定制模型的能力。这些模型可用于从内容生成到语义搜索和分类的所有任务。
完成端口(Completions)是API的核心,提供了一个极其灵活和强大的简单接口。将一些文本作为提示(Prompt)输入,API将返回一个文本完成,尝试匹配您给出的任何指令或上下文。( 这就是技术先知们提及到的Prompt)
创建了Completions的办法如下:
POST https://api.openai.com/v1/completions
这个请求可以带下面的参数:
model (string 必填)
要使用的模型的 ID。您可以使用 List models API 查看所有可用模型,或者查看我们的模型概述以了解它们的描述。
prompt (string 或 array 可选)
要为其生成完成的提示,编码为字符串、字符串数组、标记数组或标记数组的数组。
suffix (string 可选)
默认为 null
插入文本完成后跟随的后缀。
max_tokens (整数 可选)
默认为 16
在完成中生成的标记的最大数量。
temperature (数字 可选)
默认为 1
使用哪种采样温度,在 0 到 2 之间。更高的值(如 0.8)会使输出更随机,而较低的值(如 0.2)会使其更专注和确定性。
通常建议更改此参数或 top_p,但不要同时更改两者。
top_p (数字 可选)
默认为 1
一种与温度采样相似的替代方法,称为 nucleus sampling,其中模型考虑具有 top_p 概率质量的标记的结果。因此,0.1 表示仅考虑占前 10% 概率质量的标记。
通常建议更改此参数或温度,但不要同时更改两者。
n (整数 可选)
默认为 1
要为每个提示生成的完成数。
注意:由于此参数会生成许多完成,因此它可能会快速消耗您的令牌配额。请小心使用,并确保您对 max_tokens 和 stop 进行了合理的设置。
stream (布尔值 可选)
默认为 false
是否将部分进度流回。如果设置,标记将作为仅数据的服务器发送的事件发送,直到出现数据:[DONE] 消息为止。
logprobs (整数 可选)
默认为 null
在最有可能的标记上包括对数概率以及选择的标记的对数概率。例如,如果 logprobs 为 5,则 API 将返回最有可能的 5 个标记的列表。API 将始终返回所抽样标记的对数概率,因此响应中可能有多达 logprobs+1 个元素。
logprobs 的最大值为 5。
echo (布尔值 可选)
默认为 false
除完成外还回显提示
stop (string 或 array)
默认值为null
最多4个序列,API将停止生成更多的标记。返回的文本将不包含停止序列。
presence_penalty (数字 可选)
默认值为0
介于-2.0和2.0之间的数字。正值基于它们在文本中出现的频率对新标记进行惩罚,增加模型谈论新话题的可能性。
frequency_penalty (数字 可选)
默认值为0
介于-2.0和2.0之间的数字。正值基于它们在文本中已有的频率对新标记进行惩罚,减少模型重复相同行的可能性。
best_of (整数 可选)
默认值为1
在服务器端生成best_of个完成,并返回“最佳”(每个标记的对数概率最高的完成)。结果无法流式传输。
当与n一起使用时,best_of控制候选完成的数量,n指定要返回的数量——best_of必须大于n。
注意:由于此参数生成许多完成,因此可能会迅速消耗您的令牌配额。请谨慎使用,并确保max_tokens和stop的设置合理。
logit_bias (映射 可选)
默认值为null
修改指定标记出现在完成中的可能性。
接受一个将标记(由GPT标记器中的标记ID指定)映射到与-100到100相关的偏差值的JSON对象。您可以使用此标记器工具(适用于GPT-2和GPT-3)将文本转换为标记ID。在数学上,在采样之前,模型生成的logit将添加到偏差中。确切的影响将因模型而异,但介于-1和1之间的值应该会减少或增加选择的可能性;像-100或100这样的值应该会导致相关标记被禁止或独占选择。
例如,您可以传递{“50256”: -100}以防止生成标记。
user (字符串 可选)
表示您的最终用户的唯一标识符,可帮助OpenAI监视和检测滥用。了解更多。
用python代码实现一个Completions:
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.Completion.create(
model="text-davinci-003",
prompt="我是一款高智商问答机器人。如果你问我一个基于事实的问题,我会给你答案。如果你问我一个无意义的问题、玩弄文字游戏的问题或者没有明确答案的问题,我会回答\“丢那星\”"
temperature=0,
max_tokens=100,
top_p=1,
frequency_penalty=0.0,
presence_penalty=0.0,
stop=["\n"]
)
来到OpenAI的Playground,玩玩上面Prompt的例子
先写提示词(prompt):
我是一款高智商问答机器人。如果你问我一个基于事实的问题,我会给你答案。如果你问我一个无意义的问题、玩弄文字游戏的问题或者没有明确答案的问题,我会回答“丢那星”。
开始提问:
Q: 今天是什么日子?
A: 今天是2021年4月14日,星期三。
Q: 有没有外星人?
A: 目前尚无证据表明外星人存在。
Q:香蕉乘香蕉等于多少?
A: 丢那星。
Q:丢那星是什么意思?
A: “丢那星”是一句俗语,意思是“我不知道”或“我不想回答”。
显然,Prompt 起到了一定作用。
上面小试牛刀,兴奋了一下,我还想要深入学习Prompt。
从基本开始。
假设我想要创建一个宠物名生成器。从零开始起名字是很难的!
首先,我需要一个提示,明确我想要什么。先从一个简单的问句开始(Q是向人工智能提问,A是人工智能的回答):
Q: 请给马起一个名字。
A:闪电
问句Q,范围很大,人工智能的回答可以天马行空。加入提示重新再提问:
Q: 给一匹黑马取一个名字。
A: 午夜
很显然,一个简单的提示,答案会接近我的期待。
接着,我再增加提示:
Q: 给一匹超级英雄马取三个名字。
A: 1. 超级种马 2. 柯尔特上尉 3.强大的野马
这就是超级英雄?太普通了吧?显然和我相像中的不同。显然,提示词不及格,需要好好调整。
不要心急,慢慢来,今天的学习就先到这里了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。