绝区壹--LLM的构建模块


前言

语言是人类交流的本质,大型语言模型 (LLM) 凭借其出色的理解和生成类似人类的文本的能力,彻底改变了我们与语言互动和利用语言的方式。深入研究 LLM 的构建块(向量、标记和嵌入),揭示了使这些模型能够以前所未有的复杂程度处理语言的复杂机制。

LLM 是变革性的 AI 系统,彻底改变了 NLP 领域。这些模型能够以非凡的流畅性和连贯性理解、生成和处理类似人类的文本。LLM 的核心是实现其卓越性能的基本构建块:向量、标记和嵌入。在这篇博客中,我将深入探讨这些组件的复杂性,并探索 LLM 如何利用它们以前所未有的复杂性处理和生成语言。

1. 向量:语言的数值表示

在 LLM 领域,语言被表示为数值向量,即密集的高维实数数组。这些向量是计算的基本单位,使 LLM 能够以捕捉语言语义和句法属性的方式对语言进行数学运算。

1.1 独热编码:传统方法

传统上,自然语言中的单词或标记使用独热编码方案表示。在这种方法中,词汇表中的每个单词都被分配一个唯一索引,并创建一个零向量,其长度等于词汇表的大小。该向量在与单词索引相对应的位置处具有单个值 1,在其他地方为零。

例如,如果词汇量为 10,000 个单词,并且单词“cat”的索引为 237,则它的独热编码将是一个长度为 10,000 的向量,其中位置 237 为 1,其他地方为 0。

虽然独热编码简单直观,但它也存在一些局限性。首先,它会创建高维稀疏向量,这对于大型词汇表来说计算效率低下。其次,更重要的是,它无法捕捉单词之间的语义关系,将每个单词视为一个孤立的实体。

1.2 分布式表示:密集向量的力量

为了解决独热编码的局限性,LLM 采用分布式表示,也称为密集向量表示或嵌入。在这种方法中,每个单词都由一个密集的实数向量表示,维度通常从几百到几千甚至更多。

这些密集向量旨在捕捉单词之间的语义和句法关系。具有相似含义或上下文的单词由高维向量空间中彼此靠近的向量表示,而不相似的单词则由相距较远的向量表示。

将单词转换为密集向量的过程称为词嵌入,这是 LLM 训练中的关键步骤。各种技术(例如 Word2Vec、GloVe 以及最近基于自注意力和转换器的方法)都用于从大量文本数据中学习这些嵌入。

与独热编码相比,密集向量表示有几个优点:

  1. 计算效率:密集向量的维度通常比独热向量低得多,从而实现更高效的计算并减少内存需求。
  2. 语义关系:高维空间中词向量的接近度捕获了语义和句法关系,使 LLM 能够理解和生成具有更高连贯性和上下文意识的文本。
  3. 泛化:通过将单词表示为密集向量,LLM 可以推广到未见过的单词或短语,只要它们的嵌入与已知单词或上下文的嵌入相似。
  4. 组合性:密集向量允许进行数学运算,例如加法和乘法,这些运算可用于组成和操作更大语言单位(如短语或句子)的表示。

1.3 子词标记和字节对编码

虽然词嵌入功能强大,但它们在处理词汇表外 (OOV) 单词方面存在局限性,这些单词是训练语料库中不存在的单词。为了解决这个问题,LLM 通常采用子词标记技术,例如字节对编码 (BPE)。

子词标记化是将单词分解为更小的单元(称为子词标记或词块)的过程。这些子词标记可以组合起来表示任何单词,包括在训练期间未见过的单词。

BPE 算法首先将每个单词表示为单个字符或字节的序列。然后,它会迭代地将最常见的连续字符或字节对合并为新标记,从而有效地创建子单词标记词汇表。此过程持续进行,直到达到所需的词汇表大小或满足特定的停止标准。

例如,“unbreakable”这个词可能被标记为“un##break##able”,其中“##”是用于表示子词单元的特殊分隔符。

通过使用子词标记化,LLM 可以更有效地处理 OOV 词,因为它们可以通过组合已知的子词标记来表示甚至未见过的词。这种方法还有助于减少词汇量,从而提高计算效率和模型性能。

2. 标记:语言表征的基石

在 LLM 中,token 是语言表示的基本单位。它们可以是单词、子单词或模型用来处理和生成文本的特殊符号。

2.1 标记词汇

LLM 通常具有预定义的标记词汇表,这是一组用于表示语言的唯一标记。此词汇表可以包括:

  1. 单词标记:来自训练语料库的单个单词。
  2. 子词标记:通过 BPE 等标记化技术获得的子词单元。
  3. 特殊标记:具有特定用途的标记,例如序列开始标记、序列结束标记、填充标记或分隔标记。

标记词汇表的大小可能因模型和所用的标记化策略而异。词汇表越大,可以捕捉到更多的语言细微差别,但也可能增加计算复杂性和内存需求。

2.2 标记嵌入

词汇表中的每个标记都与一个密集向量表示相关联,称为标记嵌入。这些嵌入是在训练过程中学习的,用于在高维向量空间中表示标记。

标记嵌入可以捕获标记的语义和句法属性,从而使模型能够推理它们之间的关系和上下文。相似的标记往往具有在向量空间中相近的嵌入,而不相似的标记则具有相距较远的嵌入。

标记嵌入在 LLM 的输入和输出处理中起着至关重要的作用。当一段文本被输入到模型中时,它首先被标记化,每个标记被映射到其相应的嵌入。然后,这些嵌入由模型的层处理以生成所需的输出,例如文本的延续、翻译或特定于任务的结果。

2.3 位置嵌入

除了标记嵌入之外,LLM 还经常利用位置嵌入来整合序列中标记的位置或顺序信息。这很重要,因为单词或短语的含义可能会根据其在句子或上下文中的位置而改变。

位置嵌入通常在训练期间学习,并添加到标记嵌入中,然后再由模型层进行处理。这使得模型能够捕获位置信息并根据标记在序列中的位置来理解它们之间的关系。

已经提出了各种表示位置信息的技术,包括正弦位置编码、学习位置嵌入和相对位置编码。位置编码策略的选择会影响模型的性能及其处理语言中长距离依赖关系的能力。

3. 嵌入:语言的语义表征

嵌入是一种密集的向量表示,可以捕获语言单元(例如单词、短语或句子)的语义和句法属性。它们在 LLM 的性能中发挥着至关重要的作用,使这些模型能够以有意义且具有上下文感知的方式推理语言。

3.1 词嵌入

如前所述,词向量是单个单词的密集向量表示。它们通常使用 Word2Vec、GloVe 等技术从大量文本数据中学习而来,或者使用最近在 Transformer 模型中使用的基于自注意力的方法。

词嵌入通过将相似的单词放在高维向量空间中紧密相连来捕获单词之间的语义关系。此属性使 LLM 能够理解单词的含义和上下文,从而实现语言生成、翻译和文本摘要等任务。

3.2 短语和句子嵌入

虽然词向量非常强大,但它们无法捕捉较大语言单位(例如短语或句子)的全部含义和细微差别。为了解决这个问题,LLM 通常采用技术来生成短语和句子的向量。

3.2.1 组合短语和句子嵌入

获取短语和句子嵌入的一种方法是通过组合,即使用加法、乘法或更复杂的函数等数学运算将各个单词的嵌入组合在一起。其基本原理是组合性的概念,这意味着可以从较大语言单位的含义及其组成部分的含义和组合规则中得出较大语言单位的含义。

对于短语或句子,可以使用向量运算将各个标记的词嵌入组合起来,以创建表示整个短语或句子的单个嵌入。例如,一种简单的方法可以是对短语或句子中的词嵌入取元素平均值或总和,以创建组合嵌入。

更先进的技术包括使用循环神经网络 (RNN) 或卷积神经网络 (CNN) 以更复杂的方式组合词向量,同时考虑单词之间的顺序和结构关系。这些方法可以捕捉重要的语言现象,例如否定、修饰和语义组合性。

3.2.2 语境化嵌入

虽然组合嵌入可以捕捉短语和句子含义的某些方面,但它们往往无法捕捉语言的完整语境和细微差别。为了解决这一限制,LLM 采用技术来生成语境化嵌入,在表示语言单位时会考虑周围的语境。

生成语境化嵌入的一种主要方法是使用基于 Transformer 的语言模型,例如 BERT、GPT 及其变体。这些模型利用自注意力机制和双向语境来生成受周围文本动态影响的嵌入。

在基于 Transformer 的模型中,输入序列首先被标记化并映射到标记嵌入,然后通过多个编码器或解码器层。这些层应用自注意力机制,允许根据每个标记与序列中其他标记的关系来更新其嵌入。

由此产生的语境化嵌入可以捕捉语言单元在特定语境中的含义,同时考虑到词序、句法结构和语义关系等因素。事实证明,这些嵌入可以显著提高各种 NLP 任务的性能,包括问答、文本分类和语言生成。

4. 大型语言模型的整体架构

虽然向量、token 和嵌入是 LLM 的基本组成部分,但这些模型采用了复杂的架构和训练策略来实现其卓越的语言理解和生成能力。在本节中,我们将探索 LLM 的整体架构,重点关注 Transformer 模型和自注意力机制。

4.1 Transformer 架构

Transformer 架构彻底改变了 LLM 领域,并为许多最先进的模型奠定了基础,例如 BERT、GPT 及其变体。

Transformer 架构基于自注意力机制,该机制允许模型通过关注输入序列的相关部分来捕获语言中的长程依赖关系。这与传统的循环神经网络 (RNN) 和长短期记忆 (LSTM) 模型不同,后者由于计算的顺序性,很难捕获长程依赖关系。

Transformer 架构由编码器和解码器组成,每个编码器和解码器均由多个层组成。编码器层处理输入序列并生成上下文化嵌入,而解码器层则根据这些嵌入和先前生成的标记生成输出序列。

4.2 自注意力机制

自注意力机制是 Transformer 架构的核心组件,负责捕获输入序列中 token 之间的关系。它允许模型在计算特定 token 的表示时动态地为序列的不同部分分配重要性权重。

在自注意力机制中,每个 token 的嵌入被转换为三个向量:查询向量、键向量和值向量。然后使用缩放点积运算将查询向量与序列中所有其他 token 的键向量进行比较。这会产生注意力分数,表示每个 token 与当前正在处理的 token 的相关性。

然后使用这些注意力分数来计算值向量的加权和,为当前标记生成一个新的表示,该表示包含来自输​​入序列的最相关部分的信息。

自注意力机制并行应用于多个注意力头,每个注意力头关注输入序列的不同方面。然后,这些注意力头的输出被组合起来,并通过前馈神经网络来产生最终的语境化嵌入。

4.3 多头注意力和位置编码

除了自注意力机制之外,Transformer 架构还采用了其他几个关键组件来增强其性能并处理语言处理的不同方面。

多头注意力机制:Transformer 架构不再依赖单一的注意力机制,而是使用多个注意力头,每个注意力头负责输入序列的不同部分。这些多个注意力头使模型能够捕捉输入中不同类型的关系和依赖关系,从而提高其整体表征能力。

位置编码:由于自注意力机制将输入序列视为一组标记嵌入,因此它缺少有关序列中标记的顺序或位置的信息。为了解决这个问题,Transformer 架构结合了位置编码,这些编码在自注意力计算之前添加到标记嵌入中。这些位置编码为模型提供了有关标记的相对或绝对位置的信息,使其能够捕获语言中的顺序和结构依赖关系。

4.4 预训练和迁移学习

预训练和迁移学习技术是 LLM 成功的关键因素之一。预训练涉及在大量未标记的文本数据上训练大型语言模型,使其能够学习丰富的语言表示并捕捉语言模式和关系。

经过预训练后,这些模型可以通过对特定任务的标记数据进行进一步训练,针对特定的下游任务(例如问答、文本摘要或语言生成)进行微调。这种迁移学习方法允许预训练模型利用其通用语言知识,同时适应目标任务的特定要求。

预训练和迁移学习对于在各种 NLP 任务中实现最佳性能起到了重要作用,因为它们能够将知识从大型通用语言模型有效地转移到专门的任务特定模型,从而减少了对大量任务特定训练数据的需求。

4.5 模型缩放和架构变化

随着LLM (LLM) 的进步,研究人员和从业人员探索了各种策略来提高其性能,包括模型缩放和架构变化。

模型扩展:增强 LLM 能力的一种方法是增加其规模,包括参数数量和使用的训练数据量。研究表明,拥有数十亿甚至数万亿个参数的大型模型表现出更好的语言理解和生成能力,因为它们可以捕捉更细微的语言模式和关系。

然而,扩展 LLM 面临着巨大的计算和内存挑战,需要专门的硬件和有效的训练策略。

架构变化:虽然 Transformer 架构一直是 LLM 的主导范式,但研究人员已经探索了各种架构变化来应对特定挑战或提高某些任务的性能。

这种变化的例子包括 Reformer 模型,它引入了有效的注意力机制来处理更长的输入序列,以及 Longformer 模型,它结合了局部和全局注意力机制来捕捉语言中的短程和长程依赖关系。

此外,研究人员还探索将外部知识源(例如知识图谱或结构化数据)纳入 LLM,以增强他们的事实知识和推理能力。

5. 应用和未来方向

LLM 的卓越功能使其能够在各个领域实现广泛的应用,从语言生成和翻译到问答、文本摘要和内容创建。

语言生成和创意写作:LLM 在生成连贯、类似人类的文本方面表现出了令人印象深刻的能力,使其成为创意写作、内容生成甚至代码生成的宝贵工具。

机器翻译:通过利用捕捉语言细微差别和上下文的能力,LLM显著提高了机器翻译系统的质量,使语言之间的翻译更加准确、流畅。

问答和信息检索:LLM 可以针对问答任务进行微调,使其能够理解自然语言查询并从大型知识库或文本源中提供相关信息。

文本摘要:LLM 可以生成长篇文档或文章的简洁摘要,捕捉最突出的信息并以简洁的格式呈现。

内容创作和协助:LLM 越来越多地被用作智能写作助手,帮助用户完成内容构思、编辑和事实核查等任务,使内容创作过程更加高效、有效。

尽管取得了显著成就,LLM仍然面临重大挑战和局限性。确保事实准确性、减轻偏见和有害语言的产生以及增强可解释性和可控性是正在进行的研究和开发领域。

此外,LLM的道德影响,包括隐私问题、潜在的滥用以及对行业和就业市场的影响,需要仔细考虑和负责任的发展实践。

随着LLM(LLM)的不断发展和进步,我们可以期待看到更加令人印象深刻的语言理解和生成能力,开辟人机交互、知识获取和智力增强的新领域。


欢迎你分享你的作品到我们的平台上. http://www.shxcj.com 或者 www.2img.ai 让更多的人看到你的才华。

创作不易,觉得不错的话,点个赞吧!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/867628.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

辣子简报芬芳喜事特辑

【辣子简报芬芳喜事特辑】🎉在这个季节的尾声,当一缕阳光温柔地洒在打包好的行囊上,我们不约而同地停下了忙碌的脚步,回望那段共同编织的璀璨时光——79天的并肩作战,如同一段精彩绝伦的旅程,如今已缓缓驶向…

3D地图是智慧城市可视化项目绕不开的技术!来我帮你解决

**3D地图:智慧城市可视化项目绕不开的技术!来我帮你解决** 智慧城市已成为未来城市发展的必然趋势。而3D地图作为智慧城市可视化项目的核心技术之一,其重要性不言而喻。本文将深入探讨3D地图在智慧城市建设中的应用及其优势,为您…

2-5 softmax 回归的简洁实现

我们发现通过深度学习框架的高级API能够使实现线性回归变得更加容易。 同样,通过深度学习框架的高级API也能更方便地实现softmax回归模型。 本节如在上节中一样, 继续使用Fashion-MNIST数据集,并保持批量大小为256。 import torch from torc…

黑马的ES课程中的不足

在我自己做项目使用ES的时候,发现了黑马没教的方法,以及一些它项目的小问题 搜索时的匹配方法 这个boolQuery().should 我的项目是通过文章的标题title和内容content来进行搜索 但是黑马它的项目只用了must 如果我们的title和content都用must&#x…

Apache Seata新特性支持 -- undo_log压缩

本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 Apache Seata新特性支持 – undo_log压缩 Seata新特性支持 – undo_log压缩 现状 & 痛点…

【IT领域新生必看】 Java编程中的重写(Overriding)规则:初学者轻松掌握的全方位指南

文章目录 引言什么是方法重写(Overriding)?方法重写的基本示例 方法重写的规则1. 方法签名必须相同示例: 2. 返回类型可以是子类型(协变返回类型)示例: 3. 访问修饰符不能比父类的更严格示例&am…

WordPress子比主题美化文章顶部添加百度收录按钮

要在WordPress子主题中美化文章顶部并添加百度收录按钮,你可以按照以下步骤操作: 首先,确保你的主题支持自定义CSS。如果不支持,你需要在主题目录下创建一个名为style.css的文件,并将以下代码复制到该文件中。如果你的…

全网最详细的appium 自动化测试iOS(二)

一、环境准备: 1、安装appium 2、xcode (appium 版本:12.1.0 xcode版本:12.5 可正常运行,ps:appium 版本:12.1.0 xcode版本:13.0 一直报奇奇怪怪的错误) 3、依赖工具包安装 brew install…

VSCode设置字体大小

方法1:Ctrl 和 Ctrl -,可以控制整个VSCode界面的整体缩放,但是不会调整字体大小 方法2:该方法只能设置编辑器界面的字号,无法改变窗口界面的字号。 (1)点开左下角如下图标,进入…

谷粒商城学习笔记-15-数据库初始化

文章目录 一,创建数据库1,数据库名称2,创建数据库 二,创建表1,仓储模块建表2,订单模块建表3,商品模块建表4,优惠券模块建表5,会员模块建表6,DBeaver批量执行S…

小白 | Linux安装python3

一、更新包列表 首先,确保你的包管理器是最新的: sudo apt update 二、安装 Python 3 安装 Python 3 以及常用的开发工具 sudo apt install python3 python3-pip python3-venv 三、验证安装 python3 --version

FreeRTOS——事件标志组

一、事件标志组 前面所介绍的队列、信号量,只能实现与单个任务进行同步。而有时候某个任务可能需要与多个事件或任务进行同步,此时,事件标志组的作用就凸显出来 1.1 事件标志组简介 事件标志位:用一个位,来表示事件是…

二、Spring

二、Spring 1、Spring简介 1.1、Spring概述 官网地址:https://spring.io/ Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。 Spring 框架是一个开源的 Jav…

密码学及其应用 —— 密码学的经典问题

1. 古典密码学问题 1.1 问题1:破解凯撒密码 1.1.1 问题 凯撒密码是最简单的单字母替换加密方案。这是一种通过将字母表中的字母固定向右移动几位来实现的加密方法。解密下面的文本,该文本通过对一个去除了空格的法语文本应用凯撒密码获得: …

ruoyi mybatis pagehelper 分页优化(自定义limit位置)clickhouse 外部数据源

例如加入clickhouse的分页时发现extends 不生效 则可以添加 startPage();registerDialectAlias("clickhouse", PageMySqlDialectPlus.class);List<MyMonitorlog> list monitorlogService.selectMonitorlogList(monitorlog);主要是需要注册 registerDialectAl…

js获取当前浏览器地址,ip,端口号等等

前言&#xff1a; js获取当前浏览器地址&#xff0c;ip&#xff0c;端口号等等 window.location属性查询 具体属性&#xff1a; 1、获取他的ip地址 window.location.hostname 2、获取他的端口号 window.location.port 3、获取他的全路径 window.location.origin 4、获取…

认识异常详解

1. 异常的定义&#xff1a; 在Java中&#xff0c;异常&#xff08;Exception&#xff09;是在程序执行过程中可能出现的错误或意外情况。异常可以分为两种类型&#xff1a;受检异常&#xff08;Checked Exception&#xff09;和未受检异常&#xff08;Unchecked Exception&…

【linux学习---1】点亮一个LED是多么的困难!!!

文章目录 1、原理图找对应引脚2、IO复用3、IO配置4、GPIO配置5、GPIO时钟使能6、总结7、编程8、编译9、链接10、格式转换11、反汇编&#xff08;查看用&#xff09;12、使用Makefile操作13、代码烧写14、代码验证 1、原理图找对应引脚 从上图 可以看出&#xff0c; 蜂鸣器 接到…

固态,机械,移动(U盘),sd卡,哪个更适合长期储存数据 保存数据用什么硬盘可靠 硬盘数据丢失怎么找回 硬盘维护注意事项

有关硬盘数据丢失的恢复技巧&#xff0c;这篇文章一定要收藏好。在硬盘使用过程中&#xff0c;很多情况都会导致数据丢失&#xff0c;例如硬盘跌落、病毒感染、系统文件损坏等。这时候&#xff0c;一定要采用正确的方法&#xff0c;抢救硬盘中存储的珍贵数据和文档。 有关长期保…

PO模式简介

V1顺序型&#xff1a;不能批量运行 import unittest from selenium import webdriver from time import sleep driver webdriver.Edge()# driver.maximize_window() driver.implicitly_wait(30) # driver.get(r"https://demo5.tp-shop.cn/") # driver.find_element…