微软 Generative AI for Beginners 课程笔记

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 生成式 AI (LLMs)学习笔记 使用 AI 的… 常见名词解释 Responsible AI 的原则 • • • • • • Fairness Inclusiveness Reliability/Safety Security & Privacy Transparency Accountability • 什么是迁移学习(Transfer Learning)? Temperature 的作用 不负责任的 AI 带来的潜在风险 Hallucinations:幻觉(Hallucinations)是一个术 Temperature(温度)是一个介于0到1之间的值,其中0是最 语,用来描述大型语言模型(LLM)生成的内容要么完 全无意义,要么基于其他信息来源我们知道是事实上错 默认值是0.7。 确定性的,1是最多变的。 • 误的 • • 迁移学习是一种机器学习方法,它允许我们把在一个任 务上学到的知识应用到另一个不同但相关的任务上。这 个方法在我们没有足够数据进行全新训练时特别有用。 Harmful Content:就是提供各种不好的东西呗 • Lack of Fairness:主要是避免被偏见,毕竟我们希望 人人平等 例如,假设我们训练了一个模型来识别图片中的汽车。 后来,我们想要训练一个模型来识别卡车,而不是从零 开始,我们可以使用之前训练识别汽车的模型作为起 点,因为两者都是车辆,有很多相似之处。 prompt 和 completion LLMs 的输入叫做 prompt LLMs 的输出叫做 completion 安全使用 Generative AI 的几个建议 • • Mitigate Potential Harms: • Operate a Responsible Generative AI solution:遵纪守法就行 需要注意的是 Completion 是逐渐完成的! 在大型语言模型中,文本被分解成一系列的tokens(可以理 解为单词或短语的组合)。当模型接收到一个提示时,它会 Measure Potential Harms:通过测试的方式提前拿到用户的 prompts,并针对这些 prompts 观察风险。 ◦ ◦ ◦ ◦ ◦ 尝试预测接下来应该出现的token。这个过程是逐个token 进行的,模型每次生成一个token,直到完成整个回应。这 model:简单来说,对于某个场景提供与之匹配的模型就好,不要提供超集,这样有风险。 种机制使得模型能够根据当前已生成的文本部分(当前输 入)来生成下一个合适的token,从而逐步构建出完整的回 safety system:比如内容过滤系统,避免机器人等工具和配置 meta prompt:在提示中增加输入限制,避免风险发生,同时在输出层面增加限制,引导输出往预期的方向发展 应。 user experience:在界面上直接引导和暗示用户哪些可以做,哪些不可以做。 简而言之,大型语言模型是基于用户给定的 Prompt(提 evaluate model: 示)逐步生成文本(完成),每次添加一个token,直到形 成一个完整的Completion。 AI 的发展历程 LLMs 的分类 LLMs 的工作原理 AI 的发展历程 Machine Learning DL(Deep Learning) Generative AI(LLMs) 首先是 AI,也就是 Artificial Intelligence 机器学习是受应用统计学方法启发而发展出的一种新算法, 深度学习是一种更先进的机器学习算法,有人叫神经网络, Generative AI 是 Deep Learning 的一个子分支。 最早的 AI 是由打字机构成的聊天机器人,原理上有点像类 通过特定关键字触发的知识库。 我自己的理解是从数据中去学习,不需要明确意图的编程。 也有人叫深度学习算法。 机器学习允许计算机模仿人类的语言理解能力。这是通过训 神经网络,特别是递归神经网络(RNNs),在自然语言处 Transformer 的模型架构突破了神经网络的限制,能够处理 更长的文本输入,而且该模型架构基于注意力机制,能够对 练一个统计模型来实现的,该模型使用文本-标签对进行训 练。在这里,"文本-标签对"是指带有特定标签的文本样 理(NLP)领域中有了显著的提升。 机器学习算法的一个核心特征,即它们能够从数据中自动学 习和提取模式,而不需要程序员直接编写规则来指定它们如 让我用一个简单的例子来解释这个概念: 何完成任务。 件”,一些是“正常邮件”。在这个场景中,每封邮件就是“文 本”,而“垃圾邮件”或“正常邮件”的标签就是“标签”。我们将 这些带有标签的邮件(文本-标签对)输入到机器学习模型 中。模型的任务是学习如何根据邮件的内容(文本)识别它 序来识别电子邮件中的垃圾邮件,你可能需要列出一系列的 规则(如关键词列表),程序会根据这些规则判断邮件是否 的类别(标签)。 经过足够的训练后,这个模型就能够识别出新的、未知的邮 为垃圾邮件。 件是否为垃圾邮件。模型会分析这些新邮件,并根据之前学 到的模式来判断邮件属于哪个类别(即“垃圾邮件”还是“正常 相比之下,机器学习方法则不同。在机器学习中,程序员不 是编写用于识别垃圾邮件的具体规则,而是提供一个包含许 多电子邮件样本的数据集,其中一些被标记为垃圾邮件,一 些被标记为非垃圾邮件。机器学习算法会分析这些数据,试 图自动找出区分垃圾邮件和非垃圾邮件的模式。一旦训练完 成,算法就可以应用这些学到的模式来判断新的电子邮件是 • 图,使得计算机能够模拟人类对语言的理解。这是机器学习 中常见的一种应用,被广泛用于文本分类、自然语言处理等 在传统的文本处理方法中,单词或短语通常是独立 考虑的,这意味着失去了它们在句子中的上下文信 息。而RNN和其他类型的神经网络能够处理一系列 的输入(如一个句子中的一系列单词),并记住之 前的输入。这种记忆能力使得网络能够考虑单词在 • • • 神经网络,特别是那些设计用于NLP的,如长短时 记忆网络(LSTMs)和注意力机制,能够捕捉文本 中的复杂模式和关系。它们通过学习大量的文本数 法结构和语境关系。 • 神经网络能够进行复杂的计算,这在传统的算法中 是难以实现的。随着硬件技术的进步,特别是GPU 和TPU这样的高性能计算设备的出现,神经网络能 够训练和处理比以往更大规模的数据集,从而更好 地理解和模拟人类的自然语言。 记数据,如书籍、文章和网站内容。所谓“未标记数 据”是指这些数据没有事先定义好的分类或标签,模 • 析和问答系统。 Open Source 和 Proprietary Models 基础模型是 斯坦福学者 提出的名词,主要有三个定义 模型根据当前文本序列之后出现的概率来选择输出token。 这是因为模型预测了所有可能的“下一个token”的概率分 Encoder-Decoder 和 Decoder-Only 类型 其实就是开源模型和闭源模型 布,这个分布是基于它的训练计算出来的。然而,并不总是 从结果分布中选择概率最高的token。这个选择中加入了一 • 定程度的随机性,以使模型以非确定性的方式行动 - 我们不 会对相同的输入得到完全相同的输出。这种随机性的加入是 也就是说,同一个模型可以用于各种不同的应用, 比如文本摘要、问题回答、文本生成等,而无需为 它们通过无监督学习(unsupervised learning)或自 开源的大语言模型有:Alpaca, Bloom 和 LLaMA 监督学习(self-supervised learning)进行训练,这 意味着它们在未标记的多模态数据上进行训练,且在训 这些模型不仅能够理解输入的文本,还能够生成新 的文本内容。这些生成的文本在语法上是正确的, • 它们是非常大型的模型,基于在数十亿参数上训练的非 • 它们通常旨在作为其他模型的“基础”,意味着它们可以 仅解码器(Decoder-only)模型: • 闭源的大语言模型有:OpenAI Models, Google Bard 和 Claude 2 练过程中不需要人工注释或标记数据。 为了模拟创造性思维的过程,可以通过一个叫做 temperature的模型参数来调整。 • 用作构建其他模型的起点,这可以通过微调来完成 嵌入式 ,图像生成式和文字/代码生成式 嵌入式 嵌入式模型(Embedding)是一组可以将文本转换成数值形式的模型,这种数值形式被 称为嵌入,它是输入文本的数值表示。嵌入式模型使机器更容易理解单词或句子之间的 关系,并可以作为其他模型的输入,如在数值数据上表现更好的分类模型或聚类模型。 嵌入式模型通常用于迁移学习 常见的嵌入式模型 OpenAI 的 嵌入式模型 在你的比喻中,仅解码器模型类似于只负责创作测验内 容的同事,他们能够根据已有的主题或指引生成新的问 题和材料。 • 4. 增强理解输入文本的能力: 例子:GPT-3 是一个仅解码器模型,它非常擅长根据给 定的提示生成连贯、有创意的文本。 仅编码器(Encoder-only)模型: 这些模型极大地提高了机器理解人类语言的能力。 • 这意味着它们能够更加准确地理解用户的输入,如 问题或指令,并根据这些输入提供相关的回答或反 这类模型更专注于理解和分析输入数据,而不是生成新 的输出。它们可以理解文本的内容、上下文和语义关 系,但不专门用于创造新的文本。 应。 5. 生成人类语言的原创回应: • 这类模型主要专注于从给定的输入(如一段文本)生成 输出。它们不专门处理输入数据的理解或分析,而是根 据输入生成新的内容。这就像是一个“内容创造者”,他 们根据给定的主题或已有的信息来编写新的文本。 常深的神经网络。 而且看起来像是带有一定创造性的,这意味着模型 能够创造出新颖且合理的句子和段落。 神经网络能够整合来自文本的多种信息源,包括词 汇用法、句法结构、语境信息等,提供一个综合 的、深层的语言理解。这种综合处理能力使得神经 网络在NLP任务中表现出色,如语言翻译、情感分 Foundation Models 和 LLMs 3 Selection process, probability distribution 这种训练方法使得模型能够适应多种不同的任务。 每个特定任务重新训练模型。 • 4. 综合多种信息源: • 什么,如果你曾经使用过ChatGPT,你可能会注意到有时 它看起来像是在句子中间停下来。 这些模型在训练时使用了大量来自不同来源的未标 型需要自己从这些数据中学习和提取有用的信息和 模式。 • 3. 生成语法正确且具有创造性的文本: 3. 复杂计算能力: • text generation: GPT 系列模型 次迭代的输入中,形成一个扩展窗口模式,使用户体验更 佳,可以获得一个(或多个)句子作为答案。这就解释了为 2. 适应多种任务: 据,能够构建出单词、短语和句子的高维表示,这 些表示能够捕捉更丰富的语义信息,比如词义、语 领域。 audio and speech recognition: whisper image generation:DALL-E 和 Midjourney 给定n个token作为输入(不同模型的最大n值不同),模型 能够预测一个token作为输出。这个token随后被纳入下一 1. 从多样化的未标记数据中学习: 句子中的上下文,从而更好地理解单词和短语的含 义。 • 否为垃圾邮件,而无需程序员明确指定如何完成这一任务。 总的来说,“无需明确编程”意味着算法能够通过分析和学习 数据自动地理解任务,而不是依赖程序员提供的具体指令。 三类常见用途的 LLMs 模型推荐 射到一个token索引上,这是原始文本块的整数编码。 为什么基于 transform 的 LLMs 会有诸多优势 2. 表示文本含义: 邮件”)。 总的来说,这种方法通过训练模型来识别文本的含义或意 理解不同类型的 LLMs 个文本块——由可变数量的字符组成,因此分词器的主要任 务是将输入分割成一个token数组。然后,每个token都映 2 Predicting output tokens 1. 理解上下文: 假设我们有一堆电子邮件,我们知道其中一些是“垃圾邮 在传统的编程方法中,程序员需要明确地编写指令和规则来 告诉计算机如何执行特定任务。例如,如果你想编写一个程 得更好。这就是为什么每个输入到模型的数据都要经过一个 分词器处理,然后才能被核心模型使用。一个“token”是一 近期的生成式 AI 模型都是基于 transform 这种架构的! 为什么神经网络在自然语言处 理(NLP)上有显著提升? 为什么机器学习通过 文本-标签 对 就能理解人类的语言 大型语言模型接收文本作为输入,并生成文本作为输出。然 而,作为统计模型,它们在处理数字而不是文本序列时表现 其接收到的输入赋予不同的权重,更多地“关注”信息最集中 的地方,而不管它们在文本序列中的顺序如何。 本,这些标签表示文本的含义或目的。 为什么机器学习不需要明确编 程 1 tokenize, text to number 这些模型不仅仅是简单地回复或重复已知信息,它 们还能够生成新的、原创的文本,这些文本在风格 和内容上类似于人类所写,能够针对特定的输入提 供独特且相关的回答。 • 在比喻中,仅编码器模型就像是负责审阅和理解测验内 • 例子:BERT 就是一个仅编码器模型,它擅长理解和分 析文本的意义,但不生成新内容。 以ChatGPT为例:在构建ChatGPT的第一个版本时,GPT- 的能力而受到关注。这些特点使它们在处理和生成人类语言 方面显示出卓越的性能。 3.5的模型充当了基础模型。这意味着OpenAI使用了一些特 定于聊天的数据来创建一个调整过的GPT-3.5版本,该版本 专门用于在对话场景中表现良好,例如聊天机器人。 为什么嵌入式模型常用于迁移 学习 容的同事,他们能够分析问题和答案之间的关系,但不 负责创作新的问题。 编码器-解码器(Encoder-Decoder)模型: 总的来说,这些基于变压器架构的大型语言模型因其从大量 多样化数据中学习、适应不同任务、以及创造性地生成文本 • 这种模型结合了编码器和解码器的功能。它们首先“理 • 在你的比喻中,这就像是既能创作测验内容又能审阅的 全能同事。 • 例子:BART 和 T5 是编码器-解码器模型,它们能够理 解输入文本的上下文,并基于这种理解生成相关的新文 解”输入数据(编码器部分的作用),然后基于这种理 解生成新的输出(解码器部分的作用)。 Embedding models are often used for transfer learning, where a model is built for a surrogate task for which 图像生成 这一类模型就是把图像变成文字! 大型的图像数据库是: Laion-5B,可以那这个作为训练图像生成模型的数据源 相关的 图像生成模型有 DALL-E-3 和 Stable Diffusion there’s an abundance of data, and then the model weights (embeddings) are re-used for other downstream tasks. 后半句的通俗解释: • "嵌入式模型" 是一种特殊类型的模型,它把文本(比如 单词或句子)转换成数字形式。这种数字形式(称 为“嵌入”)可以帮助计算机更好地理解文本的含义。 • 本。 在迁移学习中,我们首先在一个数据丰富的任务上训练 嵌入式模型。这个任务被称为“替代任务”(surrogate task)。比如,我们可能用大量的英文文本来训练模型 理解单词的含义。 • 完成后,我们可以把模型在这个替代任务中学到的知识 (即“模型权重”或“嵌入”)用于其他的任务。例如,我 们可能想用这个模型来帮助理解特定领域的文本,比如 医学或法律文本。 • 简单来说,就是先训练模型做一件事情,然后利用在这 件事情上学到的知识去做另一件相关但不同的事情。这 样做的好处是,即使第二个任务的数据不是很多,模型 也可以借助第一个任务中学到的知识来提高性能。 文字生成 这一类模型就是把通过文字生成新的文字。 大型的文字类型数据库是 BookCorpus 生成代码的模型 CodeParrot 提升 LLM 结果的几个方法 提升 LLM 的几种方案 • Prompt engineering with context. 在使用时,增加 上下文, ◦ 零次学习(“zero-shot” learning),一次学习 提示工程的核… (“one-shot” learning),少次学习(“few shot“ learning)的含义:在自然语言任务上,通过简单 的提示,比如完成一个句子或提出一个问题,就叫 做零次学习。如果用户能够给出更详细的请求和示 例来构建他们的查询,会得到更符合预期的结果, 在这种情况下,如果提示包含一个示例,称之为一 Prompt 工程… 次学习,如果包含多个示例,就是”少次示例” • Retrieval Augmented Generation,(RAG) ◦ LLM的局限性在于它们只能使用在训练期间用过的 数据来生成答案。这意味着它们对训练过程之后发 生的事实一无所知,也无法访问非公开信息(如公 司数据)。通过RAG可以克服这一点,这是一种通 过文档块的形式将外部数据加入到提示中的技术, 同时考虑到提示长度的限制。这由向量数据库工具 支持,这些工具从不同的预定义数据源中检索有用 Prompt(提示词)的完备程度 的数据块,并将其添加到提示上下文中。 • Fine-tuned model • Trained model ◦ • • • Fine-tuned 是一个利用迁移学习的方法将模型“适 应”下游任务或解决特定问题的过程。与少次学习和 RAG不同,它会生成一个新模型,具有更新的权重 和偏差。它需要一组训练示例,包括单一输入(提 需要 prompt 工程的原因 • • • Tokenization是在干什么 basic prompt:开放型的提示,没有任何具体的要求和规定 complex prompt:能够带上下文(Input/output pairs),还有在上下文里进行设定(比如某些行为风格和固定特点) instruction prompt:带有特定的指令和详尽要求的提示词 示)及其相关输出(完成)。 ◦ Model responses are stochastic. 响应随机 自己搞一个新的大模型! 什么是 Primary Content Design Pattern Models can fabricate responses.响应可以编造(幻象问题) Models capabilities will vary.(不同模型的能力不一样) "Primary Content Design Pattern"是一种在构建提示时使用的方法。 这种模式的核心思想是将输入的文本分为两个主要部分: • • Prompt Engineering 的定义 主要工作内容其实就 2 个点:1)设计好的提示词,2)根据反馈持续 优化提示词 an instruction (action) 数、格式化指令、主题分类等,这些可以帮助模型定制其响应,以符合用户的期望目标或期望。 text inputs (prompts) to deliver consistent and quality responses (completions) for a given application objective and model. 提示词工程师主要是设计好的提示词,让模型或者应用的响应达到预 期。 relevant content (that influences action) Supporting Content 如果我们将提示构建视为包含an instruction(任务)和 a primary content(主要内容),那么次要内容就像我们提供的额外上下文,以某种方式影响输出。它可以是调整参 Prompt Engineering as the process of designing and optimizing LLMs 看到的不是 prompt ,而是一连串的 token,不同的 模型在处理 prompt 上有所不同,所以会产生不同的 token 如何在 Primary Content Design Pattern 下获得更好的结果 • 与 Prompt 工程相关的三个重要概念 • • Base LLMs = how the foundation model "processes" a Instruction-Tuned LLMs = how the model can now see "tasks" examples:不是用明确的指令告诉模型该做什么,而是给它一些例子,让它自行推断。 Learning Type Tokenization = how the model "sees" the prompt prompt • Foundation Model是在干什么 Zero-shot One-shot 一旦 prompt 被 tokenized ,Base LLMs(或者叫做 Few-shot Domain Understanding Matters. 了解领域相关的知识 Iteration & Validation Matters. 需要不停地迭代和改进 The player ran the bases => Baseball Completion (Output) "El Sol está brillando". "Es un día frío y ventoso". Basketball The player made a slam-dunk => • Model Understanding Matters. 要对模型有一定的了解 "The Sun is Shining". Translate to Spanish "The Sun is Shining" => ""El Sol está brillando". The player hit an ace => Tennis The player hit a six => Cricket Prompt Engineering 的心态 • • • Prompt (Input) "It's a Cold and Windy Day" => Foundation Model)就开始预测生成的 token。 注意点在于 LLMs 其实并不知晓每个 word 的含义,只是根 据之前的训练数据能预测出应该生成什么 token(也可以理 解成 word)。 cues:在指令后面跟上一个“线索”,以启动完成,引导模型产生相关的响应。 Number of Cues 0 Instruction Tuned LLMs是在 干什么 Prompt (Input) Completion (Output) Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is Jupiter is the largest planet in our Solar System and the fifth one from the Sun. a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one It is a gas giant with a mass 1/1000th of the Sun's, but it is heavier than all the other planets combined. Ancient civilizations have known about Jupiter for a of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. long time, and it is easily visible in the night sky.. Summarize This instruction tuned LLMs 是指在使用 Foundation Models 的基础上,通过包含清晰指令的示例或输入/输出对来进行 1 微调,让模型的响应遵循用户的要求 Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is is the fifth planet from the Sun and the largest in the Solar System. It is a gas a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets combined. It is easily visible to the naked eye and of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. has been known since ancient times. Summarize This What we learned is that Jupiter 2 Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half 1. Jupiter is the fifth planet from the Sun and the largest in the Solar System. 2. It is a gas giant with a mass one-thousandth that of the Sun... times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been 3. Jupiter has been visible to the naked eye since ancient times ... known to ancient civilizations since before recorded history. Summarize This Top 3 Facts We Learned: • templates:是一种预定义的提示词,可以根据需要存储和重复使用,以便在大规模上驱动更一致的用户体验。 ◦ ◦ ◦ 简单的形式:https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst 略复杂的形式:https://python.langchain.com/docs/modules/model_io/prompts/prompt_templates/?WT.mc_id=academic-105485-koreyst Good Case:https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst Prompt 的具体技巧 业内在 Prompting 上的最佳实践 Open AI 和 Azure OpenAI 推荐的最佳实践。 什么 为什么 评估最新模型 新一代模型可能有改进的特性和质量 - 但也可能带来更高的成本。评估它们的影响,然后做出迁移决策。 Evaluate the latest models Separate instructions & context 分离指令和上下文 检查你的模型/提供者是否定义了 分隔符 来更清楚地区分指令、主要和次要内容。这可以帮助模型更准确地给令牌分 配权重。 Be specific and clear 给出更多关于期望的上下文、结果、长度、格式、风格等的细节。这将提高响应的质量和一致性。在可重用的 明确且具体 template中捕获 recipe。 Be descriptive, use examples 描述性地使用示例 Use cues to jumpstart completions 模型可能更好地响应“展示和讲述”方法。从 零次射击 方法开始,给它一个指令(但不给示例),然后尝试 少次射击 作为一种细化,提供一些期望输出的示例。使用类比。 通过给它一些引导性的词语或短语作为响应的起点,引导它朝着期望的结果。 使用线索启动完成 Double Down 重申 Order Matters 顺序很重要 Give the model an “out” 写好提示词的小技巧 关于如何写好提示词的建议 1. 明确上下文。上下文很重要,你能够指定的越多,如领域、主题等,效果越好。 Few shot prompting(少次射击提示):这是最基本的提示形式。它是一个带有几个示例的单 一提示。 2. 限制输出。如果你想要特定数量的项目或特定长度,需要明确指定。 3. 明确“what(什么)”和“how(怎么做)”。记得提及你想要的东西以及你希望的方式,例 如“创建一个带有产品和客户路由的Python Web API,并将其分成3个文件”。 4. 使用模板。通常,你会希望用数据丰富你的提示。使用模板来实现这一点。模板可以 有变量,你可以用实际数据替换。 5. 正确拼写。面对错误的拼写,LLM可能也会给你一个正确的回答,但如果你正确拼 写,你会得到更好的回答! Chain-of-thought(思维链):这种类型的提示告诉LLM如何将问题分解成步骤。 Generated knowledge(生成知识):为了改进提示的响应,你可以额外提供生成的事实或知 识给你的提示。 Least to most(由浅入深):像思维链一样,这种技术是关于将问题分解成一系列步骤,然后 按顺序要求执行这些步骤。 Self-refine(自我完善):这种技术是关于批评LLM的输出,然后要求它改进。 Maieutic prompting(助产式提示):你在这里想要的是确保LLM的回答是正确的,你要求它 有时你可能需要对模型重复自己。在你的主要内容之前和之后给出指令,使用指令和线索等。迭代并验证以查看哪些 解释答案的各个部分。这是自我完善的一种形式。 有效。 你向模型呈现信息的顺序可能会影响输出,甚至是在学习示例中,这要感谢近期偏见。尝试不同的选项,看看哪个最 有效。 如果模型出于任何原因无法完成任务,给它一个备用完成响应。这可以减少模型生成错误或虚构响应的机会。 给模型一个“出口” Few-shot prompting Chain-of-thought Generated Knowledge Least-to-most Self-refine,Critique the results Maieutic Prompting 这个 few-shot prompting 类似之前提过的 zero-shot 通过一系列的引导来让 LLMs 理解如何做某事。举个例子 许多时候,当你想构建一个提示时,你会想使用自己公司的数据来进行。你希望提 “由浅入深”提示的想法是将一个较大的问题分解为子问题。 使用生成型AI和大型语言模型(LLM),你不能完全信任输出。你需要验证它。毕 助产式提示是一种类似于自我完善的技术,但它更多是要求LLM解释自己。其目标 示的一部分来自公司,另一部分则是你感兴趣的实际提示。 通过这种方式,你可以帮助指导大型语言模型(LLM)“征 服”较大的问题。 竟,LLM只是告诉你接下来最有可能说的话,而不是正确的话。 是减少LLM输出中的不一致性,以确保它得出正确的答案。 因此,一个好主意是让LLM批评自己,这就引出了自我完善技术。 遵循的工作流程是: 一个很好的例子可能是数据科学,你可以让LLM这样划分问 题: 它的工作原理是遵循以下步骤: learning,one-shot learning,还有 few-shot learning 例如,如果你从事保险业务,你的提示可能如下所示: 在 zero-shot learning 提示中,你给模型一个没有任何先前示例 或上下文的直接问题或任务。模型基于其预训练的知识和理解来 - Prompt: "Alice has 5 apples, throws 3 apples, gives 2 to Bob and Bob give - Answer: 5 生成回答,就像上面的代数示例那样。 而在 few-shot learning 提示中,你会给模型提供一个或几个相 关的示例,这些示例展示了你希望模型如何回答类似的问题或执 行类似的任务。通过这些示例,模型可以“学习”或“推断”你期望的 LLM回答5个,这是不正确的。正确答案是1个苹果,根据计算(5 -3 -2 + 1 = 回答类型或格式。 1)。 ```text {{company}}: {{company_name}} {{products}}: {{products_list}} Please suggest an insurance given the following budget and requirements: Budget: {{budget}} Requirements: {{requirements}} ``` 那么我们如何教会LLM正确地做这个计算呢? 让我们尝试使用思维链,应用思维链意味着: • • • 给LLM一个类似的例子。 展示计算过程,并如何正确计算。 提供原始提示。 - Prompt: "Lisa has 7 apples, throws 1 apple, gives 4 apples to Bart and Ba 7 - 1 = 6 6 - 4 = 2 2 + 1 = 3 Alice has 5 apples, throws 3 apples, gives 2 to Bob and Bob gives one back, how many apples does Alice have?" - Answer: 1 上面,你看到提示是如何使用模板构建的。在模板中有许多变量,表示为 {{variable}},将被公司API的实际值替换。 这里有一个例子,展示了一旦变量被公司内容替换后,提示可能看起来是什么样 的: Prompt: How to perform data science in 5 steps? 你的AI助手回答: • • • • • 收集数据 清洗数据 分析数据 • • • • • 初始提示要求LLM解决一个问题 LLM回答 你批评这个答案,并要求AI改进 • • • • 要求LLM回答一个问题。 对答案的每个部分,要求LLM更深入地解释。 如果存在不一致性,放弃不一致的部分。 重复第2和第3步,直到你审查完所有部分并对答案感到满意。 LLM再次回答,这次考虑了批评并提出了它想出的解决方案 你可以重复这个过程尽可能多次。 绘制数据 展示数据 ```text Insurance company: ACME Insurance Insurance products (cost per month): - Car, cheap, 500 USD - Car, expensive, 1100 USD - Home, cheap, 600 USD - Home, expensive, 1200 USD - Life, cheap, 100 USD Please suggest an insurance given the following budget and requirements: Budget: $1000 Requirements: Car, Home ``` 通过LLM运行此提示将产生如下回应: ```output , and Life insurance Given the budget and requirements, we suggest the following insurance packa - Car, cheap, 500 USD - Home, cheap, 600 USD - Life, cheap, 100 USD Total cost: $1,200 USD ``` 如你所见,它还建议了人寿保险,这是不应该的。这个结果表明我们需要通过更清 晰的提示来优化提示。经过一些尝试和错误后,我们得出以下提示: ```text Insurance company: ACME Insurance Insurance products (cost per month): - type: Car, cheap, cost: 500 USD - type: Car, expensive, cost: 1100 USD - type: Home, cheap, cost: 600 USD - type: Home, expensive, cost: 1200 USD - type: Life, cheap, cost: 100 USD Please suggest an insurance given the following budget and requirements: Budget: $1000 restrict choice to types: Car, Home ``` 注意添加类型和费用,以及使用关键词限制如何帮助LLM理解我们想要的。 现在我们得到以下回应: ```output Given the budget and requirements, we suggest the Car, Cheap insurance prod ``` 这个例子的要点是要表明,即使我们使用像生成知识这样的基本技术,大多数情况 下我们仍然需要优化提示以获得期望的结果。 7%

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.124.0. UTC+08:00, 2024-05-02 17:04
浙ICP备14020137号-1 $访客地图$