模型概述
模型特點
模型能力
使用案例
🚀 Pythia-1.4B
“Pythia Scaling Suite”是一組旨在促進可解釋性研究的模型,包含不同規模的模型,在性能上可與同類模型相媲美。
🚀 快速開始
Pythia模型可以通過以下代碼加載和使用,這裡展示的是第三個pythia-70m-deduped
檢查點的示例:
from transformers import GPTNeoXForCausalLM, AutoTokenizer
model = GPTNeoXForCausalLM.from_pretrained(
"EleutherAI/pythia-70m-deduped",
revision="step3000",
cache_dir="./pythia-70m-deduped/step3000",
)
tokenizer = AutoTokenizer.from_pretrained(
"EleutherAI/pythia-70m-deduped",
revision="step3000",
cache_dir="./pythia-70m-deduped/step3000",
)
inputs = tokenizer("Hello, I am", return_tensors="pt")
tokens = model.generate(**inputs)
tokenizer.decode(tokens[0])
修訂版/分支step143000
與每個模型main
分支上的模型檢查點完全對應。有關如何使用所有Pythia模型的更多信息,請參閱GitHub上的文檔。
✨ 主要特性
- 促進科研:Pythia模型套件旨在推動大語言模型的科學研究,特別是可解釋性研究。
- 多種規模:包含兩組各八個不同規模的模型,分別為70M、160M、410M、1B、1.4B、2.8B、6.9B和12B。
- 豐富檢查點:每個模型提供154箇中間檢查點,託管在Hugging Face上作為分支。
- 性能表現:儘管設計目標並非以提升下游性能為中心,但這些模型的性能與同類同規模的模型(如OPT和GPT - Neo套件中的模型)相當或更優。
📦 安裝指南
文檔未提及安裝步驟,故跳過此章節。
💻 使用示例
基礎用法
from transformers import GPTNeoXForCausalLM, AutoTokenizer
model = GPTNeoXForCausalLM.from_pretrained(
"EleutherAI/pythia-70m-deduped",
revision="step3000",
cache_dir="./pythia-70m-deduped/step3000",
)
tokenizer = AutoTokenizer.from_pretrained(
"EleutherAI/pythia-70m-deduped",
revision="step3000",
cache_dir="./pythia-70m-deduped/step3000",
)
inputs = tokenizer("Hello, I am", return_tensors="pt")
tokens = model.generate(**inputs)
tokenizer.decode(tokens[0])
📚 詳細文檔
模型詳情
屬性 | 詳情 |
---|---|
開發團隊 | EleutherAI |
模型類型 | 基於Transformer的語言模型 |
語言 | 英語 |
更多信息 | Pythia的GitHub倉庫 可瞭解訓練過程、配置文件和使用細節。查看論文 可獲取更多評估和實現細節。 |
庫 | [GPT - NeoX](https://github.com/EleutherAI/gpt - neox) |
許可證 | Apache 2.0 |
聯繫方式 | 若要詢問有關此模型的問題,請加入 EleutherAI Discord,並在 #release - discussion 中發佈。在EleutherAI Discord中詢問之前,請先閱讀現有的 Pythia 文檔。如需一般通信,請發送郵件至 contact@eleuther.ai。 |
使用與限制
預期用途
Pythia的主要預期用途是研究大語言模型的行為、功能和侷限性。該套件旨在為進行科學實驗提供一個可控的環境。每個模型還提供154個檢查點:初始 step0
、10個對數間隔的檢查點 step{1,2,4...512}
以及從 step1000
到 step143000
的143個均勻間隔的檢查點。這些檢查點作為分支託管在Hugging Face上。請注意,分支 143000
與每個模型 main
分支上的模型檢查點完全對應。
你也可以進一步微調並調整Pythia - 1.4B以進行部署,只要你的使用符合Apache 2.0許可證。Pythia模型可與Hugging Face Transformers庫 配合使用。如果你決定使用預訓練的Pythia - 1.4B作為微調模型的基礎,請自行進行風險和偏差評估。
非預期用途
Pythia套件不用於部署。它本身不是一個產品,不能用於面向人類的交互。例如,該模型可能會生成有害或冒犯性的文本。請評估與你特定用例相關的風險。
Pythia模型僅支持英語,不適合用於翻譯或生成其他語言的文本。
Pythia - 1.4B未針對語言模型常見的下游應用場景進行微調,例如撰寫特定體裁的散文或商業聊天機器人。這意味著Pythia - 1.4B不會像ChatGPT這樣的產品那樣對給定提示做出響應。這是因為與該模型不同,ChatGPT使用了諸如基於人類反饋的強化學習(RLHF)等方法進行微調,以更好地“遵循”人類指令。
侷限性和偏差
大語言模型的核心功能是接收一段文本並預測下一個標記。模型使用的標記不一定能生成最“準確”的文本。絕不要依賴Pythia - 1.4B生成事實準確的輸出。
該模型在The Pile數據集上進行訓練,該數據集已知包含褻瀆性和淫穢或其他冒犯性的文本。有關性別、宗教和種族方面的記錄偏差的討論,請參閱The Pile論文的第6節。Pythia - 1.4B可能會生成社會不可接受或不良的文本,即使提示本身不包含任何明確的冒犯性內容。
如果你計劃使用通過例如託管推理API生成的文本,我們建議在向他人展示之前由人工對該語言模型的輸出進行審核。請告知你的受眾該文本是由Pythia - 1.4B生成的。
訓練
訓練數據
The Pile是一個825GiB的英語通用數據集。它由EleutherAI專門為訓練大語言模型而創建。它包含來自22個不同來源的文本,大致分為五類:學術寫作(如arXiv)、互聯網(如CommonCrawl)、散文(如Project Gutenberg)、對話(如YouTube字幕)和其他(如GitHub、安然郵件)。有關所有數據源的細分、方法和倫理影響的討論,請參閱The Pile論文。有關The Pile及其組成數據集的更詳細文檔,請參閱數據表。The Pile可以從官方網站或[社區鏡像](https://the - eye.eu/public/AI/pile/)下載。
在用於訓練Pythia - 1.4B之前,The Pile未進行去重處理。
訓練過程
所有模型都在完全相同的數據上以完全相同的順序進行訓練。每個模型在訓練期間處理了299,892,736,000個標記,並且每個模型每2,097,152,000個標記保存143個檢查點,這些檢查點在訓練過程中均勻分佈,從 step1000
到 step143000
(與 main
相同)。此外,我們還提供頻繁的早期檢查點:step0
和 step{1,2,4...512}
。這相當於未去重模型在The Pile上訓練略少於1個週期,而去重後的The Pile上訓練約1.5個週期。
所有 Pythia 模型以2M(2,097,152個標記)的批量大小訓練了143000步。有關訓練過程的更多詳細信息,包括[如何復現](https://github.com/EleutherAI/pythia/blob/main/README.md#reproducing - training),請參閱GitHub。Pythia使用與[GPT - NeoX - 20B](https://huggingface.co/EleutherAI/gpt - neox - 20b)相同的分詞器。
評估
所有16個 Pythia 模型都使用[LM Evaluation Harness](https://github.com/EleutherAI/lm - evaluation - harness)進行了評估。你可以在GitHub倉庫的 results/json/*
中按模型和步驟訪問評估結果。
展開以下部分,查看所有Pythia和Pythia - deduped模型與OPT和BLOOM的評估結果對比圖。
LAMBADA – OpenAI

Physical Interaction: Question Answering (PIQA)

WinoGrande

AI2 Reasoning Challenge—Easy Set

SciQ

變更日誌
本節比較了之前發佈的Pythia v0與當前模型之間的差異。有關這些更改及其背後動機的進一步討論,請參閱Pythia論文的附錄B。我們發現重新訓練Pythia對基準性能沒有影響。
- 所有模型現在都以2M標記的統一批量大小進行訓練。以前,參數規模為160M、410M和1.4B的模型以4M標記的批量大小進行訓練。
- 除了每1000個訓練步驟保存檢查點外,我們還在初始化時(步驟0)和步驟 {1,2,4,8,16,32,64,128,256,512} 添加了檢查點。
- 新的重新訓練套件中使用了Flash Attention。
- 我們糾正了原始套件中存在的一個小不一致問題:所有參數規模為2.8B或更小的模型的學習率(LR)調度會衰減到起始LR的10%作為最小LR,但6.9B和12B模型的LR調度會衰減到最小LR為0。在重新進行的訓練運行中,我們糾正了這個不一致問題:所有模型現在都以LR衰減到最大LR的0.1倍作為最小LR進行訓練。
命名約定和參數數量
Pythia 模型在2023年1月進行了重命名。舊的命名約定可能仍會意外地出現在某些文檔中。當前的命名約定(70M、160M等)基於總參數數量。
🔧 技術細節
文檔未提及足夠的技術實現細節,故跳過此章節。
📄 許可證
本項目採用Apache 2.0許可證。



