StableCode

StableCode

AI TOOL PROFILE工具资料

Stability AI 推出的首个编程用生成式 AI 模型,主打长上下文与代码补全。

官网地址 https://stability.ai/blog/stablecode-llm-generative-ai-coding

访问官网
价格价格未公布
平台—
归类AI 编程
收录2024-01-16
复核2024-01-16
编辑评分 4.3 / 5

StableCode编辑总结

EDITOR REVIEW编辑评测

StableCode 是 Stability AI 发布的首款面向编程的生成式 AI 产品,首发版本为 Stable Code Alpha 3B。它用三种模型协同工作:基础模型在 BigCode 的 stack-dataset(v1.2)及 Python、Go、Java、Javascript、C、markdown、C++ 等语言上训练,累计在 HPC 集群上训练了 560B tokens 的代码;指令模型基于约 120,000 条 Alpaca 格式的代码指令/响应对微调;长上下文模型支持 16,000 tokens 的上下文窗口。最突出的优势是上下文容量达到此前开源模型的 2-4 倍,可同时审阅或编辑约五个普通规模的 Python 文件;短板是它定位为 Alpha 版本,具体定价与商用授权范围尚未公布。

StableCode是什么?

StableCode 由 Stability AI 推出,是其首个面向编程的 LLM 生成式 AI 产品,定位是协助程序员完成日常工作,同时为准备提升技能的新开发者提供学习工具。

产品由三种模型组成:基础模型先在 BigCode 的 stack-dataset(v1.2)的多种编程语言上训练,再用 Python、Go、Java、Javascript、C、markdown、C++ 等流行语言进一步训练,全部训练在 HPC 集群上完成,共消耗 560B tokens 的代码;指令模型在基础模型之上用约 120,000 条 Alpaca 格式的代码指令/响应对微调,用于解决复杂编程任务;长上下文窗口模型面向单行与多行自动补全,支持 16,000 tokens 上下文,可处理比此前开源模型多 2-4 倍的代码。

对普通学习者来说,它是一块入门编程的构建基块,可用来理解代码与获得补全建议;对开发者来说,长上下文适合一次性审阅或编辑多个文件,相当于同时处理约五个普通规模的 Python 文件;团队若需要指令跟随能力,可直接调用 Instruct 模型生成对给定指令的响应。

StableCode核心功能

CAPABILITIES工具标签

三种模型协同

基础模型负责通用代码理解,指令模型负责按指令完成复杂编程任务,长上下文窗口模型负责单行与多行自动补全,三者覆盖从学习到实际编码的不同环节。

超长上下文窗口

长上下文模型提供 16,000 tokens 上下文,可一次处理比此前开源模型多 2-4 倍的代码,相当于同时审阅或编辑约五个平均规模的 Python 文件。

多语言代码训练

基础模型先用 stack-dataset(v1.2)中的多种编程语言训练,再用 Python、Go、Java、Javascript、C、markdown、C++ 等流行语言继续训练。

指令微调

指令模型基于约 120,000 条 Alpaca 格式的代码指令/响应对在基础模型上微调,面向复杂编程任务,可按给定指令生成响应。

自动补全建议

长上下文窗口模型面向用户提供单行与多行自动补全建议,适合边写边看,也能支撑初学者在写代码时获得实时提示。

多文件级处理

借助长上下文,可一次性处理约五个平均规模 Python 文件的代码量,适合需要跨文件审阅或修改的开发者使用。

HumanEval 基准对比

采用 pass@1 与 pass@10 指标在 HumanEval 基准上评测,并与参数规模同为 3B 量级、训练 token 数相近的其他模型进行对比。

StableCode值不值得用?

VERDICT工具标签

当你想让模型一次性读完多个 Python 文件、做跨文件审阅或批量补全时,StableCode 的 16,000 tokens 上下文是同类 3B 模型中少见的优势,处理量可达此前开源模型的 2-4 倍;当你的任务是按自然语言指令完成复杂编程步骤时,用经过约 120,000 条指令微调的 Instruct 模型更合适。需要注意的是,这只是 Alpha 版本,价格与商用授权范围都未公布,落地前需确认费用与授权;如果只是偶尔补全几行代码,长上下文的优势体现不明显,完全可以先用更轻量的方案。

建议选它的情况

  • 需要一次处理多个 Python 文件的开发者
  • 正在学编程、想要实时补全提示的初学者
  • 需要按指令完成复杂编程任务、调用 Instruct 模型的用户
  • 关注开源 3B 量级代码模型并想对比 HumanEval 表现的团队

不建议选它的情况

  • 对价格与商用授权有明确合规要求的团队
  • 只需要偶尔补全几行代码的轻量使用者

StableCode使用建议

HOW TO USE工具标签
入门先把路子走对
  1. 先确认用哪个模型需求分三类:通用代码理解用基础模型,按指令完成任务用 Instruct 模型,写代码时的单行/多行补全用长上下文窗口模型。
  2. 从 Instruct 上手用 StableCode Instruct 生成对给定指令的响应,是体验产品能力最直接的方式,适合先跑通一个具体编程任务。
  3. 用长上下文做跨文件任务把多个平均规模的 Python 文件放进同一个上下文,一次性审阅或编辑,能发挥 16,000 tokens 窗口的价值。
进阶省时间也省钱
  1. 按任务挑模型同一件事交给不同模型结果差别明显:补全走长上下文模型,复杂步骤走指令模型,能减少反复重试的时间。
  2. 对照 HumanEval 成绩用 pass@1 与 pass@10 指标对比 3B 量级、训练 token 数相近的模型,判断在你的任务类型上是否值得切换。

StableCode适合谁用?

WHO IS IT FOR工具标签

编程初学者

推荐

面向想学编程的新手,单行与多行补全可以在写代码时即时提示,长上下文也方便一次看懂多个文件的关系。

Python 开发者

推荐

16,000 tokens 上下文约等于五个平均规模 Python 文件,跨文件审阅或批量修改时优势明显。

需要指令跟随的开发者

推荐

Instruct 模型基于约 120,000 条指令/响应对微调,适合把复杂编程任务交给它按指令执行。

有合规要求的团队

有条件

产品仍为 Alpha 版本,价格与商用授权范围未公布,需要走采购或法务流程的团队要先确认这两项。

StableCode优点和缺点

PROS & CONS工具标签

优点

  • 16,000 tokens 上下文,处理量为此前开源模型的 2-4 倍
  • 可同时审阅或编辑约五个平均规模 Python 文件
  • 基础模型在 560B tokens 代码上训练,覆盖多种主流语言
  • 指令模型用约 120,000 条 Alpaca 格式数据微调
  • 三种模型分工明确,覆盖补全、指令与通用理解
  • 基于 HumanEval 的 pass@1 与 pass@10 指标可与同类模型对比

缺点

  • Alpha 版本,价格与商用授权范围未公布
  • 参数规模为 3B,属小体量模型阵营
  • 长上下文的优势只在多文件场景才明显
  • 平台支持范围未说明

StableCode关键指标

MEASURED FACTS工具标签
指标数值数据来源
训练代码 token 数 560B tokens Stability AI 官方博客
指令微调数据量 约 120,000 条 Alpaca 格式代码指令/响应对 Stability AI 官方博客
上下文窗口 16,000 tokens Stability AI 官方博客
上下文处理量对比 2-4X more than previously released open models Stability AI 官方博客
模型参数规模 3B Stability AI 官方博客

StableCode常见问题

FAQ工具标签
StableCode 一共包含几个模型,分别做什么?

包含三个模型。基础模型先在 BigCode 的 stack-dataset(v1.2)的多语言上训练,再用 Python、Go、Java、Javascript、C、markdown、C++ 等流行语言继续训练;指令模型在基础模型上微调,用于解决复杂编程任务;长上下文窗口模型负责单行与多行自动补全。

它的上下文窗口有多大,能一次处理多少代码?

长上下文窗口模型的上下文为 16,000 tokens,可处理的代码量是此前发布的开源模型的 2-4 倍,换算下来相当于同时审阅或编辑约五个平均规模的 Python 文件,适合需要跨文件查看和修改的场景。

训练用了多少数据?

基础模型累计在 HPC 集群上训练了 560B tokens 的代码;指令模型则在基础模型之上,用约 120,000 条 Alpaca 格式的代码指令/响应对进行微调,用于提升对具体指令的响应能力。

它的编程能力怎么衡量?

采用 HumanEval 基准上的标准 pass@1 与 pass@10 指标进行评测,并与参数规模相近(3B 量级)、训练 token 数相近的其他模型作对比,用来判断在这一量级中的相对表现。

StableCode 是最终版本吗?

不是。首发版本名称为 Stable Code Alpha 3B,从命名即可看出处于 Alpha 阶段,属于 Stability AI 首个面向编程的生成式 AI 产品,也定位为后续能力的构建基块。

StableCode最新动态

CHANGELOG工具标签
  1. 页面更新

    官方博客页面在 2024 年 1 月 16 日更新,作者署名为 Joshua Lopez。