转自 | 新智元
编辑 | 好困 Aeneas
如何才能让大规模语言模型输出自己想要的结果?现在,一本超全超详提示工程指南来了,GitHub已标星4.7k。
提示工程,可以说是玩转ChatGPT、DALL·E 2等等这类AI模型的「必修课」。
但这个「提示」(prompt)具体要怎么写,多少都有些玄学在里面……
也难怪由此诞生的新职业——提示工程师
就在前不久,一位来自斯坦福大学的华人本科生Kevin Liu,就通过prompt injection的方法,让微软ChatGPT搜索的全部prompt泄露。此后,更是掀起了一股调戏ChatGPT的热潮。
而今天新发布在GitHub上的一个项目,整理了提示工程的指南、论文、讲座和资源,堪称史上最全prompt资料包。
项目地址:https://github.com/dair-ai/Prompt-Engineering-Guide
凭借着一天近1k星的增长,这篇「提示工程指南」同时登上了GitHub Trending,和Hacker News热榜。
指南内容
语言模型的输出需要通过输入的提示实现,但结果的质量取决于你为它提供多少信息。
随着我们介绍越来越多的例子和提示工程的应用,你会注意到,一个提示通常会由几种不同的元素构成:
指令:希望模型执行的具体任务或指示
背景:补充的外部或上下文信息,可以引导模型做出更好的反应
输入数据:想要解决的输入或问题
输出指示:输出的类型或格式
究竟该怎样玩转提示工程呢?GitHub上的这份指南,会提供很大的帮助。
这份指南包括演讲、提示介绍、论文、工具和库、数据集、博客和教程等读物,总共6个部分。
50页PPT,一小时超详细讲座
在「讲座」这部分,包含了长达一小时的视频,代码示例,以及一份配合讲座的50页PPT。
其中,视频包含4个部分,分别是提示工程简介、提供工程的技术、工具和应用程序、未来方向。
视频和PPT都对prompt的定义做了详细介绍:prompts是指为了实现特定任务,传递给语言模型的指令和上下文。
而提示工程是创建一组提示或问题的过程,用于引导用户获得自己期望的结果。
为什么提示工程如此重要?
因为它对研究、发现很重要,能够用来帮助测试大语言模型的各种极限,还能在大语言模型上的基础上开发各种创新型的应用。
为什么提示工程如此重要?
因为它对研究、发现很重要,能够用来帮助测试大语言模型的各种极限,还能在大语言模型上的基础上开发各种创新型的应用。
提示指南
团队开发的提示工程指南,主要由5部分构成:
简介
基础提示
文本归纳
问题回答
对话
代码生成
推理
进阶提示
few-shot提示
思想链(CoT)提示
zero-shot CoT
自洽性
生成知识提示
自动提示工程师(APE)
对抗性提示
忽略以前的指令
提示泄漏
越狱
其他
程序辅助的语言模型
ReAct
多模态CoT提示
图提示
论文合集
团队每天都会更新有关提示工程的最新论文,并且每周都会将这些论文的摘要纳入上述指南中。
比如,LeCun今年2月的新作「Augmented Language Models: a Survey 」就被收录了进来。
具体来说,作者把论文分成了4个大类:
调查/概述
方法/技巧
应用
补充
工具资料包
数据集
博客、指南、教程和其他
这部分主要是来自大佬们的经验总结。
作者介绍
主导这个项目的Elvis Saravia,是DAIR.AI的联合创始人。
他在台湾清华大学取得了信息系统与应用的硕士和博士学位。
在此之前,他在Meta AI担任了2年技术产品营销经理,并曾是NeurIPS研讨会和NAACL 2019的程序委员会的成员。
从Linkedin上的经历来看,这位朋友似乎也曾负责过LeCun一直心心念的Galactica。
参考资料:
https://github.com/dair-ai/Prompt-Engineering-Guide