@mishig25: 开源真的回来了 http://hf.co/mistralai/Mistral-Medium-3.5-128B…
摘要
Mistral AI发布了Mistral Medium 3.5,这是一个开源的128B稠密模型,支持256k上下文、多模态输入、可配置推理和智能体能力。
查看缓存全文
缓存时间: 2026/06/16 15:37
开源热潮回归 🔥 https://t.co/UiWsAxajcc https://t.co/KiQcx9MthB
— # mistralai/Mistral-Medium-3.5-128B · Hugging Face
来源:https://huggingface.co/mistralai/Mistral-Medium-3.5-128B
Mistral Medium 3.5 是我们的首个旗舰合并模型。它是一个密集的 128B 参数模型,拥有 256k 上下文窗口,在单套权重中处理指令遵循、推理和编码任务。Mistral Medium 3.5 在 Le Chat 中取代了其前身 Mistral Medium 3.1 和 Magistral。它还在我们的编码智能体 Vibe 中取代了 Devstral 2。具体来说,相比我们之前发布的模型,这个新的统一模型在指令、推理和编码任务上预计会有更好的性能。推理努力程度可根据请求配置,因此同一个模型既能用于快速的聊天回复,也能处理复杂的智能体运行。我们从头训练了视觉编码器,以处理可变图像尺寸和宽高比。更多信息请查看我们的博客(https://mistral.ai/news/vibe-remote-agents-mistral-medium-3-5)。
要使用 vLLM 或 SGLang 加速本地推理,请查看我们发布的 EAGLE 模型(https://huggingface.co/mistralai/Mistral-Medium-3.5-128B-EAGLE)。
Transformers 配置最初有一个错误条目,导致长上下文性能下降。此问题已在此提交(https://huggingface.co/mistralai/Mistral-Medium-3.5-128B/commit/c4be198050fb5789774a55b92ed697becfbf20ae)中修复。使用此提交之前的 Transformers 配置生成的 GGUF 也会受到影响。请使用正确的配置以获得最佳性能。
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#key-features 主要特性
Mistral Medium 3.5 包含以下架构选择:
- 密集的 128B 参数。
- 256k 上下文长度。
- 多模态输入:接受文本和图像输入,输出文本。
- 指令与推理功能,支持函数调用(推理努力程度可针对每个请求配置)。
Mistral Medium 3.5 提供以下能力:
- 推理模式:在快速即时回复模式和推理模式之间切换,通过测试时计算提升请求时的性能。
- 视觉能力:分析图像并根据视觉内容提供见解,此外还有文本处理。
- 多语言:支持数十种语言,包括英语、法语、西班牙语、德语、意大利语、葡萄牙语、荷兰语、中文、日语、韩语和阿拉伯语。
- 系统提示:对系统提示有很强的遵循和支持。
- 智能体能力:具有原生函数调用和 JSON 输出的一流智能体能力。
- 大上下文窗口:支持 256k 上下文窗口。
我们以修改版 MIT 许可(https://huggingface.co/mistralai/Mistral-Medium-3.5-128B/blob/main/LICENSE) 发布此模型:用于商业和非商业用途的开源许可,对高收入公司有例外。
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#recommended-settings 推荐设置
- 推理努力程度:
'none'→ 不使用推理'high'→ 使用推理(推荐用于复杂提示和智能体使用)
对于复杂任务和智能体编码,使用reasoning_effort="high"。
- 温度:
- 对于
reasoning_effort="high",使用 0.7。 - 对于
reasoning_effort="none",根据任务在 0.0 到 0.7 之间调节。通常,较低的值使答案更直接,较高的值让模型更具创造性。尝试不同值以满足需求是一个好习惯。
- 对于
- Top p:
- 对于
reasoning_effort="high",使用 0.95。可以尝试不同值,但保持接近应能获得最佳性能。 - 对于
reasoning_effort="none",设为None(或1.0)。
- 对于
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#benchmarks 基准测试
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#agentic-benchmarks 智能体基准测试
Mistral Medium 3.5 在所有基准测试上超越了所有我们之前的编码模型(即 Devstral)。它在 τ3-Telecom 上得分为 91.4%,在 SWE-Bench Verified 上得分为 77.6%。由于其更强的智能体能力,Mistral Medium 3.5 在我们编码智能体 Vibe CLI 中取代了 Devstral 2。
Mistral 智能体基准测试(https://huggingface.co/mistralai/Mistral-Medium-3.5-128B/resolve/main/images/image2.png)
Mistral 智能体基准测试 SWE-bench(https://huggingface.co/mistralai/Mistral-Medium-3.5-128B/resolve/main/images/image3.png)
Mistral 智能体与竞争模型基准测试对比(https://huggingface.co/mistralai/Mistral-Medium-3.5-128B/resolve/main/images/image4.png)
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#instruction-following-reasoning-and-coding-benchmarks 指令遵循、推理和编码基准测试
我们将 Mistral Medium 3.5 与竞争模型在指令遵循、推理(数学)和编码基准测试上进行了比较。由于其统一的能力,它在所有这些任务上取得了强劲的结果,Mistral Medium 3.5 目前正在为 Le Chat 提供支持。
指令推理与智能体基准测试(https://huggingface.co/mistralai/Mistral-Medium-3.5-128B/resolve/main/images/image1.png)
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#usage 使用方式
你可以在多个库中找到对 Mistral Medium 3.5 的推理和微调支持。我们在此 感谢 所有帮助我们实现这一目标的贡献者和维护者。
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#mistral-vibe Mistral-Vibe
通过 Mistral Vibe(https://github.com/mistralai/mistral-vibe)使用 Mistral Medium 3.5。
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#install 安装
安装最新版本:
uv pip install mistral-vibe --upgrade
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#api-usage API 使用
通过启动 vibe 即可选择 Mistral Medium 3.5。如果是第一次启动 vibe,它会:
- 在 ~/.vibe/config.toml 创建默认配置文件。
- 提示输入 API 密钥(如果尚未配置)。
- 将 API 密钥保存到 ~/.vibe/.env 以备将来使用。
现在选择 mistral-medium-3.5 并开始构建吧!
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#local-server 本地服务器
如果你不想调用 Mistral API,而是想使用本地 vLLM 服务器,可以按以下步骤操作:
- 按照
Usage - vllm(https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#vllm-recommended)中的说明启动一个 vllm 服务器。 - 在
~/.vibe/config.toml中添加模型配置:
``
display_name = “Mistral Medium 3.5 (local vLLM)”
description = “Mistral Medium 3.5 mode using local vLLM”
safety = “neutral”
active_model = “mistral-medium-3.5” # 确保这是唯一的 active_model 条目
[[providers]]
name = “vllm”
api_base = “http://
api_key_env_var = “”
backend = “generic”
api_style = “reasoning”
[[models]]
name = “mistralai/Mistral-Medium-3.5-128B”
provider = “vllm”
alias = “mistral-medium-3.5”
thinking = “high”
temperature = 0.7
auto_compact_threshold = 168000
[tools.bash]
default_timeout = 1200
``
注意:
- 确保将
<your-server-ip>替换为你的服务器 URL。 - 也支持其他推理后端。请查看 Mistral Vibe 仓库(https://github.com/mistralai/mistral-vibe)了解更多信息。
然后重启 vibe 并按 “tab-shift” 切换到 “mistral-medium-3.5” 模式。尝试一些编码智能体任务,开始构建一些很棒的东西吧!
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#inference 推理
该模型可通过以下方式部署:
vllm(推荐)(https://github.com/vllm-project/vllm):见此处(https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#vllm-recommended)。llama.cpp(https://github.com/ggml-org/llama.cpp):见此处(https://huggingface.co/unsloth/Mistral-Medium-3.5-128B-GGUF)获取 Unsloth 的 GGUF。LM studio(https://lmstudio.ai/):敬请期待!Ollama(https://ollama.com//):见此处(https://ollama.com/library/mistral-medium-3.5)。SGLang(https://github.com/sgl-project/sglang):见此处(https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#sglang)。transformers(https://github.com/huggingface/transformers):见此处(https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#transformers)。
为了获得最佳性能,如果本地服务效果不佳,我们建议使用 Mistral AI API。
确保依赖 Transformers 配置的框架(包括 GGUF 文件)已更新至本提交(https://huggingface.co/mistralai/Mistral-Medium-3.5-128B/commit/c4be198050fb5789774a55b92ed697becfbf20ae)中的修复。否则,你会遇到性能下降,尤其是在长上下文会话中。
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#fine-tuning 微调
通过以下方式微调模型:
Axolotl(https://github.com/axolotl-ai-cloud/axolotl):见此处(https://docs.axolotl.ai/docs/models/mistral-medium-3_5.html)。Unsloth(https://unsloth.ai/):见此处(https://unsloth.ai/docs/models/mistral-3.5)。
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#vllm-recommended vLLM(推荐)
我们建议将 Mistral Medium 3.5 与 vLLM 库(https://github.com/vllm-project/vllm)配合使用,以实现生产级推理。
要使用 vLLM 加速本地推理,请查看我们发布的 EAGLE 模型(https://huggingface.co/mistralai/Mistral-Medium-3.5-128B-EAGLE)
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#installation 安装
确保安装 vllm nightly:
uv pip install -U vllm \ --torch-backend=auto \ --extra-index-url https://wheels.vllm.ai/nightly
这样做会自动安装 mistral_common >= 1.11.1(https://github.com/mistralai/mistral-common/releases/tag/v1.11.0)和 transformers >= 5.4.0。
检查版本:
python -c "import mistral_common; print(mistral_common.__version__)" python -c "import transformers; print(transformers.__version__)"
你也可以使用现成的 docker 镜像(https://github.com/vllm-project/vllm/blob/main/docker/Dockerfile)或从 docker hub(https://hub.docker.com/layers/vllm/vllm-openai/nightly)获取。
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#serve-the-model 服务模型
我们建议采用客户端/服务器架构:
vllm serve mistralai/Mistral-Medium-3.5-128B --tensor-parallel-size 8 \ --tool-call-parser mistral --enable-auto-tool-choice --reasoning-parser mistral --max_num_batched_tokens 16384 --max_num_seqs 128 \ --gpu_memory_utilization 0.8
https://huggingface.co/mistralai/Mistral-Medium-3.5-128B#ping-the-server 测试服务器
指令遵循
Mistral Medium 3.5 能精确遵循你的指令。
``
from datetime import datetime, timedelta
from huggingface_hub import hf_hub_download
from openai import OpenAI
修改 OpenAI 的 API 密钥和 API 基地址以使用 vLLM 的 API 服务器。
openai_api_key = “EMPTY”
openai_api_base = “http://localhost:8000/v1”
REASONING_EFFORT = “none” # 使用 ‘high’ 切换推理。
match REASONING_EFFORT:
case “none”:
TEMP = 0.1
TOP_P = None
case “high”:
TEMP = 0.7
TOP_P = 0.95
case _:
raise ValueError(“Only REASONING_EFFORT in [‘none’, ‘high’] are supported.”)
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
models = client.models.list()
model = models.data[0].id
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()
today = datetime.today().strftime(“%Y-%m-%d”)
yesterday = (datetime.today() - timedelta(days=1)).strftime(“%Y-%m-%d”)
model_name = repo_id.split(“/”)[-1]
return system_prompt.format(name=model_name, today=today, yesterday=yesterday)
SYSTEM_PROMPT = load_system_prompt(model, “SYSTEM_PROMPT.txt”)
messages = [
{“role”: “system”, “content”: SYSTEM_PROMPT},
{
“role”: “user”,
“content”: “Write me a sentence where every word starts with the next letter in the alphabet - start with ‘a’ and end with ‘z’.”,
},
]
response = client.chat.completions.create(
model=model,
messages=messages,
reasoning_effort=REASONING_EFFORT,
temperature=TEMP,
top_p=TOP_P,
)
print(“==============================================================”)
print(f“Request with {REASONING_EFFORT=}, {TEMP=} and {TOP_P=}.“)
print(”==============================================================“)
print(“REASONING”)
print(“~~~~~~~~~”)
print(response.choices[0].message.reasoning)
print(“==============================================================”)
print(“CONTENT”)
print(“~~~~~~~”)
print(response.choices[0].message.content)
``
工具调用
让我们借助简单的 Python 计算器工具来解一些方程。
``
import json
from datetime import datetime, timedelta
from openai import OpenAI
from huggingface_hub import hf_hub_download
修改 OpenAI 的 API 密钥和 API 基地址以使用 vLLM 的 API 服务器。
openai_api_key = “EMPTY”
openai_api_base = “http://localhost:8000/v1”
REASONING_EFFORT = “none” # 使用 ‘high’ 切换推理。
match REASONING_EFFORT:
case “none”:
TEMP = 0.1
TOP_P = None
case “high”:
TEMP = 0.7
TOP_P = 0.95
case _:
raise ValueError(“Only REASONING_EFFORT in [‘none’, ‘high’] are supported.”)
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
models = client.models.list()
model = models.data[0].id
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()
today = datetime.today().strftime(“%Y-%m-%d”)
yesterday = (datetime.today() - timedelta(days=1)).strftime(“%Y-%m-%d”)
model_name = repo_id.split(“/”)[-1]
return system_prompt.format(name=model_name, today=today, yesterday=yesterday)
SYSTEM_PROMPT = load_system_prompt(model, “SYSTEM_PROMPT.txt”)
image_url = “https://math-coaching.com/img/fiche/46/expressions-mathematiques.jpg”
def my_calculator(expression: str) -> str:
return str(eval(expression))
tools = [
{
“type”: “function”,
“function”: {
“name”: “my_calculator”,
“description”: “A calculator that can evaluate a mathematical expression.”,
“parameters”: {
“type”: “object”,
“properties”: {
“expression”: {
“type”: “string”,
“description”: “The mathematical expression to evaluate.”,
},
},
“required”: [“expression”],
},
},
},
{
“type”: “function”,
“function”: {
“name”: “rewrite”,
“description”: “Rewrite a given text for improved clarity”,
“parameters”: {
“type”: “object”,
“properties”: {
“text”: {
“type”: “string”,
“description”: “The input text to rewrite”,
}
},
},
},
},
]
messages = [
{“role”: “system”, “content”: SYSTEM_PROMPT},
{
“role”: “user”,
“content”: [
{
“type”: “text”,
“text”: “Thanks to your calculator, compute the results for the equations that involve numbers displayed in the image.”,
},
{
“type”: “image_url”,
“image_url”: {
“url”: image_url,
},
},
],
},
]
response = client.chat.completions.create(
model=model,
messages=messages,
tools=tools,
tool_choice=“auto”,
reasoning_effort=REASONING_EFFORT,
temperature=TEMP,
top_p=TOP_P,
)
tool_calls = response.choices[0].message.tool_calls
results = []
for tool_call in tool_calls:
function_name = tool_call.function.name
function_args = tool_call.function.arguments
if function_name == “my_calculator”:
result = my_calculator(**json.loads(function_args))
results.append(result)
messages.append({“role”: “assistant”, “tool_calls”: tool_calls})
for tool_call, result in zip(tool_calls, results):
messages.append(
{
“role”: “tool”,
“tool_call_id”: tool_call.id,
“name”: tool_call.function.name,
“content”: result,
}
)
response = client.chat.completions.create(
model=model,
messages=messages,
reasoning_effort=REASONING_EFFORT,
temperature=TEMP,
top_p=TOP_P,
)
print(“==============================================================”)
print(f“Request with {REASONING_EFFORT=}, {TEMP=} and {TOP_P=}.“)
print(”==============================================================“)
print(“REASONING”)
print(“~~~~~~~~~”)
print(response.choices[0].message.reasoning)
print(“================
相似文章
mistralai/Mistral-Medium-3.5-128B
Mistral AI 发布了 Mistral Medium 3.5,这是一款拥有 1280 亿参数的密集多模态模型,具备 256K 上下文窗口、可配置推理能力,并在指令遵循、推理和编程任务方面实现了性能提升。
Mistral Large 4
Mistral AI 发布了 Mistral Large 4,这是一款最先进的开放权重、通用多模态模型,采用精细粒度的 MoE 架构,拥有 49B 激活参数、1.05T 总参数、1.6B 视觉编码器以及 1M token 的上下文窗口。
Mistral 新的 1T 参数模型意在超越闭源与开源对手
Mistral AI 已发布 Mistral Large 4(ML4),绰号 "Le Chonk",这是一款拥有 1 万亿参数的多模态模型,仅使用 4,000 块 NVIDIA GPU 训练而成,旨在与美国闭源模型及中国开源权重对手展开竞争,计划在安全测试完成后的三周内开放权重。
Mistral Large 4 正式发布
Mistral AI 发布了其最大模型 Mistral Large 4(代号 le Chonk):一个 1 万亿参数、490 亿激活参数的原生多模态开源权重模型,公开预览 API 已上线,完整权重将于月底开源,强调欧洲自主基础设施与 AI 主权。
Mistral Large 4
Mistral 发布 Mistral Large 4('Le Chonk'),一款原生多模态的 1T 参数模型,激活参数为 49B,声称在聚合基准测试中实现了最佳开源权重模型性能,并在网络安全防御、制造和金融等工作负载上取得最先进水平的结果。该模型完全在欧洲开发并可部署,现已通过 API 提供,开源权重预计于十月底发布。