《DEEPSEEK原生應用與智能體開發實踐 王曉華 書籍 圖書》【摘要 書評 試讀】- 京東圖書
在之前講解的示例中(指這個示例:通過Prompt提示構建思維鏈-CSDN博客),無論是進行日常對話還是調用特定工具,我們所依賴的底層技術均是DeepSeek普通對話模型。這一模型以其高效和穩定的性能,為我們的交流提供了堅實的基礎。然而,技術的探索永無止境,DeepSeek團隊在此基礎上更進一步,推出了一種創新的輸出方案—— DeepSeek-Reasoner推理模型,為我們與大模型的對話體驗增添了新的維度。
DeepSeek-Reasoner,作為DeepSeek家族中的新成員,是一款專為復雜推理任務設計的模型。它不僅僅滿足于給出一個直接的答案,而是在生成最終回答之前,會精心構建一段詳盡的思維鏈內容。這段思維鏈,就像是模型在解題過程中的“草稿紙”,記錄了它從問題出發,逐步分析、推理,直至得出結論的全過程。通過這種方式,DeepSeek-Reasoner顯著提升了最終答案的準確性和可信度,讓用戶不僅知其然,更知其所以然。
為了增強透明度和互動性,DeepSeek API特別向用戶開放了DeepSeek-Reasoner的思維鏈內容。這意味著,用戶不僅可以獲得最終的回答,還能深入查看模型是如何一步步得出這個結論的。這一特性對于教育、研究以及需要高度解釋性的應用場景來說,無疑是一大福音。用戶可以根據需要,選擇查看、展示甚至進一步蒸餾這些思維鏈內容,以更好地理解和利用模型的推理過程。具有思維鏈的多輪對話如圖4-3所示。
圖4-3? 具有思維鏈的多輪對話
在具體的應用場景中,當我們使用DeepSeek-Reasoner進行每一輪對話時,模型都會輸出兩部分內容:一部分是思維鏈內容(reasoning_content),它詳細記錄了模型的推理步驟;另一部分是最終回答(content),即模型基于思維鏈得出的結論。值得注意的是,為了保持對話的連貫性和簡潔性,在下一輪對話中,之前輪次輸出的思維鏈內容并不會被直接拼接到上下文中。這樣的設計既保證了每輪對話的獨立性,又避免了信息冗余,使得對話更加高效和流暢。
下面我們演示一下如何使用DeepSeek推理模型訪問思維鏈和最終回答,以及如何在多輪對話中進行上下文拼接的方法,代碼如下所示:
from openai import OpenAI
client = OpenAI(api_key="sk-dfd742ec38dc4ede96977974085485b0", base_url="https://api.deepseek.com")# Round 1
messages = [{"role": "user", "content": "9.11 與 9.8, 哪個數字比較大?"}]
response = client.chat.completions.create(model="deepseek-reasoner",messages=messages
)reasoning_content = response.choices[0].message.reasoning_content
content = response.choices[0].message.content
print("Answer 1:",content)# Round 2
messages.append({'role': 'assistant', 'content': content})
messages.append({'role': 'user', 'content': "一斤的鐵和一斤的棉花哪個重?"})
response = client.chat.completions.create(model="deepseek-reasoner",messages=messages
)
content = response.choices[0].message.content
print("Answer 2:",content)
這個示例首先比較一個經典的數學題,之后又使用一個腦筋急轉彎問題考察推理模型的思考能力,結果如下:
Answer 1: 在數值比較中,9.8 比 9.11 大。具體分析如下:1. **整數部分相同**:兩數的整數部分均為 9,因此需比較小數部分。
2. **小數部分比較**:- 9.8的小數部分為 **0.8**(等價于 0.80)。- 9.11的小數部分為 **0.11**。- 由于 **0.80 > 0.11**,因此 **9.8 > 9.11**。**結論**:9.8 更大。
(若比較版本號,則 9.11 可能代表更高版本,但按數值計算時 9.8 更大。)Answer 2: **答案:兩者重量相同,都是一斤。**
1. **單位明確**: 在標準單位下,1斤(市斤)= 500克。無論是鐵還是棉花,若均為“一斤”,則其質量均為500克,重量相等。2. **常見誤解解析**: 鐵密度大、體積小,棉花密度小、體積大,容易讓人誤以為“棉花更輕”。但**重量與體積無關**,僅取決于質量。因此,**一斤鐵 = 一斤棉花**。3. **擴展思考(若考慮復雜因素)**: - **空氣浮力**:體積大的棉花受空氣浮力影響略多,實際稱重可能極輕微減少,但日常可忽略。 - **單位差異**:若使用非標準“斤”(如臺斤600克),需確認單位,但通常按市斤計算。**結論**:嚴格按照質量單位比較,兩者一樣重。
從上面結果可以看到,相對于原有的輸出,在問題的解答上推理模型使用了更多的推理過程與解答,并且對結果進行更細密的分析,從而獲得對邏輯和推理步驟進行說明的結果。有興趣的讀者可以自行嘗試更多的內容。