上下文1.6萬token的編程大模型來了!與Stable Diffusion出自同門,一次吃5個(gè)Python文件不費(fèi)勁
一個(gè)Stable Diffusion還不夠!Stability AI再放殺手锏,進(jìn)擊代碼生成領(lǐng)域:
推出了一款自稱具有革命性的編碼工具StableCode。
敲重點(diǎn)的是,StableCode不僅支持Python、Go、Java、JavaScript、C、Markdown、C++等多種編程語言。
還直接把上下文長度拉到16000個(gè)token。
圖片
好家伙,網(wǎng)友直呼瘋批:
圖片
這波還直接戳中網(wǎng)友痛點(diǎn):
我們真的很需要一個(gè)能夠?qū)⒄麄€(gè)代碼庫塞進(jìn)上下文的工具。
圖片
上下文窗口16000token
官網(wǎng)顯示,StableCode模型具有30億參數(shù),將提供基礎(chǔ)模型、指令模型、長上下文窗口模型三種不同的模型,幫助開發(fā)人員編碼。
圖片
StableCode在HPC(高性能計(jì)算)集群上,使用5600億代碼token的編程語言數(shù)據(jù)集starcoder-data對基礎(chǔ)模型進(jìn)行了訓(xùn)練。
StarCoder是HuggingFace和ServiceNow合作成立的開放科學(xué)合作組織BigCode于五月份開源的針對代碼的大模型。
Stability AI首席研究科學(xué)家Nathan Cooper對VentureBeat表示:
我們非常喜歡BigCode,因?yàn)樗麄冊跀?shù)據(jù)治理、模型治理和模型訓(xùn)練方面做了驚人的工作,我們用了他們的數(shù)據(jù)集,并對其進(jìn)行了額外的過濾和清理,同時(shí)也用在了構(gòu)建長上下文窗口的模型,在我們的集群上進(jìn)行了訓(xùn)練。
對于復(fù)雜的編程任務(wù),StableCode則針對特定用例進(jìn)行了指令調(diào)優(yōu)。
在基礎(chǔ)模型的基礎(chǔ)上,用約120000個(gè)Alpaca格式的“代碼指令-回答”對訓(xùn)練了指令模型。
圖片
△StableCode指令生成對給定指令響應(yīng)的代碼。
此外,為了滿足用戶對上下文窗口長度的需求,StableCode的長上下文窗口模型直接將上下文窗口拉長至16000個(gè)token,是此前開源模型的2-4倍。
△與類似大小的模型(3B)進(jìn)行的 HumanEval 基準(zhǔn)比較。
不僅為用戶提供了可單行、多行自動完成建議的工具,還允許用戶同時(shí)查看編輯相當(dāng)于五個(gè)中等大小的Python文件,允許更專業(yè)復(fù)雜的代碼生成prompt。
下面是一個(gè)StableCode利用Pytorch深度學(xué)習(xí)庫完成一個(gè)相對復(fù)雜的Python文件展示(灰色文本顯示了StableCode的預(yù)測)。
圖片
使用了RoPE的方法
此外,StableCode也是用到了Transformer架構(gòu),不同于StarCoder用ALiBi(線性偏差的注意力)的方法定位模型輸出,StableCode則是使用了RoPE(旋轉(zhuǎn)位置嵌入)的方法。
Cooper表示:
在Transformer模型中,ALiBi方法傾向于更加重視當(dāng)前的token,而不是過去的token。這對于代碼生成來說不是一個(gè)理想的方法,因?yàn)榇a沒有固定的敘述結(jié)構(gòu),沒有明確的開始、中間和結(jié)束。代碼的功能可以在應(yīng)用流程的任何點(diǎn)被定義。所以我們使用RoPE,它沒有這種偏見。
StableCode目前還處于早期階段,初始發(fā)布的目標(biāo)是觀察開發(fā)者如何接受和使用這個(gè)模型。
我們將與社區(qū)進(jìn)行互動合作,看看他們會提出哪些有趣的方向,并針對開發(fā)者領(lǐng)域進(jìn)行生成式探索 。
研究主管Christian Laforte也淺聊了StableCode的目標(biāo):
與Stable Diffusion幫助世界上任何人成為藝術(shù)家類似,我們希望StableCode模型能讓任何有好點(diǎn)子但卻遇到問題的人,能夠編寫一個(gè)解決問題的程序。
看到Stability AI再放大招的這波操作,有網(wǎng)友在去測試Github Copilot的路上來了個(gè)掉頭:
圖片
還有網(wǎng)友希望“預(yù)定”下一次動作:
真的很想看Stability AI在文本轉(zhuǎn)語音方面,做些類似谷歌SoundStorm(聲音風(fēng)暴)的事啊。
圖片
此外,StableCode目前已經(jīng)開源啦!
參考鏈接:
[1]https://venturebeat.com/programming-development/stability-ai-launches-stablecode-an-llm-for-code-generation/
[2]https://twitter.com/StabilityAI/status/1688931312122675200