也有怎么問都不思考,而且每次問問題都等很久才有反應的。

image

我們本篇文章就來詳細說說這個問題。OpenAI API相信開發過大模型的小伙伴們都知道OpenAI API,這是由OpenAI最早定義的一套API標準,其中最著名的就是大家常說的AI對話接口。

原文地址:https://platform.openai.com/docs/api-reference/chat

image

鑒于大模型對外提供的核心能力比較簡單,大多數場景下就是一問一答。所以絕大多數廠商都采用了完全相同或兼容OpenAI API的方式來提供服務,這樣大家在切換模型的時候就會變得非常簡單。Deepseek也不例外,在官方的api平臺,可以看到樣例https://api-docs.deepseek.com/zh-cn/guides/reasoning_model

image

思維鏈的輸出與OpenAI不同,Deepseek最大的貢獻在于完整的向用戶展示了模型的思維鏈為了展示這個思維過程,Deepseek在輸出字段中增加了一個字段。

image

這就導致了目前大家用的各類開源、閉源產品都要重新去適配這個新增的思維鏈字段,進一步出現了上述存在的各式各樣顯示問題,我們挨著說。

原生Deepseek的OpenAI API

我們測試原生Deepseek API,用一個簡單的腳本輸入一個你好,可以看到如下結果,模型輸出了思考的過程和給出的結果,這個與官網上的輸出基本上是類似的。

image

image

目前有不少公司比如騰訊、硅基流動、阿里云等等,都是類似的結構,可以在他們的官網找到詳細說明。

開源工具本地部署

在這里大家常用的ollama、VLLM、SGLang、KTransformer等等開源產品部署出來的Deepseek卻是完全另外一個樣子。

未開啟強制思考模式

image

開啟強制思考模式

image

從這里我們看到不僅我們用開源工具部署的Deepseek-r1不僅沒有reasoning_content,也居然會出現兩種不同的情況。未強制開啟思考模式時,思考內容會在中;強制開啟思考模式時,就只剩下了這也就解釋了文章一開頭說到的,為什么接入了不同的API后,有的顯示思維鏈,有的完全不顯示,有的顯示一半。

解決思路

為了解決這個問題,最好的方法當然是統一API,但是各類工具的研發速度可能沒有那么快,有能力的大佬們可以手搓修改。我這里給出幾個我自己使用的修復思路。

思路一:等

無論你是用的OpenWebUI、chatbox、fastgpt、dify還是客戶端工具,還是ollama、vllm、sglang、KTransformer這種引擎關注他們的最新版本,社區會逐步修復問題。

思路二:手搓

鑒于現在Deepseek的影響力,在api中加入reasoning_content字段幾乎已成為標準所以這里手搓的思路,還是可以把各類的奇怪的OpenAI API中content包含的思考過程重新寫入reasoning_content是一個合理方式。

API版

這里可以使用了一個開源產品叫做one-api,用來把所有模型的接口都轉換為統一的接口。https://github.com/songquanpeng/one-api

image

使用方法也很簡單,只需要安裝好docker,然后用官方給出的命令就能跑起來了。

簡單配置一下,就可以把各種不同的廠商的模型接進去了,以騰訊云為例。

image

本地部署版

本地部署ollama、vllm、sglang的推理引擎部署的大模型,暫時無法使用上述這種方式核心原因是目前包括one-api在內也未在標簽中的思維鏈抽取出來放在reasoning_content中。這里我手搓了一個版本,如果你也遇到了相同的問題,可以用下面這個鏡像來替代官方one-api鏡像。

image

配好了之后,你本地部署的Deepseek也就可以正常輸出啦!代碼我就不公布了,因為這段代碼寫的也著實不怎么樣,社區也不會接納這段代碼,大致思路是在正常輸出的過程中把標簽中的內容抓出來硬塞到reasoning_content中。其實這是一種在屎山上拉新屎的解決方案,但是為了最快解決問題,也是一種無奈之舉。技術債務,其實也就這么形成了。

測試和結論

開放測試一些聰明的同學可能會想到,這個由開源軟件導致產生的技術債務,各個提供API的廠家是怎么解決的呢?我們可以準備一個問題來測試一下:請給我解釋一下這個標簽是啥意思?

Deepseek官方的測試

沒有任何問題,展示完美,還得是官方!鑒于官方的API現在已經關閉了,測試不了只能在界面上進行測試。側面說明了Deepseek是自研的推理引擎,完全不存在這個問題。

image

某廠1 API

我們用chatbox來做測試,可以看到Deepseek-R1直接就中斷了思考,說明他們也是去匹配第一個標簽的,但可以清晰的看到,真實的思考過程并沒有結束。說明大廠的小哥哥也有他的無奈呀~

image

界面上就卡死掉了,多次嘗試也是重復的問題。

image

某廠2 API

嘗試了多次,某廠2貌似用了一種另辟蹊徑的方式屏蔽了標簽?但是多輪對話之后依然出現了思維中斷的問題。

image

但是如果在多輪對話場景下,依然可以誘導模型標簽來中斷思考。

image

我們修改提示詞并進行強調,馬上就原形畢露了。

image

某廠3 界面

深度思考同樣中斷。

image

某廠4 界面

輸出幾乎全部錯亂了,一會在思考,一會沒有思考,一會又開始思考。大概率是把所有全給匹配了。

image

某廠5 APP

已完全錯亂,跟上面一樣。

image

技術債務產生的根本原因

這個問題本質上是由Deepseek模型輸出思維鏈時是按照模板進行輸出的,各大開源推理引擎都是直接輸出到回答內容里面的。如果輸入內容有類似的模板標簽時,就會出現錯亂。雖然這不是什么安全問題,但是顯示的烏七八糟的也會讓用戶迷惑,尤其是在涉及到寫代碼/聯網搜索的時候。我們自己的修復雖然原理上差不多,還是稍微改進了那么一丟丟,用文章上面的docker可以解決這個問題。不完美,算是拋磚引玉,希望有大牛能來推動社區解決這個問題。

image

大家都在看的硬核博主技術分享真·生產級滿血版Deepseek-r1 671B部署實例真·生產級滿血版Deepseek-r1 671B部署實例篇2-后續問題、調優以及壓測本地部署的Deepseek為什么不思考?調優方法來了!

原文轉載自:https://mp.weixin.qq.com/s/J28ivSORY8GBAx2Tz1oO1g

上一篇:

Windows 上快速部署.NET Core Web 項目

下一篇:

基于Ollama與AnythingLLM的DeepSeek-R1本地RAG應用實踐
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費