🚀 BLOOM LM
大科學開放科學、開放訪問的多語言大語言模型,助力公共研究探索語言生成新可能
🚀 快速開始
此部分文檔未提供快速開始的相關內容,但你可以按照以下指引進一步瞭解和使用該模型:
- 閱讀模型詳情,瞭解模型的基本信息、技術規格、環境影響等。
- 查看使用說明,明確模型的預期用途、誤用和超出範圍的使用情況。
- 參考訓練數據,瞭解模型訓練所使用的數據。
- 關注風險和侷限性,知悉模型可能存在的問題。
- 查看評估結果,瞭解模型的性能指標。
- 遵循使用建議,確保正確、安全地使用模型。
✨ 主要特性
- 多語言支持:支持多種自然語言和編程語言,包括但不限於英語、法語、中文、日語、韓語等,以及Java、Python、C++等編程語言。
- 開放科學與開放訪問:由BigScience團隊開發,所有協作者均為志願者或與僱主達成協議,旨在推動大語言模型的公共研究。
- 基於Transformer架構:採用基於Transformer的語言模型架構,具有強大的語言理解和生成能力。
- 靈活應用:可用於文本生成、探索語言模型生成語言的特徵,也可作為預訓練基礎模型,進一步微調用於特定任務,如信息提取、問答、摘要等。
📚 詳細文檔
模型詳情
基礎信息
- 開發團隊:BigScience(官網)
- 模型類型:基於Transformer的語言模型
- 版本: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(官網)
- 貢獻者所在組織(各組織詳情待補充)
技術規格
請參考BLOOM訓練README以獲取訓練復現的完整細節。
- 模型架構:基於Megatron - LM GPT2修改(詳見論文,BLOOM Megatron代碼):
- 僅解碼器架構
- 對詞嵌入層應用層歸一化(
StableEmbedding
;詳見代碼,論文)
- ALiBI位置編碼(詳見論文),使用GeLU激活函數
- 3.5億參數:
- 目標函數:交叉熵損失(詳見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網絡:與其他類型節點共享網絡
- 軟件:
訓練信息
- 訓練日誌:Tensorboard鏈接
- 檢查點大小:
- Bf16權重:329GB
- 包含優化器狀態的完整檢查點:2.3TB
- 訓練吞吐量:約每個GPU每秒150 TFLOP
- 訓練輪數:1(當前目標)
- 訓練時間:
- 開始時間:2022年3月11日上午11:42(太平洋標準時間)
- 預計結束時間:2022年7月5日
- 預計訓練成本:相當於200 - 500萬美元的雲計算費用(包括初步實驗)
- 服務器訓練地點:法國法蘭西島
分詞器
BLOOM分詞器(鏈接)是一個學習型子詞分詞器,使用以下方法訓練:
- 字節級字節對編碼(BPE)算法
- 簡單的預分詞規則,無歸一化
- 詞彙表大小為250,680
它在語料庫的一個初步版本的子集上使用每種語言的alpha加權進行訓練。
環境影響
訓練用超級計算機Jean Zay(官網)主要使用核能,其產生的熱量用於校園住房供暖。
- 預計碳排放:(訓練完成後提供)
- 預計用電量:(訓練完成後提供)
使用說明
預期用途
本模型旨在推動大語言模型(LLM)的公共研究。LLM可用於語言生成,或作為預訓練基礎模型,進一步微調用於特定任務。以下使用案例並非詳盡無遺。
- 直接使用:
- 文本生成
- 探索語言模型生成語言的特徵,例如完形填空測試、反事實情況、重新構建的生成
- 下游使用:
誤用和超出範圍的使用
請參閱BLOOM許可證附件A以獲取詳細的使用限制。以下列表並非詳盡無遺,但列出了一些容易預見的有問題的使用案例。
- 超出範圍的使用:
- 在高風險環境中使用本模型超出了其適用範圍。該模型並非為關鍵決策設計,也不適用於對個人生計或福祉有重大影響的使用場景。模型輸出的內容可能看似事實,但並不正確。
- 超出範圍的使用包括:
- 在生物醫學、政治和法律、金融領域使用
- 用於評估或評分個人,例如就業、教育或信用評估
- 用於關鍵自動決策、生成事實內容、創建可靠摘要或生成必須正確的預測
- 誤用:
- 故意使用模型造成傷害、違反人權或進行其他惡意活動,均屬於對本模型的誤用。這包括:
- 垃圾郵件生成
- 虛假信息和影響操作
- 詆譭和誹謗
- 騷擾和虐待
- 欺騙
- 未經同意的模仿和假冒
- 未經同意的監視
- 未按照RAIL許可證使用限制對模型進行歸因的內容生成
預期用戶
- 直接用戶:
- 普通公眾
- 研究人員
- 學生
- 教育工作者
- 工程師/開發者
- 非商業實體
- 社區倡導者,包括人權和公民權利組織
- 間接用戶:
- 其他受影響方:
- 大語言模型提及的個人和群體
- 接觸大語言模型輸出內容或基於其決策的個人和群體
- 其原創作品被納入大語言模型的個人和群體
訓練數據
每個數據集的詳細信息請參閱各個數據卡片。
- 訓練數據包括:
- 45種自然語言
- 12種編程語言
- 1.5TB預處理文本,轉換為3500億個唯一標記(詳見分詞器部分)
屬性 |
詳情 |
模型類型 |
基於Transformer的語言模型 |
訓練數據 |
45種自然語言和12種編程語言的1.5TB預處理文本,轉換為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.0003 |
泰米爾語 |
0.20 |
沃洛夫語 |
0.0004 |
孟加拉語 |
0.50 |
幹達語 |
0.0004 |
印地語 |
0.70 |
奇紹納語 |
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 |
風險和侷限性
模型可能存在以下問題:
- 過度代表某些觀點,而對其他觀點代表不足
- 包含刻板印象
- 包含個人信息
- 生成:
- 仇恨、辱罵或暴力語言
- 歧視性或偏見性語言
- 可能不適用於所有場景的內容,包括色情內容
- 出現錯誤,包括輸出看似事實但不正確的信息
- 生成無關或重複的輸出
評估
評估指標
指標 |
選擇原因 |
困惑度 |
量化模型訓練過程中改進的標準指標 |
交叉熵損失 |
語言模型的標準目標 |
針對特定任務還有多種不同的指標。(評估協議完成後將提供更多評估指標。)
影響因素
- 語言,例如英語或約魯巴語
- 領域,例如新聞專線或故事
- 人口統計學特徵,例如性別或國籍
評估結果
訓練時評估:截至2022年5月25日15:00(太平洋標準時間):
- 訓練損失:2.0
- 驗證損失:2.2
- 困惑度:8.9
(模型訓練結束後將提供更多評估分數。)
使用建議
- 間接用戶在處理由大語言模型生成的內容時應被告知。
- 用戶應瞭解風險和侷限性,並根據需要包含適當的年齡聲明或屏蔽界面。
- 使用大語言模型預訓練的模型應包含更新的模型卡片。
- 模型用戶應提供受影響者反饋的機制,例如用於評論的電子郵件地址。
術語表和計算方法
更多信息
- 數據集創建:詳細介紹數據集創建過程中設計選擇的博客文章:https://bigscience.huggingface.co/blog/building-a-tb-scale-multilingual-dataset-for-language-modeling
- 技術規格:
- 總結架構、大小、形狀和預訓練時長選擇的博客文章:https://bigscience.huggingface.co/blog/what-language-model-to-train-if-you-have-two-million-gpu-hours
- 架構/優化器的更多詳細信息:https://github.com/bigscience-workshop/bigscience/tree/master/train/tr11-176B-ml
- 硬件/工程方面的博客文章:https://bigscience.huggingface.co/blog/which-hardware-to-train-a-176b-parameters-model
- 訓練使用的分佈式設置詳情:https://github.com/bigscience-workshop/bigscience/tree/master/train/tr11-176B-ml
- 訓練期間更新的Tensorboard:https://huggingface.co/bigscience/tr11-176B-ml-logs/tensorboard#scalars&tagFilter=loss
- 訓練方法和負面結果的見解:https://github.com/bigscience-workshop/bigscience/blob/master/train/lessons-learned.md
- 工程準備過程中克服障礙的詳情(不穩定性、訓練吞吐量優化等眾多技術技巧和問題):https://github.com/bigscience-workshop/bigscience/tree/master/train/tr11-176B-ml
📄 許可證
本模型使用RAIL許可證v1.0,詳情請見鏈接。