首页 > 其他分享 >LLM | 一文带你揭秘大语言模型ChatGPT的原理

LLM | 一文带你揭秘大语言模型ChatGPT的原理

时间:2024-08-22 11:51:30浏览次数:8  
标签:语言 训练 模型 注意力 LLM ChatGPT 揭秘 RNN

本文包含大量AI干货

预计阅读时间:10分钟

本文学习目标

  • 定义语言模型和大型语言模型 (LLM)。

  • 介绍关键的 LLM 概念,包括TransFormer和自注意力机制。

  • 介绍LLM提示工程、微调和Rag,以及当今热门的大语言模型应用。

前言

在当今的科技时代,大型语言模型(LLM)正以惊人的速度发展并深刻影响着各个领域。从自然语言处理的早期探索到如今强大的ChatGPT的出现,这一历程充满了创新与挑战。本文将深入探讨大型语言模型的概念、架构、应用以及面临的局限性,带您全面了解这一前沿技术的发展现状与未来前景。

1 什么是大型语言模型?

1.1 NLP 的开始

自然语言处理 (NLP)语言学、计算机科学和人工智能的跨学科分支。其目标是使计算机能够理解自然语言中的文本和其他媒体,包括其上下文细微差别。

从 20 世纪 80 年代开始,随着计算能力的增长和机器学习算法在语言处理中的引入,统计 NLP 开始成形,它始于使用监督学习算法的机器翻译。

但很快,人们的注意力就转向了半监督和无监督学习算法,以处理互联网上生成的越来越多的原始语言数据。语言建模是 NLP 应用的关键工具之一

1.2. 语言模型(LM)

语言模型使用统计和概率技术来确定给定单词序列在句子中出现的概率,是一个机器学习模型,旨在预测和生成合理的语言。例如,自动补全功能是一种语言模型。

这些模型的工作原理是估算令牌(Token)或令牌序列在较长的令牌序列中出现的概率。考虑以下句子:

When I hear rain on my roof, I _______ in my kitchen.

假设你的令牌(Token)是一个单词,语言模型会确定不同字词或字词序列的替换概率。例如,语言模型可能会确定以下概率:

cook soup 9.4% warm up a kettle 5.2% cower 3.6% nap 2.5% relax 2.2% ...

“令牌序列”可以是整个句子或一系列句子。也就是说,语言模型可以计算不同完整句子或文本块的可能性。

估算序列中后续步骤的概率对以下各种情况非常有用:生成文字、翻译语言以及回答问题等等。

1.3 大型语言模型 (LLM)

大型语言模型 (LLM)在更大规模下工作的神经语言模型。大型语言模型由可能具有数十亿个参数的神经网络组成。此外,它通常针对大量未标记的文本进行训练,可能涉及数千亿个单词。大型语言模型也是一种深度学习模型,通常是通用模型,擅长处理各种任务。它们通常针对相对简单的任务进行训练,例如预测句子中的下一个单词。

大规模对人工语言进行建模是一项非常复杂且需要大量资源的工作。数十年来,语言模型和大型语言模型达到目前的发展能力。

模型构建越大,复杂性和效率越高。早期语言模型可以预测单个字词的概率;现代大型语言模型可以预测句子、段落甚至整个文档的概率。

随着计算机内存、数据集大小和处理能力的增加,语言模型的大小和能力在过去几年里呈爆炸式增长,并且开发了更有效的模型来对较长的文本序列进行建模。

有多大?

该定义模糊不清,但“large”一直用于描述 BERT(1.1 亿个参数)以及 PaLM 2(最多 3400 亿个参数)。

参数是模型在训练期间学习的权重,用于预测序列中的下一个令牌。“大”可以指模型中的参数数量,有时可以指数据集中的字词数量。

然而,由于对大量数据和大量参数进行了充分训练,这些模型可以捕捉人类语言的大部分语法和语义。因此,它们能够在计算语言学的广泛任务中发挥更精细的技能。

1.4 基础模型

基础模型通常是指在广泛数据上训练的任何模型,可以适应广泛的下游任务。这些模型通常使用深度神经网络创建,并使用自监督学习在许多未标记的数据上进行训练。

这个术语是斯坦福人工智能研究所 (HAI)不久前创造的,所谓的基础模型和大语言模型(LLM)之间并没有明确的区别。

尽管如此,LLM 通常是针对与语言相关的数据(如文本)进行训练的。但基础模型通常是针对多模态数据(文本、图像、音频等的混合)进行训练的。更重要的是,基础模型旨在作为更具体任务的基础:基础模型通常会针对各种下游认知任务进行进一步的训练,从而进行微调

微调是指采用预先训练好的语言模型,并使用特定数据针对不同但相关的任务进行训练的过程。这个过程也称为迁移学习。

2 LLM 的总体架构

早期的 LLM 大多使用 RNN 模型和 LSTM 和 GRU创建。然而,它们面临着挑战,主要是在执行大规模 NLP 任务时表现不佳。但这正是 LLM 的预期表现。这导致了 Transformers 的诞生!

2.1. 早期的 LLM 架构

刚开始时,LLM 主要是使用自监督学习算法创建的。自监督学习是指处理未标记的数据以获得有用的表示,从而帮助完成下游学习任务。

自监督学习算法通常使用基于人工神经网络 (ANN)的模型。我们可以使用多种架构创建 ANN,但 LLM 最广泛使用的架构是循环神经网络 (RNN)

现在,RNN 可以使用其内部状态来处理可变长度的输入序列。RNN既有长期记忆,也有短期记忆。RNN 有多种变体,如长短期记忆 (LSTM)门控循环单元 (GRU)

LSTM 架构可帮助 RNN 确定何时记住重要信息以及何时忘记重要信息。GRU 架构比 LSTM 更简单,训练所需的内存更少,并且执行速度更快。但 GRU 通常更适合较小的数据集。

2.2. LSTM 和 GRU 的问题

正如我们之前所见,引入 LSTM 是为了将记忆引入 RNN。但是使用 LSTM 单元的 RNN 训练起来非常慢。此外,对于此类架构,我们需要按顺序或串行方式输入数据。这不允许我们并行化并使用可用的处理器核心。

另外,尽管带有 GRU 的 RNN 模型训练速度更快,但在较大的数据集上表现不佳。尽管如此,长期以来,LSTM 和 GRU 仍然是构建复杂 NLP 系统的首选。

然而,此类模型也存在梯度消失问题在使用基于梯度的反向传播学习方法的 ANN 中,会遇到梯度消失问题。在此类方法中,在每次训练迭代期间,权重都会收到与当前权重相关的误差函数偏导数成比例的更新。

在某些情况下,例如循环网络,梯度会变得非常小。这实际上阻止了权重改变其值。这甚至可能阻止神经网络进一步训练。这些问题使得 RNN 在 NLP 任务中的训练实际上效率低下。

2.3 注意力机制(Attention)

自我注意力的自我部分是指语料库中每个令牌的“以自我为中心”焦点。实际上,就输入的每个令牌而言,自我注意力问题是:“所有其他输入令牌对我有多重要?”这样即可通过重点关注输入中最重要的部分,从而解决在早期模型中遇到的内存问题,从而处理更长的序列。

RNN 的部分问题通过在其架构中添加注意力机制得到部分解决。在 LSTM 等循环架构中,可传播的信息量有限,并且保留信息的窗口较短。

然而,有了注意力机制,这个信息窗口就可以显著增加。注意力是一种增强输入数据某些部分同时削弱其他部分的技术。其背后的动机是网络应该更多地关注数据的重要部分。

注意力机制和自注意力机制之间存在细微的差别,但它们的动机是一样的。注意力机制指的是关注另一个序列的不同部分的能力,而自注意力机制指的是关注当前序列的不同部分的能力。

自注意力机制允许模型访问来自任何输入序列元素的信息。在 NLP 应用中,这提供了有关远处标记的相关信息。因此,模型可以捕获整个序列中的依赖关系,而无需固定或滑动窗口。

2.4 词嵌入

在 NLP 应用中,如何表示自然语言中出现的单词或标记非常重要。在 LLM 模型中,输入文本被解析为标记,每个标记使用词嵌入转换为实值向量。

词嵌入能够捕捉单词的含义,这样一来,向量空间中距离较近的单词的含义就应该相似。词嵌入的进一步发展还使它们能够在不同的向量中捕捉每个单词的多个含义。

词向量有多种形式,其中一种是将单词表示为单词出现的语言上下文的向量。此外,还有几种生成词向量的方法,其中最流行的方法依赖于神经网络架构。

2013 年,谷歌的一个团队发布了word2vec,这是一个词嵌入工具包,它使用神经网络模型从大量文本中学习单词关联。单词和短语嵌入已被证明可以提高句法分析和情感分析等NLP 任务的性能

2.5 Transformer 模型的诞生

带有注意力机制的 RNN 模型性能显著提升,但循环模型本质上难以扩展。自注意力机制很快展现出强大实力,甚至无需循环顺序处理。

2017 年,谷歌大脑团队推出的 Transformers 或许是大型语言模型(LLM)历史上最重要的转折点之一。它围绕注意力机制设计,能重点关注输入中的关键部分,解决了早期模型的内存问题,从而可处理更长的序列。

Transformer 是一种采用自注意力机制、能一次性处理整个输入的深度学习模型。与早期基于 RNN 的模型不同,Transformer 没有循环结构。在有充足训练数据的情况下,仅靠 Transformer 架构中的注意力机制就能达到带有注意力机制的 RNN 模型的性能水平。使用 Transformer 模型的另一个突出优势是更易于并行化,训练时间明显减少。这正是我们在大量文本数据上构建 LLM 时,充分利用现有资源的理想选择。

完整的Transformers包含编码器解码器。编码器将输入文本转换为中间表示形式,解码器将中间表示形式转换为有用的文本。

3.6 编码器-解码器架构

许多基于 ANN 的自然语言处理模型都是使用编码器-解码器架构构建的。例如,seq2seq是谷歌最初开发的一个算法系列。它使用带有 LSTM 或 GRU 的 RNN 将一个序列转换为另一个序列。

原始的Transformer 模型也使用了编码器-解码器架构。编码器由编码层组成,这些编码层一层接一层地迭代处理输入。解码器由解码层组成,这些解码层对编码器的输出执行相同的操作。

每个编码器层的功能是生成包含有关输入的哪些部分彼此相关的信息的编码。输出编码随后被传递给下一个编码器作为其输入。每个编码器由一个自注意力机制和一个前馈神经网络组成。

此外,每个解码器层都会采用所有编码并使用其合并的上下文信息来生成输出序列。与编码器一样,每个解码器都由自注意力机制、编码注意力机制和前馈神经网络组成。

3 如何用数据定制你的LLM?

3.1 提示工程

自从 GPT-3 等大型 LLM 问世以来,提示已成为一种更简单、更流行的利用 LLM 完成特定任务的方法。在这种方法中,需要解决的问题以文本提示的形式呈现给模型,模型必须通过提供完成来解决这个问题。

这种利用 LLM 功能的范例也称为提示工程。它通常通过将一个或多个任务转换为基于提示的数据集并使用基于提示的学习来训练语言模型来工作。

少量样本提示是一种提示技术,允许模型在尝试执行任务之前处理示例。它包括问题和解决方案对的某些示例,称为样本。这也称为情境学习,最初是作为微调的替代方案提出的。

情境学习的一个常见例子是思路链提示。在这种提示中,在尝试回答问题之前,向模型提供少量样本以输出一串推理。它有助于提高模型在需要逻辑思维和推理的任务中的表现。

3.2 微调

微调是一种迁移学习方法,其中预训练模型的权重在新的数据上进一步训练。迁移学习是指将解决一项任务时获得的知识应用于相关任务的实践。

微调可以在整个神经网络上进行,也可以只在其部分层上进行。通常,它涉及引入一组新的权重,将语言模型的最后一层与下游任务的输出连接起来。语言模型的原始权重保持不变。

微调通常使用监督学习来完成,使用与任务相关的一组小得多的标记数据。其他方法也经常用于微调,例如弱监督学习和强化学习。

微调是 LLM 最流行的应用技术,用于将其用于下游 NLP 任务,如情绪分析、命名实体识别和词性标注。然而,随着 LLM 开始变得更大,提示等更简单的技术开始变得更受欢迎。

3.3 检索增强生成 (RAG)

检索增强生成(RAG)是一种有助于解决大型语言模型的幻觉和训练数据过时问题的策略。

检索增强生成(RAG)是一种策略,它把信息检索与一系列精心设计的系统提示加以融合,让大型语言模型锚定于从外部知识库检索而来的精准、最新且相关的信息之上。以这种带有上下文知识的提示来引导大型语言模型,即便大型语言模型的训练数据保持不变,也能使创建需要对事实具备深入且不断发展理解的特定领域应用成为可能。

3.4 基于人类反馈的强化学习(RLHF

ChatGPT 和 Sparrow 等流行模型使用的强化学习(RLHF),它涉及对人类生成的提示和响应对数据集进行监督微调。

在 RLHF 中,奖励函数是根据人类偏好的数据集来学习的。此外,奖励函数用于通过优化算法使用强化学习来优化代理的策略。通过要求人类对代理行为实例进行排名来收集人类反馈。

RLHF 面临的一个关键挑战是人工反馈的可扩展性和成本。因此,与无监督学习相比,这种方法可能既慢又贵。此外,人工反馈可能因任务和个人偏好而异。

4 LLM的潜在应用

自OpenAI 推出的 ChatGPT 引发各大科技公司的“军备竞赛“”!

如今,我们可以想象 LLM 的应用非常多样化。LLM 的广泛用例之一是生成性。在这里,主要目标是根据用户的一个或多个提示生成内容。我们可以想到 LLM 的几种生成性应用。例如,对话聊天机器人、代码助手,甚至艺术灵感!

LLM 的另一个关键用例是搜索领域。LLM 有能力颠覆基于关键字算法的传统搜索服务。基于 LLM 的搜索技术可以更好地理解语言并找到更相关的结果。此外,搜索引擎正在通过将多个 LLM 连接在一起扩展到问答领域。

LLM 非常擅长模仿人类的语音模式。除此之外,它们擅长将信息与不同的样式和色调相结合。

LLM 的其他可能用例包括抽象摘要、机器翻译、文档聚类和分类、语音识别和光学字符识别。当然,这远非 LLM 可能应用的完整列表。随着 LLM 变得越来越大、越来越好,这个列表可能会无穷无尽,而且必将不断完善

5 LLM的局限性和挑战

这种大型模型并非没有缺点。

过去几十年,研究人员在开发 LLM 方面取得了重大进展,尤其是自从引入 transformer 以来。然而,仍然存在一些挑战。首先,创建 LLM 的成本仍然很高。一个典型的 LLM 有数十亿个参数,并在数万亿个 token 上进行训练。训练和运行这些模型的成本非常高,训练可能需要数月时间,因此会消耗大量资源。

使用超过 一万亿个参数的训练模型会带来工程挑战。需要特殊的基础架构和编程技术来协调流向条状标签再回到芯片。有几种方法可以降低这些大型模型的费用,两种主流的方法是离线推断蒸馏

LLM 通常在广泛的数据集上进行训练,可能是在网络规模上。这通常过于笼统,可能错过特定领域的知识。因此,用户可能会发现 LLM 的输出对于搜索或生成任务来说不够人性化。同时,消除偏见和控制 LLM 的攻击性或无意义的输出仍然是一个挑战。

此外,重要的是要明白,LLM 不可能包办一切,至少现在还不是!LLM 通常没有时间概念,也不以空间感为基础。因此,LLM 很难执行需要时间或空间推理的任务。此外,LLM 在数学推理方面也不是很好。然而,LLM 每天都在变得更好!

6 结束语

本文详细介绍了大型语言模型(LLM)。从自然语言处理的起源开始,阐述了统计 NLP 的发展以及语言模型的作用。LLM 是在大规模数据上训练的神经网络,具有数十亿甚至数千亿个参数,能捕捉人类语言的大部分语法和语义,在各种任务中表现出色。

早期的 LLM 主要使用 RNN、LSTM 和 GRU 架构,但面临训练慢、难以并行化和梯度消失等问题。注意力机制的引入部分解决了这些问题,特别是自注意力机制使模型能处理更长的序列。Transformer 模型的诞生是 LLM 历史上的重要转折点,其围绕注意力机制设计,易于并行化,训练时间明显减少。

在定制 LLM 方面,有提示工程、微调、检索增强生成(RAG)和基于人类反馈的强化学习(RLHF)等方法。LLM 的应用非常广泛,包括生成性应用如对话聊天机器人、代码助手等,以及在搜索、摘要、翻译等领域的应用。

然而,LLM 也存在局限性和挑战。创建和运行 LLM 的成本高,可能错过特定领域知识,存在输出不够人性化、消除偏见难等问题,且在时间和空间推理、数学推理方面表现不佳。尽管如此,随着技术的不断进步,LLM 正变得越来越好,未来的发展前景值得期待。

☞加入AI知识星球【AIGC(文本图像视频)特训营】,获取更多知识,一起修炼AI!

☞关注公众号【AIGC前沿洞察】,发送"AI"更可获取超多免费AI资源包​​​​​​​

标签:语言,训练,模型,注意力,LLM,ChatGPT,揭秘,RNN
From: https://blog.csdn.net/Vampire_2017/article/details/141422865

相关文章

  • vLLM
    vLLM是一个快速且易于使用的LLM推理和服务库vLLM的快速性体现在:最先进的服务吞吐量通过PagedAttention有效管理注意力机制KV的内存连续的批次处理请求使用CUDA/HIP图快速执行模型量化:GPTQ、AWQ、INT4、INT8、FP8CUDA内核优化,包括FlashAttention和FlashInfer的集成推测行......
  • cnhw06s.dll谜团揭秘:硬件加速支持的权威修复策略详解
    解决cnhw06s.dll文件丢失的问题,可以尝试以下步骤来恢复硬件支持功能:1.系统还原:•如果你知道DLL文件丢失前的一个还原点,可以尝试使用Windows的系统还原功能回到那个状态。2.重新安装相关软件:•cnhw06s.dll通常与某些硬件相关的软件或驱动程序关联。尝试确定该DLL属于哪个程......
  • LLM 推理 & 服务
    目录vLLMPagedAttention:解决内存瓶颈vLLM的安装与使用vLLM加州大学伯克利分校的研究者开源了一个项目vLLM,该项目主要用于快速LLM推理和服务。vLLM的核心是PagedAttention,这是一种新颖的注意力算法,它将在操作系统的虚拟内存中分页的经典思想引入到LLM服务中。配备了Pa......
  • 【OS系列】程序、进程与线程之区别大揭秘,一图读懂胜千言
    1.程序(Program)程序是一组指令的集合,它存储在磁盘上,是一个静态的实体。程序本身并不执行任何操作,它只是提供了一个执行的蓝图。例如,一个编译好的可执行文件(如Windows的.exe文件)就是一个程序。2.进程(Process)进程是程序的一次执行实例,是操作系统进行资源分配和调度的基本......
  • TypeScript深度揭秘:Map的全方位详解、作用、特点、优势及实战应用和高级应用
            在TypeScript的广阔世界里,Map对象无疑是一个强大的存在,它提供了灵活且高效的键值对存储机制。今天,我们就来一场轻松而严谨的探秘之旅,全方位解析TypeScript中Map的定义、作用、特点、优势,并通过实战代码示例,带你领略Map的无穷魅力。引言Map是TypeScript(以及Ja......
  • 国内外ChatGPT镜像网站集合【2024-08-21最新】~
     一、GPT4o& &4.0turbo&GPT4omini介绍总有人问我,GPT4o、GPT4.0和GPT3.5有什么区别?国内怎么才能用上,听说很复杂以一张表来表达他们的区别吧GPT3.5、GPT3.5Turbo、GPT4.0均已经被官方放弃维护,也就是说我们其实已经使用不到这几个模型了。目前官方主流开放的模型有GP......
  • 汇总国内外ChatGPT镜像网站集合【2024-08最新】可无限制使用~
     一、GPT4o& &4.0turbo&GPT4omini介绍总有人问我,GPT4o、GPT4.0和GPT3.5有什么区别?国内怎么才能用上,听说很复杂以一张表来表达他们的区别吧GPT3.5、GPT3.5Turbo、GPT4.0均已经被官方放弃维护,也就是说我们其实已经使用不到这几个模型了。目前官方主流开放的模型有GP......
  • 云渲染服务大揭秘:为何它值得成为你的渲染新选择
    云渲染是一种基于云计算的服务,它利用大量高性能计算机组成的集群来渲染高质量的图像和动画。这种服务能够显著加快3D动画或视觉效果项目的渲染速度,将原本可能需要数天的渲染任务缩短至数小时。云渲染的优势本文将探讨使用云渲染的好处,并与传统的单机渲染方法进行比较,主要从速度......
  • 独家揭秘丨GreatSQL 的MDL锁策略升级对执行的影响
    独家揭秘丨GreatSQL的MDL锁策略升级对执行的影响一、MDL锁策略介绍GreatSQL的MDL锁有个策略方法类MDL_lock_strategy,它根据对象的类型分为了scope类型和object类型,前者主要用于GLOBAL,COMMIT,TABLESPACE,BACKUP_LOCKandSCHEMA,RESOURCE_GROUPS,FOREIGN_KEY,CHECK_CONSTR......
  • LLM | 面向对话式医疗健康场景的医疗大模型
    近日,复旦大学数据智能与社会计算实验室(Fudan-DISC)开发并开源了一个专门针对医疗健康对话式场景而设计的医疗领域大模型:DISC-MedLLM。DISC-MedLLMDISC-MedLLM是一个专为医疗健康对话场景而打造的领域大模型,它可以满足您的各种医疗保健需求,包括疾病问诊和治疗方案咨询......