Hotdry.
ai-systems

Devstral 46.8% SWE-Bench 开源第一:本地部署与 LoRA 微调 CLI 实战

Devstral-Small-2505 在 SWE-Bench Verified 达 46.8%,开源领先。详解 Ollama 一键运行、vLLM 多卡部署及 Axolotl LoRA 微调全流程。

Devstral-Small-2505 是 Mistral AI 与 All Hands AI 合作推出的 24B 参数开源模型,专为软件工程代理任务设计,在 SWE-Bench Verified 基准上取得 46.8% 分数,成为开源模型第一名。该成绩领先此前开源 SOTA 6 个百分点,甚至超越 GPT-4.1-mini 20% 以上。网络流传的 “72%” 实际为 Claude 系列在完整 SWE-Bench 上的成绩,Verified 子集更严苛,Devstral 的表现已属顶尖。

模型基于 Mistral Small 3.1 微调,移除视觉编码器转为纯文本,支持 128k 上下文窗口,Apache 2.0 许可允许商业使用。官方强调其代理能力:探索代码库、编辑多文件、集成 OpenHands 等框架。量化后仅 14GB,可单 RTX 4090 或 32GB Mac 运行,fp16 版约 47GB 需多卡。

一键本地运行:Ollama 部署

Ollama 是最简部署方式,支持一键拉取量化模型。

  1. 安装 Ollama

    curl -fsSL https://ollama.com/install.sh | sh
    
  2. 拉取并运行 Devstral

    ollama run devstral
    

    模型大小 14GB(4bit 量化),首次下载后即用。测试提示:

    你是一个软件工程师代理。分析以下代码库问题并给出修复方案:[粘贴 GitHub issue]
    

    预期输出:模型会规划步骤,如 “ls 文件 → read main.py → edit bug”。

  3. CLI 交互优化

    • 设置温度 0.1–0.3,提升确定性。
    • 结合 OpenHands:docker run -p 3000:3000 ghcr.io/all-hands-ai/openhands:main ,配置 Ollama API 端点 http://host.docker.internal:11434

Ollama 适合快速验证,推理速度 RTX 4090 上约 20–30 t/s。

高性能服务化:vLLM 多卡部署

生产环境用 vLLM,支持张量并行,fp16 推理。

  1. 环境准备(ModelScope 下载 fp16 权重):

    pip install modelscope
    mkdir devstral-small-2505 && cd devstral-small-2505
    modelscope download mistralai/Devstral-Small-2505 --local_dir .
    
  2. 4 卡启动(CUDA_VISIBLE_DEVICES 指定 GPU):

    pip install vllm --upgrade
    CUDA_VISIBLE_DEVICES=0,1,2,3 vllm serve . \
      --served-model-name Devstral-Small-2505 \
      --tensor-parallel-size 4 \
      --tokenizer_mode mistral \
      --config_format mistral \
      --load_format mistral \
      --tool-call-parser mistral \
      --enable-auto-tool-choice
    

    参数详解:

    参数 作用
    tensor-parallel-size 4 模型分片到 4 GPU,每卡~12GB
    tokenizer_mode mistral 匹配 Tekken 分词器(131k 词汇)
    enable-auto-tool-choice true 代理工具调用

    API 端点 http://localhost:8000,用 curl 测试:

    curl http://localhost:8000/v1/chat/completions \
      -H "Content-Type: application/json" \
      -d '{
        "model": "Devstral-Small-2505",
        "messages": [{"role": "user", "content": "修复 Python bug: def add(a,b): return a+b"}]
      }'
    

    单卡 4090 用 --tensor-parallel-size 1 --dtype float16,显存占用 45GB+,建议 48GB A6000。

社区 LoRA 微调:Axolotl CLI 全流程

Mistral 未官方 CLI,Axolotl 是高效 QLoRA 工具,支持 Devstral。

  1. 安装

    git clone https://github.com/axolotl-ai-cloud/axolotl
    cd axolotl && pip install -e .
    
  2. 数据集准备(Alpaca 格式,软件工程任务): 创建 data/devstral.yaml

    datasets:
      1: {repo: mlabonne/code alpaca-gpt4, subset: devstral_sft, size: 10000}
    sequence_len: 4096
    sample_packing: true
    

    下载数据:accelerate launch src/axolotl/scripts/download_dataset.py mlabonne/code-alpaca-gpt4 --subset devstral_sft

  3. 微调配置 fine_tune.yaml

    base_model: mistralai/Devstral-Small-2505
    adapter: qlora  # 16bit LoRA
    lora_r: 64
    lora_alpha: 16
    lora_dropout: 0.05
    load_in_4bit: true
    gradient_accumulation_steps: 4
    num_epochs: 1
    micro_batch_size: 2
    learning_rate: 2e-4
    output_dir: ./devstral-lora
    

    超参说明:

    • r=64:秩,平衡性能 / 参数(~50M 可训参)
    • lr=2e-4:软件工程任务经验值
    • 显存:单 4090 ~24GB(4bit 基 + QLoRA)
  4. 启动微调

    accelerate launch -m axolotl.cli.train fine_tune.yaml
    

    训练 1 epoch ~4h(10k 样本),后融合:merge_lora.py 输出 PEFT 适配器。

  5. 推理适配器

    from peft import PeftModel
    model = AutoModelForCausalLM.from_pretrained("mistralai/Devstral-Small-2505", device_map="auto")
    model = PeftModel.from_pretrained(model, "./devstral-lora")
    

自定义数据集:收集公司 GitHub issue,转 JSONL {instruction, input, output},强调多文件编辑。

硬件与风险清单

三档部署

档次 硬件 场景 备注
入门 RTX 4090 24GB + 64GB RAM Ollama 量化推理 20 t/s
专业 4x A100 40GB vLLM fp16 服务 100+ t/s
极致 8x H100 80GB 全参数 + 微调 企业级

落地风险

  • 显存溢出:优先 4bit,监控 nvidia-smi
  • 幻觉:代理任务加系统提示 “Think step-by-step”。
  • 回滚:基准验证集测试 LoRA 前后分数。

Devstral 标志开源代理模型新时代,本地微调门槛低,结合 VSCode OpenHands 插件即成 coding agent。未来大版本或破 60%。

资料来源

  • Mistral 官方博客(mistral.ai/news/devstral)
  • Ollama 库(ollama.com/library/devstral)
查看归档