LLMs的基本组成:向量、Tokens和嵌入
了解向量、Tokens和嵌入是理解大语言模型怎样处理语言的基础。
在处理LLMs时,你经常会遇到“向量”、“Tokens”和“嵌入”这些术语。在深入研究构建聊天机器人和人工智能助手之前,彻底理解这些概念非常重要。随着多模态方法日益普及,这些术语不仅仅适用于大型语言模型(LLMs),还可用于解释图像和视频。
本教程的目标是通过简单直接的示例和代码片段向你介绍这些核心概念。
向量:机器的语言
向量在LLMs和生成式人工智能的运作中起着至关重要的作用。要理解它们的重要性,就必须了解向量是什么,以及它们在LLMs中是如何生成和利用的。
在数学和物理学中,向量是一个具有大小和方向的对象。它可以几何地表示为一个有向线段,其中线段的长度表示大小,箭头指向向量的方向。向量在表示不能完全用单个数字描述的量(如力、速度或位移)时起着基础作用,这些量具有大小和方向。
在LLMs领域,向量用于以模型可以理解和处理的数字形式表示文本或数据。这种表示被称为嵌入。嵌入是捕捉单词、句子甚至整个文档的语义含义的高维向量。将文本转换为嵌入的过程使LLMs能够执行各种自然语言处理任务,如文本生成、情感分析等。
简单来说,向量就是一个一维数组。
由于机器只能理解数字,因此诸如文本和图像之类的数据被转换为向量。向量是唯一被神经网络和变换器架构理解的格式。
对向量进行操作,例如点积,有助于我们发现两个向量是否相同或不同。在高层次上,这构成了对存储在内存中或专门的向量数据库中的向量进行相似性搜索的基础。
下面的代码片段介绍了向量的基本概念。如你所见,它是一个简单的一维数组:
图片
虽然上面显示的向量与文本无关,但它传达了这个概念。我们在下一节探讨的Tokens是表示文本的向量的机制。
Tokens:LLMs的基本构建块
Tokens是LLMs处理的基本数据单元。在文本的语境中,一个Token可以是一个单词、一个单词的一部分(子词),甚至是一个字符,这取决于Token化过程。
当文本通过分词器传递时,它根据特定方案对输入进行编码,并发出专门的向量,LLMs可以理解这些向量。编码方案高度依赖于LLMs。分词器可以决定将每个单词和部分单词转换为一个基于编码的向量。当一个Token经过解码器时,它可以轻松地再次转换为文本。
将LLMs的上下文长度称为其中一个关键的区别因素是很常见的。从技术上讲,它映射到LLMs接受特定数量的Tokens作为输入,并生成另一组Token作为输出的能力。分词器负责将提示(输入)编码成Tokens,并将响应(输出)转换回文本。
Tokens是文本以向量形式的表示。
下面的代码片段解释了如何将文本转换为Tokens,其中一个是针对像Llama 2这样的开放模型,另一个是针对商业模型,如GPT-4。这些代码基于Hugging Face的transformers模块和OpenAI的Tiktoken。
图片
图片
图片
图片
因此,关键要点是Tokens是基于特定分词器的向量。
嵌入:语义空间
如果Tokens是文本的向量表示,那么嵌入就是具有语义上下文的Tokens。它们代表文本的含义和上下文。如果Tokens由分词器编码或解码,那么嵌入模型负责生成以向量形式的文本嵌入。嵌入是使LLMs能够理解单词和短语的上下文、细微差别和微妙含义的基础。它们是模型从大量文本数据中学习的结果,不仅编码了Tokens的身份,还编码了它与其他Tokens的关系。
嵌入是LLMs的基础方面。
通过嵌入,LLMs实现了对语言的深度理解,实现了情感分析、文本摘要和问答等任务,具有细致的理解和生成能力。它们是LLM的入口点,但它们也被用于LLM之外,将文本转换为向量同时保留语义上下文。当文本通过嵌入模型时,将产生一个包含嵌入的向量。以下是来自开源嵌入模型sentence-transformers/all-MiniLM-L6-v2以及OpenAI模型text-embedding-3-small的示例。
图片
图片
图片
图片
比较与互动
Tokens与向量:Tokens是语言单位,而向量是这些单位的数学表示。在LLMs的处理管道中,每个Token都被映射到一个向量。
向量与嵌入:所有嵌入都是向量,但并非所有向量都是嵌入。嵌入是经过专门训练以捕捉深层语义关系的向量。
Tokens和嵌入:从Tokens到嵌入的过渡代表了从语言的离散表示向细致、连续和具有上下文意识的语义空间的移动。
理解向量、Tokens和嵌入对于把握LLMs如何处理语言至关重要。Tokens作为基本数据单位,向量为机器处理提供了数学框架,而嵌入则带来了深度和理解,使LLMs能够以类似人类的灵活性和准确性执行任务。这些组件共同构成了LLM技术的支柱,推动着当今AI应用的先进语言模型。
本文转载自 MoPaaS魔泊云,作者: Janakiram MSV