如何玩转Edge0-35B-A3B对话模板:思考模式、工具调用与多模态提示词完整指南
2026/9/24 16:32:04 网站建设 项目流程

如何玩转Edge0-35B-A3B对话模板:思考模式、工具调用与多模态提示词完整指南

【免费下载链接】Edge0-35B-A3B-preview项目地址: https://ai.gitcode.com/hf_mirrors/Edge0/Edge0-35B-A3B-preview

本文带你完整解析 Edge0-35B-A3B 的对话模板(chat template)。Edge0-35B-A3B 是一款运行在手机级内存(3 GiB 激活显存)的 35B 级稀疏 MoE 对话模型,随仓库附带的 chat_template.jinja 直接决定了它的思考模式、工具调用协议和多模态提示词格式。理解它,你就理解了模型"如何听懂你"。

为什么对话模板值得认真读一遍

很多用户把对话模型当成"黑盒",其实每次发送消息,模板都会把对话历史渲染成模型训练时见过的那套特定格式。Edge0-35B-A3B 基于 Qwen3.6-35B-A3B(见 config.json),模板里藏着三个关键开关:

变量作用默认行为
enable_thinking控制模型是否进入思考模式开启(输出 `
` 推理)
preserve_thinking多轮工具调用时是否保留历史思考过程自动检测后开启
tools传入工具函数定义注入系统提示词

💡 提示:模型目录里的 lora_edge0_35b.safetensors 和 prerouter_edge0_35b.safetensors 会由 edge0 框架自动加载,无需手动配置。

一键体验:从下载到开始对话

准备工作只需三步:安装 edge0 框架、下载模型目录、运行聊天命令(详见 README.md 的 Quick start 章节)。

# 设置模型路径后直接对话 edge0 chat --name edge0-35b --prompt "Introduce yourself" # 或者起一个 OpenAI 兼容的 HTTP 服务 edge0 serve --name edge0-35b --port 8085

默认情况下模型带着思考模式启动——你会先看到一段"内心独白"( 中的推理),再看到正式回答。

思考模式实操:如何开启与关闭

模板末尾的生成提示词(chat_template.jinja)是整个思考模式的开关所在:

  • 开启思考(默认):以 结尾,模型开始先推理再作答,适合数学、代码、长文分析等需要"想清楚再答"的场景。
  • 关闭思考:传入enable_thinking=False,模板会渲染出 (空思考块),模型跳过推理直接输出。
# 关闭思考模式(适合简单问答,响应更快) render_result = tokenizer.apply_chat_template( messages, enable_thinking=False, add_generation_prompt=True, )

如何判断回答里的"思考部分"?正式作答前的一切内容都在 标签内,解析时按 切分即可得到 reasoning 与 answer 两部分——模板对历史消息也做了同样处理(chat_template.jinja)。

工具调用全解析:模型如何"打电话"

当你把函数定义通过tools参数传入时,模板会自动注入一段系统提示词,声明"你有以下函数可用",并附上严格的输出格式要求(chat_template.jinja)。模型随后用 XML 风格的标签发起调用:

<tool_call> <function=get_weather> <parameter=city> Beijing </parameter> </function> </tool_call>

关键规则有四条:

  1. 必须整体包裹...内只能放一个 块,且不能有任何多余后缀;
  2. 必填参数不能省略,多行值直接换行书写;
  3. 可以解释、不能追问:调用前可用自然语言说明理由,调用后禁止附加内容;
  4. 无可用工具时,模型会正常作答,而不是编造调用。

工具返回结果的拼回方式

工具执行完,结果以role="tool"消息拼回对话。模板会把连续的工具结果合并包裹进一个 块(chat_template.jinja),让模型把它们视为同一轮反馈。

多轮工具调用的小技巧:preserve_thinking

模板会自动检测"最后一条用户消息是不是工具结果"(chat_template.jinja)。如果对话正处在连续工具调用中途,模型历史里的思考过程会被完整保留,避免多步推理"断片"。你无需手动干预,只需保证把上一步的 思考原文存回 assistant 消息里即可。

⚠️ 注意:当前 Preview 版本的 Agent 能力还在增强中——单步工具调用可用,多步长程规划暂不推荐,正式版本会显著加强(详见 README.md 的 Limitations)。

多模态提示词:图片与视频怎么写进对话

Edge0-35B-A3B 的视觉编码与语言模型一体化(image_token_id为 248056、video_token_id为 248057,见 config.json),模板层面已经备好完整的多模态处理逻辑:

  • 图片消息:content 数组中出现{"type": "image"}时,模板渲染为 (chat_template.jinja);
  • 视频消息:出现{"type": "video"}时渲染为 (chat_template.jinja);
  • 编号引用:当传入add_vision_id=True时,模板会自动为每张图片/视频加上 "Picture 1:"、"Video 1:" 前缀,方便你在后续对话中用编号指代;
  • 系统消息禁区role="system"中不允许包含图片或视频,模板会直接抛出异常(chat_template.jinja)——多模态内容请放在 user 消息里。

一个典型的多模态消息结构长这样:

{ "role": "user", "content": [ {"type": "text", "text": "这张图里是什么?"}, {"type": "image", "image": "/path/to/photo.jpg"} ] }

推荐的生成参数与质量参考

采样参数以 generation_config.json 为基准:

参数说明
temperature1.0配合 top-k/top-p 使用
top_p0.95核采样
top_k20保留前 20 个候选
do_sampletrue开启采样

量化后的模型(4-bit + LoRA 蒸馏)相对 fp16 基座平均只掉 3.9 分:AIME 2026 得 86.6、HumanEval 得 90.9、MMLU-Pro 得 81.0(完整基准见 README.md 的 Quality 表格)。在 Mac mini M4 Pro 上解码约 15 tok/s、长提示词填充 140 tok/s、峰值激活内存 2.9 GiB。

常见问题速查

Q1:对话里出现 标签是什么?这是模型思考模式的原生输出,属于正常现象。前端界面通常将其折叠展示,程序解析时按标签切分即可。

Q2:为什么我的工具调用没有被执行?先检查tools是否传给了模板(而不是只塞进 system 文本);再检查工具函数 schema 是否包含完整的parameters定义,模型会严格按照 JSON Schema 生成参数。

Q3:长对话会不会爆内存?专家权重按需从 SSD 流式加载,不会常驻内存;真正随上下文增长的是 KV 缓存,建议控制单次对话长度以保持 3 GiB 级别的峰值内存。

Q4:能改模板吗?模板文件 chat_template.jinja 是仓库的一部分,你可以基于它派生定制版本(比如修改编号前缀),但请保持 / 等核心标记不变,否则模型的思考与工具协议会失效。

小结

Edge0-35B-A3B 的对话模板把三件事做成了开箱即用:enable_thinking一键切换思考模式、XML 标签协议规范工具调用、/ 标记打通图文视频输入。花十分钟读完 chat_template.jinja,配合 README.md 的快速上手流程,你就能在手机级内存的设备上跑起一个带思考、会调工具、能看图的 35B 级模型了。

【免费下载链接】Edge0-35B-A3B-preview项目地址: https://ai.gitcode.com/hf_mirrors/Edge0/Edge0-35B-A3B-preview

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询