LLM的基础模型3:Transformer变种

2024-06-04 23:04

本文主要是介绍LLM的基础模型3:Transformer变种,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模型领域最新技术跟踪。若对于具身智能感兴趣的请移步具身智能专栏。技术宅麻烦死磕AI架构设计。

Transformer变体

Encoder-Decoder 模型

Google在编码器-解码器模型领域的流行并非偶然。在最初的Transformer论文《Attention is all you need》中,Google的研究人员提出了一种基于编码器-解码器架构的方法,原因是他们想在英语和德语之间进行机器翻译。目标是输入一系列英语标记,并在最后输出翻译后的德语序列。他们实现这一目标的方法是采用一系列编码器块,因此这些将是我们到目前为止所看到的常规Transformer块,他们将放入英语标记,对其进行转换并按照我们所看到的方式准备它们。

Transformer块在处理完输入序列后,会生成一系列不同的向量,这些向量实际上是用于所谓的“交叉注意力”机制的。

简单来说,交叉注意力机制关注的是解码器部分在模型中如何利用这些向量来进行后续的处理。现在,这种方法的工作方式是,模型首先查看它作为解码器端生成的单词,然后当我们移动到需要交叉注意的点时,它会比较它所生成的单词在其Transformer块的中间,并从事物的编码器端查看交叉注意向量。我们将了解注意力如何获取这些不同类型的向量并将它们组合在一起,但是您可以将其视为编码器首先获取英语并将其实转换为某种丰富的向量,然后使用这些向量丰富向量并了解德语单词与要翻译的英语单词的关系。

因此,编码器-解码器模型通常采用一种类型的语言任务并将其转换为不同类型的语言。这可能是翻译或转换,也可能是介于两者之间的某种中间形式,例如从英语或某种自然语言获取输入并将其输出为代码语言,或者可能是一种编程语言到另一种编程语言。

总而言之,编码器解码器模型有许多不同的用例,它们基于交叉注意力的概念,稍后当我们讨论注意力时,我们将更深入地探讨什么是交叉注意力以及如何使用它机制详细。但本质上,编码器的作用是为解码器提供额外的信号源,以便解码器能够完成给定的任务,并且在反向传播期间,它学会依赖来自编码器的信号来完成其任务。

Encoder模型

在最初的Transformer发布几年后,Google还生产了第二个Transformer架构,这就是Transformer或BERT的双向编码表示。

Bert发布了一些新的创新,其中之一是分段嵌入,因此您可以使用变量[SEP]将一个句子分开,然后放入第二个序列或第二个句子,Bert将能够比较两者。他们训练BERT的方式也不同,因为他们会故意将不同的单词掩盖[MASK]到句子中让模型学习空白的单词。

BERT在微调方面非常出色,并且已经被使用并且仍然主导着不同类型自然语言处理的许多最先进的技术。BERT非常适合问答、命名实体识别以及其他更传统的自然语言处理任务。BERT至今仍在使用,并且比我们通常在新闻中看到的一些较大模型要轻量得多。

Decoder 模型

最流行和最知名的版本是GPT。GPT全名是Generative Pre-training Transformer,顾名思义,这类Transformer可以生成新单词。您可能听说过“生成式人工智能”这个流行术语,而GPT就是这个流行词的由来。仅解码器模型的整体目标是尝试根据当前正在处理的序列来预测下一个单词。

在GPT中,它将吸收所有正在处理和丰富的向量,并使用Transformer块末尾的分类softmax层来尝试预测下一个标记或下一个单词。我们已经看到了大量基于这些GPT或基于解码器的模型的应用程序,您可能会熟悉ChatGPT、Bard、Claude、LLama、MPT等等。

关键变量

为了更好的继续后面的学习,请熟悉下面反复出现的关键变量,使得后面的阅读更加流畅。当碰到一个全新的模型,可以从下面表格的多个维度去解读。

词汇量:它指的是Transformer在训练过程中能够识别的不同标记的数量,这些标记组合起来就能形成新的单词。

模型大小:它是Transformer中的一个核心变量,它通常与模型的规模大小有关。在后续的内容中,我们会讨论到参数的数量,但在这里需要强调的是,嵌入的维度或者说模型的大小是决定模型参数数量的关键因素之一。因为Transformer内部的许多矩阵运算和神经网络的规模都直接依赖于模型或嵌入的维度大小。

序列或上下文的长度:它对运行Transformer所需的计算资源有着重大影响。我们可以看到,上下文长度已经从最初的GPT模型的512个标记,发展到了像Claude这样的新模型支持的数十万个标记。在深入了解模型的内部结构时,还需要关注注意力头的数量,这将在下一节中详细讨论。注意力头的数量是多注意力机制中的一个关键部分。

中间或内部前馈网络的大小:它与Transformer中的前馈神经网络的中间层或隐藏层紧密相关。这些前馈网络占据了Transformer中所有学习参数的大约66%。而层数的多少也同样重要,它决定了Transformer模型中包含的Transformer块的数量。

模型训练的批量大小:虽然Transformer本质上是一个深度学习模型,但你会发现在实际应用中有很多不同的情况。例如,在这类模型的训练中,一个epoch可能只包含一个批次,或者批量大小仅有一两个样本,这并不罕见。而且,Transformer模型训练时使用的tokens数量可以达到数百万、数十亿甚至数万亿,这在深度学习领域是前所未有的。

这篇关于LLM的基础模型3:Transformer变种的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1031375

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

Python WebSockets 库从基础到实战使用举例

《PythonWebSockets库从基础到实战使用举例》WebSocket是一种全双工、持久化的网络通信协议,适用于需要低延迟的应用,如实时聊天、股票行情推送、在线协作、多人游戏等,本文给大家介... 目录1. 引言2. 为什么使用 WebSocket?3. 安装 WebSockets 库4. 使用 We

从基础到高阶详解Python多态实战应用指南

《从基础到高阶详解Python多态实战应用指南》这篇文章主要从基础到高阶为大家详细介绍Python中多态的相关应用与技巧,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、多态的本质:python的“鸭子类型”哲学二、多态的三大实战场景场景1:数据处理管道——统一处理不同数据格式

MySQL数据类型与表操作全指南( 从基础到高级实践)

《MySQL数据类型与表操作全指南(从基础到高级实践)》本文详解MySQL数据类型分类(数值、日期/时间、字符串)及表操作(创建、修改、维护),涵盖优化技巧如数据类型选择、备份、分区,强调规范设计与... 目录mysql数据类型详解数值类型日期时间类型字符串类型表操作全解析创建表修改表结构添加列修改列删除列