智能体课程文档

什么是LLM?

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

什么是LLM?

Unit 1 planning

在上一节中,我们了解到每个Agent都需要一个AI模型作为其核心,而LLM是用于此目的最常见的AI模型类型。

现在我们将学习什么是LLM以及它们如何为Agent提供动力。

本节提供了关于LLM使用的简洁技术解释。如果您想深入了解,可以查阅我们免费的自然语言处理课程

什么是大型语言模型?

LLM 是一种擅长理解和生成人类语言的 AI 模型。它们在大量文本数据上进行训练,从而能够学习语言中的模式、结构甚至细微差别。这些模型通常由数百万个参数组成。

现在大多数 LLM 都基于 Transformer 架构构建——这是一种基于“注意力”算法的深度学习架构,自 Google 于 2018 年发布 BERT 以来,受到了广泛关注。

Transformer
原始的 Transformer 架构是这样的,左边是编码器,右边是解码器。

Transformer 有 3 种类型

  1. 编码器
    基于编码器的 Transformer 将文本(或其他数据)作为输入,并输出该文本的密集表示(或嵌入)。

    • 示例:Google 的 BERT
    • 用例:文本分类、语义搜索、命名实体识别
    • 典型大小:数百万参数
  2. 解码器
    基于解码器的 Transformer 专注于生成新 Token 以完成序列,一次一个 Token

    • 示例:Meta 的 Llama
    • 用例:文本生成、聊天机器人、代码生成
    • 典型大小:数十亿(美式,即 10^9)参数
  3. Seq2Seq(编码器-解码器)
    序列到序列的 Transformer **结合了**编码器和解码器。编码器首先将输入序列处理成上下文表示,然后解码器生成输出序列。

    • 示例:T5, BART
    • 用例:翻译、摘要、释义
    • 典型大小:数百万参数

尽管大型语言模型有各种形式,但LLM通常是具有数十亿参数的基于解码器的模型。以下是一些最著名的LLM:

模型 提供商
Deepseek-R1 深度求索
GPT4 OpenAI
Llama 3 Meta (Facebook AI Research)
SmolLM2 Hugging Face
Gemma Google
Mistral Mistral

LLM 的基本原理简单而高效:其目标是根据先前的 Token 序列预测下一个 Token。“Token”是 LLM 处理的信息单位。您可以将“Token”视为“单词”,但出于效率考虑,LLM 不使用整个单词。

例如,虽然英语估计有 600,000 个单词,但 LLM 的词汇量可能只有大约 32,000 个 Token(Llama 2 就是这种情况)。Tokenization 通常作用于可组合的子词单元。

例如,考虑“interest”和“ing”这两个 Token 如何组合成“interesting”,或者“ed”如何附加到“interested”。

您可以在下面的交互式操场中尝试不同的分词器

每个LLM都有一些模型特有的特殊token。LLM使用这些token来开启和关闭其生成内容的结构化组件。例如,用来指示序列、消息或响应的开始或结束。此外,我们传递给模型的输入提示也使用特殊token进行结构化。其中最重要的是序列结束token(EOS)。

特殊令牌的形式在不同模型提供商之间差异很大。

下表说明了特殊标记的多样性。

模型 提供商 EOS Token 功能
GPT4 OpenAI <|endoftext|> 消息文本结束
Llama 3 Meta (Facebook AI Research) <|eot_id|> 序列结束
Deepseek-R1 深度求索 <|end_of_sentence|> 消息文本结束
SmolLM2 Hugging Face <|im_end|> 指令或消息结束
Gemma Google <end_of_turn> 对话轮次结束

我们不期望您记住这些特殊token,但重要的是要了解它们的多样性以及它们在LLM文本生成中扮演的角色。如果您想了解更多关于特殊token的信息,您可以在其Hub仓库中查看模型的配置。例如,您可以在SmolLM2模型的tokenizer_config.json中找到其特殊token。

理解下一个token预测。

LLM 被认为是自回归的,这意味着一次通过的输出成为下一次的输入。这个循环会一直持续,直到模型预测下一个 token 是 EOS token,此时模型可以停止。

Visual Gif of autoregressive decoding

换句话说,LLM 将一直解码文本,直到遇到 EOS。但是,在单个解码循环中会发生什么呢?

虽然整个过程对于学习 Agent 来说可能相当技术化,但这里有一个简要的概述:

  • 一旦输入文本被分词,模型会计算序列的表示,该表示捕获有关每个token在输入序列中的含义和位置的信息。
  • 这个表示进入模型,模型输出分数,这些分数对词汇表中每个token作为序列中下一个token的可能性进行排名。
Visual Gif of decoding

基于这些分数,我们有多种策略来选择完成句子的 token。

  • 最简单的解码策略是始终选择得分最高的 token。

你可以在这个 Space 中用 SmolLM2 亲自体验解码过程(记住,它会一直解码直到达到 EOS token,对于这个模型来说,EOS 是 <|im_end|>

  • 但是有更高级的解码策略。例如,束搜索探索多个候选序列,以找到总分最高的那个——即使某些单个 token 的得分较低。

如果您想了解更多关于解码的信息,您可以查看自然语言处理课程

注意力就是你所需要的一切

Transformer 架构的一个关键方面是注意力机制。在预测下一个单词时,句子中并不是每个单词都同等重要;在句子“法国的首都是……”中,“法国”和“首都”这样的词语承载着最重要的意义。

注意力视觉动图 这种识别最相关单词以预测下一个 Token 的过程已被证明非常有效。

尽管 LLM 的基本原理——预测下一个 token——自 GPT-2 以来一直保持一致,但在扩展神经网络和使注意力机制适用于越来越长的序列方面取得了显著进展。

如果您曾与 LLM 交互,您可能熟悉“上下文长度”这个术语,它指的是 LLM 可以处理的最大 token 数量,以及它所拥有的最大“注意力跨度”。

提示LLM很重要

考虑到 LLM 的唯一工作是通过查看每个输入 token 来预测下一个 token,并选择哪些 token 是“重要”的,因此您提供的输入序列的措辞非常重要。

您提供给LLM的输入序列称为提示。仔细设计提示可以更轻松地引导LLM的生成朝着期望的输出方向发展

LLM是如何训练的?

LLM 在大型文本数据集上进行训练,通过自监督或掩码语言建模目标来学习预测序列中的下一个单词。

通过这种无监督学习,模型学习了语言结构和文本中的潜在模式,从而使模型能够泛化到未见过的数据

在初始的预训练之后,LLM 可以通过监督学习目标进行微调,以执行特定任务。例如,一些模型针对对话结构或工具使用进行训练,而另一些则专注于分类或代码生成。

我如何使用LLM?

您有两个主要选择:

  1. 本地运行(如果您有足够的硬件)。

  2. 使用云/API(例如,通过 Hugging Face 无服务器推理 API)。

在整个课程中,我们主要通过 Hugging Face Hub 上的 API 使用模型。稍后,我们将探讨如何在您的硬件上本地运行这些模型。

LLM如何在AI Agent中使用?

LLM 是 AI Agent 的关键组成部分,它为理解和生成人类语言提供了基础

它们可以解释用户指令,在对话中保持上下文,制定计划并决定使用哪些工具。

我们将在本单元中更详细地探讨这些步骤,但目前您需要了解的是,LLM 是 Agent 的大脑


信息量很大!我们已经介绍了LLM是什么,它们如何运作,以及它们在为AI代理提供动力方面的作用。

如果您想更深入地了解语言模型和自然语言处理的迷人世界,请不要犹豫,查看我们免费的 NLP 课程

现在我们了解了LLM的工作原理,是时候看看LLM如何在对话环境中构建其生成内容了。

要运行此笔记本您需要一个Hugging Face token,您可以从https://huggingface.co/settings/tokens获取。

有关如何运行 Jupyter Notebooks 的更多信息,请查阅 Hugging Face Hub 上的 Jupyter Notebooks

您还需要请求访问 Meta Llama 模型

< > 在 GitHub 上更新