提示词设计,简单来说,就是教会AI如何更好地理解我们人类的意图,然后给出我们想要的回答或者完成我们期望的任务。就像和一位非常聪明的伙伴聊天,你需要用清晰、准确甚至带点小技巧的语言,让他知道你要什么。别看它名字简单,这可是连接人类智慧和AI能力的桥梁,是让AI真正“听懂”我们说话的关键。现在,让我们一起来拆解“AI行业 - 提示词设计”这棵神奇的知识树吧!🌳
知识树
提示词设计 (Prompt Engineering)
├── 知识树杆:基础理论与原理
│ ├── 知识树枝:大型语言模型 (LLMs) 原理
│ │ ├── 知识树叶:Transformer 模型结构
│ │ ├── 知识树叶:Attention 机制
│ │ ├── 知识树叶:预训练与微调 (Pre-training & Fine-tuning)
│ │ ├── 知识树叶:Tokenization (分词)
│ │ ├── 知识树叶:生成式模型 (Generative Models)
│ │ └── ...
│ ├── 知识树枝:自然语言处理 (NLP) 基础
│ │ ├── 知识树叶:文本理解 (Text Understanding)
│ │ ├── 知识树叶:语义分析 (Semantic Analysis)
│ │ ├── 知识树叶:语境理解 (Context Understanding)
│ │ ├── 知识树叶:情感分析 (Sentiment Analysis)
│ │ ├── 知识树叶:命名实体识别 (Named Entity Recognition)
│ │ └── ...
│ └── 知识树枝:认知科学与心理学原理 (了解人类思维方式)
│ ├── 知识树叶:人类沟通模型
│ ├── 知识树叶:指令清晰度与歧义
│ ├── 知识树叶:反馈机制与迭代
│ ├── 知识树叶:思维定势与创新
│ ├── 知识树叶:用户体验设计基础
│ └── ...
├── 知识树枝:核心提示词设计技术与策略
│ ├── 知识树叶:基础提示 (Basic Prompting)
│ ├── 知识树叶:零样本/少样本提示 (Zero-shot/Few-shot Prompting)
│ ├── 知识树叶:思维链提示 (Chain-of-Thought Prompting)
│ ├── 知识树叶:角色扮演提示 (Role-Playing Prompting)
│ ├── 知识树叶:约束性提示 (Constrained Prompting)
│ └── ...
├── 知识树枝:特定任务的提示词设计
│ ├── 知识树叶:文本生成 (Text Generation)
│ ├── 知识树叶:问答系统 (Question Answering)
│ ├── 知识树叶:代码生成 (Code Generation)
│ ├── 知识树叶:图像生成 (Image Generation)
│ ├── 知识树叶:文本摘要 (Text Summarization)
│ └── ...
├── 知识树枝:提示词评估与优化
│ ├── 知识树叶:评估指标 (Evaluation Metrics)
│ ├── 知识树叶:A/B测试
│ ├── 知识树叶:人工评估与反馈
│ ├── 知识树叶:自动化评估工具
│ ├── 知识树叶:错误分析与修正
│ └── ...
└── 知识树枝:提示词设计的工具与平台
├── 知识树叶:大型语言模型 API (如 OpenAI API, Claude API 等)
├── 知识树叶:提示词管理工具
├── 知识树叶:版本控制 (Version Control for Prompts)
├── 知识树叶:协作平台
├── 知识树叶:Prompt Marketplace (提示词市场)
└── ...
价值
提示词设计在AI,特别是大型语言模型(LLMs)的发展历程中,其价值可以说是连接AI潜能与实际应用的“金钥匙”。🔑
在早期,AI模型的能力有限,更多依赖于人工标注大量数据来训练。而现在,大型语言模型具备了惊人的通用能力,但如何充分发挥这些能力,解决我们实际生活中的各种问题,就落在了提示词设计的肩上。
可以说,提示词设计让原本“高冷”的AI变得触手可及,让普通人无需深入了解复杂的模型内部结构,也能通过简单的“对话”来驱动AI完成复杂的任务。它是低门槛、高效率地利用AI能力的最佳途径之一。
它不仅提高了AI的可用性,也极大地扩展了AI的应用场景。从写文章、编程到艺术创作、科学研究,优秀的提示词设计都能让AI成为我们强大的助手。
资源
想要成为提示词设计的高手?这里有一些非常棒的资源可以帮助你:
经典书籍/教材:
目前关于提示词设计的系统性教材还比较新,但一些相关的基础书籍非常重要:
-
书名: Speech and Language Processing
- 作者: Daniel Jurafsky, James H. Martin
- 出版时间: 最新版本(第三版,仍在更新中)
- 价值: 这是NLP领域的“圣经”,虽然不直接讲提示词,但它深入讲解了NLP的基础,理解这些原理对于理解LLMs和提示词至关重要。
-
书名: Deep Learning
- 作者: Ian Goodfellow, Yoshua Bengio, Aaron Courville
- 出版时间: 2016年 (虽然有点年头,但基础理论依然重要)
- 价值: 深度学习领域的经典教材,理解LLMs背后的神经网络原理需要这本书的基础。
-
书名: Thinking, Fast and Slow
- 作者: Daniel Kahneman
- 出版时间: 2011年
- 价值: 这本书虽然是心理学著作,但它能帮助你理解人类的思维模式和决策过程,这对于设计更能引起AI“共鸣”或遵循人类逻辑的提示词非常有启发。
网络在线课程:
提示词设计的很多最新进展都在线上课程或文档中:
-
网站: DeepLearning.AI
- 课程名称: Prompt Engineering for Developer (面向开发者的提示词工程)
- 作者: Isa Fulford (OpenAI), Andrew Ng (吴恩达)
- 价值: 这是目前最受欢迎且非常实用的提示词工程入门课程之一,由吴恩达团队和OpenAI合作推出,直接教授如何使用API进行有效的提示词设计。
-
网站: Coursera 或 edX
- 课程名称: Natural Language Processing 系列课程
- 作者: 各大高校和专家 (如 Stanford University, huggingface 等)
- 价值: 系统学习NLP的基础知识,为更深入地理解提示词设计打下坚实基础。
-
网站: OpenAI Cookbook (openai.com)
- 课程名称: (不是课程,是官方文档和代码示例)
- 价值: OpenAI 官方提供的各种模型使用技巧和提示词示例,非常实用,是学习如何使用OpenAI模型进行提示词设计的必备资源。
-
网站: Anthropic Prompt Engineering Guide (docs.anthropic.com)
- 课程名称: (不是课程,是官方指南)
- 价值: Anthropic (Claude 的开发者) 提供的提示词设计指南,结合了他们的模型特点,提供了很多独到的视角和技巧。
记住,提示词设计是一个快速发展的领域,最前沿的知识往往在各种技术博客、论文和在线社区中。保持好奇心和持续学习是关键!
前100个核心知识树叶
接下来,我们将逐一讲解这棵知识树上最重要的“叶子”们。🌳 准备好了吗?让我们开始摘取它们!
大型语言模型 (LLMs) 原理
这是提示词设计的“根基”,理解AI的工作原理才能更好地和它“对话”。
Transformer 模型结构
这个名字听起来有点高大上,但它其实是现在很多大型语言模型(包括GPT、Claude等)的“骨架”。你可以想象它是一个非常厉害的信息处理器。
定义: Transformer 是一种神经网络模型架构,它在处理序列数据(比如文本)时非常有效,尤其擅长捕捉长距离的依赖关系。
历史来源: Transformer 模型是在2017年由Google的研究人员在一篇叫做《Attention Is All You Need》的论文中提出的。在那之前,处理序列数据的主流模型是循环神经网络(RNN)或长短期记忆网络(LSTM)。但这些模型在处理很长的文本时效率较低,也难以并行计算。Transformer 的出现就是为了解决这些问题,它通过引入“Attention 机制”极大地提高了处理长序列的效率和能力。
示例: 想象你正在写一篇很长的文章,需要在文章开头提到的一个概念,和文章结尾处进行呼应。对于传统的模型来说,记住并关联这么远的信息是很难的。但 Transformer 就像拥有一个“速记本”,它能快速地在整篇文章中找到相关的词语或句子,建立联系。
比如,你写了一句话:“小明去了公园,他在公园里看到了许多美丽的花。” 后来你在文章后面写:“这些花让小明心情愉悦。” Transformer 模型能够“记住”文章开头的“小明”和“花”,并轻松地把它们和后面出现的“花”和“小明”关联起来,理解是同一个小明和同一批花。
文字表述的公式:
理解 Transformer = 关注重要信息 (Attention) + 并行处理 (Parallel Processing) + 多层堆叠 (Stacking Layers)
- 关注重要信息 (Attention): 就像你在阅读时会重点关注句子中的关键词一样,Transformer 的 Attention 机制让模型知道在处理某个词时,应该重点关注输入文本中的哪些其他词。这是它最核心、最强大的部分。
- 并行处理 (Parallel Processing): 传统的 RNN/LSTM 需要一个词一个词地按顺序处理文本,就像一个人逐字阅读。Transformer 可以同时处理文本中的多个部分,就像把文章分给很多人同时阅读,大大加快了处理速度。
- 多层堆叠 (Stacking Layers): Transformer 不是一个简单的模型,而是由多个相同的“层”堆叠起来的。每一层都在上一层处理的基础上进一步提炼信息,就像一层层地深入理解文本的含义。
内涵: Transformer 的本质内核在于它放弃了传统的序列顺序处理,转而使用“注意力”机制来衡量文本中不同部分之间的关联度。它认为,文本中的任意两个词之间都可能存在重要的联系,而不仅仅是相邻的词。通过计算这些关联度,模型能够更全面、更灵活地理解文本的含义。它是一种基于关联性而非序列性的信息处理模式。
外延: Transformer 模型不仅仅用于文本处理,它的思想已经扩展到了许多其他领域。
-
应用1:机器翻译。 比如,将一篇英文新闻翻译成中文。
- 步骤1:准备输入。 将英文新闻作为输入序列。
- 步骤2: 通过 Transformer 的编码器 (Encoder) 处理英文输入。编码器会理解英文句子的结构和含义,并生成一个“压缩”了这些信息的表示。想象编码器就像一个很懂英文的翻译官,他读完英文后,心里就明白了意思。
- 步骤3: 通过 Transformer 的解码器 (Decoder) 生成中文翻译。解码器会看着编码器生成的英文信息,并逐步生成中文单词。在生成每个中文词时,解码器会利用Attention 机制去“回头看”编码器中的英文信息,特别是那些与当前要生成的中文词最相关的英文词。比如,当生成“苹果”这个词时,它会特别关注英文输入中的“apple”。
- 步骤4: 重复步骤3,直到生成完整的中文句子。
- 步骤5: 输出最终的中文翻译。
-
应用2:图像识别。 现在也有很多基于 Transformer 的模型用于处理图像,比如 ViT (Vision Transformer)。它把图像分割成小块,然后用 Transformer 的方式来理解这些图像块之间的关系。
-
应用3:语音识别。 将语音信号转化为文本,Transformer 也可以在其中发挥关键作用。
Transformer 模型是现代AI,特别是LLMs的基石,理解它能帮助你更好地理解为什么有些提示词管用,有些不管用,因为它决定了AI是如何“看”和“理解”你的文字的。
Attention 机制
这是 Transformer 模型的“灵魂”所在,也是提示词设计中非常重要的一个潜在原理。
定义: Attention 机制是一种让模型在处理序列数据时,能够关注输入序列中更重要或相关的部分的技术。
历史来源: Attention 机制的概念并不是随 Transformer 一起诞生的。它最早在2014年和2015年被提出,用于改进 RNN 在机器翻译等任务上的表现。它的核心思想来源于人类在阅读或理解信息时会自然地将注意力集中在关键信息上。Transformer 模型则将 Attention 机制发扬光大,使其成为模型的唯一核心机制。
示例: 想象你正在一本厚厚的书中查找某个特定的信息。你不会从头到尾逐字阅读,而是会快速浏览标题、关键词、章节内容,把注意力集中在可能包含你需要信息的地方。Attention 机制在AI中的作用就类似于这种“聚焦”过程。
比如,对于句子“猫坐在垫子上。” 当模型处理“垫子”这个词时,它会用 Attention 机制去“关注”句子中的其他词,发现“坐”和“猫”与“垫子”关系更紧密,而“在”是介词,相对关系弱一些。通过计算每个词与“垫子”的相关性分数(也就是“注意力分数”),模型就能知道“垫子”是“猫”和“坐”的落脚点。
数学公式 (简化理解版):
Attention Score (Query, Key) ∝\propto∝ Similarity (Query, Key)
- Query (查询): 当前正在处理的词语的信息,可以理解为你正在“问”的问题,比如“当我在看’垫子’这个词时,其他词有多重要?”
- Key (键): 输入序列中其他词语的信息,可以理解成其他词语的“身份”或“描述”。
- Similarity (相似度): 计算 Query 和 Key 之间的相似度。相似度越高,说明这个词越值得“关注”,得到的 Attention Score 就越高。实际计算时通常使用点积 (Dot Product) 等方法。
- Attention Score (注意力分数): 计算出来的分数,表示在处理 Query 时,应该给 Key 分配多少“注意力”。这些分数通常会通过 Softmax 函数进行归一化,变成概率分布,所有分数的和为1。
模型会用这些 Attention Score 来加权求和输入序列的信息,得到一个更有针对性的表示。
内涵: Attention 机制的本质内核在于动态地衡量和分配不同输入元素的重要性。它让模型能够根据当前的上下文,灵活地调整对输入信息的关注焦点。这克服了传统模型(如RNN)只能依赖于前一个隐藏状态来处理当前信息的局限性,使得模型能够直接“看到”并利用输入序列中任意位置的信息。它是实现模型全局感知能力的关键。
外延: Attention 机制的思想几乎渗透到了现代深度学习处理序列数据的各种模型中。
-
应用1:机器翻译 (延续 Transformer 应用)。 在翻译过程中,Attention 机制让模型在生成目标语言(比如中文)的某个词时,能够动态地“关注”源语言(比如英文)句子中最相关的词。
- 步骤1: 模型生成第一个中文词。
- 步骤2: 利用 Attention 机制,模型计算当前要生成的中文词(作为 Query)与所有英文单词(作为 Key)的相似度分数。
- 步骤3: 将这些相似度分数通过 Softmax 转化为注意力权重。权重高的英文词,说明它们与当前要生成的中文词最相关。
- 步骤4: 根据注意力权重,模型将英文单词的信息进行加权平均,得到一个“聚焦”了相关英文信息的向量。
- 步骤5: 模型利用这个加权后的信息,以及之前生成的中文词,来预测下一个中文词。
- 步骤6: 重复步骤2-5,直到生成完整的中文句子。
例如,翻译句子“The cat sat on the mat.” 当模型生成“猫”时,Attention 会集中在“cat”;生成“坐”时,Attention 会集中在“sat”;生成“垫子”时,Attention 会集中在“mat”。
-
应用2:文本摘要。 模型在生成摘要中的一个句子时,会利用 Attention 机制去关注原文中最能支持这个句子的关键信息。
-
应用3:图像字幕生成。 当模型描述图像中的某个物体时,它会利用 Attention 机制去聚焦图像中对应的区域。
理解 Attention 机制能帮助你理解为什么在提示词中突出重点词汇、提供相关上下文或使用清晰的指代(比如“上述文本中的核心观点”)会更有效,因为你正在帮助AI更好地分配它的“注意力”。
预训练与微调 (Pre-training & Fine-tuning)
这解释了为什么大型语言模型在没有针对特定任务训练的情况下,也能处理很多不同的事情。
定义:
- 预训练 (Pre-training): 在海量且多样化的无标注数据上训练一个大型模型,让模型学习到通用的语言知识和能力。
- 微调 (Fine-tuning): 在特定任务的有标注或少标注数据上,对已经预训练好的模型进行进一步训练,使其更好地适应特定任务。
历史来源: 这种“先在大量数据上学基础,再在少量数据上学精”的模式,很早就存在于机器学习领域,特别是在图像识别中。将这种模式应用到NLP领域并在大型模型上取得巨大成功,是近年来NLP领域最重要的突破之一。BERT模型(2018年)是一个重要的里程碑,它展示了通过预训练在大量无标注文本上学习上下文表示,然后在下游任务上进行微调的强大效果。随后的GPT系列、T5、RoBERTa等模型都沿用了这一思想,并不断扩大模型规模和预训练数据量。
示例: 想象一个学生。
- 预训练: 就像这个学生在小学到大学期间学习各种通识课程(语文、数学、历史、物理等等)。他学到了大量的知识,对世界有了基本的理解,学会了阅读、写作、计算和逻辑思考等通用技能。他并没有专门为某一个职业做准备,但这些基础知识让他具备了从事多种职业的潜力。
- 微调: 毕业后,这个学生决定成为一名律师。他会去法学院学习专业的法律知识,并在律所实习。这个过程就像微调,他在之前打下的通用知识基础上,学习特定的法律技能和知识,以便能够胜任律师这个特定职业。
大型语言模型的预训练就像是学习了人类几乎所有的公开知识,具备了通用的语言能力(理解、生成、推理等)。而微调就像是针对写邮件、写代码、做摘要等特定任务,让模型在少量相关数据上进行“特训”,提高它在这些任务上的表现。
文字表述的公式:
LLM 能力 = 通用知识和能力 (通过预训练获得) + 特定任务优化 (通过微调获得)
- 通用知识和能力: 模型通过阅读大量的书籍、网页、文章等,学习到了词汇、语法、常识、事实信息以及基本的推理能力。
- 特定任务优化: 在微调阶段,模型接触特定任务的数据(比如问答对、翻译句子对、代码示例等),学习如何将通用能力应用到这些具体任务上,提高准确率和效率。
内涵: 预训练与微调的本质内核在于知识的迁移与能力的泛化。预训练让模型在大量数据上学习到一种通用的、可迁移的语言表示,这种表示包含了丰富的语义和语法信息。微调则利用这种通用的表示,通过少量的任务特定数据,快速地将模型的能力适配到新的任务上。这大大减少了针对每个新任务都需要从头开始训练一个大模型的成本和数据需求,使得AI技术的应用更加灵活和高效。
外延: 预训练与微调是当前许多AI模型训练的标准范式。
-
应用1:情感分析。 训练一个模型来判断一段文本表达的情绪是积极、消极还是中立。
- 步骤1:预训练。 在海量文本数据上预训练一个大型语言模型(比如BERT或RoBERTa)。模型学会了理解词汇的含义、句子的结构以及词语之间的关系。
- 步骤2:微调。 准备一个包含大量文本及其对应情感标签(积极/消极/中立)的数据集。用这个数据集来继续训练预训练好的模型。在微调过程中,模型会学习哪些词语、短语或句子结构通常与积极情感相关,哪些与消极情感相关。
- 步骤3:部署。 微调好的模型就可以用来对新的文本进行情感分析了。比如,输入一段产品评论“这个手机太棒了!🔋”,模型会输出“积极”。
-
应用2:命名实体识别 (NER)。 识别文本中提到的人名、地名、组织名等。
-
应用3:文本分类。 将新闻文章分为体育、政治、娱乐等类别。
-
应用4:代码补全。 预训练模型学习大量的代码模式,然后在特定编程语言的代码数据集上进行微调。
对于提示词设计者来说,理解预训练和微调意味着你需要知道模型已经具备了哪些通用的能力(来自预训练),以及它在哪些特定任务上可能表现得更好(如果进行过微调)。这能帮助你更好地构建提示词,利用模型已有的知识和能力。同时,某些高级的提示词技术(如Few-shot Prompting)其实就是利用了大型预训练模型在没有微调的情况下,通过几个示例就能理解并完成任务的能力。
Tokenization (分词)
这是AI模型“看”懂我们文字的第一步,也是提示词设计中需要注意的基础。
定义: Tokenization (分词) 是将原始文本序列分割成模型可以处理的最小单位序列的过程。这些最小单位通常被称为 Tokens。
历史来源: 分词是自然语言处理中的一个基础步骤,早在计算机处理文本的初期就存在。对于英文等语言,通常以空格和标点符号作为分隔符进行分词。对于中文等没有明显分隔符的语言,则需要更复杂的算法来识别词语边界。随着深度学习模型的发展,特别是子词(subword)分词方法的出现(如 Byte Pair Encoding (BPE), WordPiece 等),Tokenization 不再简单地基于词语,而是可以根据字、词或子词来创建 Tokens,以更好地处理生词和罕见词。大型语言模型普遍采用子词分词方法。
示例: 想象你的AI朋友只会认识拼音字母。你想告诉他“苹果”,你就得把“苹果”分解成“píng guǒ”才能让他懂。Tokenization 就是把我们的文字分解成AI能懂的“拼音字母”或者更小的单位。
比如句子:“Hello, world!”
- 简单分词: 可能会被分成
["Hello", ",", "world", "!"]
。 - 子词分词 (BPE 示例): 可能会被分成
["Hello", ",", " world", "!"]
或者更细致,比如["He", "llo", ",", " world", "!"]
。注意“ world”前面的空格也可能被包含在一个 Token 里。
Tokens 可以是一个词、一个词的一部分、一个标点符号,甚至是一个空格或换行符。每个 Token 在模型的词汇表(Vocabulary)中都有一个对应的数字ID。模型实际处理的是这些数字ID序列,而不是原始文本。
文字表述的公式:
原始文本 →分词器\xrightarrow{\text{分词器}}分词器