Mistral 发布代码嵌入模型 Codestral Embed
Codestral Embed
Mistral 发布其首个代码专用嵌入模型 Codestral Embed,称其在真实代码数据检索上显著优于 Voyage Code 3、Cohere Embed v4.0 和 OpenAI 的大嵌入模型。
这篇模型发布把 Codestral Embed 的检索质量、输出维度和精度选择放在一起说明,便于对照 Voyage Code 3、Cohere Embed v4.0 与 OpenAI 大嵌入模型看存储成本取舍。
我们很高兴发布 Codestral Embed,这是我们首个专为代码设计的嵌入模型。它在真实世界代码数据的检索场景中表现尤为出色。
Codestral Embed 显著优于当今市场上领先的代码嵌入模型:Voyage Code 3、Cohere Embed v4.0 以及 OpenAI 的大型嵌入模型。
Codestral Embed 可以输出不同维度和精度的嵌入,下图展示了检索质量与存储成本之间的权衡。维度为 256、精度为 int8 的 Codestral Embed 仍然优于竞争对手的任何模型。我们的嵌入维度按相关性排序。对于任意整数目标维度 n,你可以选择保留前 n 个维度,从而在质量与成本之间实现平滑权衡。

结果
下方 我们展示 Codestral Embed 在多个类别上的表现。各类别对应的基准测试详情可在“基准测试详情”一节的表格中找到。
SWE-Bench 基于由真实世界 GitHub issue 及相应修复组成的数据集,对编程智能体的检索增强生成尤为相关。Text2Code (GitHub) 包含与为代码补全或编辑提供上下文相关的基准测试。我们认为这两个类别对代码助手尤为重要。
用例
Codestral Embed 针对高性能代码检索和语义理解进行了优化。它能够支持开发工作流中的一系列实际应用,尤其是在处理大规模代码语料时。
1. 检索增强生成
Codestral Embed 可为代码补全、编辑或解释任务实现快速、高效的上下文检索。它非常适合在 copilot 或编程智能体框架中开展 AI 驱动的软件工程。
2. 语义代码搜索
Embed 能够根据自然语言或代码查询准确搜索相关代码片段。它适用于开发者工具、文档系统以及 copilot。
3. 相似性搜索与重复检测
该模型的嵌入可用于识别近似重复或功能相似的代码片段,即使存在显著的词汇差异。这支持识别可复用代码以避免重复,或检测复制粘贴式复用以执行许可政策等用例。
4. 语义聚类与代码分析
Codestral Embed 支持基于功能或结构对代码进行无监督分组。这有助于分析仓库构成、识别涌现的架构模式,或输入自动化文档与分类系统。
可用性
Codestral Embed 已在我们的 API 上以名称 `codestral-embed-2505` 提供,价格为每百万 token $0.15。它也可通过我们的 批量 API 使用,并享受 50% 折扣。如需本地部署,请联系我们,以便与我们的应用 AI 团队取得联系。
请查看我们的 文档 以开始使用,并参阅我们的 手册 ,了解如何将 Codestral Embed 用于代码智能体检索的示例。
分块参数
对于检索用例,虽然你可以使用完整的 8192 tokens 上下文大小,但将数据集分块通常更为高效。我们建议使用 3000 个字符的分块,并重叠 1000 个字符。较大的分块往往会降低检索系统的性能。有关分块的更多信息,请参阅 我们的 cookbook。
基准详情
你可以在下表中找到我们用于评估模型的基准详情。我们报告每个类别的平均得分,以及宏平均(各类别得分的平均值)。
基准 | 描述 | 类别 |
|---|---|---|
SWE-Bench lite | 来自 SWE-Bench lite 的示例:给定真实的 GitHub issue,从仓库的给定状态中检索应为修复该问题而修改的文件。与代码智能体 RAG 最为相关。 | swebench_lite |
CodeSearchNet 代码 -> 代码 | 给定来自 GitHub 的真实代码,检索出现在同一上下文中的代码 | code2code |
CodeSearchNet doc2code | 给定来自真实 GitHub 代码的 docstring,检索对应的代码 | 文本转代码(github) |
CommitPack | 给定来自真实 GitHub 代码的提交信息,检索对应的已修改文件 | 文本转代码(github) |
Spider | 给定查询,检索 SQL 代码 | Text2SQL |
WikiSQL | 给定查询,检索 SQL 代码 | Text2SQL |
合成 Text2SQL | 给定查询,检索 SQL 代码 | Text2SQL |
DM 代码竞赛 | 将问题描述与编程竞赛网站的正确解法相匹配(语料库为每个问题的正确 + 错误解法)。 | 文本转代码(算法) |
APPS | 将问题描述与编程竞赛网站的解法相匹配。 | 文本转代码(算法) |
CodeChef | 将问题描述与编程竞赛网站的解法相匹配。 | 文本转代码(算法) |
MBPP+ | 将算法问题与主要为基本 Python 程序的解法相匹配 | 文本转代码(算法) |
DS 1000 | 将数据科学问题与实现相匹配 | 文本转代码(数据科学) |
来源:Mistral AI · mistral.ai