Mistral AI 开源最新 Small 模型——Devstral-Small-2505

Devstral 是一款专为软件工程任务设计的代理型大语言模型(LLM),由 Mistral AI 和 All Hands AI 合作开发 🙌。Devstral 擅长使用工具探索代码库、编辑多个文件以及驱动软件工程代理。该模型在 SWE-bench 上表现出色,使其成为该基准测试中排名第一的开源模型。

它基于 Mistral-Small-3.1 进行微调,因此具有长达 128k token 的上下文窗口。作为一款编码代理,Devstral 仅支持文本处理,且在从 Mistral-Small-3.1 微调之前移除了视觉编码器。

对于需要特殊能力(如扩展上下文、领域特定知识等)的企业,我们将发布超越 Mistral AI 社区贡献的商业模型。

了解更多关于 Devstral 的信息,请阅读我们的博客文章。

主要特点:
  • 代理编码:Devstral 专为代理编码任务而设计,是软件工程代理的理想选择。
  • 轻量级:其紧凑的尺寸仅为 240 亿参数,轻巧到可以在单个 RTX 4090 或 32GB 内存的 Mac 上运行,使其成为本地部署和设备使用的合适模型。
  • Apache 2.0 许可证:开放许可证,允许商业和非商业用途的使用和修改。
  • 上下文窗口:128k 的上下文窗口。
  • 分词器:使用词汇量为 131k 的 Tekken 分词器。
基准测试结果

SWE-Bench
Devstral 在 SWE-Bench Verified 上取得了 46.8% 的分数,比之前的开源 SoTA 高出 6%。

ModelScaffoldSWE-Bench Verified (%)
DevstralOpenHands Scaffold46.8
GPT-4.1-miniOpenAI Scaffold23.6
Claude 3.5 HaikuAnthropic Scaffold40.6
SWE-smith-LM 32BSWE-agent Scaffold40.2

在相同的测试框架(由All Hands AI 🙌提供的OpenHands)下进行评估时,Devstral的表现远超更大的模型,如Deepseek-V3-0324和Qwen3 232B-A22B。

在这里插入图片描述
在这里插入图片描述

使用

我们建议将 Devstral 与 OpenHands 脚手架一起使用。您可以通过我们的 API 或本地运行来使用它。

API

按照以下说明创建 Mistral 账户并获取 API 密钥。

然后运行这些命令以启动 OpenHands docker 容器。

export MISTRAL_API_KEY=<MY_KEY>docker pull docker.all-hands.dev/all-hands-ai/runtime:0.39-nikolaikmkdir -p ~/.openhands-state && echo '{"language":"en","agent":"CodeActAgent","max_iterations":null,"security_analyzer":null,"confirmation_mode":false,"llm_model":"mistral/devstral-small-2505","llm_api_key":"'$MISTRAL_API_KEY'","remote_runtime_resource_factor":null,"github_token":null,"enable_default_condenser":true}' > ~/.openhands-state/settings.jsondocker run -it --rm --pull=always \-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.39-nikolaik \-e LOG_ALL_EVENTS=true \-v /var/run/docker.sock:/var/run/docker.sock \-v ~/.openhands-state:/.openhands-state \-p 3000:3000 \--add-host host.docker.internal:host-gateway \--name openhands-app \docker.all-hands.dev/all-hands-ai/openhands:0.39
OpenHands(推荐)

启动服务器以部署 Devstral-Small-2505
确保您已启动如上所述的 OpenAI 兼容服务器,例如 vLLM 或 Ollama。然后,您可以使用 OpenHands 与 Devstral-Small-2505 进行交互。

在本教程中,我们通过运行以下命令启动了一个 vLLM 服务器:

vllm serve mistralai/Devstral-Small-2505 --tokenizer_mode mistral --config_format mistral --load_format mistral --tool-call-parser mistral --enable-auto-tool-choice --tensor-parallel-size 2

服务器地址应采用以下格式:http://<your-server-url>:8000/v1

启动 OpenHands
您可以在此处按照 OpenHands 的安装步骤进行操作。

启动 OpenHands 的最简单方法是使用 Docker 镜像:

docker pull docker.all-hands.dev/all-hands-ai/runtime:0.38-nikolaikdocker run -it --rm --pull=always \-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.38-nikolaik \-e LOG_ALL_EVENTS=true \-v /var/run/docker.sock:/var/run/docker.sock \-v ~/.openhands-state:/.openhands-state \-p 3000:3000 \--add-host host.docker.internal:host-gateway \--name openhands-app \docker.all-hands.dev/all-hands-ai/openhands:0.38

然后,您可以在 http://localhost:3000 访问 OpenHands UI。

连接到服务器
当访问 OpenHands UI 时,系统会提示您连接到服务器。您可以使用高级模式连接到您之前启动的服务器。

填写以下字段:

  • 自定义模型: openai/mistralai/Devstral-Small-2505
  • 基础 URL: http://:8000/v1
  • API 密钥: token(或您启动服务器时使用的任何其他令牌,如果有的话)

使用由 Devstral 驱动的 OpenHands
现在,您可以通过开始新对话在 OpenHands 中使用 Devstral Small。让我们构建一个待办事项列表应用程序。

To-Do list app

  • 让我们请Devstral用以下提示生成应用程序:

      Build a To-Do list app with the following requirements:- Built using FastAPI and React.- Make it a one page app that:- Allows to add a task.- Allows to delete a task.- Allows to mark a task as done.- Displays the list of tasks.- Store the tasks in a SQLite database.
    

在这里插入图片描述
2. 让我们看看结果
你应该会看到代理构建应用程序,并能够探索它生成的代码。

如果它没有自动完成,请让 Devstral 部署应用程序或手动完成,然后前往前端部署 URL 查看应用程序。

在这里插入图片描述
在这里插入图片描述
3. 迭代
现在你已经有了第一个结果,你可以通过让你的代理改进它来进行迭代。例如,在生成的应用程序中,我们可以点击任务来标记为已完成,但添加一个复选框会提升用户体验。你也可以要求它添加一个编辑任务的功能,或者添加一个按状态过滤任务的功能。

享受使用 Devstral Small 和 OpenHands 进行构建的乐趣吧!

vLLM(推荐)

我们建议使用此模型与vLLM库一起实现生产就绪的推理管道。

安装

确保安装vLLM >= 0.8.5:

pip install vllm --upgrade

检查:

python -c "import mistral_common; print(mistral_common.__version__)"

你也可以使用现成的 Docker 镜像或在 Docker Hub 上查找。

服务器
我们建议您在服务器/客户端设置中使用 Devstral。

  1. 启动服务器:
vllm serve mistralai/Devstral-Small-2505 --tokenizer_mode mistral --config_format mistral --load_format mistral --tool-call-parser mistral --enable-auto-tool-choice --tensor-parallel-size 2
  1. 要 ping 客户端,你可以使用一个简单的 Python 代码片段。
import requests
import json
from huggingface_hub import hf_hub_downloadurl = "http://<your-server-url>:8000/v1/chat/completions"
headers = {"Content-Type": "application/json", "Authorization": "Bearer token"}model = "mistralai/Devstral-Small-2505"def load_system_prompt(repo_id: str, filename: str) -> str:file_path = hf_hub_download(repo_id=repo_id, filename=filename)with open(file_path, "r") as file:system_prompt = file.read()return system_promptSYSTEM_PROMPT = load_system_prompt(model, "SYSTEM_PROMPT.txt")messages = [{"role": "system", "content": SYSTEM_PROMPT},{"role": "user","content": [{"type": "text","text": "<your-command>",},],},
]data = {"model": model, "messages": messages, "temperature": 0.15}response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json()["choices"][0]["message"]["content"])
Transformers

为了充分利用我们的模型与变压器,请确保已安装 mistral-common >= 1.5.5 以使用我们的分词器。

pip install mistral-common --upgrade

然后加载我们的分词器以及模型并生成:

import torchfrom mistral_common.protocol.instruct.messages import (SystemMessage, UserMessage
)
from mistral_common.protocol.instruct.request import ChatCompletionRequest
from mistral_common.tokens.tokenizers.mistral import MistralTokenizer
from mistral_common.tokens.tokenizers.tekken import SpecialTokenPolicy
from huggingface_hub import hf_hub_download
from transformers import AutoModelForCausalLMdef load_system_prompt(repo_id: str, filename: str) -> str:file_path = hf_hub_download(repo_id=repo_id, filename=filename)with open(file_path, "r") as file:system_prompt = file.read()return system_promptmodel_id = "mistralai/Devstral-Small-2505"
tekken_file = hf_hub_download(repo_id=model_id, filename="tekken.json")
SYSTEM_PROMPT = load_system_prompt(model_id, "SYSTEM_PROMPT.txt")tokenizer = MistralTokenizer.from_file(tekken_file)model = AutoModelForCausalLM.from_pretrained(model_id)tokenized = tokenizer.encode_chat_completion(ChatCompletionRequest(messages=[SystemMessage(content=SYSTEM_PROMPT),UserMessage(content="<your-command>"),],)
)output = model.generate(input_ids=torch.tensor([tokenized.tokens]),max_new_tokens=1000,
)[0]decoded_output = tokenizer.decode(output[len(tokenized.tokens):])
print(decoded_output)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/82029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CDGA|一线二线企业数据治理项目目前发展状况

一线城市与二线城市企业在数据治理项目的发展状况上存在一定差异&#xff0c;主要体现在目标、资源投入、策略实施以及文化培育等方面。 一线城市企业数据治理项目发展状况 ‌数据治理目标全面系统‌&#xff1a; ‌数据质量与安全‌&#xff1a;一线城市的大型企业通常拥有海量…

Lyra学习笔记1地图角色加载流程

目录 1 地图加载流程1.1 默认Experience的加载1.2 加载角色1.3 加载场景中的几个传送点 2 几个内建类的笔记2.1 UDataAsset2.2 UAssetManager 纯个人笔记&#xff0c;有错误欢迎指正&#xff0c;学习阶段基本看到不会的就写一写&#xff0c;最后有时间会梳理整体结构 先看完了官…

SurfaceFlinger及Android应用RenderThread角度观察Jank丢帧卡顿

SurfaceFlinger及Android应用RenderThread角度观察Jank丢帧卡顿 CPU、GPU、Display 三个部分&#xff1a;CPU 负责计算帧数据&#xff0c;把计算好的数据交给 GPU&#xff0c;GPU 会对图形数据进行渲染&#xff0c;渲染好后放到 buffer &#xff08;图像缓冲区&#xff09;存起…

《牛客》数组中出现次数超过一半的数字

牛客的刷题之路不停歇 ⌓‿⌓ 不积跬步无以至千里&#xff0c;不积小流无以成江海 The harder you work,the luckier you will be 题目及示例 题目链接 描述 给一个长度为 n 的数组&#xff0c;数组中有一个数字出现的次数超过数组长度的一半&#xff0c;请找出这个数字。 例…

七彩喜康养护理——科技赋能下的全周期健康守护

在当今社会&#xff0c;随着人们健康意识的不断提高&#xff0c;护理行业逐渐走向专业化、精细化&#xff0c;而七彩喜智养护理作为一种新兴的护理方式&#xff0c;逐渐受到了广泛的关注和应用。 它不仅仅是针对单一病症的治疗护理&#xff0c;而是一种全面的、全方位的健康管…

【爬虫】12306自动化购票

上文&#xff1a; 【爬虫】12306查票-CSDN博客 下面是简单的自动化进行抢票&#xff0c;只写到预定票&#xff0c;没有写完登陆&#xff0c; 跳出登陆后与上述代码同理修改即可。 感觉xpath最简单&#xff0c;复制粘贴&#xff1a; 还有很多写法&#xff1a; 官网地址&#…

Java设计模式之组合模式:从入门到精通(保姆级教程)

文章目录 1. 组合模式概述1.1 专业定义1.2 通俗解释1.3 模式结构2. 组合模式详细解析2.1 模式优缺点2.2 适用场景3. 组合模式实现详解3.1 基础实现3.2 代码解析4. 组合模式进阶应用4.1 透明式 vs 安全式组合模式4.2 组合模式与递归4.3 组合模式与迭代器5. 组合模式在实际开发中…

游戏如何应对反编译工具dnspy

Unity Mono 是 Unity 引擎默认的脚本运行时环境&#xff0c;由跨平台的开源 .NET 框架实现&#xff0c;它允许开发者使用 C# 等编程语言编写游戏逻辑&#xff0c;凭借简单易用的开发环境和高效的脚本编译速度&#xff0c;得到了众多游戏的青睐。 在 Mono 模式下&#xff0c;游…

腾讯云证书过期提醒的应对措施,Caddy 自动管理的 Let‘s Encrypt 证书.

用腾讯的免费证书&#xff0c;90天需要换一次。 Caddy 自动管理的 Lets Encrypt 证书. 在网站上按F12然后找到security选项&#xff0c;然后选择View certifcate 就可以看到证书的有效期。 完全无需操作 你的网站实际使用的是 Caddy 自动管理的 Lets Encrypt 证书&#xff0c;…

[Java实战]Spring Boot整合Elasticsearch(二十六)

[Java实战]Spring Boot整合Elasticsearch&#xff08;二十六&#xff09; 摘要&#xff1a;本文通过完整的实战演示&#xff0c;详细讲解如何在Spring Boot项目中整合Elasticsearch&#xff0c;实现数据的存储、检索和复杂查询功能。包含版本适配方案、Spring Data Elasticsea…

【关联git本地仓库,上传项目到github】

目录 1.下载git2.绑定用户3.git本地与远程仓库交互4.github项目创建5.上传本地项目到github6.完结撒花❀❀❀&#xff01;&#xff01;&#xff01; 1.下载git git下载地址&#xff1a;https://git-scm.com/downloads 下载安装后创建快捷地址&#xff1a;&#xff08;此处比较…

[Vue]路由基础使用和路径传参

实际项目中不可能就一个页面&#xff0c;会有很多个页面。在Vue里面&#xff0c;页面与页面之间的跳转和传参会使用我们的路由: vue-router 基础使用 要使用我们需要先给我们的项目添加依赖:vue-router。使用命令下载: npm install vue-router 使用路由会涉及到下面几个对象:…

软考-软件工程开发模型

软考-软件工程开发模型 参考视频&#xff1a; 软件工程概述&开发模型 &#xff0c;配合视频理解更清晰&#xff5e; 软件的生命周期为&#xff1a;需求分析、软件设计、软件开发、运行维护直至被淘汰 几个阶段。 软件工程支持 4 个活动&#xff0c;简称 PDCA&#xff0c…

【写在创作纪念日】基于SpringBoot和PostGIS的各省东西南北四至极点区县可视化

目录 前言 一、空间检索简介 1、空间表结构 2、四至空间检索 二、前后端实现 1、后端实现 2、前端集成 三、成果展示 1、东部省份 2、西部省份 3、南部省份 4、北部省份 5、中部省份 四、总结 前言 在当今数字化时代&#xff0c;地理信息数据的分析与可视化对于众…

智能守护校园“舌尖安全“:AI视频分析赋能名厨亮灶新时代

引言&#xff1a; 在校园食品安全备受关注的今天&#xff0c;一套融合视频监控管理平台与AI视频分析盒子的智能解决方案正在全国多地学校食堂悄然落地&#xff0c;为传统的"名厨亮灶"工程注入科技新动能。这套系统不仅实现了后厨操作的"透明化"&#xff0…

【软件设计师】计算机网络考点整理

以下是软件设计师考试中 ​​计算机网络​​ 的核心考点总结&#xff0c;帮助您高效备考&#xff1a; ​​一、网络体系结构与协议​​ ​​OSI七层模型 & TCP/IP四层模型​​ 各层功能&#xff08;物理层-数据链路层-网络层-传输层-会话层-表示层-应用层&#xff09;对应协…

Starrocks的CBO基石--统计信息的来源 StatisticAutoCollector

背景 本文来从底层代码的实现来分析一下Starrocks怎么获取统计信息&#xff0c;这些统计信息在后续基于CBO的代价计算的时候有着重要的作用 本文基于Starrrocks 3.3.5 结论 Starrocks的统计信息的收集是通过周期性的运行一系列的SQL&#xff08;以分区为维度&#xff0c;如果…

深度学习模型部署(四)——RKNN

一、RKNN部署及工具包安装 参考1&#xff1a;https://blog.csdn.net/qq_40280673/article/details/136211086#/ 参考2&#xff1a;瑞芯微官方教程 RKNN部署针对瑞芯微芯片优化&#xff0c;支持NPU硬件加速&#xff0c;需要安装rknn-toolkit&#xff0c;用于将pytorch模型转换为…

重构研发效能:项目管理引领软件工厂迈向智能化

1.项目管理智能化&#xff0c;激活软件工厂新引擎 在高速发展的软件开发时代&#xff0c;企业如何高效管理多个项目、协调团队合作、优化资源配置&#xff0c;已成为推动技术进步的关键。尤其是在多任务、多项目并行的复杂环境下&#xff0c;智能项目组合管理工具正成为软件工…

小米汽车二期工厂下月将竣工,产能提升助力市场拓展

在新能源汽车市场竞争日益激烈的当下&#xff0c;小米汽车传来重要进展消息。据多方信息显示&#xff0c;小米汽车二期工厂下月即将竣工&#xff0c;这一关键节点的到来&#xff0c;有望为小米汽车的产能提升与市场布局带来重大突破。​ 小米汽车二期工厂位于北京亦庄&#xff…