7 分钟详解大型语言模型背后的 7 个概念

7 Concepts Behind Large Language Models Explained in 7 Minutes

7 分钟详解大型语言模型背后的 7 个概念
作者 | Ideogram 提供图片

如果您一直使用 GPT-4 或 Claude 等大型语言模型,您可能想知道它们是如何编写切实可用的代码、解释复杂主题,甚至帮助您调试早晨的咖啡习惯(开玩笑!)。

但幕后到底发生了什么?这些系统如何将一个简单的提示转化为连贯、富有上下文的响应,有时甚至感觉像是人类?

今天,我们将深入了解使大型语言模型工作的核心概念。无论您是正在将 LLM 集成到应用程序中的开发人员,还是试图理解其功能和局限性的产品经理,又或者只是一个好奇的人,本文都适合您。

1. 分词

在任何文本进入神经网络之前,都必须将其转换为数值表示。分词就是这个翻译过程,它比简单地按空格或标点符号分割更复杂。

分词器使用字节对编码 (BPE)、WordPiece 或 SentencePiece 等算法来创建词汇表,这些词汇表在效率和表示质量之间取得平衡。

7 Concepts Behind Large Language Models Explained in 7 Minutes

作者 | diagrams.net (draw.io) 提供的图片

这些算法通过从单个字符开始,然后逐步组合最常出现的对来构建子词词汇表。例如,“unhappiness”可以分词为 [“un”, “happy”, “ness”],使模型能够单独理解前缀、词根和后缀。

这种子词方法解决了许多关键问题。它可以通过将未知单词分解为已知片段来处理。它能够处理词形丰富的语言,因为这些语言的单词有许多变体。最重要的是,它创建了一个模型可以处理的固定词汇量,对于现代 LLM 通常是 32K 到 100K 个 token。

分词方法决定了模型的效率和计算成本。有效的分词可以缩短序列长度,从而降低处理需求。

GPT-4 的 8K 上下文窗口允许 8,000 个 token,大约相当于 6,000 个单词。当您构建处理长文档的应用程序时,token 计数对于管理成本和保持在限制内至关重要。

2. 嵌入

您可能已经看到过关于嵌入和流行嵌入模型的文章或社交媒体帖子。但它们到底是什么?嵌入将离散的 token 转换为向量表示,通常在数百或数千个维度中。

有趣的地方在于这里。**嵌入是同时捕获语义含义的密集向量表示**。嵌入不是将单词视为任意符号,而是将它们放置在一个多维空间中,其中相似的概念聚集在一起。

7 Concepts Behind Large Language Models Explained in 7 Minutes

作者 | diagrams.net (draw.io) 提供的图片

想象一张地图,“国王”和“王后”是近邻,而“国王”和“自行车”则相隔数大陆。这基本上就是嵌入空间的样子,只不过它同时发生在数百或数千个维度上。

当您构建搜索功能或推荐系统时,嵌入是您的秘密武器。两段具有相似嵌入的文本在语义上是相关的,即使它们没有完全相同的单词。这就是为什么现代搜索可以理解“汽车”和“车”基本上是同一件事。

3. Transformer 架构

Transformer 架构彻底改变了自然语言处理(是的,字面意义上!),引入了注意力机制。Transformer 与旧模型顺序处理文本不同,它们可以同时查看句子中的所有部分,并找出哪些词对于理解其他词最重要。

在处理“猫坐在垫子上,因为它很舒服”时,注意力机制有助于模型理解“它”指的是“垫子”,而不是“猫”。这是通过学习到的注意力权重实现的,这些权重加强了相关词之间的联系。

对于开发人员来说,这意味着模型可以处理文本中的长距离依赖关系和复杂关系。这就是为什么现代 LLM 可以在多个段落中保持连贯的对话,并理解跨越整个文档的上下文。

4. 训练阶段:预训练 vs 微调

LLM 的开发分为不同的阶段,每个阶段都有不同的目的。语言模型通过预训练从海量数据集中学习模式——这是一个昂贵且计算密集型的阶段。可以将其视为教会模型理解和生成一般人类语言。

接下来是微调,您在此阶段将预训练模型专门用于特定的任务或领域。您不是从头开始学习语言,而是教会一个已经具备能力的模型在特定应用(如代码生成、医学诊断或客户支持)中表现出色。

7 Concepts Behind Large Language Models Explained in 7 Minutes

作者 | diagrams.net (draw.io) 提供的图片

为什么这种方法有效?您不需要大量资源就可以创建强大、专业的模型。公司通过使用自己的数据微调现有模型来构建特定领域的 LLM,以相对适中的计算预算取得了令人瞩目的成果。

5. 上下文窗口

每个 LLM 都有一个上下文窗口——它是模型一次可以考虑的最大文本量。您可以将其概念化为模型的运行内存。从模型的角度来看,窗口之外的一切都不存在。

这对开发人员来说可能是一个巨大的挑战。如何构建一个可以跨多个会话记住对话的聊天机器人,而模型本身没有持久记忆?如何处理比上下文窗口更长的文档?

一些开发人员会维护对话摘要,并将它们反馈给模型以保持上下文。但这只是一种方法。这里还有一些可能的解决方案:在 LLM 系统中使用内存、检索增强生成 (RAG) 和滑动窗口技术。

6. 温度和采样

温度有助于平衡语言模型生成响应中的随机性和可预测性。在温度为 0 时,模型始终选择最可能的下一个 token,从而产生一致但可能重复的结果。较高的温度会引入随机性,可能使输出更具创意,但可预测性更低。

本质上,温度决定了模型词汇表的概率分布。在低温度下,模型强烈偏好高概率 token。在高温下,它让低概率 token 有更大的机会被选中。

诸如 top-k 和 nucleus 采样之类的采样技术为文本生成提供了额外的控制机制。Top-k 采样将选择限制在概率最高的 k 个 token,而 nucleus 采样则通过使用累积概率阈值来适应性地确定候选集。

这些技术有助于平衡创意和连贯性,让开发人员能够更精细地控制模型行为。

7. 模型参数和规模

模型参数是编码 LLM 所知一切的学习权重。大多数大型语言模型通常有数百亿个参数,而更大的模型则达到万亿级别。这些参数捕获了语言的模式,从基本的语法到复杂的推理能力。

更多的参数通常意味着更好的性能,但这种关系不是线性的。扩大模型规模需要指数级增长的计算资源、数据集和训练时间。

对于实际开发而言,参数数量会影响推理成本、延迟和内存要求。一个 70 亿参数的模型可能可以在消费级硬件上运行,而一个 700 亿参数的模型则需要企业级 GPU。理解这种权衡有助于开发人员为特定的用例和基础设施限制选择合适的模型大小。

总结

我们在本文中涵盖的概念构成了每个 LLM 系统的技术核心。那么接下来呢?

去构建一些能帮助您更好地理解语言模型的东西。也试着在路上读一些东西。从“Attention Is All You Need”等开创性论文开始,探索嵌入技术,并在您自己的数据上尝试不同的分词策略。

设置一个本地模型,观察温度变化如何影响输出。分析不同参数大小下的内存使用情况。祝您实验愉快!

暂无评论。

发表评论

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。