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
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/82029.shtml
英文地址,請注明出處:http://en.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…