1
DeepSeek
Qwen3如何关闭推理模式
2025-05-20 15:57:28
282

加速卡: K100-AI
dtk: 25.04
驱动版本:rock rock-6.3.8-1.9.2-1.x86_64
容器名称: vllm0.8.4-ubuntu22.04-dtk25.04-rc7-das1.5-py3.10-20250429-dev-qwen3-only
vllm启动参数: # 启动
python3 -m vllm.entrypoints.openai.api_server
--host 0.0.0.0
--port 9000
--served-model-name Qwen3-32B
--model /models/Qwen/Qwen3-32B
--tensor-parallel-size 4
--max_model_len 32768
--enforce-eager
问题:
vllm server参数并没有--enable_reasoning, 但是总是有推理过程,如何关掉推理过程?, 只有promt中加 /no_think吗, 如何实现模型启动默认是非推理模式呢.

 

全部评论(6)
只看楼主
网
网友P2hf1T
3楼
你好,这个镜像那里下载的
2025/6/5
网
网友iPzjBx
回复 @网友P2hf1T
docker pull就行
2025/6/6
狂
狂风暴雨
2楼

#要完全禁用思考,您可以在启动模型时使用自定义聊天模板:

--chat-template ./qwen3_nonthinking.jinja
2025/5/22
网
网友V84ctl
回复 @狂风暴雨

qwen3_nonthinking.jinja的具体内容可以分享吗

2025/5/27
狂
狂风暴雨
回复 @狂风暴雨

{%- if tools %}

{{- '<|im_start|>system\n' }}

{%- if messages[0].role == 'system' %}

{{- messages[0].content + '\n\n' }}

{%- endif %}

{{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}

{%- for tool in tools %}

{{- "\n" }}

{{- tool | tojson }}

{%- endfor %}

{{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}

{%- else %}

{%- if messages[0].role == 'system' %}

{{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}

{%- endif %}

{%- endif %}

{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}

{%- for message in messages[::-1] %}

{%- set index = (messages|length - 1) - loop.index0 %}

{%- if ns.multi_step_tool and message.role == "user" and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}

{%- set ns.multi_step_tool = false %}

{%- set ns.last_query_index = index %}

{%- endif %}

{%- endfor %}

{%- for message in messages %}

{%- if (message.role == "user") or (message.role == "system" and not loop.first) %}

{{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }}

{%- elif message.role == "assistant" %}

{%- set content = message.content %}

{%- set reasoning_content = '' %}

{%- if message.reasoning_content is defined and message.reasoning_content is not none %}

{%- set reasoning_content = message.reasoning_content %}

{%- else %}

{%- if '</think>' in message.content %}

{%- set content = message.content.split('</think>')[-1].lstrip('\n') %}

{%- set reasoning_content = message.content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}

{%- endif %}

{%- endif %}

{%- if loop.index0 > ns.last_query_index %}

{%- if loop.last or (not loop.last and reasoning_content) %}

{{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}

{%- else %}

{{- '<|im_start|>' + message.role + '\n' + content }}

{%- endif %}

{%- else %}

{{- '<|im_start|>' + message.role + '\n' + content }}

{%- endif %}

{%- if message.tool_calls %}

{%- for tool_call in message.tool_calls %}

{%- if (loop.first and content) or (not loop.first) %}

{{- '\n' }}

{%- endif %}

{%- if tool_call.function %}

{%- set tool_call = tool_call.function %}

{%- endif %}

{{- '<tool_call>\n{"name": "' }}

{{- tool_call.name }}

{{- '", "arguments": ' }}

{%- if tool_call.arguments is string %}

{{- tool_call.arguments }}

{%- else %}

{{- tool_call.arguments | tojson }}

{%- endif %}

{{- '}\n</tool_call>' }}

{%- endfor %}

{%- endif %}

{{- '<|im_end|>\n' }}

{%- elif message.role == "tool" %}

{%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}

{{- '<|im_start|>user' }}

{%- endif %}

{{- '\n<tool_response>\n' }}

{{- message.content }}

{{- '\n</tool_response>' }}

{%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}

{{- '<|im_end|>\n' }}

{%- endif %}

{%- endif %}

{%- endfor %}

{%- if add_generation_prompt %}

{{- '<|im_start|>assistant\n<think>\n\n</think>\n\n' }}

{%- endif %}
2025/5/29
Y
yangzhong
1楼

可以通过环境变量控制流式输出,

创建一个test.py脚本,内容如下

import os

import subprocess

# 设置环境变量禁用流式输出

os.environ["VLLM_DISABLE_STREAMING"] = "1"

# 启动vLLM服务器

subprocess.run([

"python3",

"-m",

"vllm.entrypoints.openai.api_server",

"--served-model-name", "Qwen3-32B",

"--model", "/models/Qwen/Qwen3-32B",

"--host", "0.0.0.0",

"--port", "8000",

"--tensor-parallel-size", "4",

"--max_model_len", "32768",

"--enforce-eager",

])

然后运行python3 test.py
2025/5/20
没有更多内容了
--
楼主
Level.2
0 帖子
楼主热帖
暂无数据