Stability AI開(kāi)源3B代碼生成模型:可補(bǔ)全,還能Debug
本周一,Stability AI 開(kāi)源了小體量預(yù)訓(xùn)練模型 Stable Code Instruct 3B。
Stable Code Instruct 3B 是一個(gè)基于 Stable Code 3B 的指令調(diào)整編碼語(yǔ)言模型(Code LM)。給出自然語(yǔ)言 prompt,該模型可以處理各種任務(wù),例如代碼生成、數(shù)學(xué)和其他軟件工程相關(guān)的任務(wù)。
Stability AI 宣稱(chēng),該模型在 3B 規(guī)模上提供了 SOTA 性能,并且優(yōu)于 CodeLlama 7B Instruct 等更大規(guī)模的模型,甚至在軟件工程相關(guān)任務(wù)中,性能與 StarChat 15B 相當(dāng)。
- 模型:https://huggingface.co/stabilityai/stable-code-instruct-3b
- HuggingFace 試用:https://huggingface.co/spaces/stabilityai/stable-code-instruct-3b
- Stable Code 技術(shù)報(bào)告:https://static1.squarespace.com/static/6213c340453c3f502425776e/t/6601c5713150412edcd56f8e/1711392114564/Stable_Code_TechReport_release.pdf
Stable Code Instruct 3B 增強(qiáng)了代碼補(bǔ)全能力,并支持自然語(yǔ)言交互,旨在提高編程和軟件開(kāi)發(fā)相關(guān)任務(wù)的效率和直觀(guān)性。實(shí)驗(yàn)測(cè)試表明,該模型在各種與編碼相關(guān)的任務(wù)中優(yōu)于 Codellama 7B Instruct 和 DeepSeek-Coder Instruct 1.3B 等同類(lèi)模型。
方法介紹
Stable Code 建立在 Stable LM 3B 的基礎(chǔ)上。Stable Code 是一個(gè)因果純解碼器 transformer,類(lèi)似于 LLaMA 架構(gòu),與 LLaMA 的主要區(qū)別如下:
- 位置嵌入,旋轉(zhuǎn)位置嵌入應(yīng)用于頭嵌入維度的前 25%,以提高吞吐量;
- 標(biāo)準(zhǔn)化,帶有學(xué)得偏差項(xiàng)的 LayerNorm;
- 偏差,除了鍵、查詢(xún)和值投影的偏差,Stable Code 從前饋網(wǎng)絡(luò)和多頭自注意力層中刪除了所有偏差項(xiàng)。
下表給出了預(yù)訓(xùn)練語(yǔ)料庫(kù)數(shù)據(jù)集的采樣權(quán)重、 epoch、類(lèi)別等信息。
根據(jù) Stack Overflow 2023 開(kāi)發(fā)者調(diào)查報(bào)告,Stable Code Instruct 3B 重點(diǎn)關(guān)注 Python、Javascript、Java、C、C++ 和 Go 等語(yǔ)言,這些語(yǔ)言對(duì)于各種開(kāi)發(fā)人員來(lái)說(shuō)是最流行和最有影響力的。雖然這些語(yǔ)言被選為訓(xùn)練的重點(diǎn),但該模型還針對(duì)其他廣泛采用的語(yǔ)言(例如 SQL、PHP 和 Rust)進(jìn)行了訓(xùn)練。
即使對(duì)于最初未包含在訓(xùn)練集中的語(yǔ)言(例如 Lua),Stable Code Instruct 3B 也能提供強(qiáng)大的測(cè)試性能。這種熟練程度可能源于其對(duì)底層編碼原理的理解,以及利用編碼任務(wù)固有的可預(yù)測(cè)性,在不同編程環(huán)境中適應(yīng)概念的能力。
Stable Code Instruct 3B 不僅精通代碼生成,還精通 FIM(Fill in the Middle)任務(wù)、數(shù)據(jù)庫(kù)查詢(xún)、代碼翻譯、解釋和創(chuàng)建。其指令調(diào)整使其能夠理解并按照細(xì)致入微的指令采取行動(dòng),促進(jìn)除簡(jiǎn)單代碼完成之外的廣泛編碼任務(wù),包括數(shù)學(xué)理解、邏輯推理和圍繞軟件開(kāi)發(fā)處理復(fù)雜的技術(shù)描述。
性能評(píng)估
與 Codellama 7B Instruct 和 DeepSeek-Coder Instruct 1.3B 等領(lǐng)先模型相比,Stable Code Instruct 3B 在一系列編碼任務(wù)中展現(xiàn)出卓越的性能。
研究團(tuán)隊(duì)還在 Multi-PL 基準(zhǔn)上比較了三種模型。盡管參數(shù)量較少,但 Stable Code Instruct 3B 在所有語(yǔ)言上的表現(xiàn)均明顯優(yōu)于 CodeLlama Instruct。
下表 8 展示了幾種模型在 FIM 任務(wù)上的性能:
實(shí)驗(yàn)測(cè)試表明,Stable Code Instruct 3B 在代碼完成準(zhǔn)確性、對(duì)自然語(yǔ)言指令的理解以及跨不同編程語(yǔ)言的能力方面可與其他模型媲美甚至超越。
Stable Code Instruct 3B 的參數(shù)規(guī)模和低硬件要求使其可供廣泛的受眾使用,使開(kāi)發(fā)人員能夠更高效地工作。值得一提的是,Stable Code Instruct 3B 現(xiàn)在可以通過(guò) Stability AI 會(huì)員資格用于商業(yè)目的。