Tmax-9B-MLX-6bit工具调用实战:让本地大模型按qwen3_xml格式自动调用函数

Tmax-9B-MLX-6bit工具调用实战:让本地大模型按qwen3_xml格式自动调用函数

【免费下载链接】Tmax-9B-MLX-6bit 【免费下载链接】Tmax-9B-MLX-6bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Tmax-9B-MLX-6bit

想让本地大模型像云端 API 一样自动调用函数(工具调用 / Function Calling),又不想把数据送出去?Tmax-9B-MLX-6bit 是一个专为 Apple Silicon 优化的开源 9B 本地大模型,它原生支持 qwen3_xml 格式的协议,模型会输出标准 <tool_call> 标签来自动调用函数。本文用一次完整的工具调用实战,带你 10 分钟跑通「本地大模型 + 函数调用」全流程。

Tmax-9B-MLX-6bit是什么:一款为工具调用而生的本地大模型

Tmax-9B-MLX-6bit 是基于 allenai/tmax-9b 的 MLX 量化版本,由社区用 mlx-lm 转换而来,采用 6bit 仿射量化(group_size 64),把约 89.5 亿参数压缩到约 6.8GB,一张消费级 Mac 即可本地推理。它的核心亮点有三个:

特性说明
🧠 架构Qwen3.5 风格,32 层混合注意力(24 层线性注意力 + 8 层全注意力)
📏 上下文最高支持 262144 token(256K)
🧰 工具协议qwen3_xml 兼容(<tool_call> 包裹的 XML 调用格式)
⚖️ 许可证Apache-2.0,可商用

仓库核心文件就几个:config.json(模型配置)、chat_template.jinja(对话模板,工具调用核心逻辑就在这里)、tokenizer_config.json(其中 tool_parser_type: "qwen3_coder" 标明了解析器类型),权重则拆分为 model-00001-of-00002.safetensorsmodel-00002-of-00002.safetensors 两个分片。

为什么说 qwen3_xml 格式是函数调用的关键

很多本地模型「能聊天但不能干活」,根因在于缺少稳定的结构化输出协议。qwen3_xml 格式把函数调用编码为 XML 标签,模型输出形如:

<tool_call>
<function=get_weather>
<parameter=city>
北京
</parameter>
</function>
</tool_call>

相比裸 JSON,这种格式容错率高、可多函数并行、参数支持多行文本,配合 <tool_response> 回传机制,能实现完整的多轮工具调用闭环——这正是构建本地 Agent、自动化脚本、智能助手的基石。

本地部署前的准备工作(一键安装步骤)

Tmax-9B-MLX-6bit 需要 Apple Silicon Mac(M 系列芯片)+ Python 3.9+,安装只需两步:

pip install mlx-lm
git clone https://gitcode.com/hf_mirrors/mlx-community/Tmax-9B-MLX-6bit

先做一次冒烟测试,确认模型能正常加载推理:

from mlx_lm import load, generate

model, tokenizer = load("mlx-community/Tmax-9B-MLX-6bit")
print(generate(model, tokenizer, prompt="Hello", max_tokens=32))

💡 加载路径也可以直接指向本地克隆目录,方便离线使用。

工具调用实战:四步让模型自动调用函数

下面以「查询城市天气」为例,演示完整的工具调用闭环。

第一步:定义 JSON Schema 工具清单

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "查询指定城市的天气",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "城市名"}
            },
            "required": ["city"]
        }
    }
}]

第二步:用 chat_template.jinja 渲染带工具的提示词

调用 tokenizer.apply_chat_template 并传入 tools 参数,模板会自动在 system 消息中生成 # Tools<tools> 工具清单,并在末尾追加生成提示符:

messages = [{"role": "user", "content": "北京今天适合出门吗?"}]

prompt = tokenizer.apply_chat_template(
    messages, tools=tools, add_generation_prompt=True, tokenize=False
)

第三步:解析模型的 <tool_call> 输出并执行

output = generate(model, tokenizer, prompt=prompt, max_tokens=1024)
print(output)

模型会在思考后输出标准工具调用,用正则或 XML 解析器提取 <function><parameter> 即可拿到函数名和参数,接着在本地执行真实函数。

第四步:把执行结果以 <tool_response> 回传

把工具结果按模板约定的 <tool_response> 格式作为 tool 角色消息追加,再次生成,模型就能基于真实数据给出最终回答:

messages = [
    {"role": "user", "content": "北京今天适合出门吗?"},
    {"role": "assistant", "content": output},
    {"role": "tool",
     "content": "<tool_response>\n{\"weather\": \"晴\", \"temp\": 26}\n</tool_response>"},
]

answer = generate(model, tokenizer,
                  prompt=tokenizer.apply_chat_template(messages, tools=tools,
                                                        add_generation_prompt=True,
                                                        tokenize=False),
                  max_tokens=512)
print(answer)  # 基于天气结果给出建议

多轮工具调用与思考模式

chat_template.jinja 内置了 multi_step_tool 检测:只要最后一条 user 消息是 <tool_response>,模板就允许继续追加工具调用,天然支持「查完天气再查交通」这类链式任务。同时模型支持 <think> 思考块,若不需要推理过程,渲染时传入 enable_thinking=false 即可让模板输出空的 think 块,加快响应速度。

性能实测:一次工具调用仅需约 814ms

官方在 M3 Ultra Studio(60 核 GPU、256GB 统一内存)上测得的数据非常亮眼:

指标数值
解码速度79.8 tok/s
首 Token 延迟 (TTFT)140 ms
Prefill 1k / 4k / 16k1032 / 1097 / 1064 tok/s
工具调用端到端耗时814 ms(成功)

意味着在高端 Mac 上,从用户提问到模型输出工具调用,不到 1 秒即可完成,完全具备实时交互体验。

常见问题与避坑指南

  • ⚠️ 这是纯文本模型:虽然上游带视觉元数据,但本仓库已剥离 vision 权重,不支持图片输入。
  • ⚠️ 版本要对齐:转换基于 mlx-lm 0.31.3,建议安装相同或更新版本。
  • ⚠️ 必须使用自带模板:工具调用格式依赖仓库附带的 chat_template.jinja,不要用其他模型的模板替代。
  • ⚠️ 结束符注意:对话以 <|im_end|> 作为 EOS,解析输出时记得按模板规则截断。

总结

Tmax-9B-MLX-6bit 把「本地大模型自动调用函数」这件事的门槛降到了极低:开箱即用的 qwen3_xml 格式、随仓库附带的工具模板、毫秒级的工具调用延迟,配合 Apache-2.0 协议,非常适合用来构建隐私优先的本地智能体、个人助理或自动化工作流。现在就 clone 下来,让你的本地大模型真正「动手干活」吧!🚀

【免费下载链接】Tmax-9B-MLX-6bit 【免费下载链接】Tmax-9B-MLX-6bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Tmax-9B-MLX-6bit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值