Stable Diffusion 3 還沒全面開放,這家公司的程式碼生成模型先來了。
本週一,Stability AI 開源了小體量預訓練模型 Stable Code Instruct 3B。
Stable Code Instruct 3B 是一個基於 Stable Code 3B 的指令調整編碼語言模型(Code LM)。給出自然語言 prompt,該模型可以處理各種任務,例如程式碼生成、數學和其他軟體工程相關的任務。
Stability AI 宣稱,該模型在 3B 規模上提供了 SOTA 效能,並且優於 CodeLlama 7B Instruct 等更大規模的模型,甚至在軟體工程相關任務中,效能與 StarChat 15B 相當。
模型:https://huggingface.co/stabilityai/stable-code-instruct-3b
HuggingFace 試用:https://huggingface.co/spaces/stabilityai/stable-code-instruct-3b
Stable Code 技術報告:https://static1.squarespace.com/static/6213c340453c3f502425776e/t/6601c5713150412edcd56f8e/1711392114564/Stable_Code_TechReport_release.pdf
Stable Code Instruct 3B 增強了程式碼補全能力,並支援自然語言互動,旨在提高程式設計和軟體開發相關任務的效率和直觀性。實驗測試表明,該模型在各種與編碼相關的任務中優於 Codellama 7B Instruct 和 DeepSeek-Coder Instruct 1.3B 等同類模型。
方法介紹
Stable Code 建立在 Stable LM 3B 的基礎上。Stable Code 是一個因果純解碼器 transformer,類似於 LLaMA 架構,與 LLaMA 的主要區別如下:
位置嵌入,旋轉位置嵌入應用於頭嵌入維度的前 25%,以提高吞吐量;
標準化,帶有學得偏差項的 LayerNorm;
偏差,除了鍵、查詢和值投影的偏差,Stable Code 從前饋網路和多頭自注意力層中刪除了所有偏差項。
下表給出了預訓練語料庫資料集的取樣權重、 epoch、類別等資訊。
根據 Stack Overflow 2023 開發者調查報告,Stable Code Instruct 3B 重點關注 Python、Javascript、Java、C、C++ 和 Go 等語言,這些語言對於各種開發人員來說是最流行和最有影響力的。雖然這些語言被選為訓練的重點,但該模型還針對其他廣泛採用的語言(例如 SQL、PHP 和 Rust)進行了訓練。
即使對於最初未包含在訓練集中的語言(例如 Lua),Stable Code Instruct 3B 也能提供強大的測試效能。這種熟練程度可能源於其對底層編碼原理的理解,以及利用編碼任務固有的可預測性,在不同程式設計環境中適應概念的能力。
Stable Code Instruct 3B 不僅精通程式碼生成,還精通 FIM(Fill in the Middle)任務、資料庫查詢、程式碼翻譯、解釋和建立。其指令調整使其能夠理解並按照細緻入微的指令採取行動,促進除簡單程式碼完成之外的廣泛編碼任務,包括數學理解、邏輯推理和圍繞軟體開發處理複雜的技術描述。
效能評估
與 Codellama 7B Instruct 和 DeepSeek-Coder Instruct 1.3B 等領先模型相比,Stable Code Instruct 3B 在一系列編碼任務中展現出卓越的效能。
研究團隊還在 Multi-PL 基準上比較了三種模型。儘管引數量較少,但 Stable Code Instruct 3B 在所有語言上的表現均明顯優於 CodeLlama Instruct。
下表 8 展示了幾種模型在 FIM 任務上的效能:
實驗測試表明,Stable Code Instruct 3B 在程式碼完成準確性、對自然語言指令的理解以及跨不同程式語言的能力方面可與其他模型媲美甚至超越。
Stable Code Instruct 3B 的引數規模和低硬體要求使其可供廣泛的受眾使用,使開發人員能夠更高效地工作。值得一提的是,Stable Code Instruct 3B 現在可以透過 Stability AI 會員資格用於商業目的。
參考連結:
https://stability.ai/news/introducing-stable-code-instruct-3b
https://twitter.com/StabilityAI/status/1772345514023116828