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

相关文章

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

Spring Boot集成Logback终极指南之从基础到高级配置实战指南

《SpringBoot集成Logback终极指南之从基础到高级配置实战指南》Logback是一个可靠、通用且快速的Java日志框架,作为Log4j的继承者,由Log4j创始人设计,:本文主要介绍... 目录一、Logback简介与Spring Boot集成基础1.1 Logback是什么?1.2 Sprin