🚀 BigScience大語言模型
BigScience是一個大規模的開源、開放訪問的多語言語言模型,它使用工業級計算資源在大量文本數據上進行訓練,能夠以46種自然語言和13種編程語言輸出連貫的文本,可用於文本生成等多種自然語言處理任務。
🚀 快速開始
此模型可藉助HuggingFace的生態系統輕鬆使用和部署。這需要安裝transformers
和accelerate
。可以按如下方式下載該模型:
✨ 主要特性
- 多語言支持:支持46種自然語言和13種編程語言,能處理多種語言的文本任務。
- 文本生成能力:可以根據輸入的提示繼續生成連貫的文本,輸出的文本與人類撰寫的文本難以區分。
- 任務泛化性:能夠執行未經過明確訓練的文本任務,通過將這些任務轉化為文本生成任務來完成。
📦 安裝指南
使用此模型需要安裝transformers
和accelerate
,可通過以下命令進行安裝:
pip install transformers accelerate
📚 詳細文檔
模型基礎信息
屬性 |
詳情 |
開發團隊 |
BigScience (網站) |
模型類型 |
基於Transformer的語言模型 |
檢查點格式 |
transformers (Megatron - DeepSpeed格式可在此處獲取) |
版本 |
1.0.0 |
支持語言 |
多種;詳見訓練數據 |
許可證 |
RAIL許可證v1.0 (鏈接 / 文章和常見問題解答) |
預計發佈日期 |
2022年7月11日,星期一 |
諮詢郵箱 |
bigscience - contact@googlegroups.com |
引用格式 |
BigScience, BigScience Language Open - science Open - access Multilingual (BLOOM) Language Model. International, May 2021 - May 2022 |
資助方 |
法國政府;Hugging Face (網站);貢獻者所在組織(各組織詳情後續公佈) |
技術規格
模型架構與目標
- 基於Megatron - LM GPT2進行修改(詳見論文,BLOOM Megatron代碼)。
- 僅解碼器架構。
- 對詞嵌入層應用層歸一化(
StableEmbedding
;詳見代碼,論文)。
- 使用ALiBI位置編碼(詳見論文),激活函數為GeLU。
- 具有176,247,271,424個參數:
- 3,596,615,680個嵌入參數。
- 70層,112個注意力頭。
- 隱藏層維度為14336。
- 使用的序列長度為2048個標記(詳見BLOOM分詞器,分詞器描述)。
目標函數:帶均值縮減的交叉熵(詳見API文檔)。
計算基礎設施
由法國政府提供的Jean Zay公共超級計算機(詳見公告)。
硬件
- 384塊A100 80GB GPU(48個節點)。
- 額外預留32塊A100 80GB GPU(4個節點)。
- 每個節點8塊GPU,使用NVLink 4 GPU間連接,4條OmniPath鏈路。
- CPU:AMD。
- 每個節點CPU內存:512GB。
- 每個節點GPU內存:640GB。
- 節點間連接:Omni - Path架構(OPA)。
- NCCL通信網絡:專用子網。
- 磁盤IO網絡:與其他類型節點共享網絡。
軟件
訓練信息
訓練數據
訓練數據詳情可在各個數據卡片中查看,各數據集對聚合訓練數據的貢獻大小可在交互式語料庫地圖中查看。
訓練數據包括:
- 46種自然語言。
- 13種編程語言。
- 1.6TB預處理文本,轉換為3500億個唯一標記(更多信息詳見分詞器部分)。
語言分佈

以下表格展示了訓練數據中尼日爾 - 剛果語系和印度語系語言以及編程語言的進一步分佈情況。
尼日爾 - 剛果語系和印度語系語言分佈
| 尼日爾 - 剛果語系 | 百分比 | 印度語系 | 百分比 |
|----------------|------------| ------ |-----------|------------|
| 奇通布卡語 | 0.00002 | 阿薩姆語 | 0.01 |
| 基庫尤語 | 0.00004 | 奧里亞語 | 0.04 |
| 班巴拉語 | 0.00004 | 古吉拉特語 | 0.04 |
| 阿坎語 | 0.00007 | 馬拉地語 | 0.05 |
| 聰加語 | 0.00007 | 旁遮普語 | 0.05 |
| 塞索托語 | 0.00007 | 卡納達語 | 0.06 |
| 奇切瓦語 | 0.0001 | 尼泊爾語 | 0.07 |
| 茨瓦納語 | 0.0002 | 泰盧固語 | 0.09 |
| 林加拉語 | 0.0002 | 馬拉雅拉姆語 | 0.10 |
| 北索托語 | 0.0002 | 烏爾都語 | 0.10 |
| 豐語 | 0.0002 | 泰米爾語 | 0.20 |
| 基隆迪語 | 0.0003 | 孟加拉語 | 0.50 |
| 沃洛夫語 | 0.0004 | 印地語 | 0.70 |
| 盧幹達語 | 0.0004 | | |
| 奇紹納語 | 0.001 | | |
| 祖魯語 | 0.001 | | |
| 伊博語 | 0.001 | | |
| 科薩語 | 0.001 | | |
| 盧旺達語 | 0.003 | | |
| 約魯巴語 | 0.006 | | |
| 斯瓦希里語 | 0.02 | | |
編程語言分佈
文件擴展名 |
語言 |
文件數量 |
java |
Java |
5,407,724 |
php |
PHP |
4,942,186 |
cpp |
C++ |
2,503,930 |
py |
Python |
2,435,072 |
js |
JavaScript |
1,905,518 |
cs |
C# |
1,577,347 |
rb |
Ruby |
678,413 |
cc |
C++ |
443,054 |
hpp |
C++ |
391,048 |
lua |
Lua |
352,317 |
go |
GO |
227,763 |
ts |
TypeScript |
195,254 |
C |
C |
134,537 |
scala |
Scala |
92,052 |
hh |
C++ |
67,161 |
H |
C++ |
55,899 |
tsx |
TypeScript |
33,107 |
rs |
Rust |
29,693 |
phpt |
PHP |
9,702 |
c++ |
C++ |
1,342 |
h++ |
C++ |
791 |
php3 |
PHP |
540 |
phps |
PHP |
270 |
php5 |
PHP |
166 |
php4 |
PHP |
29 |
預處理
分詞:BLOOM分詞器(鏈接),是一個學習型子詞分詞器,使用以下方法進行訓練:
- 字節級字節對編碼(BPE)算法。
- 簡單的預分詞規則,無歸一化處理。
- 詞彙表大小為250,680。
它是在語料庫的一個初步版本的子集上使用每種語言的alpha加權進行訓練的。
速度、大小和時間
訓練日誌:Tensorboard鏈接
- 日期:
- 開始時間:2022年3月11日,太平洋標準時間上午11:42。
- 預計結束時間:2022年7月5日。
- 檢查點大小:
- Bf16權重:329GB。
- 包含優化器狀態的完整檢查點:2.3TB。
- 訓練吞吐量:約每個GPU每秒150 TFLOP。
- 訓練輪數:1。
- 預計訓練成本:相當於200 - 500萬美元的雲計算成本(包括初步實驗)。
- 服務器訓練地點:法國法蘭西島大區。
環境影響
訓練用的超級計算機Jean Zay(網站)主要使用核能。其產生的熱量被用於為校園住房供暖。
預計碳排放量:(待公佈)
預計用電量:(待公佈)
使用說明
預期用途
此模型旨在推動對大語言模型(LLM)的公開研究。LLM可用於文本生成,或作為預訓練基礎模型,進一步針對特定任務進行微調。以下用例並非詳盡無遺。
- 直接使用:
- 文本生成。
- 探索語言模型生成的語言特徵,例如完形填空測試、反事實情況、重新構建的生成。
- 下游使用:利用語言模型的任務包括信息提取、問答、摘要等。
不當使用和超出範圍的使用
詳見BLOOM許可證附件A中的詳細使用限制。以下列表並非詳盡無遺,但列出了一些容易預見的有問題的使用情況。
- 超出範圍的使用:在高風險環境中使用此模型超出了其適用範圍。該模型並非為關鍵決策而設計,也不適用於對個人生計或福祉有重大影響的使用場景。模型輸出的內容看似事實,但可能並不正確。超出範圍的使用包括:在生物醫學領域、政治和法律領域或金融領域的使用;用於評估或評分個人,如就業、教育或信貸方面;用於關鍵自動決策、生成事實性內容、創建可靠摘要或生成必須正確的預測。
- 不當使用:故意使用該模型造成傷害、侵犯人權或進行其他惡意活動,均屬於對該模型的不當使用。這包括:生成垃圾郵件;傳播虛假信息和進行影響操作;詆譭和誹謗;騷擾和虐待;欺騙;未經同意的模仿和假冒;未經同意的監視;未按照RAIL許可證,使用限制的規定對模型進行歸因而生成內容。
預期用戶
- 直接用戶:普通公眾、研究人員、學生、教育工作者、工程師/開發者、非商業實體、社區倡導者,包括人權和民權組織。
- 間接用戶:使用直接用戶創建的衍生產品的用戶,例如使用具有預期用途的軟件的用戶。
🔧 技術細節
碳排放信息
屬性 |
詳情 |
排放量 |
24,700,000 |
來源 |
"Estimating the Carbon Footprint of BLOOM, a 176B Parameter Language Model. https://arxiv.org/abs/2211.02001" |
訓練類型 |
"預訓練" |
地理位置 |
"法國奧賽" |
使用的硬件 |
"384塊A100 80GB GPU" |
模型評估結果
任務類型 |
數據集 |
指標 |
值 |
驗證狀態 |
文本生成 |
openai_humaneval(humaneval) |
pass@1 |
0.15542682926829265 |
未驗證 |
文本生成 |
openai_humaneval(humaneval) |
pass@10 |
0.3278356276947017 |
未驗證 |
文本生成 |
openai_humaneval(humaneval) |
pass@100 |
0.5719815685597749 |
未驗證 |
📄 許可證
本模型使用RAIL許可證v1.0,詳情請見鏈接 / 文章和常見問題解答。