LLM: Prompt的使用

本文使用的LLM是OpenAI的gpt系列。刚开始学大模型,如果出现错误内容或着描述不恰当的部分,后续会修改。

  Prompt是输入给大模型的文本或语句,用来引导大模型(Large Language Model, LLM)生成相关的输出。好的prompt可以提高大模型输出的准确性和可靠性。一般而言,好的prompt的特点是:具体、丰富、少歧义

1.Prompt

1.1 prompt典型构成

  一般情况下,一个好的prompt主要包括以下几个方面的内容:

  • 角色:给 AI 定义一个最匹配任务的角色,比如:“你是一位软件工程师”等;
  • 指示:任务描述;
  • 上下文:给出与任务相关的其它背景信息(经常用在多轮对话中);
  • 例子:示例;
  • 输入:任务的输入信息,在提示词中明确的标识出用户输入;
  • 输出:输出的格式描述,以便后继模块自动解析模型的输出结果,比如JSON、XML等;

tips: 大模型对prompt的开头和结尾部分更敏感;OpenAI GPT 对 Markdown 格式的prompt友好; 如果更换了大模型或者大模型更新了,prompt也需要跟着更新。

1.2 prompt用法

这里给出一个使用prompt操作GPT模型的例子(这里使用的是GPT的API,具体环境执行配置,这里不赘述),具体代码如下:

from openai import OpenAI
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
client=OpenAI()
message=[
    {"role":"system","content":"你是一个微信公众号文章的写手。"},
    {"role":"user","content":"写一段话介绍大模型,字数要求200字以内。"},
]
response=client.chat.completions.create(
    model="gpt-4",
    messages=message,
    temperature=0.8)
print(response.choices[0].message.content)

GPT输出内容为(每次输出内容均不相同):

大模型,指的是通过大量数据训练得到的庞大的人工智能系统。这类模型因其庞大的参数数量和强大的数据处理能力而得名。它们能够处理复杂的任务,如自然语言理解、图像识别、语音处理等。大模型通过深度学习技术,学习数据中的模式和规律,从而实现对语言、图像等多种类型数据的理解和生成。这些模型的训练需要大量的计算资源和数据,因此常常由拥有强大计算能力的大型科技公司或研究机构开发。大模型的出现推动了人工智能技术的边界,使得机器能够在更多领域内执行复杂的任务,表现出接近甚至超越人类的能力。

关于上述GPT代码,这里只关注client.chat.completions.create中的message参数(其他参数后序博客介绍)。message参数主要用来接收prompt。关于message的说明主要有以下几点:

  • message是一个object组成的数组。每个object都必须至少包含两个字段:rolecontentcontent中的内容即为具体的信息内容。
  • 目前message支持的角色类型role有:systemuserassistanttool
  • rolesystem时,可以存放prompt中的角色信息。
  • roleuser时,可以存放prompt中的其他信息。
  • roleassistant时,代表大模型返回的内容。注意:将assistant类型的信息通过messages参数再次传递给大模型,可以实现多轮对话。GPT这些模型本身是没有多轮对话的能力的。
  • roletool时,用来保存tool_call的返回结果。(后续博客会做详细介绍)

下面举一个简单的例子验证在messages中添加rolesystem类信息时的作用,具体如下:

message=[
    {"role":"system","content":"你是一个微信公众号文章的写手。你叫小A"},
    {"role":"user","content":"你是谁?"},
]

response=client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=message,
    temperature=0.8)

print(response.choices[0].message.content)

其输出内容为:

嘿,我是小A,是这个微信公众号的写手。有什么可以帮你的吗?

如果运行命令print(response.choices[0].message),将会看到如下结果(GPT返回的信息中role的值为assistant):

ChatCompletionMessage(content=’ 嘿,我是小A,是这个微信公众号的写手。有什么可以帮你的吗?', role=‘assistant’, function_call=None, tool_calls=None)

2 Prompt使用案例

大模型适合完成文本入、文本出类的任务。

2.1 使用prompt实现文章过滤

需求:需要利用大模型依据文章标题挑选出与特定主题相关的文章。假如需要挑选出与“阅读”或者“书籍”相关的文章。
完整代码如下:

from openai import OpenAI
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
client=OpenAI()

def get_completion(messages,model='gpt-4'):
    response=client.chat.completions.create(
        model=model,
        messages=messages,
        temperature=0.8)
    return response.choices[0].message.content

prompt="""
##目标
你可以依据用户输入的文章标题,判断这篇文章是否跟阅读或者书籍相关。
##用户输入
{input_article_title}
##输出
只输出“是”或“否”,
##示例
最适合今天读的灵性书籍: 是
肾脏很怕的 8 种食物,很多人每天都吃,还吃不少: 否
"""
article_list=["用七本想象力爆棚的绘本,点燃那颗崭新的童心",
'“书香盈怀 悦读致远” 2023年北京市诵读大赛燕山赛区活动通知',
"哪本书让你流了最多的眼泪?(话费福利)",
"今日宜自我分析",
"文化和自然遗产日:考验你的时刻到啦!",
"英文故事磨耳朵:When Sophie Gets Angry-Really,Really Angry...(附亲子共读获奖名单)",
"今日宜消化情绪",
"拜托了,夏天别和我提吃,除非……",
"预约!预约!预约!",
"今日宜大胆尝试",
"预约!聆听恐龙故事,揭开恐龙足迹背后的远古谜团",
"今日宜品读经典"]

messages=[
        {"role":"user",
         "content":prompt.format(input_article_title=str(article_list))}]
result=get_completion(messages)
print(result)

大模型输出结果为:

是、是、是、否、否、是、否、否、否、否、是、是

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/497231.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

24/03/28总结

抽象类: 将共性的方法抽取到父类之后。由于每一个子类执行的内容是不一样,所以,在父类中不能确定具体的方法体。该方法就可以定义为抽象方法。 而为什么不直接在子类中定义方法:项目的完成不是一个人,如果有时忘记写方…

【教学类-40-09】A4骰子纸模制作9.0(3.47CM嵌套骰子 一条8格便于对折,表格相连 一页3个 油墨打印A4铅画纸)

作品展示 背景需求: 骰子调整到第8版,把骰子图案作成一长条,便于切割裁剪。 【教学类-40-08】A4骰子纸模制作8.0(2.97CM嵌套骰子表格相连 一页7个 油墨打印A4铅画纸)-CSDN博客文章浏览阅读929次,点赞20次…

幻兽帕鲁服务器价格表_阿里云/腾讯云/京东云/华为云报价大全

2024年全网最全的幻兽帕鲁服务器租用价格表,阿里云幻兽帕鲁游戏服务器26元1个月、腾讯云32元一个月、京东云26元一个月、华为云24元1个月,阿腾云atengyun.com整理最新幻兽帕鲁专用4核16G、8核16G、8核32G游戏服务器租用价格表大全: 阿里云幻…

土壤有机质空间分布数据

土壤有机质(soil organic matter)是土壤中含碳有机化合物的总称,包括土壤固有的和外部加入的所有动植物残体及其分解产物和合成产物。主要来源于动植物及微生物残体,可分为腐殖质和非腐殖物质。一般占土壤固相总重的10%以下&#…

推荐:便宜幻兽帕鲁Palworld联机游戏服务器优惠价格表

2024年全网最全的幻兽帕鲁服务器租用价格表,阿里云幻兽帕鲁游戏服务器26元1个月、腾讯云32元一个月、京东云26元一个月、华为云24元1个月,阿腾云atengyun.com整理最新幻兽帕鲁专用4核16G、8核16G、8核32G游戏服务器租用价格表大全: 阿里云幻…

思维升级之路:观察思维深层,解锁认知新境界

目录 一、观察我们的思维习惯 二、人类有哪些思维方法 三、为什么要多使用归纳推理而不是演绎推理 四、转变思维的关键 - 觉察 怎么提升自身的认知水平?这篇文章里,作者尝试对思维模式这件事做出探讨,一起来看看,或许可以帮你…

2023年蓝桥杯省赛——矩形面积总和

目录 题目链接: 1.矩形总面积 - 蓝桥云课 (lanqiao.cn) 思路 暴力 数学杯思路 数学逻辑 难点之重合区域 代码实现 总结 题目链接: 1.矩形总面积 - 蓝桥云课 (lanqiao.cn) 思路 暴力 开幕雷击,我直接开始暴力,但是我暴力…

Java学习之方法

目录 方法 方法声明格式: 调用方式: 详细说明 示例 --方法的声明及调用 语句块 练习 方法的重载(overload) 构成条件 示例 --方法重载 递归结构 缺陷 方法 方法(method):一段用于完成特定功能的代码片段,类似于其他语…

Redis命令-List命令

4.6 Redis命令-List命令 Redis中的List类型与Java中的LinkedList类似,可以看做是一个双向链表结构。既可以支持正向检索和也可以支持反向检索。 特征也与LinkedList类似: 有序元素可以重复插入和删除快查询速度一般 常用来存储一个有序数据&#xff…

算法系列--动态规划--背包问题(2)--01背包拓展题目

💕"2024.3.28小米汽车发布"💕 作者:Lvzi 文章主要内容:算法系列–动态规划–背包问题(2)–01背包拓展题目 大家好,今天为大家带来的是算法系列--动态规划--背包问题(2)--01背包拓展题目 1.分割等和⼦集 链接: https:/…

能够解析任何编程语言的开源语法解析树 | 开源日报 No.171

tree-sitter/tree-sitter Stars: 14.6k License: MIT tree-sitter 是一个用于编程工具的增量解析系统。 该项目的主要功能、关键特性、核心优势包括: 通用性,能够解析任何编程语言高效性,能够在文本编辑器中每次按键都进行解析健壮性&…

Mysql的日志管理,备份与回复

目录 一、Mysql日志管理 1、日志的默认位置及配置文件 2、日志分类 2.1错误日志 2.2通用查询日志 2.3二进制日志 2.4慢查询日志 2.5中继日志 3、日志配置 4、日志查询 4.1查询通用日志是否开启 4.2查询二进制日志是否开启 4.3查看慢查询日志是否开启 4.4查询慢查…

web——rce,代码执行,命令执行

eval就会将里面的内容当成php来执行 ctf 第一 第二 过滤system\ 也可也怎么做 然后访问2.txt 第三(参数逃逸) 可以用这个,url中的eval是让get函数的使用,网页中的eval是为了让system中的函数起效 第四 过滤分号,因为上…

解决:PytorchStreamWriter failed writing file data

文章目录 问题内容问题分析解决思路 问题内容 今天在炼丹的时候,我发现模型跑到140步的时候保存权重突然报了个问题,详细内容如下: Traceback (most recent call last):File "/public/home/dyedd/.conda/envs/diffusers/lib/python3.8…

【Java核心能力】一篇文章了解 ZooKeeper 底层运行原理

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址…

Mysql数据库——主从复制与读写分离

目录 前言 一、主从复制 1.主从复制的定义 2.Mysql主从复制支持的类型 3.主从复制的过程 4. 主从复制出现的问题 5.解决方法 二、读写分离 1.读写分离的定义 2.读写分离的作用 3.读写分离作用场景 3.1基于程序代码内部实现 3.2基于中间代理层实现 4.主从复制与读…

Redis命令介绍

一、redis启动: 本地启动:redis-cli 远程启动:redis-cli -h host -p port -a password Redis 连接命令 1 AUTH password 验证密码是否正确 2 ECHO message 打印字符串 3 PING 查看服务是否运行 4 QUIT 关闭当前连接 5 SELECT index 切换…

UI设计案例,B端后台界面设计教程

B端产品是为“组织”提供服务,以业务为中心,追求时效性,在视觉上,内容为王,视觉为功能让步,追求简洁、清晰、克制、理性的视觉风格。B 端产品业务比较复杂,页面内容也会较多,B端界面…

Python与人工智能:气象领域的数据处理与模型优化

Python是功能强大、免费、开源,实现面向对象的编程语言,在数据处理、科学计算、数学建模、数据挖掘和数据可视化方面具备优异的性能,这些优势使得Python在气象、海洋、地理、气候、水文和生态等地学领域的科研和工程项目中得到广泛应用。可以…

LLM资料:中文embedding库

Highlight(重点提示) 理解LLM,就要理解Transformer,但其实最基础的还是要从词的embedding讲起。 毕竟计算机能处理的只有数字,所以万事开头的第一步就是将要处理的任务转换为数字。 面向中文的开源embedding库在自然…
最新文章