Welcome to SpiceShop Theme

Sea summo mazim ex, ea errem eleifend definitionem vim. Ut nec hinc dolor possim mei ludus efficiendi ei sea summo mazim ex.

Codestral: AI 增强开发,大众编码再进一步

Codestral: AI 增强开发,大众编码再进一步

各位朋友们,新一代的人工智能开发工具来了。

这款产品名叫“ Codestral”,可以视为让每个普通人都能生成和理解代码的工具,它是长期争夺 AI 自动化软件开发阵地的最新一轮“攻击” 。

Codestral 是由法国人工智能初创公司 Mistral AI 开发,这家公司受到了微软的技术与投资双重支持,推出了这款专为代码生成而设计的代码大模型。


网址:https://mistral.ai/news/codestral/

Codestral 是一种开放生成式人工智能 (GenAI) 模型,专门为代码生成任务而设计。

根据美国国家电信和信息管理局称,开放式模型允许开发人员在之前的工作基础上进行构建和调整,从而扩大人工智能工具在小型企业中的可用性。

Codestral 已经接受过 80 多种编程语言的训练,其中包括一些最流行的语言,例如Python、Java、C、C++、JavaScript和Bash等。

Codestral 功能特点

Mistral 展示的测试结果表明,Codestral 在 Python、SQL等语言的各种基准测试中优于其它模型。

Codestral 可以完成编码功能、编写测试,并使用中间填充机制完成任何部分代码。Mistral 公司称,与 Codestral 交互将有助于提高开发人员的编码水平,并降低出现Bug、错误和安全的风险。

另外,Codestral 在Swift和Fortran等更特殊的编程语言上也表现良好。这种广泛的语言基础确保 Codestral 能够在各种编码环境和项目中,为开发人员提供非常有效的帮助。

Tabnine 研发主管Meital Zilberstein 使用后说:

“作为首款以开发人员为中心的GenAI工具的研发人员,我很高兴将 Mistral 的新代码模型集成到我们的聊天机器人产品中。它的性能给我留下了深刻的印象。尽管它的尺寸相对紧凑,但它提供的结果与我们向客户提供的大型语言模型相当。我们测试了几个关键功能,包括代码生成、测试生成、文档、入职流程等。在每种情况下,该模型都超出了我们的预期。”

Continue.dev 首席技术官兼联合创始人Nate Sesti 这样表示:

“以前,从来没有过如此速度和质量兼具的通用自动化代码完成模型,这对于世界各地的开发人员来说,这将会是一个重大改变。”

安装与使用方式

Codestral 可在Hugging Face上下载,并且也可以通过专用节点 (codestral.mistral.ai) 或常用 API 节点 (api.mistral.ai) 直接使用。

该模型业已经与LlamaIndex和LangChain等应用程序框架以及Continue.dev和 Tabnine的VS Code和JetBrains IDE 插件集成。

Mistral正在逐步整合在 Apache 2.0 和 MNPL 双许可证下发布的两个产品系列,将继续在 Apache 2.0 下进行建模与编码。

Codestral 与其他模型的比较


为了更好地了解 Codestral 的功能,让我们将其性能与其他著名的代码生成模型进行比较。以下部分将深入探讨具体的基准测试结果并重点介绍主要差异。


上下文窗口


首先来看一下这些结果:

Codestral 因其在长距离代码补全任务 (RepoBench) 中的出色表现而脱颖而出,这可能是由于其上下文窗口更大,有 32k 个标记。这个更大的窗口使其能够考虑更多周围的代码,从而做出更好的预测。Codestral 在 Python 的 HumanEval 基准测试中也表现出色,展示了其生成准确代码的能力。

虽然 Codestral 在特定领域表现出色,但 DeepSeek Coder 等其他模型在不同基准测试 (MBPP) 上表现出色。

尽管与其他模型相比,Codestral 是最小的 LLM 模型之一,但在代码生成和填充中间任务中,它的性能通常比所有编程语言中的 Llama 3 70B 等更大的模型更好,或至少可以与之媲美。

填补中间表现


来看填充中间 (FIM) 的性能:

与 DeepSeek Coder 33B 相比,Codestral 22B 在所有三种编程语言(Python、JavaScript 和 Java)以及整体 FIM 平均值中表现出明显更高的性能。这表明 Codestral 在理解代码上下文和准确填充缺失代码段方面效果更好。

人力评估


HumanEval 基准测试通过测试模型根据函数描述生成通过人工编写的单元测试的代码的能力来衡量代码生成的准确性。


以下是 Codestral 与 HumanEval 基准测试中的相关模型比较:

Codestral 在 Python、bash、Java 和 PHP 中表现出色。虽然其他模型在不同语言中表现出色,但 Codestral 的总体平均性能领先,展示了其在多种语言中生成准确代码的强大能力。

代码生成与相关用例


Codestral 的多种功能适用于软件开发生命周期内的各种实际应用。让我们来探索 Codestral 可以产生重大影响的一些突出用例。


代码完成和生成


Codestral 在代码补全和生成方面表现出色,这是其主要用例之一。开发者可以利用 Codestral 根据周围环境建议代码补全,从而实现更快、更准确的编码。


此外,Codestral 可以根据自然语言描述或指令生成整个代码片段,进一步简化开发流程并提高生产力。


下面是要求 Codestral 生成的一个简单示例

prompt = "Please write me a function that adds up two numbers"data = { "model": "codestral-latest", "messages": [ { "role": "user", "content": prompt } ], "temperature": 0}
response = call_chat_instruct_endpoint(api_key, data)

单元测试生成


Codestral 还简化了现有代码的单元测试生成。此功能通过自动化测试生成过程节省了开发人员宝贵的时间和精力。因此,它有助于提高代码质量并降低出现错误的可能性,确保软件项目保持稳健且可维护。


我要求 Codestral 为上面生成的函数生成一个简单的单元测试:


prompt = """
Sure, here is a simple function in Python that adds up two numbers:
```pythondef add_two_numbers(num1, num2): return num1 + num2
You can use this function like this:result = add_two_numbers(5, 3)print(result) # Outputs: 8
This function takes two arguments, num1 and num2, and returns their sum.def test_add_two_numbers():"""
suffix = ""
data = { "model": "codestral-latest", "prompt": prompt, "suffix": suffix, "temperature": 0<sp

Keyword: Suno

Comments are closed.