时间:2025-04-30 10:33
人气:
作者:admin
在大语言模型(LLM)的使用过程中,推理速度与输出质量之间的平衡一直是开发者和用户关注的重点。Qwen3 作为阿里巴巴推出的新一代大语言模型,不仅在性能和效果上有了显著提升,还引入了一种动态控制模型行为的机制——/think 和 /no_think 标签,允许用户在多轮对话中灵活切换模型的推理模式。
本文将深入解析 Qwen3 中的 /think 和 /no_think 机制,并通过代码示例展示其在实际应用中的使用方式,帮助开发者更好地理解和应用这一高级功能。
Qwen3 提供了一种软切换机制(soft switch mechanism),允许用户通过在输入中添加 /think 或 /no_think 标签,动态控制模型的推理行为。这种机制特别适用于多轮对话场景,用户可以在不同轮次中切换模型的推理模式,从而在推理速度和输出质量之间取得平衡。
/think:启用深度推理模式,模型会进行更全面的思考,输出质量更高,但响应时间可能较长。/no_think:禁用深度推理,模型快速生成响应,适用于对速度要求较高的场景,但输出可能不够精确。在多轮对话中,模型会遵循最近一次的指令,即如果用户在某一轮中使用了 /no_think,则后续轮次将默认使用该模式,直到用户再次使用 /think 进行切换。
以下是一个使用 Qwen3 的 QwenChatbot 类的示例代码,展示了如何在多轮对话中使用 /think 和 /no_think 标签控制模型行为。
from transformers import AutoModelForCausalLM, AutoTokenizer
class QwenChatbot:
def __init__(self, model_name="Qwen/Qwen3-30B-A3B"):
self.tokenizer = AutoTokenizer.from_pretrained(model_name)
self.model = AutoModelForCausalLM.from_pretrained(model_name)
self.history = []
de