《DEEPSEEK原生應用與智能體開發實踐 王曉華 書籍 圖書》【摘要 書評 試讀】- 京東圖書
思維鏈技術開啟了人工智能通向人類智能的嶄新路徑。它讓模型不再僅僅是機械地執行指令,而是開始具備類似人類的思考方式,能夠理解問題的本質,進行深層次的推理和分析。這一突破,讓人工智能的發展進入了一個全新的階段,也為未來智能系統的進化奠定了堅實的基礎。
前面我們講解了思維鏈,對比了通過Prompt提示完成的思維鏈對問題的拆解。基于這種思維鏈的推理過程,DeepSeek提出了一種新的推理模型——DeepSeek-Reasoner,其作用猶如一把精準的手術刀,在人工智能的復雜領域中發揮著關鍵作用。
首先,DeepSeek-Reasoner充當著“思維解碼器”的角色。在面對復雜問題時,它能夠深入剖析問題的內在結構,將隱藏在問題背后的思維邏輯清晰地呈現出來。就像一位密碼破譯專家,能夠解讀出問題中的關鍵信息,為后續的推理過程提供清晰的指引。例如,在處理一道復雜的數學證明題時,它能夠識別出題目中的已知條件、未知結論以及它們之間的邏輯關系,將證明過程拆解為一系列合理的推理步驟。
其次,DeepSeek-Reasoner是一個“智能推理引擎”。它依據思維鏈的原理,自動生成一系列有序的子問題,并引導模型逐步求解。在這個過程中,它能夠根據模型的推理進展,動態調整推理策略,確保推理過程的高效和準確。就像一位經驗豐富的賽車手,能夠根據賽道情況靈活調整駕駛策略,以最快的速度到達終點。
然后,DeepSeek-Reasoner還具備“知識融合與創新”的能力。它能夠將模型內部存儲的海量知識與當前的推理任務相結合,在解決問題的過程中創造出新的知識和推理模式。例如,在處理跨領域的復雜問題時,它能夠融合不同領域的知識,提出新穎的解決方案,為模型的推理能力注入新的活力。
最后,DeepSeek-Reasoner還是一個“可解釋性增強器”。在傳統的深度學習模型中,推理過程往往是一個黑箱,難以理解和解釋。而DeepSeek-Reasoner通過思維鏈的推理方式,將模型的推理過程以清晰、直觀的方式呈現出來,讓人們能夠理解模型是如何得出最終答案的。這不僅提高了模型的可信度,也為模型的進一步優化和改進提供了有力的支持。
對于普通的文本問答,大模型傾向于直接對結果進行回復。下面我們先舉一個經典的計算字母的例子對大模型進行問答,代碼如下:
from openai import OpenAIclient = OpenAI(api_key="sk-dfd742ec38dc4ede96977974085485b0", base_url="https://api.deepseek.com")prompt = """
strawberry里面有幾個r字母。用中文回答。
"""response = client.chat.completions.create(model="deepseek-chat",messages=[{"role": "user", "content": prompt},],max_tokens=1024,temperature=0.95,stream=False
)print(response.choices[0].message.content)
代碼運行結果如下所示:
C:\Users\xiayu\miniconda3\python.exe C:\Users\xiayu\PycharmProjects\DeepSeek應用開發實踐-源碼\第四章\demo_0.py
### 第一步:理解題目首先,我們需要清楚地理解題目在問什么。題目問的是“strawberry”這個英文單詞中有幾個字母“r”。也就是說,我們需要數一數這個單詞中出現了多少次“r”這個字母。### 第二步:寫出單詞為了更清楚地數出“r”的數量,我們可以先把“strawberry”這個單詞寫出來:s t r a w b e r r y### 第三步:逐個字母檢查現在,我們逐個字母來看,看看哪些是“r”:1. 第一個字母:s — 不是r
2. 第二個字母:t — 不是r
3. 第三個字母:r — 是r,計數1
4. 第四個字母:a — 不是r
5. 第五個字母:w — 不是r
6. 第六個字母:b — 不是r
7. 第七個字母:e — 不是r
8. 第八個字母:r — 是r,計數2
9. 第九個字母:r — 是r,計數3
10. 第十個字母:y — 不是r### 第四步:核對計數根據上面的逐個檢查:- 第三個字母:r — 1
- 第八個字母:r — 2
- 第九個字母:r — 3所以,總共有3個“r”。### 第五步:驗證為了確保我們的答案正確,讓我們再快速看一遍單詞:s t r a w b e r r y標出所有的“r”:- 第三個字母:r
- 第八個字母:r
- 第九個字母:r確實有3個“r”。### 可能的誤區有時候,人們可能會忽略連續相同的字母。例如,在“strawberry”中,“rr”是連續的兩個“r”,可能會被誤認為是一個“r”或者發音上的一個音。但是題目問的是字母的數量,不是發音,所以“rr”是兩個獨立的“r”字母。### 結論經過以上步驟和驗證,“strawberry”這個單詞中共有**3個字母“r”**。### 最終答案“strawberry”里面有**3個字母“r”**。Process finished with exit code 0
可以看到,對于普通的大模型而言,其回復過程往往是一種基于自身對問題理解的籠統考量,而非對問題進行細致入微的分解剖析。這種缺乏系統性分解的處理方式,就如同在迷霧中摸索前行,使得模型難以精準把握問題的核心要點與關鍵細節,進而不可避免地造成了結果的不準確性。
在面對復雜問題時,普通大模型的這種局限性尤為明顯。復雜問題通常包含著多個相互關聯又各自獨立的子問題,它們如同一張錯綜復雜的網,需要有條理地梳理和分析。然而,普通大模型卻難以做到這一點,它可能會將不同子問題的信息混淆在一起,或者在處理過程中遺漏某些重要環節,從而導致最終回復與實際情況相去甚遠。
我們通過提示(Prompt)分解問題,構建一個完整思維鏈對問題解答的示例,代碼如下所示:
from openai import OpenAI# for backward compatibility, you can still use 'https://api.deepseek.com/v1' as 'base_url'.
client = OpenAI(api_key="sk-dfd742ec38dc4ede96977974085485b0", base_url="https://api.deepseek.com")prompt = """
回答下面問題并注意回答的時候嚴格按照以下步驟,
逐步進行:
1.將單詞拆開
2.從左到右一個一個對比字母是不是r,是的話你要記錄它的位置,并記住數量加-3.
第2步數出來多少個r直接輸出,不要有任何分析和判斷 問題:"strawberry"里面有幾個r
"""response = client.chat.completions.create(model="deepseek-chat",messages=[{"role": "user", "content": prompt},],max_tokens=1024,temperature=0.95,stream=False
)print(response.choices[0].message.content)
在這里我們通過提示prompt對問題的求解過程進行拆分,并指示模型在回答時依據步驟進行,回答如下:
C:\Users\xiayu\miniconda3\python.exe C:\Users\xiayu\PycharmProjects\DeepSeek應用開發實踐-源碼\第四章\demo_1.py
1. 將單詞拆開:s, t, r, a, w, b, e, r, r, y
2. 從左到右一個一個對比字母是不是r:
- s: 不是
- t: 不是
- r: 是(位置3,數量1)
- a: 不是
- w: 不是
- b: 不是
- e: 不是
- r: 是(位置8,數量2)
- r: 是(位置9,數量3)
- y: 不是 輸出:3Process finished with exit code 0
可以看到,這里我們將問答步驟進行拆分,并且以清晰、有條理的方式引導模型完成任務。這種基于思維鏈的提示方法,讓模型的回答過程不再是一個黑箱操作,而是變得透明、可解釋。
通過這種方式,模型不再是盲目地給出答案,而是按照我們設定的步驟,一步一步地進行推理和計算。這不僅提高了答案的準確性,還使得模型的推理過程具有可復現性。如果出現問題,我們可以很容易地回溯到具體的步驟,檢查是哪一步出現了偏差。
而且,這種拆分步驟的方法具有很強的通用性。對于不同類型的問題,我們只需要根據問題的特點,設計相應的步驟提示,就可以引導模型進行有效的求解。例如,在處理數學問題時,我們可以將解題過程拆分為分析問題、列出已知條件、確定解題方法、進行計算等步驟;在處理文本分析問題時,我們可以將解題過程拆分為文本預處理、特征提取、模型推理等步驟。
此外,將問答步驟拆分還有助于提升模型的學習能力。模型在按照步驟進行多次任務后,會逐漸理解每個步驟的意義和作用,從而在面對類似問題時,能夠更加自主地運用這些步驟進行求解。這就像是人類在學習新技能時,通過反復練習分解動作,最終能夠熟練掌握整個技能一樣。
總之,通過提示(Prompt)對問題求解過程進行拆分,并指示模型依據步驟進行回答,這是一種非常有效的提升模型性能和可解釋性的方法。它為人工智能的發展提供了一種新的思路,有望推動人工智能在更多領域取得更好的應用效果。