StarCoder2 和 The Stack v2

BigCode 正在釋出 StarCoder2,這是下一代經過透明訓練的開放程式碼大語言模型 (LLM)。所有 StarCoder2 變體都在 The Stack v2 上進行了訓練,這是一個全新的大型高質量程式碼資料集。我們釋出了所有模型、資料集、以及處理和訓練程式碼。請檢視論文以獲取詳細資訊。
什麼是 StarCoder2?
StarCoder2 是一個開放的程式碼大語言模型系列,提供 3 種不同大小,引數分別為 30 億、70 億和 150 億。旗艦級的 StarCoder2-15B 模型在 The Stack v2 資料集上訓練,該資料集包含超過 4 萬億個 token 和 600 多種程式語言。所有模型都使用了分組查詢注意力 (Grouped Query Attention)、16,384 個 token 的上下文視窗以及 4,096 個 token 的滑動視窗注意力,並採用“填充中間”(Fill-in-the-Middle) 目標進行訓練。
StarCoder2 提供三種模型大小:一個由 ServiceNow 訓練的 30 億引數模型,一個由 Hugging Face 訓練的 70 億引數模型,以及一個由 NVIDIA 使用 NVIDIA NeMo 在 NVIDIA 加速基礎設施上訓練的 150 億引數模型。
- StarCoder2-3B 在 The Stack v2 的 17 種程式語言、超過 3 萬億個 token 上進行了訓練。
- StarCoder2-7B 在 The Stack v2 的 17 種程式語言、超過 3.5 萬億個 token 上進行了訓練。
- StarCoder2-15B 在 The Stack v2 的 600 多種程式語言、超過 4 萬億個 token 上進行了訓練。
StarCoder2-15B 在其同等規模的模型中表現最佳,並且在許多評估中與 330 億以上引數的模型相當。StarCoder2-3B 的效能與 StarCoder1-15B 相當。

什麼是 The Stack v2?

The Stack v2 是目前最大的適用於大語言模型預訓練的開放程式碼資料集。The Stack v2 比 The Stack v1 更大,採用了改進的語言和許可證檢測程式,以及更好的過濾啟發式方法。此外,訓練資料集按程式碼倉庫進行分組,從而允許模型在訓練時利用程式碼倉庫的上下文資訊。
The Stack v1 | The Stack v2 | |
---|---|---|
完整版 | 6.4TB | 67.5TB |
去重後 | 2.9TB | 32.1TB |
訓練資料集 | 約 2000 億個 token | 約 9000 億個 token |
該資料集源自 Software Heritage 檔案庫,這是最大的軟體原始碼及其開發歷史的公共檔案庫。Software Heritage 是由 Inria 與聯合國教科文組織 (UNESCO) 合作發起的,是一個旨在收集、儲存和分享所有公開可用軟體原始碼的開放非營利性倡議。我們感謝 Software Heritage 提供了這一寶貴資源的訪問許可權。更多詳情,請訪問 Software Heritage 網站。
可以透過 Hugging Face Hub 訪問 The Stack v2。
關於 BigCode
BigCode 是一個由 Hugging Face 和 ServiceNow 聯合領導的開放科學合作專案,致力於負責任地開發用於程式碼的大型語言模型。
連結
模型
- 論文:關於 StarCoder2 和 The Stack v2 的技術報告。
- GitHub:關於使用或微調 StarCoder2 的所有資訊。
- StarCoder2-3B:小尺寸的 StarCoder2 模型。
- StarCoder2-7B:中等尺寸的 StarCoder2 模型。
- StarCoder2-15B:大尺寸的 StarCoder2 模型。
資料與治理
- StarCoder2 許可協議:該模型根據 BigCode OpenRAIL-M v1 許可協議進行許可。
- StarCoder2 搜尋:在預訓練資料集中進行程式碼全文搜尋。
- StarCoder2 成員資格測試:快速檢查程式碼是否存在於預訓練資料集中。
其他
- VSCode 擴充套件:使用 StarCoder 程式設計!
- 大程式碼模型排行榜
您可以在 huggingface.co/bigcode 找到所有資源和連結!