已开源!

西风 发自 凹非寺

量子位 | 公众号 QbitAI

一个Stable Diffusion还不够!Stability AI再放杀手锏,进击代码生成领域:

推出了一款自称具有革命性的编码工具StableCode

敲重点的是,StableCode不仅支持Python、Go、Java、JavaScript、C、Markdown、C++等多种编程语言。

还直接把上下文长度拉到16000个token

上下文1.6万token的编程大模型来了!与Stable Diffusion出自同门,一次吃5个Python文件不费劲

好家伙,网友直呼疯批:

上下文1.6万token的编程大模型来了!与Stable Diffusion出自同门,一次吃5个Python文件不费劲

这波还直接戳中网友痛点:

我们真的很需要一个能够将整个代码库塞进上下文的工具。

上下文1.6万token的编程大模型来了!与Stable Diffusion出自同门,一次吃5个Python文件不费劲

上下文窗口16000token

官网显示,StableCode模型具有30亿参数,将提供基础模型、指令模型、长上下文窗口模型三种不同的模型,帮助开发人员编码。

上下文1.6万token的编程大模型来了!与Stable Diffusion出自同门,一次吃5个Python文件不费劲

StableCode在HPC(高性能计算)集群上,使用5600亿代码token的编程语言数据集starcoder-data对基础模型进行了训练。

StarCoder是HuggingFace和ServiceNow合作成立的开放科学合作组织BigCode于五月份开源的针对代码的大模型。

Stability AI首席研究科学家Nathan Cooper对VentureBeat表示:

我们非常喜欢BigCode,因为他们在数据治理、模型治理和模型训练方面做了惊人的工作,我们用了他们的数据集,并对其进行了额外的过滤和清理,同时也用在了构建长上下文窗口的模型,在我们的集群上进行了训练。

对于复杂的编程任务,StableCode则针对特定用例进行了指令调优。

在基础模型的基础上,用约120000个Alpaca格式的“代码指令-回答”对训练了指令模型。

上下文1.6万token的编程大模型来了!与Stable Diffusion出自同门,一次吃5个Python文件不费劲

△StableCode指令生成对给定指令响应的代码。

此外,为了满足用户对上下文窗口长度的需求,StableCode的长上下文窗口模型直接将上下文窗口拉长至16000个token,是此前开源模型的2-4倍

上下文1.6万token的编程大模型来了!与Stable Diffusion出自同门,一次吃5个Python文件不费劲

△与类似大小的模型(3B)进行的 HumanEval 基准比较。

不仅为用户提供了可单行、多行自动完成建议的工具,还允许用户同时查看编辑相当于五个中等大小的Python文件,允许更专业复杂的代码生成prompt。

下面是一个StableCode利用Pytorch深度学习库完成一个相对复杂的Python文件展示(灰色文本显示了StableCode的预测)。

上下文1.6万token的编程大模型来了!与Stable Diffusion出自同门,一次吃5个Python文件不费劲

使用了RoPE的方法

此外,StableCode也是用到了Transformer架构,不同于StarCoder用ALiBi(线性偏差的注意力)的方法定位模型输出,StableCode则是使用了RoPE(旋转位置嵌入)的方法。

Cooper表示:

在Transformer模型中,ALiBi方法倾向于更加重视当前的token,而不是过去的token。这对于代码生成来说不是一个理想的方法,因为代码没有固定的叙述结构,没有明确的开始、中间和结束。代码的功能可以在应用流程的任何点被定义。所以我们使用RoPE,它没有这种偏见。

StableCode目前还处于早期阶段,初始发布的目标是观察开发者如何接受和使用这个模型。

我们将与社区进行互动合作,看看他们会提出哪些有趣的方向,并针对开发者领域进行生成式探索 。

研究主管Christian Laforte也浅聊了StableCode的目标:

与Stable Diffusion帮助世界上任何人成为艺术家类似,我们希望StableCode模型能让任何有好点子但却遇到问题的人,能够编写一个解决问题的程序。

看到Stability AI再放大招的这波操作,有网友在去测试Github Copilot的路上来了个掉头:

上下文1.6万token的编程大模型来了!与Stable Diffusion出自同门,一次吃5个Python文件不费劲

还有网友希望“预定”下一次动作:

真的很想看Stability AI在文本转语音方面,做些类似谷歌SoundStorm(声音风暴)的事啊。

上下文1.6万token的编程大模型来了!与Stable Diffusion出自同门,一次吃5个Python文件不费劲

此外,StableCode目前已经开源啦!

参考链接:
[1]https://venturebeat.com/programming-development/stability-ai-launches-stablecode-an-llm-for-code-generation/
[2]https://twitter.com/StabilityAI/status/1688931312122675200