大模型: 提示词工程(prompt engineering)

news/2024/4/27 23:03:47/文章来源:https://blog.csdn.net/yuming226/article/details/136977444

文章目录

  • 一、什么是提示词工程
  • 二、提示词应用
    • 1、提示技巧一:表达清晰
    • 2、提示词技巧2:设置角色
  • 三、提示方法
    • 1、zero-shot提示法
    • 2、Few-shot提示法
    • 3、思考链COT(chain-of-thought)提示法
    • 4、Few-shot-COT提示法

一、什么是提示词工程

提示词工程主要是用于优化与大模型交互的提示或查询操作,其目的在于能够更加准确的获取提问者想要获取的答案,提示词的好坏会直接影响到大模型的运行效果。

二、提示词应用

1、提示技巧一:表达清晰

要清晰的表达出自己的意图,这样大模型才能了解我们的意图,才能得到我们真正需要的反馈。

举例说明:
假如我是一名喜剧演员,向大模型质询什么是机器学习,我希望大模型给出的答案易于理解。那我们来看下使用不同的提示词大模型有怎么的反应:

提示词1:请帮我介绍下什么是机器学习
大模型的回答:

机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径。机器学习在多个领域都有广泛的应用。例如,通过对大量的金融数据进行分析,机器学习可以帮助金融机构更好地理解市场趋势、降低风险、提高效率。在医疗保健领域,机器学习在医学影像诊断、疾病预测、药物研发等方面发挥着重要作用。在零售行业,机器学习可以帮助零售商预测客户需求、优化库存管理、个性化推荐商品等。此外,机器学习还在交通运输、营销和广告等领域有广泛应用。为了实施机器学习,有许多开源框架可供使用,如TensorFlow、Keras、Scikit-learn、MXNet和Caffe等。这些框架提供了丰富的算法和工具,使得构建和训练机器学习模型变得更加容易。在发展趋势上,随着技术的发展,机器学习在多个方面都有新的突破和进步。例如,大型语言模型、多模态机器学习、Transformer等技术正在成为新的研究热点。同时,机器学习也在逐步渗透到更多的业务领域,帮助各个组织提高效率和工作安全性。总之,机器学习是一个快速发展的领域,其强大的功能和广泛的应用正在不断地推动着科技的进步和产业的发展。

提示词2:你是一名喜剧演员,请帮我介绍下什么是机器学习
大模型回答:

机器学习对于我们这些喜剧演员来说,其实是一个既有趣又实用的概念。简单来说,机器学习就是让计算机像人一样学习和进步的技术。它通过分析大量的数据,找出其中的规律和模式,然后让计算机根据这些规律来做出预测或决策。对于喜剧演员来说,机器学习也可以成为一种有趣的工具。比如,我们可以利用机器学习来分析观众的喜好和笑点,找出哪种类型的笑话或表演方式更能引起观众的共鸣。这样,我们就可以根据机器学习的反馈,调整我们的表演内容,使其更加贴近观众的口味。另外,机器学习还可以帮助我们优化演出流程。比如,我们可以利用机器学习来分析观众的互动行为,找出哪些互动环节更能提升观众的参与度和笑点。这样,我们就可以在演出中更加精准地把握节奏,让演出更加流畅和有趣。当然,机器学习并不是要取代我们的创作和表演,而是作为一种辅助工具,帮助我们更好地理解和满足观众的需求。我们喜剧演员还是要依靠自己的才华和创意,来创作出更加有趣和深刻的作品。所以,机器学习对于我们这些喜剧演员来说,既是一种挑战也是一种机遇。它让我们能够更好地了解观众,优化表演,同时也让我们在创作和表演上有了更多的可能性和空间。

显然第2个提示词更加符合喜剧演员的需求。

2、提示词技巧2:设置角色

为大模型定义一个与目标任务相匹配的角色。通过一句话明确其角色(例如,“你是一位深度学习专家”),有助于收窄问题域,减少二义性,使“通用”的大模型瞬间变得“专业”。

client.chat.completions.create(model="XXX",messages = [{"role":"system","content":"我是一位java开发专家"},{"role":"user","content":"什么是机器学习"},]
)

那么模型的回答会更加的专业

三、提示方法

1、zero-shot提示法

Zero-shot提示法是一种在无需特定训练的情况下,让大模型完成一些简单任务的方法。它依赖于模型固有的数据来回答问题,而无需提供给模型额外的数据或进行微调。Zero-shot提示法的主要优势在于其快速和便捷性,使我们能够轻松地对新任务进行尝试,并验证新的想法。

在实际应用中,Zero-shot提示法可以通过简单地输入指令或问题(可以包含上下文信息和输出格式等内容)来引导模型输出期望的结果。例如,在文本情感分析任务中,可以输入“将文本分类为中性、负面或积极”作为提示,然后给出待分析的文本,模型即可根据提示进行情感分类。

需要注意的是,虽然Zero-shot提示法在许多情况下都能取得不错的效果,但在面对更复杂的任务时,其表现可能会受到限制。在这种情况下,可以考虑使用其他提示方法,如Few-shot提示法,通过提供少量示例来引导模型更好地完成任务。

总的来说,Zero-shot提示法是一种强大而灵活的工具,可以帮助我们充分利用大模型的潜力,实现各种类型的任务。然而,为了获得最佳效果,我们需要根据具体任务的特点和需求来选择合适的提示方法和策略。

2、Few-shot提示法

Few-shot提示法是一种在人工智能领域中用于指导预训练模型快速适应新任务的技术。它通过给模型提供少量的样本数据,让模型能够理解任务并生成正确的响应。这些样本数据通常包含了任务的具体要求和期望的输出,帮助模型快速掌握任务的核心要点。

与Zero-shot提示法相比,Few-shot提示法需要少量的特定任务数据,但远少于完全微调模型所需的数据量。这使得它在实际应用中更为灵活和高效,尤其对于那些数据量有限或难以获取的领域。

Few-shot提示法的主要优点是能够大幅度降低对特定任务数据的需求,并减少从微调数据集中学习过度狭窄分布的风险。这使得模型能够更广泛地应用于各种新任务,而无需进行繁琐的数据收集和模型微调工作。

然而,Few-shot提示法也存在一些挑战和限制。首先,虽然它减少了数据需求,但仍需要一小部分特定任务的数据来引导模型。其次,该方法目前的结果在某些情况下可能不如最先进的微调模型准确。这主要是因为Few-shot提示法依赖于模型的泛化能力和对少量样本的学习能力,这在某些复杂任务中可能难以达到理想的效果。

尽管如此,随着技术的不断进步和研究的深入,Few-shot提示法有望在未来得到进一步的改进和优化。它将成为人工智能领域中的一种重要技术,帮助模型更好地适应各种新任务和挑战。

在实际应用中,Few-shot提示法已经被广泛应用于智能客服、文本分类、情感分析等多个领域。通过提供少量的示例数据,模型能够快速学习并生成准确的响应,提高了任务处理的效率和准确性。

总之,Few-shot提示法是一种强大而灵活的技术,它利用少量的样本数据指导预训练模型快速适应新任务。虽然目前仍存在一些挑战和限制,但随着技术的不断发展,它有望在人工智能领域发挥更大的作用。

模板:

client.chat.completions.create(model="XXX",messages = [{"role":"user","content":Q1},{"role":"assistant","content":A1},{"role":"user","content":Q2}]
)

3、思考链COT(chain-of-thought)提示法

思考链COT(Chain-of-Thought)提示法的使用形式主要体现在引导模型进行推理的过程中。具体来说,当面对一个问题时,我们不是直接要求模型给出答案,而是首先提示模型按照一种逐步推理的方式进行思考。

这种提示法通常包括以下几个步骤:

  • 问题提出:首先,我们向模型提出一个需要推理的问题。
  • 思考链引导:接着,我们提示模型开始形成一个思考链。这通常意味着我们需要引导模型去识别问题中的关键信息,然后基于这些信息逐步展开推理。
  • 中间步骤推理:在思考链中,模型需要显式地输出每一个中间推理步骤。这些步骤应该是逻辑连贯、条理清晰的,能够逐步引导模型接近最终答案。
  • 最终答案:当思考链形成完整后,模型基于这些中间步骤推导出最终答案。
    通过这种方式,思考链COT提示法不仅提高了模型的推理能力,还使得推理过程更加透明和可解释。用户可以通过查看模型的中间推理步骤,了解模型是如何逐步得出答案的,从而增加了对模型决策的信任度。

在实际应用中,思考链COT提示法可以根据不同的任务和领域进行定制和优化。例如,在数学问题中,我们可以引导模型先识别问题的类型(如加法、减法、乘法或除法),然后逐步计算得出答案;在逻辑推理问题中,我们可以引导模型分析前提条件,逐步推导出结论等。

总之,思考链COT提示法是一种强大而灵活的技术,它能够帮助模型更好地理解和解决问题,提高推理的准确性和可解释性。

思考链的应用实现是借助system role输入提示模板实现COT(论文:《Large Language Models are zero-Shot Reasoners》)。

  • Zero-shot-COT:
prompt_temp_cot = '请一步步思考并解决问题'
response = client.chat.completions.create(model = "XXX模型",messages=[{"role":"system","content":prompt_temp_cot},{"role":"user","content":Q1}]
)

4、Few-shot-COT提示法

论文:《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》中提出。与Few-shot相比,Few-shot-COT在给出的提示样本中不仅要给出问题的答案,同时还需要给出问题推导过程 。

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

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

相关文章

V R社交平台的用处|虚拟现实体验馆加盟|V R设备在线价格

VR(虚拟现实)社交平台的用处可以体现在以下几个方面: VR社交平台不仅可以丰富用户的社交体验,还可以在教育、艺术、商务等领域发挥重要作用,为用户提供更加多样化、互动性强的社交平台体验。 VR游乐设备|VR娱乐设备|VR…

CleanMyMac X 4.15.1 for Mac 最新中文破解版 系统优化垃圾清理工具

CleanMyMac X for Mac 是一款功能更加强大的系统优化清理工具,相比于 CleanMyMac 4.15.1来说,功能增加了不少,此版本为4.15.1官方最新中英文正式破解版本,永久使用,解决了打开软件崩溃问题,最新版4.15.1版本…

微信开发者工具创建一个小程序

创建项目 对于上面这个AppID可以自行选择是注册还是测试号,我是使用的测试号,之后再下面选择模板,我这里选择了JS-基础模板。 进入项目后在模拟器中可看到如下页面: 添加提交按钮进行页面跳转 添加需要跳转的文件夹,…

Leetcode 3.25

LeetCode Hot 100 栈1.有效的括号2.最小栈3.字符串解码 栈 1.有效的括号 有效的括号 这道题肯定是利用了栈先入后出的特性。有以下几种情况 如果当前元素是左括号则push进栈不弹出; 如果当前元素是右括号则弹出栈中前一个元素,并判断是否与当前元素匹配…

http模块—http请求练习

题目要求:搭建如下http服务: 1.当浏览器向我们的服务器发送请求时,当请求类型是get请求,请求的url路径地址是/login。响应体结果是登录页面 2.当浏览器向我们的服务器发送请求时,当请求类型是get请求,请求…

ubuntu 首次登录mysql8 未设置密码或忘记密码解决方法 亲测可用

-1.首先输入以下指令: sudo cat /etc/mysql/debian.cnf2. 再输入以下指令: mysql -u debian-sys-maint -p //注意! //这条指令的密码输入是输入第一条指令获得的信息中的 password ZCt7QB7d8O3rFKQZ 得来。 //请根据自己的实际情况填写!运…

QT文件读写操作和内容提取

访问IO设备,需要先调用open()来设置正确的OpenMode(例如ReadOnly或ReadWrite) 打开设备后后,使用write() 或putChar() 写入数据到文件和设备,并通过调用read(),readLine() 或readAll() 进行读取;使用完设备后&#xf…

离线数仓(八)【DWD 层开发】

前言 1、DWD 层开发 DWD层设计要点: (1)DWD层的设计依据是维度建模理论(主体是事务型事实表(选择业务过程 -> 声明粒度 -> 确定维度 -> 确定事实),另外两种周期型快照事实表和累积型…

【自我提升】一、Hyperledger Fabric 概念梳理

写在前面:最近因为业务需要,开始学习Hyperledger Fabric了,做java全栈工程师可真难搞。现在算是啥类型的都在涉及了,现在这个技术啥都不懂,就先开个学习专栏,记录记录。顺带也给各位道友参考参考。 目录 …

【Bug】记录2024年遇到的Bug以及修复方案

--------------------------------------------------------分割线 2024.3.22------------------------------------------------------- 1、load_sample_image raise AttributeError(“Cannot find sample image: %s” % image_name) AttributeError: Cannot find sample imag…

[linux初阶][vim-gcc-gdb] OneCharter: vim编辑器

一.vim编辑器基础 目录 一.vim编辑器基础 ①.vim的语法 ②vim的三种模式 ③三种模式的基本切换 ④各个模式下的一些操作 二.配置vim环境 ①手动配置(不推荐) ②自动配置(推荐) vim是vi的升级版,包含了更加丰富的功能. ①.vim的语法 vim [文件名] ②vim的三种模式 命令…

WPF —— DockPanel、ProgressBar 控件详解

ProgressBar 控件详解 1Progress bar简介 ProgressBar:进度条控件。 WPF带有一个方便的控件用于显示进度,称ProgressBar。它的工作原理就是设置最小值和最大值然后通过递增一个值,这样就可以直观的显示当前进度情况。 2 Progress bar常用的…

DFS:从递归去理解深度优先搜索

一、深入理解递归 二、递归vs迭代 三、深入理解搜索、回溯和剪枝 四、汉诺塔问题 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public: //笔试题&#xff0c;不讲武德&#xff0c;CAvoid move(int n,vector<int>& A, vector<int>& B, ve…

前端实现浏览器自定义滚动条

前言&#xff1a; 最近有个项目&#xff0c;产品觉得浏览器默认滚动条太丑了。想美化一下&#xff0c;比如自定义颜色&#xff0c;加上圆角&#xff0c;宽高都要更改一下。我查了资料和文档总结了一下 写法&#xff0c;特此记录以便之后使用。 浏览器滚动条api 总结&#xff…

【爬取网易财经文章】

引言 在信息爆炸的时代&#xff0c;获取实时的财经资讯对于投资者和金融从业者来说至关重要。然而&#xff0c;手动浏览网页收集财经文章耗时费力&#xff0c;为了解决这一问题&#xff0c;本文将介绍如何使用Python编写一个爬虫程序来自动爬取网易财经下关于财经的文章 1. 爬…

代码随想录 Day-25

力扣题目 509.斐波那契数 思路 很理所当然的&#xff0c;可以使用递归的方式其次是用动态规划的方式&#xff0c;动态规划的核心就是递推公式。 那么递推和递归一字之差&#xff0c;有什么区别呢&#xff1f;&#xff08;递推和递归的区别&#xff09; 1、递归 class Solutio…

Java项目:77 springboot母婴商城

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本课题后端使用SpringBoot Spring Cloud框架&#xff0c;前端采用html&#xff0c;JQuery&#xff0c;JS&#xff0c;DIVCSS技术进行编程&…

Redis中AOF文件重写与同步

AOF文件的写入与同步 Redis服务器进程就是一个时间循环(loop),这个循环中的文件时间负责接收客户端的命令请求&#xff0c;以及向客户端发送命令回复&#xff0c;而时间事件则负责执行像serverCron函数这样需要定时运行的函数。因为服务器在处理文件事件时可能会执行些命令&am…

【Java程序设计】【C00416】基于(JavaWeb)Springboot的客户管理系统(含论文)

基于&#xff08;JavaWeb&#xff09;Springboot的客户管理系统&#xff08;含论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千…

C# 文件操作

文章目录 C# 文件操作创建文件运行结果 写入文件程序文件运行结果 WriteAllLines-写入多行运行结果 追加字符串运行结果追加多行字符串 读取文件ReadAllText运行结果 ReadAllLines-用数组接收读取的内容运行结果 采用流&#xff08;Stream&#xff09;的方式来读取内容运行结果…