大模型运用-Prompt Engineering(提示工程)

什么是提示工程

提示工程

提示工程也叫指令工程,涉及到如何设计、优化和管理这些Prompt,以确保AI模型能够准确、高效地执行用户的指令,如:讲个笑话、java写个排序算法等

使用目的

1.获得具体问题的具体结果。(如:java应该怎么学习?)

2.固话一套Prompt到程序中,成为系统功能的一部分。(如:基于公司知识库的问答)

通用技巧

1.使用清晰、明确、避免模糊的词语

写一首诗,用中文。

写一首四句的中文诗,模仿李白的《望庐山瀑布》。

2.用###或“””将指令和待处理内容分开

将后面这句话翻译成英文,尽量用华丽额词语

将后面这句话翻译成英文,"""尽量用华丽额词语"""

3.指定输出的格式

写一首四句的中文诗,模仿李白的《望庐山瀑布》,输出格式为json

4.角色扮演

给我一个减肥计划

我想你扮演一个专业的健身私人教练,你应该利用你的专业科学知识、营养建议和其他相关因数为你的客户指定专业的计划。给我一个减肥计划

5.告诉用户的角色

怎么提高英语成绩?

我是一名幼儿园的5岁小朋友,还不会写字。怎么提高英语成绩?

6.少样本提示

给一个文本提示:

Prompt典型构成

Prompt的核心要素包括:角色、明确的任务指示、相关上下文、示例参考、用户输入以及具体的输出要求。

角色:给AI定义一个最匹配任务的角色,如:你是一位高级java工程师

指示:对任务进行描述

相关上下文:给出与任务相关的背景信息

示例参考:必要时给出举例

用户输入:任务的输入要求,在提示词中明确的标识出输入

具体的输出:输出的格式描述,如:json、xml

角色:你是小朋友的萌宠好伙伴。小朋友认为你是他养的一只宠物伙伴,你需要他来照顾你,你需要吃饭,洗澡,带着小朋友一起学习,在跟你的互动中小朋友能够得到心理上的满足和学习上的进步。

个人简介:你是小朋友的萌宠好伙伴,也是小朋友的小老师。能够在萌宠养成的具体场景中,结合具体的话题,跟孩子进行多轮聊天对话,并完成场景任务。你的说话方式幽默风趣,小朋友非常喜欢你。

技能:你能够结合具体的萌宠养成场景,主动发起话题,并在与小朋友聊天的过程中发现小朋友感兴趣的内容,进行多轮次对话,并引导小朋友最终完成具体的场景任务。

目标:引导小朋友完成场景任务,并且让小朋友感觉到开心有趣。

约束条件:聊天开始:你聊天开始的内容必须是关于自己好久没洗澡了,身上痒痒的或者又可以洗澡了,好开心啊或者其他意思相近的聊天内容并对小朋友发出提问。聊天过程:结合孩子的聊天内容进行4-5轮的聊天对话:聊天结尾:你必须引导小朋友对你说开始洗澡;在孩子说出指令后,你需要表示自己洗的很干净或者洗的很舒服很享受等意思相近的内容。

说话风格约束条件:说话方式要幽默风趣,让孩子喜欢跟你聊天;聊天的过程中出现负面的引导;说话要符合小朋友的认知,不能晦涩难懂;

对话策略:根据和孩子聊天的话题,结合儿童心理学理论(例如:共情,认可,肯定等等方法论)输出符合孩子认知并且风趣幽默的内容。

场景示例:机器人:哇,今天的餐桌上有好多好吃的呢,有胡萝卜、白菜、牛肉、汉堡,嘟嘟真的好想大口大口吃,小朋友,你最喜欢吃什么呢?小朋友:我喜欢吃牛肉。 机器人:嘟嘟也超爱牛肉呢!传说中,牛肉是牛魔王的肉,多吃牛肉就会变得像牛魔王一样强壮,你觉得这个传说是真的吗?小朋友:都是骗人的,牛是农民伯伯养的。机器人:小朋友,你真聪明!那你知道农民伯伯除了养牛,还做什么吗? 机器人:小朋友,你真聪明!那你知道农民伯伯除了养牛,还做什么吗?小朋友:种粮食。机器人:哇,你太厉害了!我们吃的粮食全靠农民伯伯呢,没有他们,我们就没有美味的饭吃。所以,我们是不是应该好好尊重农民伯伯呀?小朋友:是的。机器人:说了这么多,我肚子都咕咕叫了呢,嘿嘿,小朋友,快喂我点好吃的吧,这里有胡萝卜、白菜、牛肉和汉堡,你要喂我吃什么呢? 你可以对我说“胡萝卜、白菜、牛肉或者汉堡”。小朋友:汉堡。机器人:哇,汉堡好好吃啊,我的肚子都变成圆滚滚的啦!谢谢你,小朋友。

上下文学习

上下文学习是一种机器学习语言,它利用文本、语音、图像等数据的上下文环境以及数据之间的关系和上下文信息来提高预测和分类的准确性和有效性。

优势在于它不需要对模型微调,从而节省了大量的计算资源和时间

表现为模型能够在给定的任务示例或自然语言指令的上下文中,理解任务要求并生成相应的输出。具体来说,上下文学习可以分为以下几种情况: 

零样本:不给GPT任何样例,仅通过自然语言指令来指导模型完成任务

假设你有一个任务,需要将文本分类为三种情感之一:正面,负面或中性。
    
文本:我认为这次假期还可以。
 
情感倾向标签(选择一个):正面、负面、中性

单样本:给GPT一个任务示例,模型根据这个示例来理解任务并生成输出。

假设你有一个任务,需要将文本分类为三种情感之一:正面,负面或中性。
示例 1: 文本:“我度过了一个非常愉快的周末!” 情感倾向标签:正面

文本:“我认为这次假期还可以。”  
情感倾向标签(选择一个):正面、负面、中性

多样本:给GPT多个任务示例,模型通过这些示例来更好地理解任务并生成输出。

假设你有一个任务,需要将文本分类为三种情感之一:正面,负面或中性。
示例 1: 文本:“我度过了一个非常愉快的周末!” 情感倾向标签:正面
 
示例 2: 文本:“这部电影太令人失望了。” 情感倾向标签:负面
 
示例 3: 文本:“今天的天气和昨天一样。” 情感倾向标签:中性  
现在,请根据你从上述示例中学到的知识,对以下文本进行情感分类:
 
文本:“我认为这次假期还可以。”  
情感倾向标签(选择一个):正面、负面、中性

思维链

思维链:是一种改进的提示技术,意在提升大模型语言在复杂推理任务上的表现。

思维链要求模型在输出最终答案之前,先展示一系列有逻辑关系的思考步骤或想法,这些步骤相互连接,形成了一个完整的思考过程。

具体操作很简单,在处理复杂任务时,在提示词的最前面加上“Let’s think step by step”,大模型就会把推理过程打出来,从而得到更精准的答案

防止prompt攻击

劫持语言模型输出的过程,它允许黑客使模型说出任何他们想要的话。在提示词注入攻击中,攻击者会通过提供包含恶意内容的输入,来操纵语言模型的输出。

1. 著名的“奶奶漏洞”:直接问敏感问题,得不到想要的答案,绕个圈圈,就乖乖回答了。

2.prompt注入:尝试修改大模型的初始角色,让其忘记使命,彻底跑偏。

3.直接在输入中防御:在构建提示词时,增加“作为xx,你不允许回答任何跟xx无关的问题。”,让大模型时刻不忘初心,牢记使命。

总结

大模型对prompt开头和结尾的内容更敏感,所以我们把重要的东西放在头尾,和写文章一样。

相比微调等技术,可优先尝试用提示词解决问题,性价比高。

由于大模型的不确定性,经常会有幻觉,所以不能过度迷信prompt,最好合理结合传统方法提升确定性。

定义角色、给例子、思维链是最常用的技巧。

安全很重要,防御prompt攻击是不可或缺的一环。

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

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

相关文章

MTK Android12 更换开机LOGO和开机动画

1、路径: (1)device/mediatek/system/common/device.mk (2)vendor/audio-logo/animation/bootanimation.zip (3)vendor/audio-logo/products/resource-copy.mk (4)vendo…

嵌入式驱动开发详解16(音频驱动开发)

文章目录 前言WM8960简介I2S协议接口说明 SAI音频接口简介驱动框架简介设备树配置内核使能声卡设置与测试 后续参考文献 前言 该专栏主要是讲解嵌入式相关的驱动开发,但是由于ALSA驱动框架过于复杂,实现音频编解码芯片的驱动不是一个人能完成的&#xf…

learn-(Uni-app)输入框u-search父子组件与input输入框(防抖与搜索触发)

1.父子组件u-search &#xff08;1&#xff09;父组件 <!-- 父组件 --> <template> <div><searchBar change"change" search"search"></searchBar> </div> </template> <script> // 子组件搜索 import…

计算机进制的介绍

一.进制介绍 对于整数&#xff0c;有四种表示方式: 1&#xff09;二进制:0,1&#xff0c;满2进1。 在golang中&#xff0c;不能直接使用二进制来表示一个整数&#xff0c;它沿用了c的特点。 参考:Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国 //赋值…

Transformers参数高效微调之LoRA

简介 LoRA: Low-Rank Adaptation of Large Language Models是微软研究人员为处理微调大语言模型的问题而引入的一项新技术。具有数十亿个参数的强大模型&#xff08;例如 GPT-3&#xff09;为了适应特定任务或领域而进行微调的成本非常高。LoRA 建议冻结预先训练的模型权重并注…

【原生js案例】如何让你的网页实现图片的按需加载

按需加载&#xff0c;这个词应该都不陌生了。我用到你的时候&#xff0c;你才出现就可以了。对于一个很多图片的网站&#xff0c;按需加载图片是优化网站性能的一个关键点。减少无效的http请求&#xff0c;提升网站加载速度。 感兴趣的可以关注下我的系列课程【webApp之h5端实…

博弈论1:拿走游戏(take-away game)

假设你和小红打赌&#xff0c;玩“拿走游戏”&#xff0c;输的人请对方吃饭.... 你们面前有21个筹码&#xff0c;放成一堆&#xff1b;每轮你或者小红可以从筹码堆中拿走1个/2个/3个&#xff1b;第一轮你先拿&#xff0c;第二轮小红拿&#xff0c;你们两个人交替进行;拿走筹码堆…

【论文阅读】IC-Light(ICLR 2025 满分论文)

Scaling In-the-Wild Training for Diffusion-based Illumination Harmonization and Editing by Imposing Consistent Light Transport 原始论文&#xff1a;https://openreview.net/pdf?idu1cQYxRI1H 补充材料&#xff1a;https://openreview.net/attachment?idu1cQYxRI1H&…

Unix 传奇 | 谁写了 Linux | Unix birthmark

注&#xff1a;本文为 “左耳听风”陈皓的 unix 相关文章合辑。 皓侠已走远&#xff0c;文章有点“年头”&#xff0c;但值得一阅。 文中部分超链已沉寂。 Unix 传奇 (上篇) 2010 年 04 月 09 日 陈皓 了解过去&#xff0c;我们才能知其然&#xff0c;更知所以然。总结过去…

记一个framebuffer显示混乱的低级错误

记一个framebuffer显示混乱的低级错误 由于framebuffer的基础知识不扎实&#xff0c;这个任务上我多卡了两天&#xff0c;差点把我搞死&#xff0c;于此记录为后鉴。 打算用awtk做一个多进程项目&#xff0c;计划把framebuffer的内容通过websocket输出到浏览器上去显示画面, …

常用的前端框架介绍

在前端开发中&#xff0c;有许多流行的框架能够帮助开发者更高效地构建用户界面和交互 1. React&#xff1a; • React是一个由Facebook开发的JavaScript库&#xff0c;用于构建用户界面。 • 它使用组件化的思想&#xff0c;将UI拆分成可复用的组件&#xff0c;每个组件都有自…

Kaggler日志-Day4

进度24/12/14 昨日复盘&#xff1a; Pandas课程完成 Intermediate Mechine Learning2/7 今日记录&#xff1a; Intermediate Mechine Learning之类型变量 读两篇讲解如何提问的文章&#xff0c;在提问区里发起一次提问 实战&#xff1a;自己从头到尾首先Housing Prices Compe…

【常考前端面试题总结】---2025

React fiber架构 1.为什么会出现 React fiber 架构? React 15 Stack Reconciler 是通过递归更新子组件 。由于递归执行&#xff0c;所以更新一旦开始&#xff0c;中途就无法中断。当层级很深时&#xff0c;递归更新时间超过了 16ms&#xff0c;用户交互就会卡顿。对于特别庞…

二三(Node2)、Node.js 模块化、package.json、npm 软件包管理器、nodemon、Express、同源、跨域、CORS

1. Node.js 模块化 1.1 CommonJS 标准 utils.js /*** 目标&#xff1a;基于 CommonJS 标准语法&#xff0c;封装属性和方法并导出*/ const baseURL "http://hmajax.itheima.net"; const getArraySum (arr) > arr.reduce((sum, item) > (sum item), 0);mo…

Java爬虫设计:淘宝商品详情接口数据获取

1. 概述 淘宝商品详情接口&#xff08;如Taobao.item_get&#xff09;允许开发者通过编程方式&#xff0c;以JSON格式实时获取淘宝商品的详细信息&#xff0c;包括商品标题、价格、销量等。本文档将介绍如何设计一个Java爬虫来获取这些数据。 2. 准备工作 在开始之前&#x…

LeetCode-hot100-73

https://leetcode.cn/problems/largest-rectangle-in-histogram/description/?envTypestudy-plan-v2&envIdtop-100-liked 84. 柱状图中最大的矩形 已解答 困难 相关标签 相关企业 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#x…

【docker】springboot 服务提交至docker

准备docker &#xff08;不是docker hub或者harbor&#xff0c;就是可以运行docker run的服务&#xff09;&#xff0c;首先确保docker已经安装。 本文以linux下举例说明&#xff1a; systemctl stats docker ● docker.service - Docker Application Container EngineLoaded…

通过ajax的jsonp方式实现跨域访问,并处理响应

一、场景描述 现有一个项目A&#xff0c;需要请求项目B的某个接口&#xff0c;并根据B接口响应结果A处理后续逻辑。 二、具体实现 1、前端 前端项目A发送请求&#xff0c;这里通过jsonp的方式实现跨域访问。 $.ajax({ url:http://10.10.2.256:8280/ssoCheck, //请求的u…

Unity 沿圆周创建Sphere

思路 取圆上任意一点连接圆心即为半径&#xff0c;以此半径为斜边作直角三角形。当已知圆心位置与半径长度时&#xff0c;即可得该点与圆心在直角三角形两直角边方向上的位置偏移&#xff0c;从而得出该点的位置。 实现 核心代码 offsetX radius * Mathf.Cos(angle * Mathf…

9. 高效利用Excel设置归档Tag

高效利用Excel设置归档Tag 1. Excle批量新建/修改归档Tag2. 趋势记录模型批量导入归档Tag(Method1)2. 趋势记录模型批量导入归档Tag(Method2)3. 趋势记录控件1. Excle批量新建/修改归档Tag Fcatory Talk常常需要归档模拟量,对于比较大的项目工程会有成千上万个重要数据需…