✨如何在 vLLM 中取消 Qwen3 的 Thinking 模式

如何在 vLLM 中取消 Qwen3 的 Thinking 模式

在使用 Qwen3 模型与 vLLM(Very Large Language Model)进行推理服务时,你可能会发现模型默认会输出类似“我正在思考……”的提示内容。这种行为被称为 Thinking 模式。如果你希望 跳过这些提示内容,直接返回模型结果,本文将介绍 两种实现方式


什么是 Thinking 模式?

Thinking 模式是 Qwen3 在推理时默认输出的一种提示语,通常表现为:

Okay, let me think...

在某些场景下,你可能希望 跳过这些提示,直接获取模型的输出结果。为此,可以通过以下两种方式实现。


方法一:通过代码禁用 Thinking 模式

在调用 tokenizer.apply_chat_template 时,可以通过设置参数 enable_thinking=False 来禁用 Thinking 模式。

示例代码

prompt = "Who are you."
messages = [{"role": "user", "content": prompt}]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
    enable_thinking=False  # 关键参数,禁用 Thinking 模式
)

输出示例

I am a large language model developed by Tongyi Lab...

可以看到,输出中 没有 Thinking 提示内容,可以直接用于推理服务。


方法二:在用户输入中添加 /no_think 标记

vLLM 提供了另一种更简单的方式:在用户输入的末尾添加 /no_think 标记。

示例输入

user
Who are you. /no_think

输出示例

I am a large language model developed by Tongyi Lab...

虽然模型仍会输出一些空行或特殊 token(如 `

`),但 不会生成任何“思考”提示内容。这种方式实现简单,适合快速实现需求。


方法三:通过 API 参数禁用 Thinking 模式(推荐)

如果你是通过 API 调用 Qwen3(如使用 vLLM 搭建的服务),可以在请求中通过 extra_body 字段设置 enable_thinking=False

示例代码

response = client.chat.completions.create(
    model="chat",
    messages=[{"role": "user", "content": "Why is the sky blue?"}],
    extra_body={"chat_template_kwargs": {"enable_thinking": False}},
)

参数说明

  • extra_body 是一个 扩展参数字段,用于传递模型服务端支持的非标准参数。
  • chat_template_kwargs 是控制 chat_template 行为的参数。
  • enable_thinking: False 表示 不输出“思考”提示

总结对比

方法实现方式优点缺点
方法一设置 enable_thinking=False完全跳过 Thinking 提示需要修改代码
方法二用户输入添加 /no_think实现简单仍输出少量 token
方法三API 参数设置 extra_body推荐使用需要服务端支持

适用场景建议

  • 推荐方法三:如果你是通过 API 调用模型,推荐使用 extra_body 设置 enable_thinking=False,这是最推荐的方式。
  • 推荐方法一:如果你是本地部署模型并控制代码,建议使用 enable_thinking=False
  • 推荐方法二:如果你希望快速实现且不介意少量 token 输出,可以使用 /no_think 标记。

附录:extra_body 常见参数示例

参数示例说明
tool_choice"auto" / ["tool1", "tool2"]控制模型是否可以调用工具
tool_call_parser"hermes" / "default"指定工具调用的解析器
response_format{"type": "json_object"}控制返回格式
stop["\n"]设置生成的停止标记
logprobsTrue / 5获取 token 的 log 概率
chat_template_kwargs{"enable_thinking": False}控制是否输出思考提示

结语

希望本文能帮助你更好地理解如何在 vLLM 中取消 Qwen3 的 Thinking 模式。如果你还有更多关于 Qwen3、vLLM 或大模型部署的问题,欢迎留言交流!

### CentOS 镜像中 README 文件的作用 README 文件通常作为文档的一部分,在操作系统或软件包的分发过程中起到指导和说明的作用。对于 CentOS 的镜像而言,其 README 文件的主要意义在于提供关于该版本的操作系统的关键信息以及安装指南。 #### 1. 提供版本信息 README 文件会明确指出当前镜像是哪个具体版本的 CentOS,例如 `CentOS Linux release 7.9.2009 (Core)`[^1]。这有助于用户确认所下载的是正确的发行版,并了解与其兼容的硬件和软件环境。 #### 2. 描述安装前准备事项 在实际部署之前,用户可能需要完成一些必要的准备工作,比如安装工具 Git 或者其他依赖项。这些内容往往会在 README 中有所提及,帮助新手快速上手。 #### 3. 解决常见问题 针对可能出现的问题,如文件上传验证通过后的反馈机制——返回文件名表示成功[^2];或者如何正确配置服务端口映射等复杂场景下的解决方案也可能被记录下来以便查阅。 #### 4. 列举第三方库源地址 有时为了扩展功能,官方文档还会给出获取额外资源的方法论实例:“`wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz`” 就是用来示范怎样从外部站点拉取所需组件的例子之一[^3]。 #### 5. 展示高级设置教程 除了基本操作外,更深入的技术细节也会包含其中,例如为了让 NVM 成为全局变量而修改特定路径下的脚本文件 `/etc/profile.d/nvm.sh` [^4] ,或者是利用 FTP 协议传输大容量数据时推荐采用 Binary Mode 来保持文件完整性[^5]。 综上所述,README 不仅是一个简单的介绍性文本,更是连接开发者与最终用户的桥梁,它承载着丰富的背景资料和技术支持,使得整个安装过程更加顺畅高效。 ```bash # 示例命令展示如何查看本地是否存在类似的 readme 文档 ls /path/to/your/downloaded/image/*.txt | grep -i "readme" cat /path/to/found/readme.txt ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值