Qwen3 源码深度解析之聊天模版

原文:https://huggingface.co/blog/qwen-3-chat-template-deep-dive
什么是聊天模版?
聊天模版是把人类可读的聊天,转换成大模型可读的输入的一个模版。
举个例子:
下面是一个人类可读的json格式的聊天记录

[
    { role: "user", content: "Hi there!" },
    { role: "assistant", content: "Hi there, how can I help you today?" },
    { role: "user", content: "I'm looking for a new pair of shoes." }
 ]

经过聊天模版转换后,得到大模型的实际输入:

 <|im_start|>user
Hi there!<|im_end|>
<|im_start|>assistant
Hi there, how can I help you today?<|im_end|>
<|im_start|>user
I'm looking for a new pair of shoes.<|im_end|>
<|im_start|>assistant
<think>

</think>

你可以在Huggingface的网页上很方便的查看聊天模版,比如Qwen3-235B的HF网页是https://huggingface.co/Qwen/Qwen3-235B-A22B
在这里插入图片描述
下面我们就逐行分析Qwen3的聊天模版,看看有什么新东西:

  1. 思考过程不是强制的
  2. 上下文管理是动态的
  3. tool call 对json格式更友好
  4. 不需要一个默认的系统提示词

1. 思考过程不是强制的

您可以通过简单的预填充使其成为可选的…

Qwen-3 的独特之处在于它能够通过enable_thinking标志位切换推理。当设置为 false 时,模板会插入一个空对,告诉模型跳过逐步思考。之前的深度思考模型会将该标签嵌入到每一轮对话,无论你是否愿意,都会强制执行思维链。

{%- if enable_thinking is defined and enable_thinking is false %}
   {{- '<think>\n\n</think>\n\n' }}
{%- endif %}

例如 QwQ 强制在每次对话中进行推理。

{%- if add_generation_prompt %}
   {{- '<|im_start|>assistant\n<think>\n' }}
{%- endif %}

如果这enable_thinking是真的,模型就能够决定是否思考。

您可以使用以下代码测试模板:

2. 上下文管理是动态的

Qwen-3 采用滚动检查点系统,智能地保留或修剪推理块以维护相关的上下文。旧模型会过早地丢弃推理块以节省 token。

Qwen-3 引入了“滚动检查点”机制,通过反向遍历消息列表来查找非工具调用的最新用户回合。对于该索引之后的任何助手回复,它会保留完整的区块;更早的所有内容都会被删除。

为什么这很重要:

在多步骤工具调用期间保持活动计划可见。
支持嵌套工具工作流程而不会丢失上下文。
通过修剪模型不再需要的想法来保存标记。
防止“陈旧”的推理渗透到新任务中。

3. tool call 对json格式更友好

以前,每个tool_call.arguments字段都会通过管道传输 | tojson,即使它已经是 JSON 编码的字符串——这有双重转义的风险。Qwen-3 首先检查类型,并且仅在必要时进行序列化。

{# Qwen3 #}
{%- if tool_call.arguments is string %}
   {{- tool_call.arguments }}
{%- else %}
   {{- tool_call.arguments | tojson }}
{%- endif %}

4. 不需要一个默认的系统提示词

与许多型号一样,Qwen-2.5系列具有默认系统提示。

你是阿里云打造的Qwen,你的得力助手。

这很常见,因为它可以帮助模型回答用户的问题,例如“你是谁?”。

但是,Qwen-3 的聊天模版中没有这个默认的系统提示。尽管如此,如果你询问模型,它仍然可以准确地识别它的创建者。

总结

Qwen-3 的聊天模版向我们展示了提供更佳的灵活性、更智能的上下文处理以及更完善的工具交互。这些改进不仅提升了功能,还使Agent工作流更加可靠高效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值