科技魔方

Stability AI开源3B代码生成模型:可补全,还能Debug

更多动态

2024年03月27日

  本文来自于微信公众号 机器之心(ID:almosthuman2014),作者:机器之心。

  Stable Diffusion3还没全面开放,这家公司的代码生成模型先来了。

  本周一,StabilityAI 开源了小体量预训练模型 Stable Code Instruct3B。

  Stable Code Instruct3B 是一个基于 Stable Code3B 的指令调整编码语言模型(Code LM)。给出自然语言 prompt,该模型可以处理各种任务,例如代码生成、数学和其他软件工程相关的任务。

  Stability AI 宣称,该模型在3B 规模上提供了 SOTA 性能,并且优于 CodeLlama7B Instruct 等更大规模的模型,甚至在软件工程相关任务中,性能与 StarChat15B 相当。

  Stable Code 技术报告:

  Stable Code Instruct3B 增强了代码补全能力,并支持自然语言交互,旨在提高编程和软件开发相关任务的效率和直观性。实验测试表明,该模型在各种与编码相关的任务中优于 Codellama7B Instruct 和 DeepSeek-Coder Instruct1.3B 等同类模型。

  方法介绍

  Stable Code 建立在 Stable LM3B 的基础上。Stable Code 是一个因果纯解码器 transformer,类似于 LLaMA 架构,与 LLaMA 的主要区别如下:

  位置嵌入,旋转位置嵌入应用于头嵌入维度的前25%,以提高吞吐量;

  标准化,带有学得偏差项的 LayerNorm;

  偏差,除了键、查询和值投影的偏差,Stable Code 从前馈网络和多头自注意力层中删除了所有偏差项。

  下表给出了预训练语料库数据集的采样权重、 epoch、类别等信息。

  根据 Stack Overflow2023开发者调查报告,Stable Code Instruct3B 重点关注 Python、Javascript、Java、C、C++ 和 Go 等语言,这些语言对于各种开发人员来说是最流行和最有影响力的。虽然这些语言被选为训练的重点,但该模型还针对其他广泛采用的语言(例如 SQL、PHP 和 Rust)进行了训练。

  即使对于最初未包含在训练集中的语言(例如 Lua),Stable Code Instruct3B 也能提供强大的测试性能。这种熟练程度可能源于其对底层编码原理的理解,以及利用编码任务固有的可预测性,在不同编程环境中适应概念的能力。

  Stable Code Instruct3B 不仅精通代码生成,还精通 FIM(Fill in the Middle)任务、数据库查询、代码翻译、解释和创建。其指令调整使其能够理解并按照细致入微的指令采取行动,促进除简单代码完成之外的广泛编码任务,包括数学理解、逻辑推理和围绕软件开发处理复杂的技术描述。

  性能评估

  与 Codellama7B Instruct 和 DeepSeek-Coder Instruct1.3B 等领先模型相比,Stable Code Instruct3B 在一系列编码任务中展现出卓越的性能。

  研究团队还在 Multi-PL 基准上比较了三种模型。尽管参数量较少,但 Stable Code Instruct3B 在所有语言上的表现均明显优于 CodeLlama Instruct。

  下表8展示了几种模型在 FIM 任务上的性能:

  实验测试表明,Stable Code Instruct3B 在代码完成准确性、对自然语言指令的理解以及跨不同编程语言的能力方面可与其他模型媲美甚至超越。

  Stable Code Instruct3B 的参数规模和低硬件要求使其可供广泛的受众使用,使开发人员能够更高效地工作。值得一提的是,Stable Code Instruct3B 现在可以通过 Stability AI 会员资格用于商业目的。

+1

来源:微信公众号 机器之心 作者:机器之心

延展资讯