高能干货分享,有关提示词工程的一切都在这份教程里

人工智能 新闻
开源社区 DiamantAI 的主理人 Nir Diamant 发布了一套提示词工程技术库,系统性地教我们如何提高和 AI 的沟通技巧,更好发挥 AI 的潜能。

想让 AI 帮你自动搞定任务,离不开要在聊天框内用提示词对它发号施令。

但找到合适的提示词并不容易,这需要设计、优化和评估,不仅耗时,还需要自己学习技巧。

有时候,你可能感觉这和调参有着异曲同工之妙,怎么都是玄学?

尝试了不同的措辞、语气,甚至还和模型玩上了角色扮演。但实际上,就像一千个人眼中有一千个哈姆雷特一样,对于完全相同的提示词,模型也会给出不同的回答。因此,我们难以确定哪些方法真正奏效。

今天,开源社区 DiamantAI 的主理人 Nir Diamant 发布了一套提示词工程技术库,系统性地教我们如何提高和 AI 的沟通技巧,更好发挥 AI 的潜能。

图片


才上线几个小时,它就在 GitHub 上拿到了 200 多颗 star,并且还在以这个速度不断攀升。


图片

无论是像谷歌、微软这样的科技巨头,还是吴恩达等资深专家,以及众多行业大咖都推出过专业的提示词课程。更不用提,通过「魔法打败魔法」,用 AI 自动生成提示词的方法也是一抓一大把,比如这篇文章《还在人工炼丹?自动提示工程指南来了,还带从头实现》。

那么,为什么这个提示词课程还能脱颖而出,收到如此多的关注呢?

答案可能就在作者 Nir Diamant 自己写下的推荐语中:「所有与提示词工程相关的内容,你都能在这里找到!」

图片

从教程的体量上,就已经能感受到它有多全面了。它总共分 7 大部分,22 个章节,由易到难逐步进阶,条理分明,从基础概念入门,到最近流行的思维链提示词,鼓励 AI 模型将复杂问题分解为逐步推理过程。每节课都附有详细的代码。

图片

我们可以看到,教程从最基础的环境设置入手,如 OpenAI API 和 LangChain 库,逐步引导你从零样本提示开始,深入学习如何实现基础和高级的少样本学习,以及如何可重复使用,大大提升效率的结构化提示。

在整个学习的过程中,教程还会教你如何根据模型的响应进行迭代优化,不断提升提示效果。

在具体课程中,Nir Diamant 设计了各种案例,让你直观感受一下,提高自己的沟通技巧,对提升 AI 模型对事实的准确性有什么效果,即使是提示结构和措辞的微小调整,也能帮助 AI 更好地吃透你的需求。

有时,精心设计的提示词可能包含过多条件,导致提示过长,反而增加了模型理解的难度。课程还讲解了如何在提示词的细节和简洁性之间找到平衡。

和其他泛泛讲述提示词工程对等方面有什么应用的课程不同,学到后期,你就可以上手设计跨多语言工作、防止提示词注入并在提示词中实施内容过滤等等高级应用了。

  • GitHub 链接:https://github.com/NirDiamant/Prompt_Engineering

课程概览

基础概念

1. Introduction to Prompt Engineering,提示词工程入门:在 AI 和语言模型语境中全面介绍提示词工程的基础概念,其中包含理论解释和实际演示,覆盖了基础概念、结构化提示词、比较分析和解决问题的应用。

2. Basic Prompt Structures,基础提示词结构:其中探索了两种基本类型的提示词结构,包括单轮提示词和多轮提示词(对话)。其实现使用了 OpenAI 的 GPT 模型和 LangChain,演示了单轮和多轮提示词、提示词模板和对话链。

3. Prompt Templates and Variables,提示词模板和变量:介绍了如何使用变量来创建和使用提示词模板,重点是 Python 和 Jinja2 模板引擎。实现上,其中涉及模板创建、变量插入、基于条件的内容、列表处理、整合 OpenAI API。

核心技术

1. Zero-Shot Prompting,零样本提示:探索了零样本提示,让语言模型可以在没有具体示例或先验训练时也能执行任务。具体实现上,其中演示了直接任务规范设定、基于角色的提示词、格式规范设定和多步骤推理,使用的工具是 OpenAI 的 GPT 模型和 LangChain。

2. Few-Shot Learning and In-Context Learning,少样本学习和上下文学习:使用 OpenAI 的 GPT 模型和 LangChain 库介绍少样本学习和上下文学习技术。其实现包括基础和高级的少样本学习、上下文学习,还有示例选取方法和评估的最佳实践。

3. Chain of Thought (CoT) Prompting,思维链提示:介绍思维链提示技术,引导 AI 模型将复杂问题分解为逐步推理过程。其实现涵盖基础和高级思维链技术,解决各种问题的应用场景,并还比较了标准提示词技术。

进阶策略

1. Self-Consistency and Multiple Paths of Reasoning,自我一致性和多路径推理:探索生成多样化推理路径并聚合结果以改进 AI 生成的答案的技术。其实现包括设计多样化推理提示、生成多个响应、实现聚合方法和应用自我一致性检查。

2. Constrained and Guided Generation,有约束和引导的生成:专注于设置模型输出约束和实现基于规则的生成技术。使用 LangChain 的 PromptTemplate 进行结构化提示,实现约束条件,探索基于规则的生成技术。

3. Role Prompting,角色提示:探索为 AI 模型分配特定角色并制定有效的角色描述。展示如何创建基于角色的提示,为 AI 模型分配角色,并针对各种场景优化角色描述。

高级实现

1. Task Decomposition in Prompts,提示词中的任务分解:探索复杂任务分解技术和提示词中的链式子任务。涵盖问题分析、子任务定义、定向提示词工程、按顺序执行和结果综合。

2. Prompt Chaining and Sequencing,提示链和序列处理:演示如何连接多个提示词并为复杂的 AI 驱动的任务构建逻辑流程。其实现中探索了基本的提示链、序列提示、动态提示词生成和提示链中的错误处理。

3. Instruction Engineering,指令工程:专注于为语言模型制定清晰有效的指令,平衡专用性和通用性。其实现中涵盖创建和优化指令、实验不同结构,并基于模型响应实施迭代改进。

优化和改进

1. Prompt Optimization Techniques,提示词优化技术:探索提示词优化的高级技术,重点是 A/B 测试和迭代改进。在其实现中,演示了提示词的 A/B 测试、迭代改进过程,以及使用相关指标进行性能评估。

2. Handling Ambiguity and Improving Clarity,处理歧义和提高清晰度:专注于识别和解决模糊提示,以及编写更清晰提示的技术。在其实现中,涵盖分析模糊提示、实现消除歧义的策略,探索了编写更清晰提示的技术。

3. Prompt Length and Complexity Management,提示词长度和复杂度管理:其中探索了使用大型语言模型时管理提示词长度和复杂度的技术。在其实现中,演示了平衡细节和简洁性的技术,以及处理长上下文的策略,包括分块、汇总和迭代处理。

专业化应用

1. Negative Prompting and Avoiding Undesired Outputs,负面提示和避免不期望的输出:探索负面提示和避免大型语言模型产生不期望输出的技术。在其实现中,涵盖基本负面示例、明确排除、使用 LangChain 实现约束,以及评估和改进负面提示词的方法。

2. Prompt Formatting and Structure,提示词格式化和结构:探索各种提示词格式和结构元素,展示它们对 AI 模型响应的影响。在其实现中,演示了创建各种提示词格式、整合结构元素,并比较了不同提示词结构的响应。

3. Prompts for Specific Tasks,用于特定任务的提示词:探索为特定任务创建和使用提示词:文本摘要、问答、代码生成和创意写作。在其实现中,涵盖了设计任务特定的提示词模板,这些模板使用 LangChain 实现,可执行示例输入,并分析每种任务类型的输出。

高级应用

1. Multilingual and Cross-lingual Prompting,多语言和跨语言提示:探索设计在多种语言中有效工作的提示词和语言翻译任务的技术。在其实现中,涵盖创建多语言提示词、实现语言检测和适配、设计跨语言翻译提示词,以及处理各种书写系统和脚本。

2. Ethical Considerations in Prompt Engineering,提示词工程中的伦理考虑:探索提示词工程的伦理维度,重点是避免偏见并创建包容和公平的提示词。在其实现中,涵盖识别提示词中的偏见、实施创建包容性提示词的策略,以及评估和改进 AI 输出伦理质量的方法。

3. Prompt Security and Safety,提示词安全性:专注于防止提示词注入和在提示词中实现内容过滤,以确保 AI 应用程序的安全性。其实现中涵盖了提示词注入预防技术、内容过滤实现,以及测试安全措施的有效性。

4. Evaluating Prompt Effectiveness,评估提示词效果:探索评估 AI 语言模型中提示词效果的方法和技术。在其实现中,涵盖设置评估指标、实施手动和自动评估技术,并使用 OpenAI 和 LangChain 提供了实践示例。

如果你也正需要一个这样的提示词工程「百科全书」,那就赶紧:

1. 克隆这个库:

git clone https://github.com/NirDiamant/Prompt_Engineering.git

2. 找到你感兴趣的技术:

cd all_prompt_engineering_techniques

3. 跟随每个技术笔记本中的详细实现指南。

当然,你也可以为这个项目添砖加瓦,做出自己的贡献。

责任编辑:张燕妮 来源: 机器之心
相关推荐

2022-11-28 08:44:46

死锁面试线程

2019-08-13 17:10:18

键盘机械键帽

2015-01-15 09:35:30

2020-04-29 09:25:35

iOS 14苹果iPhone

2016-03-01 16:14:32

问问应用商店Android Wea

2019-04-11 14:51:12

数据

2023-08-11 08:00:00

人工智能Keras 3.0

2019-08-01 07:56:43

安全数据网络安全安全分析

2011-04-11 10:14:09

服务器虚拟化

2024-09-18 09:08:00

AIGitHubOpenAI

2019-10-12 10:52:54

数据IoT边缘计算

2020-09-26 21:57:44

python变量开发

2023-09-07 15:11:44

2021-12-13 22:47:31

人工智能机器人学习

2021-03-23 09:35:23

Inode文件Linux

2013-08-08 10:20:39

大数据

2009-01-16 18:33:22

服务器虚拟化VMware

2022-06-21 14:38:34

5G人工智能物联网

2015-08-18 14:00:55

容器DockerDevOps

2021-12-03 08:24:05

HttpTCP连接
点赞
收藏

51CTO技术栈公众号