提示词工程,你需要的全都在这里

掌握“提示词工程”技术,与AI高效沟通,释放其潜能,完成各类任务。

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

原文作者:机器之心

冷月清谈:

**提示词工程**

- 定义:通过提示词提高AI沟通技巧,充分发挥AI潜力。
- 目标:找到合适的提示词,实现高效AI任务交互。
- 重要性:提示词质量直接影响AI响应的准确性和有效性。

**技术核心**

- 零样本提示:在没有训练示例的情况下执行任务。
- 少样本学习:使用少量示例训练AI。
- 思维链提示:引导AI逐步推理,解决复杂问题。
- 自我一致性和多路径推理:提高AI推理的多样性。

**管理和优化**

- 提示优化:通过A/B测试和迭代改进,优化提示词。
- 歧义处理:识别并消除模糊提示,提高清晰度。
- 长度和复杂度管理:平衡提示信息丰富度和可理解性。

**专业应用**

- 负面提示:防止AI产生不良输出。
- 任务特定提示:针对特定任务(如文本摘要、代码生成)设计提示。
- 多语言和跨语言提示:支持多语言交互和翻译。
- 伦理考虑:避免偏见,创建包容性提示。

**高级应用**

- 提示安全:防止提示注入和内容过滤。
- 提示有效性评估:评估提示词对AI响应的影响。

**资源推荐**

- [提示词工程技术库](https://github.com/NirDiamant/Prompt_Engineering)

怜星夜思:

1、你认为提示词工程最具价值的方面是什么?
2、我看到教程中涵盖了提示词长度和复杂度管理,这在实践中有多重要?
3、提示词注入预防听起来很有意思,能简单解释一下吗?

原文内容

机器之心报道

编辑:佳琪、Panda

想让 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. 跟随每个技术笔记本中的详细实现指南。

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

参考链接:
https://github.com/NirDiamant/Prompt_Engineering https://x.com/NirDiamantAI/status/1844385492801933599

© THE END 
转载请联系本公众号获得授权
投稿或寻求报道:[email protected]

就像给人工智能设置了一道防火墙,防止不怀好意的人利用提示词做坏事。

提示词注入预防是一种技术,可阻止用户在提示词中输入恶意代码或不恰当的内容,从而保护模型和其他用户免受伤害。

我认为提示词工程对研究人员和开发人员最有价值。它提供了强大的工具,可以提升和研究人工智能理解和执行任务的方式。

能够优化和迭代提示词,不断提升人工智能的响应质量,太棒了!

这有点像在提示词和模型之间设置一个过滤器,用来检查是否有任何潜在的危险内容。如果检测到,将被阻止,模型就不会执行提示词中的指令。

提示词工程让我们可以更有效率与人工智能互动,不再需要复杂、专门的语言。

在实际应用中,提示词的长度和复杂度会极大地影响最终结果的质量。管理不当会导致效率低下甚至错误。

极其重要!提示词过长会让模型处理困难,过短又会提供的信息不足,因此找到合适的长度至关重要。

不仅要考虑长度,还要注意提示词中使用的语言的复杂程度。用模型容易理解的语言表述很重要。