星號:48.4K+最簡潔、高效的GPT培訓和微調存儲庫,包含300行代碼來實現中等規模的GPT nanoGPT是由Andrej Karpathy發起的一個開源項目,旨在提供最簡單、最快的代碼庫,用於從頭開始訓練或微調中等規模的GPT模型。它基於PyTorch重寫了minGPT以優先考慮性能,使其適合初學者快速入門Transformer架構,同時支持專業級實驗,例如在OpenWebtext上複製GPT-2的結果。
在大型語言模型成為時代主流的今天,您可能會好奇:
「GPT模型到底是如何從頭開始訓練的?"
Karpathy的開源項目 納米GPT, 旨在回答這個問題。
它不是另一個「玩具模型」,而是一個 一套極簡但完整的GPT培訓模板,提供從數據、模型結構到培訓的全過程,是學習現代大型模型工程的最佳入門項目之一。
什麼是nanoGPT?
nanoGPT =最精簡的GPT培訓和微調框架
它允許您根據自己的數據訓練微型GPT(結構與GPT-2類似,但具有極簡且高度可讀的代碼)。
Karpathy在REAUTE中很簡單:
它的目標是成為「最簡單、最快」的GPT培訓庫。
適合:
- 想要了解Transformer培訓流程的人
- 想要在消費級圖形處理器上本地訓練語言模型的人們
- 想要建立自己的LLM模型或科學研究原型的人
- 想要學習Karpathy工程風格(乾淨的結構,沒有複雜的依賴關係)的人
項目核心功能
nanoGPT不是「模型動物園」,它更像是教學級工程模板。
它包含:
1.& nbsp;數據處理(create.py)。
- 閱讀原文(例如莎士比亞全集)
- 將字符或單詞轉換為代幣
- 分裂列車/ val
- 將其保存為二進位格式,以高效地加載模型
特點: 簡單、透明、不隱藏任何細節。
2.& nbsp;模型(model.py)。
nanoGPT複製了純粹的「僅解碼器Transformer」,包括:
- 代幣嵌入
- 工位埋
- 多頭自我關注
- MLP前向網絡
- 層規範
- 殘差連接
- 蒙面關注
它的代碼量非常少,但結構很完整,您可以親自查看GPT的關鍵組件是如何組合在一起的。
3.& nbsp;培訓腳本(train.py)。
支持:
- 圖形處理器/多卡培訓
- Flash注意力(可選)
- PyTorch 2.x編譯加速
- 可重複的實驗配置
- 日誌記錄(丟失、疊代速度)
您需要做的就是:
Python train.py配置/train_shakespeare_char.py
它可以在莎士比亞文本上訓練「小GPT」並生成「莎士比亞式對話」。
4.& nbsp;推理(sample.py)。
完成後,您可以使用以下方法:
Python sample.py--out_char =out-shakespeare-char
生成文本。
輸出風格將明顯具有訓練集的特徵(例如,莎士比亞式的「你」和「你」語氣)。
nanoGPT有多受歡迎?
因為它有三個關鍵優勢:
1.代碼簡單透明
卡帕西經常說:
「有教育意義,但仍然有用。」
它不是一個玩具,而是一個現代GPT項目,可以真正貫穿,但具有極簡主義的結構。
2.真正的可訓練性和工程價值
您可以不必在紙上交談,而是:
- 火車莎士比亞GPT
- 用GPT訓練你的寫作風格
- 微調對話模型
- 即使對於產品原型
3.這是了解大型LLC的跳板
閱讀nanoGPT後,您會更容易理解:
- GPT-2
- GPT-J
- LLaMA系列
- 西北風建築
- Flash Attention如何工作
特別適合您進一步閱讀有關 變形金剛, nanoLLaMA 、將來等等。
你可以用nanoGPT做什麼?
有許多實際應用:
在您自己的文本上訓練「小ChatGPT」
例如:作品集文案、您最喜歡的作者的語氣、學習筆記、官方帳號風格。
嘗試製作一個「小型聊天機器人原型」
對小型數據集進行微調,讓它成為「您的風格助手」。"
了解大模特培訓的全過程
包括:
數據|代幣|批量|注意力計算|損失|優化|推理
在您自己的論文或項目中重複使用工程結構
因為它足夠乾淨,可以作為科學研究的基線。
代碼結構簡要描述
倉庫主要文件:
納米GPT/
- -train.py # 訓練主筆記本
- -sample.py #推廣/生成
- -model.py # GPT 模型定義
- -prepare.py # 數據預處理
- -數據/ # 示例數據
──配置/ # 各種訓練配置
它非常輕量級,您可以在幾分鐘內閱讀整個架構。
總結:一個真正值得「通讀原始碼」的項目
nanoGPT是那種只需閱讀一次原始碼即可理解的東西:
- GPT的內部結構
- 如何計算注意力
- 如何輸入文本數據的模型
- 如何訓練自回歸語言模型
- 如何以最少的代碼運行現代LLM
對於像您這樣熱愛技術並需要進行內容創作的人來說,它非常適合:
- 博客內容
- 視頻評論
- 學習教程
- 人工智慧基礎項目模板
GitHub:https://github.com/karpathy/nanoGPT
管材: