<返回更多

什么是 LLM (大型语言模型)以及如何构建LLM?

2023-11-09    雅各布专栏
加入收藏

来源:Mangesh Gothankar

在本文中,我们将了解如何从零开始构建 LLM(大型语言模型)。你可能会问,为什么要做这样的事情?是这样的,LLM 在无数应用中都非常有用,从头开始构建一个 LLM,你就能了解底层的 ML 技术,并根据自己的特定需求定制 LLM。

什么是 LLM (大型语言模型)以及如何构建LLM?

内容目录:

语言在人类交流中起着基础性作用,在当今数据不断增长的网络时代,创建工具来分析、理解和连贯地交流是不可避免的。

这就是LLM的由来。

大型语言模型是一种 ML 模型,可以完成各种自然语言处理任务,从创建内容到将文本从一种语言翻译成另一种语言。大型 "一词表征了语言模型在学习期间可改变的参数数量,令人惊讶的是,成功的大型语言模型拥有数十亿个参数。

本文揭示LLM 发展背后的情况,了解它们闻所未闻的能力,并理解它们是如何重塑语言处理世界的。

主要启示:

什么是大型语言模型

通俗地说,"大型语言模型 "是一种经过训练的深度学习模型,它能以类似人类的方式理解和生成内容。在大舞台的背后,大型变换器模型创造了奇迹。

大型语言模型是一种深度学习算法,可以完成多项自然语言处理任务。

大型语言模型被称为神经网络,因为人脑为这些系统提供了灵感。这些神经网络使用分层节点网络工作,非常类似神经元。

此外,大型学习模型必须经过预先训练,然后进行微调,以教授人类语言,从而解决文本分类、文本生成挑战、问题解答和文档摘要等问题。Top 12 大型语言模型在解决各种问题方面的潜力可应用于从金融、医疗保健到娱乐等领域,这些模型服务于一系列 NLP 应用,如人工智能助手、聊天机器人、翻译等。

大型语言模型由难以计数的参数组成,类似于模型在训练过程中学习收集的记忆。您可以将这些参数视为模型的知识库。

快速回顾变革者模型

2017 年,一切都变了。

瓦斯瓦尼(Vaswani)发表了(我更喜欢传说中的)论文《Attention is All You Need》,其中使用了一种新颖的架构,他们称之为 "转换器(Transformer)"。

如今,转换器模型是大型语言模型最常见的架构。转换器模型通过对输入进行标记化处理数据,并通过数学公式来识别标记之间的关系,这样,计算系统就能看到人类在收到相同查询时会注意到的模式。

此外,转换器模型还具有自我注意机制,这使得模型的学习速度比传统的扩展短期记忆模型更快。自我注意机制允许转换器模型封装序列的不同部分或完整句子,从而进行预测。

总而言之,转换器模型在自然语言处理中发挥了重要作用。随着各公司开始利用这一革命性技术并开发自己的大型语言模型,企业和技术专业人士都必须了解这项技术的工作原理。尤其关键的是,要了解这些模型如何处理自然语言查询,使其能够准确地响应人类的问题和请求。

因此,让我们深入了解大型语言模型的世界,探索是什么让它们如此强大。

大型语言模型的关键要素

大型语言模型由多个神经网络层组成。这些定义好的层协同工作,处理输入文本并创建理想的输出内容。

让我们来看看。

嵌入层(The embedding layer)

该层是大型学习模型的关键要素。嵌入层接收输入(一串单词),并将每个单词转化为矢量表示。单词的向量表示捕捉了单词的含义及其与其他单词的关系。

前馈层(The feedforward layer)

LLM 的前馈层由几个完全连接的层组成,用于转换输入嵌入。同时,这些层允许模型提取更高层次的抽象概念,即识别用户输入文本的意图。

递归层(Recurrent Layer)

递归层允许 LLM 学习依赖关系,并生成语法正确、语义丰富的文本。

注意机制(The attention mechanism)

大语言模型中的注意力机制可让人专注于输入文本中的某个元素,以验证其与手头任务的相关性。此外,这些层还能使模型创建最精确的输出。

大型语言模型的类型

通常,大型语言模型会根据其所执行的任务进行分类:

自回归大型语言模型(预测下一个单词)(Autoregressive LLM)

大型学习模型的训练目的是建议输入文本中的下一个词序,简单地说,它们的唯一任务就是续写文本。

例如,在文本 "你好吗?"中,大型学习模型可能会完成 "你好吗?"或 "你好吗?我很好 "这样的句子。

属于这一类的大型学习模型有 Transformers、LaMDA、X.NET、BERT 和 GPT-3。

这些 LLM 面临的唯一挑战是,它在完成文本而不仅仅是回答方面的能力令人难以置信,很多时候,我们期待的是答案而不是完成。

将上面讨论的例子 "你好吗?"作为输入,大型学习模型会尝试用 "在做什么?"或 "我很好 "这样的文字来完成文本。这就说明,回答可以是完成语,也可以是答案,这也正是对话优化 LLM 出现的原因。

基于变换器的 LLM(对话优化型)

这些类型的 LLM 会回答问题,而不是完成问题。因此,当输入 "你好吗?"时,这类 LLM 通常会回答 "我很好",而不是完成句子。

经过对话优化的 LLM 包括 ChatGPT、BERT、BARD、InstructorGPT、Falcon-40B-instruct 等。

多语言模型

多语言模型在不同的语言数据集上进行训练,可以处理和生成不同语言的文本。它们有助于完成跨语言信息检索、多语言机器人或机器翻译等任务。

混合模型

混合模型是不同架构的混合体,可提高性能。例如,基于变压器的架构与递归神经网络(RNN)相结合,用于顺序数据处理。

还有更多。尤其是如果你想获得最终的成功,这篇文章就更不能省略了。

生成式人工智能与大型语言模型的微妙区别

生成式人工智能(Generative AI)是一个庞大的术语;简单地说,它是一个统称,指的是有可能创建内容的人工智能模型。此外,生成式人工智能还可以创建代码、文本、图像、视频、音乐等。一些流行的生成式人工智能工具有 Midjourney、DALL-E 和 ChatGPT。

大型语言模型是生成式人工智能的一种,它在文本上进行训练并生成文本内容。ChatGPT 就是生成式文本人工智能的一个节选。

所有大型语言模型都是生成式人工智能。

现在,如果您正在犹豫不决,想知道在哪里、做什么以及如何从头开始构建和训练 LLM,别担心,继续来了解下面的内容。

构建大型语言模型

现在是创建 LLM 的时候了。

我们将使用 TensorFlow 或 PyTorch 等机器学习框架来创建模型,这些框架提供了用于创建和训练 LLM 的预建工具和库,因此几乎不需要重新发明轮子。

我们将首先概述 LLM 的架构。此外,您还需要选择要使用的模型类型,例如递归神经网络转换器,以及层数和每层的神经元数。

接下来就是使用收集到的预处理数据对模型进行训练。

如何从零开始训练 LLM

对于不同类型的 LLM,训练 LLM 的方法也不同。假设您想建立一个连续文本 LLM,那么与对话优化的 LLM 相比,方法将完全不同。

这两点是影响 LLM 性能的关键因素。因此,让我们来讨论一下训练 LLM 所涉及的不同步骤。

自回归 LLM(Autoregressive LLMs )

延续文本的 LLM 的训练过程被称为相关 LLM。这些 LLM 在自我监督的学习环境中进行训练,以预测文本中的下一个单词。以下是从头开始训练 LLMs 的每个步骤:

步骤 1:收集数据集

训练 LLM 的第一步也是最重要的一步是收集大量文本数据。毕竟,数据集对大型学习模型的性能起着至关重要的作用。

最近,受 LLaMA-13B 启发的最新对话优化大型语言模型 "OpenChat "在 Vicuna GPT-4 评估中取得了 105.7% 的 ChatGPT 分数。

其成功背后的秘诀是高质量的数据,该模型在 ~6K 数据上进行了微调。

用于训练的数据收集自互联网,主要来自社交媒体、网站、平台、学术论文等。所有这些语料库确保了训练数据尽可能地分类,最终为大规模语言模型描绘出改进的通用跨领域知识。

因此,利用高质量的数据释放 LLM 的潜能是毫无疑问的!

步骤 2:数据集预处理和清理

接下来是数据集预处理和清理步骤。

由于数据集是从众多网页和不同来源抓取的,因此数据集很有可能包含各种细微的差异。因此,消除这些细微差别并为模型训练提供高质量的数据集至关重要。

具体步骤主要取决于您目前正在处理的数据集。标准的预处理措施包括:

训练数据可能有重复或几乎相同的句子,因为这些数据仅从互联网上的众多数据源收集而来。因此,出于两个重要原因,坚持重复数据删除的做法是不可避免的:

步骤 3:准备数据

数据集准备是对数据进行清理、转换和组织,使其成为机器学习的理想数据。这是任何机器学习项目中必不可少的一步,因为数据集的质量会直接影响模型的性能。

在预训练阶段,LLM 被训练为预测文本中的下一个标记。因此,输入和输出对也相应地进行了开发。

步骤 4:定义模型架构

下一步是 "定义模型架构和训练 LLM"。

目前,正在开发大量 LLM。您可以在 Hugging Face Open LLM Leaderboard 上了解所有 LLM 的概况。首先,研究人员在创建 LLM 时会遵循一个明确的流程。

通常,研究人员会从现有的大型语言模型架构(如 GPT-3)以及模型的实际超参数开始。然后,对模型架构/超参数/数据集进行调整,最终形成新的 LLM。

步骤 5:超参数调整

毫无疑问,超参数调整是一件既费钱又费时的事情。

不用担心!例如,如果您使用的是 GPT-3,那么请使用其相应架构的超参数,然后在小范围内确定最佳超参数,再将其插值到最终模式中。

这项实验包括以下任何一项或全部内容:

以下是一些行之有效的超参数实践:

对话优化 LLM(Dialogue-optimized LLM)

在对话优化 LLM 中,首要步骤与预训练 LLM 相同,一旦完成预训练,LLMs 就有可能完成文本。

此外,为了生成特定问题的答案,LLM 还需要在包括问题和答案在内的监督数据集上进行微调,到这一步结束时,您的 LLM 就可以为所提问题创建解决方案了。

例如,ChatGPT 是一种对话优化 LLM,其训练过程与上述步骤类似。唯一不同的是,除了预训练和监督微调外,它还包括一个额外的 RLHF(从人类反馈中强化学习)步骤。

LLM 训练完成后,就是评估其性能的时候了。让我们来看看如何评估!

如何评估大型学习模型?

大型语言模型评估不能主观臆断,相反它必须是一个评估 LLM 性能的逻辑过程。

考虑到在分类或回归挑战的情况下进行评估,比较实际表格和预测标签有助于了解模型的性能如何,为此我们通常会查看混淆矩阵。但 LLM 又是什么情况呢?它们会生成文本。

不用担心!评估 LLM 有两种方法--内在方法和外在方法。

内在方法

传统的语言模型使用内在方法进行评估,如每字符比特数、复杂度、BLUE 分数等。这些度量参数跟踪语言方面的性能,即模型预测下一个单词的能力。

此外,同样重要的是,没有放之四海而皆准的评价指标,每种衡量标准都有自己的优缺点。因此,必须使用各种不同的评估方法,以全面了解 LLM 的表现。

以下是评估 LLM 的一些额外注意事项:

外在方法

随着当今LLM的进步,外在方法正成为评估法律硕士表现的首选。评估 LLM 的建议方法是考察它们在推理、解决问题、计算机科学、数学问题、竞争性考试等不同任务中的表现。

EleutherAI 推出了一个名为 Language Model Evaluation Harness 的框架,用于比较和评估 LLM 的性能,HuggingFace 整合了该评估框架,以衡量社区创建的开源 LLM。

该框架通过四个不同的数据集对 LLM 进行评估,最终得分是每个数据集得分的累积。以下是参数:

部署 LLM

最后,是在生产环境中部署 LLM 的时候了。

您可以选择Lambda 或 google Cloud Functions 等无服务器技术,将模型部署为网络服务。此外,您还可以使用 Docker 等容器化技术,将模型及其依赖项打包到一个容器中。

最后......是时候更进一步了!

大型语言模型(如 ChatGPT 或谷歌的 PaLM)在人工智能领域掀起了一场风暴,然而,大多数公司在训练这些模型方面还没有任何进展,只能依赖少数几家科技巨头作为技术提供商。

如果您也在原地踏步,并计划走得更远,我们或许能帮到您多走一英里。

关键词:LLM      点击(9)
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多LLM相关>>>