Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

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

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

产业Stability AIStable Code Instruct 3B
相关数据
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

自注意力技术

自注意力(Self-attention),有时也称为内部注意力,它是一种涉及单序列不同位置的注意力机制,并能计算序列的表征。自注意力在多种任务中都有非常成功的应用,例如阅读理解、摘要概括、文字蕴含和语句表征等。自注意力这种在序列内部执行 Attention 的方法可以视为搜索序列内部的隐藏关系,这种内部关系对于翻译以及序列任务的性能非常重要。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

逻辑推理技术

逻辑推理中有三种方式:演绎推理、归纳推理和溯因推理。它包括给定前提、结论和规则

数据库技术

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

语料库技术

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记;事实上,语料库英文 "text corpus" 的涵意即为"body of text"。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

生成模型技术

在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。 它给观测值和标注数据序列指定一个联合概率分布。 在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。

语言模型技术

统计式的语言模型是借由一个几率分布,而指派几率给字词所组成的字串。语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。

推荐文章
暂无评论
暂无评论~