T客邦的新聞 「9.11與9.9哪一個數字比較大,為什麼這麼簡單的問題連ChatGPT、Claude都答錯?」引起不少討論。除了「連比數字這麼簡單的問題都會答錯」的看熱鬧心態之餘,實務上如何修正這個問題?本文探討了三種解決方法:(1) 使用 Python 計算結果、(2) 引導模型思考 (思路鍊策略) 、(3) 提供明確的解題策略。
極簡主義的超現實畫作,靈感來自薩爾瓦多·達利的《記憶的永恆》 |
問題描述
原本題目「9.11 與 9.9 哪一個數字比較大?」改成「7.11 與 7.9 哪一個數字比較大?」
試驗結果:
- 答錯:ChatGPT 3.5、ChatGPT 4o、Claude 3.5 Sonnet、MS Copilot、Google Gemini。(點選連結可以查看交談過程)
T客邦的新聞中提到「9.11 與 9.9 哪一個數字比較大」 ChatGPT 3.5 與 Google Gemini 是成功的。但是稍微換下題目,就會犯錯。這其實非常危險,原本以為是可以信任、幫忙算數的模型,但其實可能只是瞎掰的。
ChatGPT 3.5 比較 7.11 與 7.9 得到錯誤結果 |
Claude 3.5 Sonnet 比較 7.11 與 7.9 得到錯誤結果 |
解決方式
解法1:要求使用 Python 計算結果
原本的提示文字
7.11與7.9哪一個數字比較大
修改後的提示
7.11與7.9哪一個數字比較大
使用 Python 計算結果
試驗結果:
- ChatGPT 3.5、ChatGPT 4o、Claude 3.5 Sonnet、MS Copilot、Google Gemini 都答對。
ChatGPT 3.5 使用 Python 比較 7.11 與 7.9 得到正確結果 |
Claude 3.5 Sonnet 使用 Python 比較 7.11 與 7.9 得到正確結果 |
輸出結果都有提供 Python 程式碼,事後真人要手動驗證結果也比較容易。
解法2:要求模型「花時間」思考
策略:在匆忙得出結論之前,指導模型制定自己的解決方案。有時,當我們明確要求模型在得出結論之前從基本原理進行推理時,我們會得到更好的結果。例如,假設我們希望模型評估學生對數學問題的解決方案。最直接的方法是簡單地詢問模型學生的解決方案是否正確。
原本的提示文字
7.11與7.9哪一個數字比較大
修改後的提示
7.11與7.9哪一個數字比較大
請不要直接給我結果,先思考包含小數點的兩個數字要如何比大小的原則後,再比較
- 答錯:ChatGPT 3.5
- 答對:ChatGPT 4o、Claude 3.5 Sonnet、MS Copilot、Google Gemini
ChatGPT 3.5 使用 CoT 比較 7.11 與 7.9 ,但還是得到錯誤結果 |
Claude 3.5 Sonnet 使用 CoT 比較 7.11 與 7.9 得到正確結果 |
解法3:直接提供模型解題策略
原本的提示文字
7.11與7.9哪一個數字比較大
修改後的提示
7.11與7.9哪一個數字比較大
根據以下規則,比較兩個數字大小
```
變量 n 和 m 數字比大小的規則:
1. 整數部分比較:
- 首先比較整數部分 n 和 m。如果 n ≠ m,較大的整數部分代表較大的數。
- 如果 n = m,則需要進一步比較小數部分。
2. 小數部分比較:
- 從左到右逐位比較小數部分的數字。
- 在第一個不同的位置,數字較大的就是較大的數。
3. 對齊小數點:
- 如果小數位數不同,可以在較短的數字後面添加0,使兩個數的小數位數相同。
- 例如: n.a 可以寫成 n.a0 (其中 a 代表任意數字)
4. 特殊情況:
- 如果整數部分和所有小數位數都相同,則這兩個數相等。
5. 實際應用:
- 例如,比較 n.11 和 n.9:
n.11 = n.11 (不需要改變)
n.9 = n.90 (添加0使小數位數相同)
- 比較 11 和 90,90更大,所以 n.90 > n.11
6. 記住:
- 在小數中,n.1 比 n.09 大,因為在小數中,越靠左的位置權重越大。
7. 補充說明:
- 如果數字包含負號 (-),則先比較數字的正負。負數總是比正數小。如果兩個數都是負數,則按照上述規則比較其絕對值,結果取反。
- 例如,-1.1 和 -1.09,先比較 1.1 和 1.09,1.1 > 1.09,所以 -1.1 < -1.09。
```
試驗結果:
- ChatGPT 3.5、ChatGPT 4o、Claude 3.5 Sonnet、MS Copilot、Google Gemini 都答對。
ChatGPT 3.5 直接給解題策略,比較 7.11 與 7.9 得到正確結果 |
Claude 3.5 Sonnet 直接給解題策略,比較 7.11 與 7.9 得到正確結果 |
小結
- 使用 Python 計算結果:使用 Python 可以精確地處理數字比較。但是不確定模型是單純提供 Python 程式碼,還是在背景有執行過程式碼。但是因為有提供程式碼,也比較方便驗證。
- 引導模型思考 (思路鍊策略):要求模型在得出結論前先思考比較數字的原則,雖然有一定效果,但有些模型並不完全可靠。但是列出不同思考階段得到的答案,也比較容易挑出錯誤。
- 提供明確的解題策略:直接列出數字比較的規則,這樣模型能夠根據規則正確比較數字大小。但是對於需要提供解題策略的一方的負擔就比較大。
留言
張貼留言