学习Prompt之从一无所知到微微一笑

这篇具有很好参考价值的文章主要介绍了学习Prompt之从一无所知到微微一笑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

竟然什么是Prompt?

技术先知们越来越频繁地提及prompt这个词语,究竟什么是prompt,我用一种很急切的心情去挖掘prompt这个词的含义,生怕落后了就被淘汰。

prompt狭义的解释是:
Prompt是一种人工智能模型API,由OpenAI开发。它可以用于生成文本和回答问题,可以为开发者提供快速、高效的解决方案。Prompt可以接收用户输入,并使用机器学习算法来预测输出结果。使用Prompt,开发者可以通过简单的API调用,快速生成各种文本,例如文章、电子邮件、聊天记录、语音指令等等。Prompt还可以用于回答各种问题,例如自然语言问答、搜索建议、文本摘要等等。这使得它成为处理文本数据和自然语言处理任务的重要工具之一。

想了解prompt,于是,我就从openAI 的 API 着手, 我先注册一个 Prompt账号, 下面是注册账号的流程:

  1. 在您的Web浏览器中打开Prompt的网站:https://beta.openai.com/signup/

  2. 输入您的电子邮件地址,创建一个密码,并同意使用条款和隐私政策。

  3. 按照提示输入您的个人信息。

  4. 点击“创建账户”按钮。

  5. 您将收到一封确认邮件,请按照邮件中的指示完成账户确认。

  6. 登录您的Prompt账户,并按照提示创建一个API密钥。

Prompt是一种高级工具,需要具备一定的编程和人工智能技能。如果是初学者,可能需要先了解一些基本的编程和人工智能知识,然后再开始学习Prompt。

不用怕,初生牛犊不怕虎。

首先,我看看OpenAI API 能做什么?

OpenAI告诉我:

  1. OpenAI 训练了先进的语言模型,非常擅长理解和生成文本。我们的API提供对这些模型的访问,可以用于解决几乎任何涉及处理语言的任务。

  2. OpenAI 提供了不同能力水平的模型,适用于不同的任务,以及微调您自己的定制模型的能力。这些模型可用于从内容生成到语义搜索和分类的所有任务。

  3. 完成端口(Completions)是API的核心,提供了一个极其灵活和强大的简单接口。将一些文本作为提示(Prompt)输入,API将返回一个文本完成,尝试匹配您给出的任何指令或上下文。( 这就是技术先知们提及到的Prompt)

原来Completions是核心,接下来就开始学习怎样构造Completions吧。

创建了Completions的办法如下:

POST https://api.openai.com/v1/completions

这个请求可以带下面的参数:

  1. model (string 必填)
    要使用的模型的 ID。您可以使用 List models API 查看所有可用模型,或者查看我们的模型概述以了解它们的描述。

  2. prompt (string 或 array 可选)
    要为其生成完成的提示,编码为字符串、字符串数组、标记数组或标记数组的数组。

  3. suffix (string 可选)
    默认为 null
    插入文本完成后跟随的后缀。

  4. max_tokens (整数 可选)
    默认为 16
    在完成中生成的标记的最大数量。

  5. temperature (数字 可选)
    默认为 1
    使用哪种采样温度,在 0 到 2 之间。更高的值(如 0.8)会使输出更随机,而较低的值(如 0.2)会使其更专注和确定性。
    通常建议更改此参数或 top_p,但不要同时更改两者。

  6. top_p (数字 可选)
    默认为 1
    一种与温度采样相似的替代方法,称为 nucleus sampling,其中模型考虑具有 top_p 概率质量的标记的结果。因此,0.1 表示仅考虑占前 10% 概率质量的标记。
    通常建议更改此参数或温度,但不要同时更改两者。

  7. n (整数 可选)
    默认为 1
    要为每个提示生成的完成数。
    注意:由于此参数会生成许多完成,因此它可能会快速消耗您的令牌配额。请小心使用,并确保您对 max_tokens 和 stop 进行了合理的设置。

  8. stream (布尔值 可选)
    默认为 false
    是否将部分进度流回。如果设置,标记将作为仅数据的服务器发送的事件发送,直到出现数据:[DONE] 消息为止。

  9. logprobs (整数 可选)
    默认为 null
    在最有可能的标记上包括对数概率以及选择的标记的对数概率。例如,如果 logprobs 为 5,则 API 将返回最有可能的 5 个标记的列表。API 将始终返回所抽样标记的对数概率,因此响应中可能有多达 logprobs+1 个元素。
    logprobs 的最大值为 5。

  10. echo (布尔值 可选)
    默认为 false
    除完成外还回显提示

  11. stop (string 或 array)
    默认值为null
    最多4个序列,API将停止生成更多的标记。返回的文本将不包含停止序列。

  12. presence_penalty (数字 可选)
    默认值为0
    介于-2.0和2.0之间的数字。正值基于它们在文本中出现的频率对新标记进行惩罚,增加模型谈论新话题的可能性。

  13. frequency_penalty (数字 可选)
    默认值为0
    介于-2.0和2.0之间的数字。正值基于它们在文本中已有的频率对新标记进行惩罚,减少模型重复相同行的可能性。

  14. best_of (整数 可选)
    默认值为1
    在服务器端生成best_of个完成,并返回“最佳”(每个标记的对数概率最高的完成)。结果无法流式传输。
    当与n一起使用时,best_of控制候选完成的数量,n指定要返回的数量——best_of必须大于n。
    注意:由于此参数生成许多完成,因此可能会迅速消耗您的令牌配额。请谨慎使用,并确保max_tokens和stop的设置合理。

  15. logit_bias (映射 可选)
    默认值为null
    修改指定标记出现在完成中的可能性。
    接受一个将标记(由GPT标记器中的标记ID指定)映射到与-100到100相关的偏差值的JSON对象。您可以使用此标记器工具(适用于GPT-2和GPT-3)将文本转换为标记ID。在数学上,在采样之前,模型生成的logit将添加到偏差中。确切的影响将因模型而异,但介于-1和1之间的值应该会减少或增加选择的可能性;像-100或100这样的值应该会导致相关标记被禁止或独占选择。
    例如,您可以传递{“50256”: -100}以防止生成标记。

  16. 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.强大的野马

这就是超级英雄?太普通了吧?显然和我相像中的不同。显然,提示词不及格,需要好好调整。

不要心急,慢慢来,今天的学习就先到这里了。文章来源地址https://www.toymoban.com/news/detail-631006.html

到了这里,关于学习Prompt之从一无所知到微微一笑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL之从单机到集群

    本文一起看下MySQL是单机存在的问题,以及为了解决这些问题所提出的各种解决方案。 并非业务发展初期我们就直接使用集群来支撑业务,而是简单的使用单机版本,但是随着业务的发展,单机的各种问题就会一点一点的暴露出来,那么单机都有哪些问题呢,主要如下: 自然

    2024年02月10日
    浏览(4)
  • 提示学习Prompt介绍

    为什么要用提示学习? 下游任务的目标与预训练的目标差距过大导致提升效果不明显,微调过程中依赖大量的监督语料 降低语义差异:预训练任务主要以(MLM)为主,而下游任务则重新引入新的训练参数,因此两个阶段的目标通常有较大差异; 避免过拟合:由于再Fine-tuni

    2023年04月22日
    浏览(42)
  • 归并排序之从微观看递归

    这次,并不是具体讨论归并排序算法,而是利用归并排序算法,探讨一下递归。归并排序的特点在于连续使用了两次递归调用,这次我们将从微观上观察递归全过程,从本质上理解递归,如果能看完,你一定能变得更强! 先直接上代码吧! 这段代码,特殊的地方在于,它使

    2024年02月11日
    浏览(11)
  • Flink DataStream之从Kafka读数据

    搭建Kafka 参考:centos7下kafka2.12-2.1.0的安装及使用_kafka2.12-2.1.0 steam_QYHuiiQ的博客-CSDN博客  启动zookeeper 启动kafka 查看进程  创建topic 查看topic列表 导入pom依赖 新建类 启动程序 在终端向kafka生产数据,同时观察程序控制台flink的读取情况  如图说明flink从kafka成功读取数据。

    2024年02月13日
    浏览(33)
  • Midjourney学习(一)prompt的基础

    sd和mj的比较 自从去年9月份开始,sd就变得非常或火,跟它一起的还有一个midjourney。 他们就像是程序界的两种模式,sd是开源的,有更多的可能性更可控。但是它出图的稳定性就不太好。mj是商业性的闭源的,但是作品的质量也相对更可控,代价是可控性比sd稍差点。 mj的出图

    2024年02月10日
    浏览(34)
  • Midjourney学习(四)光源类型prompt

    序号 类别 光线名称 英文名称 描述 用途 示例 1 光线质地 硬光 Hard Light 直接照射在主题上,产生明显的阴影和高对比度。 强调轮廓,增加照片的戏剧性 2 光线质地 软光/柔光 Soft Light 光线经过散射或扩散,产生柔和的阴影和低对比度。 平滑细节,适合人像摄影 3 光线颜色 冷

    2024年02月10日
    浏览(91)
  • Go 之从标准输入读取数据的方法

    最近刷题的时候,发现大家都喜欢用 bufio.Scanner 或 bufio.Reader 来从标准输入获取数据,遂来了解一下它们的特性。 文中为了调试方便,使用的 strings.NewReader(\\\"input string\\\") 暂时替换 os.Stdin,实际从标准输入获取时可直接使用 os.Stdin 进行替换。 简单来讲,bufio.Scanner 是 Go 中一个

    2024年04月15日
    浏览(25)
  • ELK之从Logstash读取数据到Elasticsearch

    前置条件: Elasticsearch 集群正常 Elasticsearch集群配置直通车:ELK之Elasticsearch7.17.4安装(yum方式)和三节点集群配置 Filebeat和logstash打通 ELK之LogStash接收Filebeat的数据:ELK之LogStash接收Filebeat的数据 修改Logstash 配置文件,将output改为如下地址,注释掉控制台输出,添加elasticsearc

    2024年01月22日
    浏览(33)
  • ChatGpt提问艺术 prompt工程学习过程

    Prompt 公式是提示的特定格式,通常由三要素组成 任务:对提示要求模型生成的内容进行清晰而简介的陈述。 指令:在生成文本时模型应当遵循的指令 角色:模型在生成文本时应扮演的角色。 提示公式:“按照以下指示生成[任务]:[指令]” 示例: 生成客户服务响应: 任务:

    2024年02月09日
    浏览(31)
  • 对比学习+Prompt+FGSM实现文本分类

    本文主要是基于Robert的文本分类任务,在此基础上考虑融合对比学习、Prompt和对抗训练来提升模型的文本分类能力,我本地有SST-2数据集的train.txt、test.txt、dev.txt三个文件,每个文件包含文本内容和标签两列,基于pytorch实现。 目录 一、加载相关库 二、加载数据集 三、对比学

    2024年02月09日
    浏览(19)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包