mirror of
https://github.com/deepseek-ai/DeepSeek-R1.git
synced 2026-11-05 00:47:42 +00:00
[GH-ISSUE #512] 如何关闭本地部署r1的思考过程 #411
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
deepseek-ai/DeepSeek-R1#411
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Ima-Beast on GitHub (Feb 27, 2025).
Original GitHub issue: https://github.com/deepseek-ai/DeepSeek-R1/issues/512
针对某些任务,不需要复杂的推理过程,可以通过设置某个变量关闭思考过程吗?
@houyunlong1668 commented on GitHub (Feb 28, 2025):
没有思考过程的v3模型,楼主说的关闭是不想看到吗,这个我也不清楚
@Ima-Beast commented on GitHub (Feb 28, 2025):
是R1模型。现在部署了一个R1模型,但处理任务的时候思考过程占用了大量时间还有token,影响了性能。如果能关闭思考这个过程就不用重新部署其他模型了。
@Lizidong01 commented on GitHub (Feb 28, 2025):
R1要关闭think的话可以在tonkenize之后加上
这样就不会思考了
@Pp-Xix commented on GitHub (Mar 2, 2025):
请问能详细说下如何操作么
@RollingDonkeyX commented on GitHub (Mar 3, 2025):
vllm中有个解决方案,可以参考这篇帖子https://github.com/vllm-project/vllm/issues/12468,我也正在做尝试
@fjw1049 commented on GitHub (Mar 4, 2025):
还是不行,是不是要在最后的assistant上加上\n\n?
@houliangxue commented on GitHub (Mar 6, 2025):
不好意思,写错了,我复制的时候漏了,安图里面这样写

@cloudbeans commented on GitHub (Mar 7, 2025):
vllm启动的时候,可以用 --chat-template设置jinja模版,但是这样也限定了他要么开启思考,要么关闭思考,可以设置jinja模版,让它根据参数动态开关这个think,我是这么考虑的,但是还没与验证
@fjw1049 commented on GitHub (Mar 7, 2025):
确实可以这么做,感谢发自我的 iPhone在 2025年3月7日,11:00,cloudbeans @.> 写道:
vllm启动的时候,可以用 --chat-template设置jinja模版,但是这样也限定了他要么开启思考,要么关闭思考,可以设置jinja模版,让它根据参数动态开关这个think,我是这么考虑的,但是还没与验证—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.>
cloudbeans left a comment (deepseek-ai/DeepSeek-R1#512)
vllm启动的时候,可以用 --chat-template设置jinja模版,但是这样也限定了他要么开启思考,要么关闭思考,可以设置jinja模版,让它根据参数动态开关这个think,我是这么考虑的,但是还没与验证
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>
@Lizidong01 commented on GitHub (Mar 7, 2025):
其实在加载tokenizer之后更改template值也可以加一个判断就可以共存think和非think,我测试
{{'<|Assistant|><think>\\n'}}{% endif %}改成{{'<|Assistant|><think>\\n\\n</think>'}}{% endif %}改完之后就没有太大问题,具体情况没有细测,之所以这么改也是发现不think的时候他是这么输出的。@victory-zz commented on GitHub (Mar 11, 2025):
这段东西是加在哪里的,messages里面吗?
@victory-zz commented on GitHub (Mar 11, 2025):
大佬这个tokenizer指的是哪里的,我是通过response = client.chat.completions.create(
model="deepseek-r1:14b",
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Hello"},
],
stream=False
)与大模型交互的,想要实现可以开启深度思索和禁用深度思索,还能接入联网搜索的功能。
@Lizidong01 commented on GitHub (Mar 11, 2025):
这个需要在模型接口处调整,仅仅使用 api 的话不能用 chat 那个,可以自己把 messages 拼成对话的样式传给模型,不知道描述的清不清楚😵💫
@run-197 commented on GitHub (Mar 12, 2025):
模型文件里有tokenizer_config.json这个文件,改一下"chat_template"这一项的值。不过感觉这不是个很好的解决办法,我用QWQ测试的时候只有第一次可以跳过,后面模型还是会强行再生成think的内容
@Lizidong01 commented on GitHub (Mar 14, 2025):
应该不会吧,但我没有具体测试过,用了几个简单的问题没发现有什么太大的异常,但是我的template最后改成了
<think>\\n\\n</think>\\n\\n。@fjw1049 commented on GitHub (Mar 17, 2025):
需要在chat_template修改\n\n和\n设置不思考和思考,然后修改一下openai的源码,加入chat_template这个参数就可以实现代码控制了。。。但是感觉这个不是最好的办法,至少在代码部分能够实现这个效果。。。不推荐,到时候等待vllm会更新吧
@wangych commented on GitHub (Mar 19, 2025):
@Lizidong01 大神可以贴一下改动的相关代码吗 正要用R1蒸馏qwen的模型,也是希望能在对话时控制用不用think,兼容不同的场景使用
@KeepYourear commented on GitHub (Mar 31, 2025):
ollama运行的模型的话,在.ollama\models\manifests\registry.ollama.ai\library\deepseek-r1目录下的配置文件的
这个后面加"options": {"verbose": false,"repeat_penalty": 1.0,"seed": -1},
然后保存,重启模型
@victory-zz commented on GitHub (Apr 1, 2025):
这种方式,支持前端页面有按钮,可以开启或关闭思考模式的嘛
1292512755
@.***
@mc112611 commented on GitHub (Apr 2, 2025):
因为,多轮对话里还有一个think开关,没有关掉。
解决方案:
第一步:删除
<think>生成逻辑在你的 Jinja2 代码里,找到 生成
<think>的地方(通常在最后),它可能是这样:{% if add_generation_prompt and not ns.is_tool %}{{'<|Assistant|><think>\\n'}}{% endif %}修改为:
{% if add_generation_prompt and not ns.is_tool %}{{'<|Assistant|>'}}{% endif %}第二步:去掉
message['content']里的<think>找到:
{% set content = content.split('</think>')[-1] %}修改为:
{% set content = message['content'].replace('</think>', '').split('<think>')[-1] %}然后确保 最终的输出部分:
{{'<|Assistant|>' + content + '<|end▁of▁sentence|>'}}这样,即使模型 自己生成了 ...,也会在模板层面去掉。
如果找起来很麻烦,可以先把jinja2模板格式化输出一下会更方便寻找哦。
@github-actions[bot] commented on GitHub (May 22, 2025):
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you believe this issue is still relevant, please leave a comment to keep it open. Thank you for your contributions!
@github-actions[bot] commented on GitHub (Jul 14, 2025):
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you believe this issue is still relevant, please leave a comment to keep it open. Thank you for your contributions!
@github-actions[bot] commented on GitHub (Jul 28, 2025):
false