点击上方蓝字
关注我们
(本文阅读时间:12分钟)
大语言模型(LLM)AI 指可以从大量数据中生成自然语言文本的 AI 模型。LLM 使用深度神经网络(例如 transformers)从数十亿或数万亿个单词中学习,并生成关于任何主题或领域的文本,还可以执行各种自然语言任务,例如:分类、摘要、翻译、生成和对话。LLM 的一些示例包括 GPT-3、BERT、XLNet 和 EleutherAI。
首先我们来理解一下每个字母的含义:
LLM AI 与 ChatGPT 有什么关系呢?流行的 ChatGPT 系统由基于 GPT-3 模型的 OpenAI 发明的 LLM AI 模型提供支持。您可以将 ChatGPT 视为构建在 LLM AI 之上的应用程序,该应用程序经过专门调整以进行交互式聊天。
模型(Models)
模型指的是 LLM AI 的特定实例或版本,例如 GPT-3 或 Codex,它已经在大量文本或代码(在 Codex 模型的情况下)上进行了训练和微调,并且可以通过 API 或平台访问和使用。OpenAI 和 Azure OpenAI 提供了多种模型,可以通过参数或选项进行定制和控制,并且可以应用和集成到各种领域和任务中。
▍关于可用的 OpenAI 和 Azure OpenAI GPT 模型
OpenAI 和 Azure OpenAI 目前提供四种生成式预训练 Transformer (Generative Pre-trained Transformer, GPT) 模型。它们由四个变体组成:Ada、Babbage、Curie 和 Davinci。它们在参数数量、训练数据量以及可以执行的任务类型方面有所不同。
Ada 是最小、最简单的模型,有 3.5 亿个参数和 40GB 的文本数据。它可以处理基本的自然语言理解和生成任务,例如:分类、情感分析、摘要和简单对话。
Babbage 是一个更大的模型,有 30 亿个参数和 300GB 的文本数据。它可以处理更复杂的自然语言任务,例如:推理、逻辑、算术和单词类比。
Curie 是一个非常大的模型,有 130 亿个参数和 800GB 的文本数据。它可以处理高级自然语言任务,例如:文本到语音、语音到文本、翻译、释义和问答。
Davinci 是最大、最强大的模型,拥有 1750 亿个参数和 45TB 的文本数据。它几乎可以处理任何自然语言任务,以及一些多模态任务,例如图像字幕、风格转换和视觉推理。它还可以针对任何主题生成连贯且富有创意的文本,具有高度的流畅性、一致性和多样性。
▍GPT 模型如何运作?
GPT 模型是一种神经网络,它使用 transformer 架构从大量文本数据中学习。该模型有两个主要组件:编码器和解码器。编码器处理输入文本并将其转换为向量序列,称为嵌入(embeddings),表示每个单词的含义和上下文。解码器根据嵌入和前面的单词预测序列中的下一个单词来生成输出文本。该模型使用一种称为注意力(attention)的技术来关注输入和输出文本中最相关的部分,并捕获单词之间的长距离依赖性和关系(long-range dependencies and relationships)。该模型通过使用大量文本作为输入和输出,并通过最小化预测词和实际词之间的差异来训练。您可以通过使用更小、更专业的数据集对该模型进行微调或适应特定的任务或领域。
▍LLM AI 的基准比较规则是什么?
LLM AI 模型通常通过参数数量进行比较,一般情况下,参数越大越好。参数的数量是模型大小和复杂性的度量。模型拥有的参数越多,它可以处理、学习和生成的数据就越多。然而,拥有更多的参数也意味着拥有更多的计算和内存资源,以及更多的过度拟合或欠拟合数据的可能性。参数是在训练过程中通过使用优化算法来学习或更新的,该算法试图最小化预测输出和实际输出之间的误差或损失。通过调整参数,模型可以提高其在给定任务或领域上的性能和准确性。
提示(Prompts)
提示是交流和指导 LLM AI 模型行为的方式。提示是用户或程序向 LLM AI 提供的输入或查询,以便从模型中引出特定的响应。提示可以是自然语言句子或问题,也可以是代码片段或命令,也可以是文本或代码的任意组合,具体取决于领域和任务。提示也可以嵌套或链接,这意味着一个提示的输出可以用作另一个提示的输入,从而与模型创建更复杂和动态的交互。
▍提示的微妙之处
创造性地定义 LLM AI 提示的艺术是一个新兴领域,被称为“提示设计”(prompt design),也称为“提示工程”(prompt engineering)。它涉及制作有效且高效的提示的过程,这些提示可以从 LLM AI 模型中引出所需的响应。主要挑战包括选择正确的单词、短语、符号和格式,以指导模型生成高质量和相关的文本。还可以尝试影响模型行为和性能的不同参数和设置,例如温度、top-k、top-p、频率惩罚和存在惩罚。
设计或工程提示时的三个常见注意事项是:
提示链接(Prompt chaining)是一种扩展和增强与模型对话的方式,通过使用生成的文本作为下一个提示的基础。提示链接可以让模型探索不同的主题、场景、角色和格式,并生成更连贯、更有创意和更吸引人的文本。还可以帮助模型从用户提供的反馈和更正中学习,并相应地调整其行为和输出。提示链接可以通过使用不同类型的提示手动或自动完成,例如跟进、继续、澄清、详细说明和重定向。
提示调整(Prompt tuning)是通过使用更小和更专业的数据集来调整和优化特定任务或领域的提示的过程。提示调整可以通过减少一般数据集中可能存在的“噪音”和偏差来提高生成文本的准确性和多样性。还可以提高模型的稳健性和一致性,使其更能抵抗对抗性输入或意外情况。
提示测试(Prompt testing)是通过使用各种指标和标准来衡量和比较提示和生成文本的质量和有用性的过程。涉及人工和自动化方法,例如:评级、排名、反馈、分析和测试。提示评估可以帮助识别提示和模型的优缺点,并提供改进和完善的建议。
Semantic Kernel (SK) 的创建是为了使开发者能够制作复杂的 LLM AI 提示链,这些提示既可配置又可测试。由于随着 LLM AI 模型的发展,设计和工程提示的过程在未来几年可能会发生变化,因此 SK 社区成员应该期待在可预见的未来 GitHub 存储库的稳定更新流。
令牌(Tokens)
令牌是 LLM AI 用来处理和生成语言的文本或代码的基本单位,可以是字符、单词、子词或其他文本或代码片段,具体取决于所选的令牌化方法或方案。它被分配数值或标识符,并按序列或向量排列,并被输入模型或从模型输出。令牌是模型语言的构建块。
令牌化是将输入和输出文本拆分为更小单元的过程,这些单元可以由 LLM AI 模型处理。标记可以是词、字符、子词或符号,具体取决于模型的类型和大小。令牌化可以帮助模型处理不同的语言、词汇和格式,并降低计算和内存成本。还可以通过影响标记的含义和上下文来影响生成文本的质量和多样性。您可以使用不同的方法来完成令牌化,例如:基于规则的、统计的或神经的,具体取决于文本的复杂性和多变性。
OpenAI 和 Azure OpenAI 为其基于 GPT 的模型使用称为 “字节对编码” (Byte-Pair Encoding, BPE) 的子词令牌化方法。BPE 是一种将最常出现的字符或字节对合并为单个令牌的方法,直到达到一定数量的令牌或词汇表大小。BPE 可以帮助模型处理罕见或未见过的词,并创建更紧凑和一致的文本表示。它还可以允许模型通过组合现有的单词或令牌来生成新单词或令牌。不同模型令牌化方式不同,主要取决于每个模型使用的令牌数量或词汇量大小。Ada 的词汇量最小,有5万个令牌,而 Davinci 的词汇量最大,有6万个。Babbage 和 Curie 的词汇量相同,都是5.7万个。词汇量越大,模型可以生成的文本就越多样、越有表现力。然而,词汇量越大,模型需要的内存和计算资源就越多。因此,词汇量大小的选择取决于模型质量和效率之间的权衡。
令牌化会影响模型需要处理的数据量和计算次数。模型处理的令牌越多,模型消耗的内存和计算资源就越多。因此,运行 OpenAI 或 Azure OpenAI 模型的成本取决于模型使用的令牌化方法和词汇量大小,以及输入和输出文本的长度和复杂度。根据用于与模型交互的令牌数量和不同模型的不同费率,您的成本可能会有很大差异。
嵌入(Embeddings)
嵌入是令牌在高维向量空间中的表示或编码,其中每个维度对应于学习到的语言特征或属性。嵌入是模型捕获和存储语言的含义和关系的方式,也是模型比较和对比不同标记或语言单元的方式。嵌入是模型语言的离散和连续、符号和数字方面之间的桥梁。
▍对程序员来说,嵌入是什么?
嵌入是表示模型处理和生成的令牌的含义和上下文的向量或数字数组。嵌入源自模型的参数或权重,用于对输入和输出文本进行编码和解码,可以帮助模型理解令牌之间的语义和句法关系,并生成更相关和连贯的文本。嵌入还可以通过将不同类型的数据转换为通用表示,使模型能够处理多模态任务,例如图像和代码生成。嵌入是基于 GPT 的模型使用的 transformer 架构的重要组成部分,它们的大小和维度可能因模型和任务而异。
向量数据库(Vector Database)
向量数据库是一种将数据存储为高维向量的数据库,高维向量是特征或属性的数学表示。每个向量都有一定数量的维度,范围从几十到几千不等,具体取决于数据的复杂性和粒度。向量通常是通过对原始数据(例如:文本、图像、音频、视频等)应用某种变换或嵌入函数来生成的。嵌入函数可以基于各种方法,例如:机器学习模型、词嵌入、特征提取算法。
向量数据库的主要优点是,它允许根据向量距离或相似性对数据进行快速准确的相似性搜索和检索。这意味着您可以使用向量数据库根据语义或上下文含义查找最相似或相关的数据,而不是使用基于精确匹配或预定义标准查询数据库的传统方法。
例如,您可以使用向量数据库来:
根据视觉内容和风格找到与给定图像相似的图像
根据主题和情绪查找与给定文档相似的文档
根据功能和评级查找与给定产品相似的产品
要在向量数据库中执行相似性搜索和检索,您需要使用表示所需信息或条件的查询向量。查询向量可以源自与存储向量相同类型的数据(例如使用图像作为对图像数据库的查询),也可以来自不同类型的数据(例如使用文本作为对图像数据库的查询),然后,您需要使用相似性度量来计算两个向量在向量空间中的距离。相似性度量可以基于各种度量,例如:余弦相似性、欧氏距离、汉明距离、jaccard 系数。
相似性搜索和检索的结果通常是与查询向量具有最高相似性得分的向量的排序列表。您可以从原始源或索引中访问与每个向量关联的相应原始数据。
读到这里,我们已经为您介绍了 LLM AI 的基本概念。本篇文章来自 MS Learn,如果您希望了解更详细的内容,欢迎点击文末“阅读原文”前往官方文档。
点击「阅读原文」前往官方文档~