智慧體課程文件

什麼是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 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.