当然, 参考下这些好的Prompt是非常有价值的. 但写出好的Prompt的一个关键的方式不在于去抄那些好的Prompts, 而是自己持续去改进微调你的Prompts. 根据你的期望,提出一个Prompt, 向ChatGPT提问 获得ChatGPT的响应,比对结果与你的期望的差距, 调整Prompt,弥补ChatGPT忽略的地方 再次获得ChatGPT的响应,检查是否满足你的需求 这才是好的Prompt的生成的最佳方式. 不存在一个放之四海皆标准的好Prompt, 你需要持续的与ChatGPT互动,去微调你的Prompt,才有可能让它更满足你的需求. 这篇文章是我从我过往的文章中随便选出来的 -- JMeter与LoadRunner的简要对比 第一版Prompt 我希望ChatGPT帮助我总结这篇文章说了什么, 所以我的第一版的Prompt是这样的 所以意识到这一点后,我改进了我的Prompt 第二版Prompt 我提供了一段文章,以---开始并结束. --- .... 文章内容过长,忽略.
于是有了 「Prompt工程师」这一岗位,专门撰写适配 LLM 的 Prompt,从而让模型能够更好地生成内容。而另一种更为有效的方案则是,让模型向人对齐。 因此,我们提出另外的一种方案,即黑盒提示对齐优化技术(Black-box Prompt Optimization),通过优化用户指令,从输入角度对模型进行对齐。 三、研究者说问:BPO 和反馈学习方法(PPO、DPO)以及 Prompt Engineering方法(如OPRO)的区别是什么? 与 OPRO 对比,BPO 最大的特点在于更加通用,OPRO 等现有的 Prompt Engineering 技术大多需要针对特定的数据进行搜索,并且会搜索得到一个针对特定任务的提示。 而 BPO 在训练得到提示优化器后,可以优化各种用户指令。问:BPO能否针对一条指令进行迭代优化?
通过前面4篇内容我们了解了基本的Prompt用法,今天我们来学习终极的Prompt设计方法! 要求: 1、推荐书籍的豆瓣评分:8分起 2、我的偏好是:中文(包含已翻译为中文的国外书籍)、脍炙人口或幽默的文笔 3、当我没有指定推荐数量时,默认推荐5本,即 [/数量]=[/5] 4、请注意核对信息, Part5. 要求: 1、推荐书籍的豆瓣评分:8分起 2、我的偏好是:中文(包含已翻译为中文的国外书籍)、脍炙人口或幽默的文笔 3、当我没有指定推荐数量时,默认推荐5本,即 [/数量]=[/5] 4、请注意核对信息, 比如:你给的惊喜《万历十五年》不是科技类,请修正 经过一定程度地试错和修正,我们可以对之前的prompt进行优化和精简: 你是一位重磅好书推荐助手,作为一名睿智的书虫,你善于向喜欢高质量阅读的群体有效地推荐重磅好书
04 2023-06 学习笔记|ChatGPT Prompt Engineering for Developers 5 吴恩达chatGPT课程学习笔记&简单翻译,有兴趣的同学还是去看原版的课程比较好~ 感兴趣的同学请去看原版的课程,原本的课程是免费的: https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers details/130489953 搭建聊天机器人 借助chatgpt,我们可以很快速地搭建一个聊天机器人出来:首先构造一下辅助函数,以便AI进行多轮对话的任务 def get_completion(prompt 比如,通过构造这样一个函数来自定义一个点餐的机器人: def collect_messages(_): prompt = inp.value_input inp.value = '' context.append({'role':'user', 'content':f"{prompt}"}) response = get_completion_from_messages
为了能够让LLMs发挥出最佳性能,自动提示(Auto-Prompt)工程至关重要。 今天给大家分享的这篇文章,提出了一种名为Intent-based Prompt Calibration (IPC) 的系统,旨在通过使用合成案例样本来优化大型语言模型(LLMs)的提示(prompt)工程 「该方法核心思想是根据用户意图迭代地细化提示」, 在优化过程中,系统生成相关案例样本数据集,并根据生成的数据集优化提示。 为了解决大模型的提示敏感性问题,有人提出使用软提示(soft-prompt)的方法,但此类方法需要对LLM本身做相应的改变才可进行优化。然而最近的研究表明,可以通过大模型本身来优化提示。 优化过程中,首先通过提供一个元提示(meta-prompt)来迭代执行,这个元提示结合最近几次的提示分数,最后引导模型选出分数更高的提示。
Prompt进阶系列5:LangGPT(提示链Prompt Chain)–提升模型鲁棒性 随着对大模型的应用实践的深入,许多大模型的使用者, Prompt 创作者对大模型的应用越来越得心应手。 ## Attention: 用户在努力学习如何写出优秀的 Prompt, 但遇到了难题, 不知从何改进. 你会尽自己最大的努力来尽可能详细地分析, 帮助用户学习如何进行分析, 如何进行优化. Claude 官方甚至针对 xml 结构标记进行了针对性优化,以更好的支持结构化提示词内容。 (当然你也可以请你的朋友帮你这么做)” 5. 前面小七姐的 MBTI 大师+ Midjourney 画像的例子两个任务关联度就较低,所以需要进行较多额外调试优化。在实践中若发现调试优化后效果仍然不佳,建议将两个任务独立为两个 Prompt。
上一章我们聊了标准化的Prompt生成方案DSPy,但DSPy还是更多依赖few-shot的Prompt编写范式,在纯任务描述型指令上的优化效果有限。这一章我们就重点关注描述性指令优化。 我们先简单介绍下结构化Prompt编写,再聊聊从结构化多角度进行Prompt最优化迭代的算法方案UniPrompt1. 相比上一章DSPy里面提到的大模型反思直接优化,以及随机搜索的方案要更加有系统针对性~Prompt Optimization?论文前面很有意思,作者先尝试论证定向Prompt最优化这个事它靠不靠谱。 这里两阶段的设计和梯度累计的思路相似,其实还是想要降低个别样本,甚至个别mini-batch在prompt迭代时陷入个性而非共性优化的问题(其实你只要试试用大模型去做过prompt优化就会发现模型非常容易被带偏 这里只保留修改后验证集打分有提升的新prompt(greedy),并在每一步都维护多个优化后效果最好的prompt(类比Beam-Size=2),停止迭代的信号是连续5轮在验证集上没有效果提升。
优化目标: 用于一个学习对话类的游戏。可以让大学生,特别是男孩子学会如何与女孩子对话。 此对话应用于对话小游戏: 【寻找游戏大模王】利用千帆大模型4制作小游戏 优化操作指引 优化指引在新手引导里面,右上角,直接点就行,描述的很直接,有动作指引。 ; 5、信息5是渣女对信息3普通男的回复并告知回答错误给与错误惩罚。 优化效果还是不错的,这里有一些参数我们来看着调整。 这样又生成了个模板: 总结 这只是一个简单的游戏对话的优化,虽然可以在结果中看到想要解析出来我们需要的接口还是比较麻烦的,如果要能根据结果再做反推就好了,期待这个功能。
并没有太多从语义和上下文关联的角度去进行prompt模板的构建,我猜这是T5在论文中提到他们尝试了不同的prompt模板发现效果影响有限的原因(哈哈因为都不太好所以没啥差异),不不能否定T5在通用LM上做出的贡献 ,效果超越GPT3 这篇paper和上面的PET-TC是同一作者,算是上文的续作,主要优化了Answer词单token设定,支持多个token作为标签词,不过限制性依旧较强是预先设定任务最大的token : 完形填空自动搜索prompt Task: Text Classification Model: Bert or Roberta Take Away: 把人工构建prompt模板和标签词优化为自动搜索 LM-BFF是陈丹琦团队在20年底提出的针对few-shot场景,自动搜索模板和触发词的Prompt方案,prompt模板延续了PET的完型填空形式,把人工构建prompt和标签词的构建优化成了自动搜索 prompt模板搜索 固定标签词,作者使用T5来进行模板生成,让T5负责在标签词前、后生成符合上下文语义的prompt指令,再在所有训练样本中选择整体表现最优的prompt模板。
并没有太多从语义和上下文关联的角度去进行prompt模板的构建,我猜这是T5在论文中提到他们尝试了不同的prompt模板发现效果影响有限的原因(哈哈因为都不太好所以没啥差异),不不能否定T5在通用LM上做出的贡献 效果超越GPT3 这篇paper和上面的PET-TC是同一作者,算是上文的续作,主要优化了Answer词单token设定,支持多个token作为标签词,不过限制性依旧较强是预先设定任务最大的token数 : 完形填空自动搜索prompt Task: Text Classification Model: Bert or Roberta Take Away: 把人工构建prompt模板和标签词优化为自动搜索 LM-BFF是陈丹琦团队在20年底提出的针对few-shot场景,自动搜索模板和触发词的Prompt方案,prompt模板延续了PET的完型填空形式,把人工构建prompt和标签词的构建优化成了自动搜索 prompt模板搜索 固定标签词,作者使用T5来进行模板生成,让T5负责在标签词前、后生成符合上下文语义的prompt指令,再在所有训练样本中选择整体表现最优的prompt模板。
AI 提示词(Prompt)设计优化方案 | 高效使用 AI 工具嘿,各位技术探索家们!在这个 AI 横行的时代,你是不是常常感觉自己和 AI 之间隔着一层 “神秘面纱”? 迭代优化机制建立设计提示词不是一蹴而就的,需要不断打磨、优化 。建立提示词优化闭环,包含测试、评估、改进三个阶段。 优化后的指令可以添加多维约束 :“生成 5 道适合小学五年级学生的分数运算应用题,要求:结合超市购物、烹饪食谱等生活场景包含单位换算和约分操作错误答案中包含常见计算误区输出格式为题干 + 分步解析”这种方式使题目与教学大纲的匹配度达到 请举例说明提示词的迭代优化过程优化案例:初始提示:"写一篇关于新能源汽车的文章"1st优化:"写一篇2000字的行业分析文章,重点对比比亚迪和特斯拉的技术路线"2nd优化:"补充2024年最新电池技术参数 自动化优化系统# 提示词自动优化算法框架def auto_optimize(prompt): while True: response = call_llm(prompt)
Prompt工程师指南应用篇:Prompt应用、ChatGPT|Midjouney Prompt Engineering 1.ChatGPT Prompt Engineering 主题: 与 ChatGPT A Comparative Study on ChatGPT and Fine-tuned BERT (Feb 2023) A Prompt Pattern Catalog to Enhance Prompt 质量 --quality <.25,.5,1或2>,或--q <.25,.5,1或2> 表示您要花费多少时间渲染质量。默认值为1。更高的值成本更高,更低的值成本更低。 3.Prompt 应用 在这个指南中,将介绍一些高级和有趣的方式,通过 prompt engineering 来执行有用的更高级别的任务。 请注意,本节正在积极开发中。 DATE_UNDERSTANDING_PROMPT = """ # Q: 2015 is coming in 36 hours.
从上面的代码我们能看出时间复杂度是O(N^2^) 双指针优化 在某些情况下,根据题目要求,j下标并不需要从i+1重新往后枚举一遍,而是跟随着i向后移动,j也向后移动 ? ,x + k - 1) return x + k - 1 以题目样例为例,由于k=5,现有最大整数是13。 Hashtable.find(i) need_card++; return need_card <= M 这样整个算法的时间复杂度是O(PK),P是这个数组的最大值,所以有可能有10^8^这么大,K最大10^5^ ,显然会超时 优化1 第一个能优化的地方是对于X的枚举,也就是顺子开头的数值。 ,X+K) 优化2 第二个可以优化的地方就是判断能不能凑出X开头的顺子。我们利用双指针可以把这一步均摊时间复杂度降到O(1)。
评估程序(或“评估”)对于优化系统设计很有用。
Toronto events 5. Restaurants in Toronto 6. Shopping in Toronto 7. Travel tips for Toronto 8.
Toronto events 5. Restaurants in Toronto 6. Shopping in Toronto 7. Travel tips for Toronto 8.
1 人工构造prompt 最基础的方法就是基于人工知识来定义prompt模板。Prompt模板可以分为prefix prompt和cloze prompt两类。 对于prompt模板的生成,本文使用了预训练的T5模型。 T5模型在预训练阶段采用了mask span任务,输入一个被mask掉多个span的文本,在decoder处对mask掉的span进行还原,这正好可以用于prompt生成。 具体例子如下图,对于任务的每个类别构造如下的输入,将prompt部分的除了已经确定好的label对应的词外都mask掉,让T5模型去生成各个模板的各个位置应该填什么,最后再进行finetune看哪个生成的 GPT Understands, Too(2021)采用的思路是将人工定义的prompt的token对应的embedding从预训练模型输出的改为一个可学习的hidden向量,让模型去优化。
5. 早期编译优化 早期编译优化主要指编译期进行的优化。 javac这类编译器对代码的运行效率几乎没有任何优化措施,但javac做了许多针对java语言代码过程的优化措施来改善程序员的编码风格和提高编码效率,java许多的语法特性都是靠编译器的语法糖来实现的。 遍历循环 遍历循环语句是java5的新特征之一,在遍历数组、集合方面,为开发人员提供了极大的方便。 public void circle() { Integer[] array = { 1, 2, 3, 4, 5 }; for (Integer i : array) { System.out.println 变长参数 Arrays.asList(1, 2, 3, 4, 5); 条件编译 条件编译也是java语言的一种语法糖,根据布尔常量值的真假,编译器将会把分支中不成立的代码块消除掉。
具体而言,我们把从0到1完成一个 Prompt 的过程拆分为了5个步骤。 02、Prompt 万能框架 在编写 Prompt 时,从0到1的编写出第一版 Prompt 往往是最难的,而基于已有 Prompt 利用各种技巧进行优化则相对简单。 对于大模型而言,这当然也是试用的,甚至十分好用,这在第5章的 “CoT” 中还会再次提到。 6.2 让大模型帮你优化 Prompt 我们可以使用各种技巧优化我们的 Prompt,那大模型可不可以帮我们自动优化我们的 Prompt 呢? 我们的工作流可以分为 5 步,对应于文章 “第2节-第6节” 的 5 个章节: 通过 Prompt 模版写出第一版 Prompt。 细化模版各部分内容,整理 Prompt 格式。
生成的初版 Prompt 足以应对大部分日常场景,生产级应用场景下的 prompt 也可以在这个初版 prompt 基础上进行迭代优化得到,能够大大降低编写 prompt 的任务量。 - 迭代优化能力强,能通过不断调整和测试Prompt的表现,持续改进Prompt质量。 - 能结合具体业务需求设计Prompt,使LLM生成的内容符合业务要求。 每个类别下提供3-5条具体的建议,并用简单的句子阐述建议的主要内容。 4. 建议之间应有一定的关联和联系,不要是孤立的建议,让用户感受到这是一个有内在逻辑的建议体系。 5. Prompt,慢慢思考并一步一步进行输出,直到最终输出优化的Prompt。 同一 Prompt 在不同模型间的性能差异问题 其他已知问题等 5.相关文章推荐 更多Prompt框架技术细节和原理见相关文章 Prompt工程原理篇 大语言模型的预训练[3]之Prompt Learning