所有節目›AI Engineer Europe 2026World's Fair 2026World's Fair 線上軌AI in HealthcareSoftware Factories
Training an LLM from Scratch, Locally在 YouTube 看這一場

AI Engineer Europe 2026 · 工作坊 · 2026-05-04 · 81 分

從零訓練一個小型 LLM

Training an LLM from Scratch, Locally · Angelos Perivolaropoulos,ElevenLabs

Angelos 帶大家在筆電或 Colab 上,用 Torch 從零訓練一個莎士比亞風格的小模型。內容包含分詞、架構、訓練迴圈、取樣,以及現場問答。

其他:產品與研究介紹看原片 ↗

概要

  • 不靠預訓練權重Angelos 要大家只用 Torch 與少數函式庫,從零訓練 LLM,並說這已經涵蓋大實驗室設計模型的大部分基礎,再往後多半是最佳化與擴大規模。
  • 小資料配字元分詞這次的資料只有 65 個不同字元,所以直接用字元當 token。Angelos 說代價是模型很難抓到詞與詞的關係,正式的 LLM 會改用 BPE。
  • 架構其實不長Angelos 用 GPT-2 風格的 decoder-only 架構,拆成注意力、殘差、layer norm、MLP 四種零件,並說整套 model、train、generate 三個檔案合起來大約幾百行。
  • loss 數字有跡可循從約 4.17 開始,降到 3.3 時學會字元頻率,1.5 到 2 之間開始出現單字,1.0 到 1.2 算堪用,再往下就是過擬合。
  • 取樣方式要看用途寫作類的 LLM Angelos 不建議 greedy decoding,轉錄這類只有一種正解的任務反而最適合;這場用 0.7 的 temperature。
  • 問答延伸到後訓練與多模態Angelos 說推理能力主要靠後訓練,多模態則是 encoder 輸出的向量取代 token 的嵌入。

原話

  • “you don't necessarily need to know in a very deep level how transformers work to be able to train something like this”

    你不必深入理解 transformer 的運作,也能訓練出這樣的東西

    ▶ 15:48
  • “So you pretty much never want to use grid decoding for LLMs.”

    所以對 LLM 來說,幾乎不該用 greedy decoding

    ▶ 53:54
  • “Grid decoding is the best, because there's usually only one way you can transcribe something.”

    做轉錄時 greedy decoding 最好,因為一段話通常只有一種寫法

    ▶ 53:54
  • “in the end reasoning is essentially just adding to the context of the model”

    說到底,推理就是往模型的上下文裡多加內容

    ▶ 1:04:35
  • “So these data sets are kind of the most expensive.”

    所以這些資料集算是最貴的東西

    ▶ 1:08:50

延伸

  • Angelos 提到可以改用自己訓練的 BPE 分詞器、加大 context、調整 dropout 與學習率,作為比賽時的進階玩法,但沒有示範。
  • 回答多模態問題時,Angelos 說自己也不確定影像與文字的向量是否落在相近的空間,認為會是不錯的研究題目。

章節

點時碼直接跳到原片的那一段。

  1. 開場與自我介紹Angelos 說明自己帶 ElevenLabs 的語音轉文字團隊,這場是動手做的工作坊。
  2. 目標與準備今天要不靠預訓練權重、只用 Torch 與少數函式庫從零訓練 LLM;Angelos 說這大約走完八成的路。
  3. 靈感來自 nanoGPT工作坊的藍本是 Andrej Karpathy 的 Nano GPT 影片,架構採用 GPT-2。
  4. 訓練模型的四塊分詞器、模型架構、訓練迴圈、推論;Angelos 說新舊模型預訓練相近,差別多半在後訓練。
  5. 字元層級分詞這次只用 65 個字元當 token,Angelos 用二元組合的數量說明為什麼小資料要配小詞表。
  6. 字元分詞的代價字元分詞難捕捉詞與詞的關係,真要訓練像樣的 LLM 得改用 BPE,嵌入層大小也會跟著變。
  7. Transformer 的零件多頭自注意力、殘差連接、layer norm 各自的作用,Angelos 強調不必完全懂也能動手訓練。
  8. 聽眾問:程式碼怎麼分詞BPE 從訓練資料找常見片段,沒見過的字串會退回字元或位元組層級。
  9. 設定模型參數詞表 65、序列長度 256、六層,並逐項說明注意力頭與嵌入維度的意思。
  10. 模型的程式結構頂層 GPT 類別串起嵌入、多個 block 與 LM head,輸出下一個 token 的分佈。
  11. 自注意力與 MLP block注意力負責找出 token 之間的關係,MLP 把結果整理成表示,block 則是一層 transformer。
  12. 逐項算參數量Angelos 逐項口算各部分的參數數量,說明大部分參數都在 transformer block 裡。
  13. 訓練目標與資料目標是寫出莎士比亞風格的詩句,資料約一百萬個字元,用錯開一位的序列做下一個 token 預測。
  14. 學習率排程暖身 100 步後用餘弦衰減降到 5,000 步,優化器用 AdamW。
  15. 訓練迴圈與驗證損失batch size 64、每 1,000 步存檢查點,並用沒看過的資料算 val loss 來抓過擬合。
  16. 怎麼讀 loss 數字loss 從約 4.17 往下,每個區間模型學到的東西不同,低於 1.0 開始過擬合。
  17. 文字生成的取樣比較 greedy decoding、temperature 與 top-k,並說明 seed 如何讓結果可重現。
  18. 整合與 Colab 實跑整套是 model、train、generate 三個檔案;Angelos 在 Colab 約 15 分鐘就訓出像樣的結果。
  19. 從曲線判斷問題train loss 不降、val loss 回升、異常尖峰、停滯,各自對應不同問題。
  20. 比賽規則大家各自訓練模型,用固定 seed 與提示詞產生詩句,再投票選出最好的一首。
  21. 聽眾問:推理模型推理能力主要來自後訓練,核心難處是找到高品質的思考資料。
  22. 後訓練資料從哪來大實驗室找標註公司或自己養標註團隊,品質把關靠資深 QA 檢查新手標註員。
  23. 聽眾問:seed 的用途非決定性來自隨機數與硬體,seed 能讓結果固定,即使用 greedy decoding 也建議設。
  24. 聽眾問:音訊與多模態音訊與影像先經過各自的 encoder,輸出的向量取代 token 的嵌入,餵給同一個 transformer。
  25. 音樂生成與音訊分詞自迴歸與擴散兩種做法都可行,擴散通常比較容易做起來;音訊多半先轉成 mel spectrogram 再分詞。

名詞

nanoGPT
Angelos 說自己最早是從 Andrej Karpathy 的 Nano GPT 影片認識 transformer,這場以它為藍本
GPT-2
這場訓練的小模型所採用的架構,Angelos 說基本零件至今沒有太大改變
Google Colab
沒有足夠記憶體的筆電可改用它的免費 GPU,Angelos 提醒要把執行環境改成 T4 GPU
uv
Angelos 用來建立專案環境的工具,跑 uv sync 就會建好虛擬環境
character-level tokenizer
以單一字元當 token 的分詞器,這場的資料集只有 65 個
BPE
從訓練資料找常見字元組合並合成 token 的分詞方式,大實驗室目前最常用
AdamW
這場用的優化器,搭配暖身與餘弦衰減調整學習率
val loss
用模型沒看過的資料算出的損失,用來判斷是否過擬合
greedy decoding
每次都選機率最高的 token,Angelos 說寫作類 LLM 不適合,轉錄類任務適合
temperature
控制取樣隨機程度的參數,Angelos 建議 0.7 左右
Scale AI
Angelos 提到的標註公司,替實驗室找各領域人員產生後訓練資料
mel spectrogram
Angelos 說把音訊轉成這種數值陣列後再做分詞,是常見做法

相關影片 同在「其他:產品與研究介紹」