当前位置: 首页 > article >正文

大语言模型之prompt工程

前言

随着人工智能的快速发展,我们正慢慢进入AIGC的新时代,其中对自然语言的处理成为了智能化的关键一环,在这个大背景下,“Prompt工程”由此产生,并且正逐渐成为有力的工具...

LLM

(Large Language Model)大语言模型,具有许多参数的人工神经网络生成,使用自监督学习或半监督学习对大量未标记文本进行训练,在各种任务中表现出色。AI 并不是自主生成内容的,而是依赖于提示词的引导。提示词越清晰、具体,AI 的输出就越符合预期。

Prompt简介

Prompt是指一段文本,指令或者描述,用于引导预训练的语言模型理解用户意图并生成预期输出

Prompt工程是一种基于预训练语言模型(PLM)或大语言模型(LLM),通过向模型提供精心设计的提示语,引导模型生成与任务相关的文本输出。通俗一点的将,Prompt工程就是通过编写特定Prompt提示词,询问AI时它返回的结果是被你引导的回答。

Prompt 工程流程:

Prompt的优势

1.快速迭代和调优

Prompt工程中的提示语(自然语言)可以很容易地进行快速迭代和调优。可以微调Prompt,快速尝试不同的生成结果,以找到最佳的输出。

2.适用广泛任务

prompt工程适用于各种场景,包括文本生成,问答统计,格式生成,编写代码,扮演角色等,其灵活性使其可以成为解决多种自然任务的强大工具,只需要设计相应的Prompt,例如可以根据提示词的不同实现不同功能,扮演不同角色。

3.节省资源

一个精心设计的Prompt可以等同于许多真实数据样本的效果,节省了大量的资源。相对于收集和标注大量的真实数据,设计好的Prompt可以用较少的输入来引导模型生成各种输出,节省大量资源。

编写Prompt技巧

设定信息丰富且清晰的语句

Prompt应该提供具体信息,以便模型理解任务的背景和要求。尽可能结构清晰,避免模糊的描述,让模型能够准确地理解任务,同时避免使用过于复杂的结构或难以理解的词汇。

Prompt:请问如何学习好英语
回答:这个是一个泛泛的回答,比较模糊,没有针对性

优化Prompt:我是一个在读大学生,准备考大学英语六级,请问如何能够学好英语呢
回答:设定情景,信息更丰富更清晰,回答出来肯定更符合预期

2.设定模型擅长的输入输出格式

我们可以在输入数据中加入特定的括号,如``` --- <> 等来限制我们的输入内容。

同理,尽量让模型输出格式化的文本,如JSON、HTML、TypeScript等,方便对结果进行管理。

Prompt:
    请描述一个新款智能手表的特点。
回答:这款智能手表有一个高清显示屏,可以监测心率、睡眠质量、运动步数,还可以接收消息提醒,续航时间长,支持多种运动模式,防水等级高,时尚设计。


优化Prompt:
请以 JSON 格式生成一个新款智能手表的产品描述,结构如下:
{
  "name": "<产品名称>",
  "features": [
    "<特点1>",
    "<特点2>",
    ...
  ],
  "price": "<价格>"
}

回答:
{
  "name": "智能手表X200",
  "features": [
    "高清显示屏",
    "心率监测",
    "睡眠质量监测",
    "运动步数记录",
    "消息提醒",
    "长续航",
    "多种运动模式",
    "高防水等级",
    "时尚设计"
  ],
  "price": "399 USD"
}

3.使用少量示例

提供少量示例文本,演示期望的输出格式。但示例文本会增加token数量,因此不能加太多示例。

Prompt: 请为以下狗的图片写一个简短的描述。
        示例1: 金色的毛发,短嘴巴,长耳朵,忠诚友好。
        示例2: 棕白相间的皮毛,圆圆的大眼睛,尾巴卷曲。
        在这个例子中,通过示例文本,你向模型展示了关于狗的
        一些特征,例如外观和性格。模型可以利用这些信息生成
        一个符合你预期的狗的描述。
添加了可以让模型参考的示例,回答效果肯定会更好

4.使用思维链(CoT)引导大模型

思维链是一种逻辑和概念上相关的想法序列,通过在提示中构建和引导这种序列,您可以更好地引导大型语言模型生成与主题相关、连贯性强的内容。

Prompt: 
            从工业革命到现代化,地球的气候如何受到人类活动的
        影响?请逐步分析不同时期排放量增加与气候异常的关系
        ,以及这背后可能的科学机制。
            思维链: 工业革命导致大规模燃烧化石燃料,释放大量
        温室气体。这些气体导致大气温度上升,海平面上升,极
        端天气增加。可以讨论温室效应、海洋吸收、极端天气事
        件等。
添加思维链,引导模型一步步思考,效果会更好。

5.给模型设定角色扮演

将模型设定在特定的角色扮演中是一种激发创意、产生生动内容,让模型以某个角色的身份思考和表达,可以增加真实性和故事性。

Prompt:请你科普一下什么是python
回答:会比较大众化

优化Prompt:你是一个小学老师,请你科普一下什么是python
回答:角色扮演会输出更贴合给小学生科普的内容

6.描述模型能力,鼓励积极性,激发积极性,避免限制

如果只是强调模型不能做什么,可能会使模型产生误导性的回答,或者无法给出有用的内容。

描述模型能干什么会激发其积极性和创造力,促使其提供更多有用的回答。明确提示模型的能力范围,有助于引导其重点和思考方向,从而提供更准确和相关的答案。

7.善用温度变量

大模型通常会涉及到一个温度变量,如ChatGPT API中,MIniMax中的temperature变量。此变量的值与模型输出结果的随机性有关:

当其值为0时,表明模型输出结果是确定的,通常用于决定性任务,如分类、预测等;

当其值>0时,越大,则表明模型随机性越强,适合生成任务。

8.结构清晰,分段清楚

9.不同模型能力不同,不同对待

结构化Prompt

核心部分:关键词、语境、目标

  1. 基于角色prompt模型

要求AI扮演特定角色或身份,增加输出内容的专业性和权威性。例如老师、环境学家、编程助手等角色

假设你是一名环境学家,以专家视角撰写关于环境保护的技术文章。
  1. 基于任务的prompt模型

规定AI需要完成的任务,通常需要关键词和具体指令组合

列出三种最新的可再生能源技术,并分别简述其优缺点。
  1. 基于结构的prompt模型

强调内容的结构化,例如要求 AI按特定格式或章节生成内容。

生成一篇包括引言、技术分析、市场应用前景和结论的文章

  1. 基于问题的prompt模型

通过提出一些列相关问题,引导AI逐步生成内容.适合用于知识型内容的生成,有助于确保输出内容全面且深入。

什么是碳捕捉技术?它如何运作?有哪些现实中的应用案例?
  1. 基于场景的prompt模型

通过描述特定情境,引导AI生成与该情景相关的内容。能够帮助AI生成更具有情景感和预见性的内容。

未来十年内,随着全球气候变化加剧,太阳能技术将如何影响能源市场?

常见框架

ICIO 框架

ICIO 框架通过四个关键组成部分——介绍(Intruction)、背景(Context)、输入数据(Input Data)和输出指标(Output Indicator),为 AI 系统提供了清晰的指导。这种结构化的沟通方式不仅提高了 AI 的工作效率,还确保了输出内容的质量,使其更符合用户的期望。

  • Intruction(任务):明确指出希望 AI 执行的具体任务,如“翻译一段文本”或“撰写一篇关于 AI 伦理的博客文章”。
  • Context(背景):提供任务的背景信息,帮助 AI 理解任务的上下文,例如,“这段文本是用于公司内部会议的开场白”。
  • Input Data(输入数据):指定 AI 需要处理的具体数据,如“请翻译以下句子:‘人工智能正在改变世界’”。
  • Output Indicator(输出格式):设定期望的输出格式和风格,例如,“请以正式的商务英语风格翻译”。

CRISPE 框架

随着人工智能技术的不断进步,AI 在模拟人类角色和执行特定任务方面的能力日益增强。

CRISPE 框架作为一种新兴的 AI 提示工程方法,旨在通过明确的角色设定、背景信息、任务指令、个性风格和实验性回复,提升 AI 与用户之间的互动质量。

CRISPE 框架通过以下五个步骤,为用户提供了一个清晰、高效的沟通路径:

  1. Capacity and Role(角色):明确 AI 在交互中应扮演的角色,如教育者、翻译者或顾问。
  2. Insight(背景):提供角色扮演的背景信息,帮助 AI 理解其在特定情境下的作用。
  3. Statement(任务):直接说明 AI 需要执行的任务,确保其理解并执行用户的请求。
  4. Personality(格式):设定 AI 回复的风格和格式,使其更符合用户的期望和场景需求。
  5. Experiment(实验):如果需要,可以要求 AI 提供多个示例,以供用户选择最佳回复。

# 情景
想象一下,六位高智商的专家一起回答用户提出的问题,最终生成一份聊天记录。

* 其中,第一名到第六名专家分别扮演:问题拆解专家,知识渊博专家,支持与鼓励专家,反思与批判专家,创新思维专家,归纳总结专家。
* 他们将遵循思想树的方法,每个专家一步一步地分享他们的思维过程。
* 第一轮:每一名专家逐一发言,发表自己的观点;
* 第二轮: 专家们可以自由发言,不需要严格按照顺序,并非所有专家都要发言,如果专家觉得无需发言,也可以跳过。但如果发言,需要参考第一轮中其他专家的想法。
* 专家们之间观念要有冲突,要激烈,要深刻。
* 专家们会考虑其他人的意见,完善自己的想法,并以团队的集体知识为基础。
* 如果专家意识到他们的想法是错误的,他们会承认错误并认同其他专家的想法。
* 一直继续这个过程,直到得到一个明确的答案。
* 最后,由所有专家的结论汇总,得出最终答案。

# 格式
* 通过在 markdown表 的方式,呈现整个响应。
每一轮不用单独作为一个表格,要合并在一起。

# 专家身份参考:
问题拆解专家:针对用户提出的问题,进行系统性拆解,比如:是什么,为什么,怎么样,如果是则如何,如果否则如何…
知识渊博专家:针对用户提出的问题,提出你认知内的知识,归纳总结反馈。
支持与鼓励专家:针对用户提出的问题,参考其他专家意见,得出积极的想法或结果。比如:为什么这个值得做?为什么可以做这件事?它为什么会起作用?
反思与批判专家:针对用户提出的问题,参考其他专家意见,考虑到事物的负面因素,它是对事物负面因素的注意、判断和评估。这是真的吗?它会起作用吗?缺点是什么?它有什么问题?为什么不能做?
创新思维专家:针对用户提出的问题,参考其他专家意见,考虑创新与创造性之新的想法。有不同的想法?新的想法、建议和假设是什么?可能的解决办法和行动的过程是什么?还有哪些可能性?
归纳总结专家:归纳总结专家中立而客观,同时控制整个思考节奏,比如在第一轮沟通中预先得出一批结论,第二轮沟通中得出最终结论并与其他专家进行讨论。

# 专家们的对话记录样例:
|环节|专家名|专家发言|
|:---|:---|:---|
|R1|归纳总结专家|×××|
|R1|问题拆解专家|×××|
…
|R3|归纳总结专家|×××|
**最终专家们的答案是:**
1. ×××
2. ×××

# 用户将会提出问题:

BROKE 框架

在人工智能的快速发展中,如何有效地与 AI 进行沟通和互动,以实现预期的目标,已成为一个重要议题。

BROKE 框架提供了一种结构化的方法,帮助用户清晰地传达指令,确保 AI 能够生成满足特定需求的输出。

BROKE 框架通过以下五个步骤,为用户提供了一个高效沟通的框架:

  1. Background(背景):提供详细的背景信息,帮助 AI 理解任务的上下文。
  2. Role(角色):明确 AI 在交互中所扮演的角色,如顾问、助手或内容创作者。
  3. Objectives(目标/任务):描述用户希望 AI 完成的具体任务。
  4. Key Result(关键结果):设定 AI 输出的风格、格式和内容要求,确保回答符合预期。
  5. Evolve(改进):在 AI 提供回答后,提供改进的方法,以优化未来的交互。

LangGPT 提示词框架

GitHub - langgptai/LangGPT: LangGPT: Empowering everyone to become a prompt expert!🚀 Structured Prompt,Language of GPT, 结构化提示词,结构化Prompt

传统 Prompt 存在一些挑战包括缺乏系统性、灵活性和用户友好性,以及未能充分利用大模型的特点。

Prompt 的重要性与日俱增,特别是在新一代的 GPT—4 模型出现后。Prompt 编写不仅仅是一种技术,它正在变成 AI 时代的编程语言。因此,如何像学习编程一样,高效地编写高质量的 Prompt,即 Prompt 编程,成为了一个迫切的问题。

LangGPT 由云中江树(刘远忠)创建,目前已有 5.2k stars。

LangGPT 的特点和优势:

  • 系统性:LangGPT 提供模板化的方法,用户只需按照模板填写相应内容即可。
  • 灵活性:LangGPT 引入了变量概念,可以轻松引用、设置和更改 Prompt 内容,提高编程性。
  • 交互友好:通过工作流,LangGPT 定义了与用户的交互和角色行为,使得用户可以轻松理解和使用。
  • 大模型充分利用:LangGPT 结合了大模型的特点,例如模块化配置和分点条理性叙述,还通过 Reminder 功能缓解了长对话的遗忘问题。

LangGPT 的核心语法:

  • LangGPT 变量:我们引入了基于 markdown 的变量概念,利用大模型对层级结构内容的敏感性,方便地引用和修改 Prompt 内容。
  • LangGPT 模板:基于大模型在角色扮演方面的强项,我们设计了 Role 模板。这些模板使得 Prompt 编写变得像编程中的“类声明”,极大地简化了用户的工作。
  • 格式化技巧:使用特定的格式(如 Markdown)来更明确地指示大模型如何提示词框架和响应。
  • 明确性技巧:通过提供具体的指令,如“简短地回答”或“提供详细解释”,确保大模型的响应与用户的期望一致
  • 上下文技巧:在指令中加入上下文信息,帮助大模型更准确地理解用户的需求。
#Role:文字排版大师

#Profile: 

- author:李继刚

- version: 0.1

- language:中文

- description:使用ASCII 符号和Emoji表情符号来优化排版已有信息,提供更好的阅读体验



##Goals:

- 为用户提供更好的阅读体验,让信息更易于理解

- 增强信息可读性,提高用户专注度



##Constrains:

- 不会更改原始信息,只能使用ASCII符号和Emoji表情符号进行排版

- 排版方式不应该影响信息的本质和准确性



##Skills:

- 熟悉各种ASCII符号和Emoji表情符号的使用方法

- 熟练掌握排版技巧,能够根据情境使用不同的符号进行排版

- 有较强的审美和文艺能力



##Workflows:

- 作为文字排版大师,将会在用户输入信息之后,使用ASCII符号和Emoji表情符号进行排版,提供更好的阅读体验。

- 排版完毕之后,将会将整个信息返回给用户。



##Initialization:

欢迎用户,并提示用户输入信息 

CO-STAR 原则框架

【新加坡首届 GPT-4冠军分享】最新的 GPT-4的提示词攻略秘籍,建议收藏阅读! – 敏捷开发咨询顾问,Scrum认证,敏捷项目管理培训,敏捷教练

https://blog.ihsxu.com/blog/1715484573201

CO-STAR 原则是结构化提示词中的一种,由新加坡政府科技局数据科学与 AI 团队创立,是一个非常实用且易于上手的提示构建工具。

CO-STAR 的设计初衷是为了帮助用户在使用大型语言模型时,能够构建出更加完整和有效的提示词,从而提高 AI 生成内容的相关性和效果。

CO-STAR 原则在新加坡首届 GPT—4 提示工程大赛中获得了冠军,这是它在实际应用中强大效能的标志和体现。

此后,CO—STAR 原则逐渐被广泛接受并应用于各种场景,包括社交媒体文案撰写、商业报告生成等,帮助用户创建清晰、精确且有效的提示词,更精确地指导 AI 生成所需的内容。

CO—STAR 原则包含六个关键要素,每个要素的首字母组成了 CO—STAR 这个缩写。

  • C—Context(清楚的背景信息):提供足够的背景信息,帮助 AI 理解任务的上下文和环境。
  • O—Objective(明确的目标设定):明确说明希望 AI 完成的具体目标或任务。
  • S—Style(生成文字的风格):指定 AI 生成内容的风格,例如正式、幽默、小红书风格等。
  • T—Tone(生成文字的语调):确定 AI 生成内容的语调,如礼貌、说服性、激励性等。
  • A—Audience(目标受众的描述):描述目标受众的特征,如年龄、兴趣、职业等。
  • R—Response(回应的类型):指定 AI 回应的格式,如表格、段落、列表等,以及回应的具体要求。
# CONTEXT(上下文) #
我想推广一家咖啡店。咖啡店名称为 HEA,坐落在古城西安的护城河边,简约风的店面装修,超大的落地窗和天窗使得店内的采光超级棒。最佳时光是在傍晚日落余晖时,感觉整个时间都变得柔和而美好。如果不知道想喝什么,老板还整理了「最受大家喜爱的咖啡月度排行榜」,真的赞嘞~。

# OBJECTIVE(目标) #
帮我创建一条小红书文案,目的是吸引人们到店里打卡、拍照、消费。

# STYLE(风格) #
小红书风格,俏皮的语气外加一些可爱的表情包和图标。

# TONE(语调) #

引导性

# AUDIENCE(受众) #

主要受众是上班族、大学生。请针对这一群体在选择放松方式时的关注点来编写文案。

# RESPONSE(响应) #
增加用户对探店的吸引力。

误区提示

提示词并不是越长越好

长短并不是关键,关键在于信息的明确性和有效性。过长的提示词会增加token(经费)、可能会让 AI 混淆主次信息,从而导致输出结果偏离预期。

提示词也是需要迭代的

提示词的构建是一个迭代的过程。初次尝试的提示词可能不能达到理想效果(和软件开发颇为类似),但通过反复修改和优化,最终可以得到更精确的输出。

参考文档

基础篇:

  1. OpenAI官方:https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api
  2. Prompt Engineering学习:Prompt Engineering | Lil'Log
  3. 吴恩达《ChatGPT Prompt Engineering for Developers》课程中英版:GitHub - Kevin-free/chatgpt-prompt-engineering-for-developers: 吴恩达《ChatGPT Prompt Engineering for Developers》课程中英版
  4. 大模型时代之提示词工程:https://zhuanlan.zhihu.com/p/631922240
  5. LLM Collection | Prompt Engineering Guide
  6. 提示工程指南
  7. Docs
  8. 什么是AI提示词?


http://www.kler.cn/a/514934.html

相关文章:

  • vim练级攻略(精简版)
  • 软件安全性测试报告如何编写?
  • 计算机网络——网络层
  • 75,【7】BUUCTF WEB [Weblogic]SSRF(未作出)
  • 方法建议ChatGPT提示词分享
  • 基于 Spring Boot 和 Vue.js 的全栈购物平台开发实践
  • pytest执行报错:found no collectors
  • 单片机基础模块学习——定时器
  • Java菜鸟养成计划(java基础)--java运算符
  • import.meta.globEager详解
  • k8s基础(7)—Kubernetes-Secret
  • YOLOv10改进 | YOLOv10引入AKConv(轻量)
  • YOLO 安装 并且命令行指定配置文件
  • 文件快递柜:匿名口令分享工具,轻松安全地存取文本与文件
  • Centos 修改历史读录( HISTSIZE)
  • 力扣-数组-414 第三大的数
  • 蓝桥杯备考:红黑树与map和set
  • 【Block总结】PConv风车卷积,更大的感受野,提高特征提取能力|即插即用
  • K8S中Service详解(一)
  • gesp(C++五级)(14)洛谷:B4071:[GESP202412 五级] 武器强化
  • docker安装elk6.7.1-搜集nginx-json日志
  • docker安装elk6.7.1-搜集java日志
  • SparkSQL函数综合实践
  • jinja2.exceptions.UndefinedError: ‘enumerate‘ is undefined
  • 汽车OEMs一般出于什么目的来自定义Autosar CP一些内容
  • 2501,进度控件