模型概述
模型特點
模型能力
使用案例
🚀 BLOOM LM
BigScience研發的大型開放科學、開放訪問的多語言語言模型,可用於語言生成研究及特定任務微調
📚 詳細文檔
目錄
模型詳情
模型描述
本部分為想了解該模型的用戶提供相關信息。
- 研發團隊:BigScience(官網)
- 所有參與者要麼是志願者,要麼與所在單位達成了協議。(參與者的詳細信息後續公佈。)
- 模型類型:基於Transformer的語言模型
- 版本:1.0.0
- 支持語言:多種語言;詳見訓練數據
- 許可證:RAIL許可證v1.0(鏈接)
- 預計發佈日期:2022年7月11日,星期一
- 資助方:
- 法國政府
- Hugging Face(官網)
- 貢獻者所在的組織。(組織的詳細信息後續公佈。)
使用場景
本部分解答了關於模型預期用途的問題,討論了模型的潛在用戶(包括受模型影響的用戶),並描述了超出模型適用範圍或不當使用的情況。它為考慮使用該模型或受模型影響的用戶提供信息。
預期用途
本模型旨在推動大型語言模型(LLM)的公開研究。LLM可用於語言生成,或作為預訓練基礎模型,進一步針對特定任務進行微調。以下使用場景並非詳盡無遺。
- 直接使用:
- 文本生成
- 探索語言模型生成語言的特徵
- 示例:完形填空測試、反事實推理、重新構建的文本生成
- 下游使用:
- 利用語言模型的任務包括:信息提取、問答系統、文本摘要
不當使用和超出適用範圍的使用
本部分說明了用戶不應使用該模型的情況。 請參閱BLOOM許可證附件A中的詳細使用限制。以下列表並非詳盡無遺,但列出了一些容易預見的有問題的使用場景。
- 超出適用範圍的使用:
- 不當使用:
- 故意使用該模型造成傷害、侵犯人權或進行其他惡意活動,均屬於對該模型的不當使用。這包括:
- 生成垃圾郵件
- 傳播虛假信息和進行影響操作
- 詆譭和誹謗
- 騷擾和虐待
- 欺騙
- 未經同意的模仿和假冒
- 未經同意的監視
- 未按照RAIL許可證使用限制的規定對模型進行標註而生成內容
- 故意使用該模型造成傷害、侵犯人權或進行其他惡意活動,均屬於對該模型的不當使用。這包括:
預期用戶
- 直接用戶:
- 普通公眾
- 研究人員
- 學生
- 教育工作者
- 工程師/開發者
- 非商業實體
- 社區倡導者,包括人權和公民權利組織
- 間接用戶:
- 使用直接用戶創建的衍生產品的用戶,如使用具有預期用途的軟件的用戶
- 使用許可證中描述的模型衍生產品的用戶
- 其他受影響方:
- 被LLM提及的個人和群體
- 接觸LLM輸出內容或基於LLM做出決策的個人和群體
- 其原創作品被納入LLM的個人和群體
偏差、風險與侷限性
本部分識別了可預見的危害和誤解。 模型可能存在以下問題:
- 過度代表某些觀點,而忽視其他觀點
- 包含刻板印象
- 包含個人信息
- 生成:
- 仇恨、辱罵或暴力語言
- 歧視性或偏見性語言
- 可能不適合所有場景的內容,包括色情內容
- 出現錯誤,包括將不正確的信息當作事實輸出
- 生成無關或重複的輸出
使用建議
本部分提供了警告和潛在緩解措施的信息。
- 間接用戶在處理由LLM創建的內容時應被告知。
- 用戶應瞭解風險和侷限性,並根據需要提供適當的年齡聲明或屏蔽界面。
- 使用LLM進行預訓練的模型應包含更新後的模型卡片。
- 模型用戶應為受影響的人提供反饋機制,如用於接收評論的電子郵件地址。
訓練數據
本部分提供了訓練數據的高級概述。對於想了解模型學習基礎的用戶來說,這部分內容很有幫助。 每個數據集的詳細信息可在單獨的數據卡片中找到。 訓練數據包括:
- 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 |
評估指標
本部分描述了評估協議並提供了評估結果。
評估指標
本部分描述了計算性能的不同方法及其原因。 包括:
指標 | 選擇原因 |
---|---|
困惑度 | 用於量化模型在訓練過程中改進的標準指標 |
交叉熵 損失 | 語言模型的標準目標函數 |
此外,針對特定任務還有多種不同的評估指標。(評估協議完成後將提供更多評估指標。)
影響因素
本部分列出了影響BLOOM模型的一些不同方面。重點關注那些可能導致模型行為出現高方差的因素。
- 語言,如英語或約魯巴語
- 領域,如新聞專線或故事
- 人口統計學特徵,如性別或國籍
評估結果
結果基於影響因素和評估指標。 訓練時評估: 截至2022年5月25日,太平洋標準時間15:00:
- 訓練損失:2.0
- 驗證損失:2.2
- 困惑度:8.9 (模型訓練結束後將提供更多評估分數。)
- BLOOM書籍:閱讀基於社區提供的提示從BLOOM生成的內容
環境影響
訓練用超級計算機Jean Zay(官網)主要使用核能。其產生的熱量被用於為校園住房供暖。 預計碳排放量:(訓練完成後公佈。) 預計用電量:(訓練完成後公佈。)
技術規格
本部分為從事模型開發的人員提供信息。 有關重複訓練的完整詳細信息,請參閱BLOOM訓練README。
模型架構
基於Megatron - LM GPT2進行修改(詳見論文,BLOOM Megatron代碼):
目標函數
使用均值縮減的交叉熵(詳見API文檔)。
計算基礎設施
由法國政府提供的Jean Zay公共超級計算機(詳見公告)。
- 硬件:64個V100 16/32GB GPU(16個節點):
- 每個節點4個GPU
- 每個任務40個CPU
- 每個節點1個任務
- CPU:AMD
- 每個節點CPU內存:160GB
- 每個節點GPU內存:64GB或128GB(取決於訓練期間節點的可用性)
- 節點間連接:Omni - Path架構(OPA)
- NCCL通信網絡:完全專用子網
- 磁盤I/O網絡:與其他類型節點共享網絡
- 軟件:
訓練信息
- 檢查點大小:
- Fp16權重:2.6GB(參數數量 * 2)
- 包含優化器狀態的完整檢查點:--
- 訓練吞吐量:--
- 訓練輪數:1
- 訓練日期:
- 開始時間:2022年3月11日,太平洋標準時間上午11:42
- 結束時間:2022年5月20日
- 服務器訓練地點:法國法蘭西島大區
標記化
BLOOM標記器(鏈接)是一個基於以下方法訓練的學習型子詞標記器:
- 字節級字節對編碼(BPE)算法
- 簡單的預標記規則,無歸一化
- 詞彙表大小為250,680 它是在語料庫的一個初步版本的子集上使用每種語言的alpha加權進行訓練的。
引用信息
引用格式:BigScience, BigScience Language Open - science Open - access Multilingual (BLOOM) Language Model. International, May 2021 - May 2022
術語表與計算方法
本部分定義了常用術語以及指標的計算方法。
- 損失:計算模型學習結果與數據實際情況(“真實值”)之間的差異。損失值越低越好。訓練過程旨在最小化損失。
- 困惑度:基於模型對新數據概率的估計。困惑度越低越好。如果模型在預測下一個標記時100%正確,則困惑度為1。在數學上,這是使用熵來計算的。
- 高風險場景:如歐盟提議的人工智能(AI)法案中確定的“高風險AI系統”和“不可接受風險AI系統”。
- 關鍵決策:如美國提議的算法問責法案中定義的決策。
- 人權:包括世界人權宣言中定義的權利。
- 個人數據和個人信息:個人數據和信息在多個數據保護法規中都有定義,例如歐盟通用數據保護條例中的“個人數據”;南非共和國個人信息保護法中的“個人信息”;中華人民共和國個人信息保護法中的相關定義。
- 敏感特徵:包括人權(詳見世界人權宣言第2條)和個人信息法規(詳見GDPR 第9條;個人信息保護法第1章)中特別保護的類別。
- 欺騙:故意誤導個人相信虛假信息,例如在社交媒體上創建虛假機器人或聊天機器人冒充真人,或在未讓消費者知曉文本是機器生成的情況下生成文本文件。
更多信息
數據集創建
詳細介紹數據集創建過程中設計選擇的博客文章: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/blob/master/train/tr11-176B-ml/chronicles.md
初始結果
使用臨時檢查點進行的初始提示實驗:https://huggingface.co/spaces/bigscience/bloom-book
模型卡片作者
按大致時間順序和投入時間排序。 Margaret Mitchell, Giada Pistilli, Yacine Jernite, Ezinwanne Ozoani, Marissa Gerchick, Nazneen Rajani, Sasha Luccioni, Irene Solaiman, Maraim Masoud, Somaieh Nikpoor, Carlos Muñoz Ferrandis, Stas Bekman, Christopher Akiki, Danish Contractor, David Lansky, Angelina McMillan - Major, Tristan Thrush, Suzana Ilić, Gérard Dupont



