當前位置: 妍妍網 > 碼農

誰是最強編程大模型?從六大方向橫向對比o1-preview、o1-mini、ChatGPT4o、Claude3.5 Sonnet

2024-09-13碼農

OpenAI放大招!全新推理模型o1系列來了,解題能力堪比博士生!

就在5分鐘前,OpenAI釋出了全新的 AI 模型系列——OpenAI o1,主打推理能力,號稱能解決比以往模型更難的科學、 編程 數學 問題!


先別急著激動,這次只是預覽版! OpenAI 表示,o1 系列模型還將進行定期更新和改進,後續還會加入更多功能,例如網頁瀏覽、檔和影像上傳等。

網頁瀏覽難道是參考Claude那種?我們拭目以待。

那麽,o1 系列模型到底有多牛呢?

推理能力大幅提升: OpenAI 表示,o1 模型在物理、化學和生物等學科的 challenging 基準測試中,表現與博士生相當

數學和編程能力爆表: 在一項國際數學奧林匹克競賽(IMO)的資格考試中,GPT-4o 的正確率只有 13%,而 o1 模型的正確率高達 83%!在 Codeforces 編程競賽中,o1 模型的成績也達到了前 89%!

o1 系列模型的工作原理:

更像人類一樣思考: o1 系列模型經過訓練,能夠花更多時間思考問題,嘗試不同的策略,並辨識自己的錯誤,就像人類一樣!

o1 系列模型的安全性:

全新安全訓練方法: OpenAI 開發了一種新的安全訓練方法,利用 o1 模型的推理能力,讓它們更好地遵守安全和對齊準則

更強的「越獄」抵抗力: OpenAI 用「越獄」測試來衡量模型的安全性,結果顯示 o1 模型比 GPT-4o 更不容易被「越獄」

o1 系列模型的兩個版本:

o1-preview: 預覽版模型,功能相對較少,但推理能力強大

o1-mini: 更小、更快的推理模型,特別擅長編程,成本也更低

如何使用 OpenAI o1?

ChatGPT Plus 和 Team 使用者: 現在就可以在 ChatGPT 中使用 o1-preview 和 o1-mini 模型

ChatGPT Enterprise 和 Edu 使用者: 下周開始可以使用這兩個模型

API 使用者: 符合條件的開發者現在就可以在 API 中使用這兩個模型,但功能有限,例如不支持函式呼叫、流式傳輸、系統訊息等

ChatGPT Free 使用者: OpenAI 計劃在未來向所有 ChatGPT Free 使用者開放 o1-mini 模型

在這裏,直接用 OpenAI o1

谷歌瀏覽器存取:https://www.nezhasoft.cn

下面,我們分六項(程式碼能力、程式碼最佳化能力、解讀程式碼能力、測試用例及說明能力、轉碼能力、添加註釋能力)橫線對比一下 ChatGPT4o、 Claude3.5 Sonnet、 o1-preview、 o1-mini ,看看孰強孰弱。

都是程式碼AI實測,文章較長,想直接看結論的,可以直接跳到文末~

round 1:程式碼能力

Prompt:請根據上面描述,給出解題思路,透過Java程式碼解答此題,關鍵程式碼添加註釋,並根據範例中的輸入輸出進行程式碼測試,程式碼如果有錯誤,請重新修改程式碼

ChatGPT4o

ChatGPT4o給出了解題思路、Java程式碼、程式碼解釋、測試用例。

Claude3.5 Sonnet

Claude給出了解題思路、Java程式碼、程式碼解釋、測試用例、時間復雜度。

o1-preview

o1-preview給出了解題思路、Java程式碼、程式碼解釋、測試用例、測試說明、註意事項、總結。


o1-mini給 出了解題思路、 Java 碼、程式碼說明、4個測試用例總結

驗證程式碼正確率,我們將四個大模型生成的程式碼Copy到Idea中,透過測試用例測試一下。

測試透過,透過率100%。

程式碼review:

如下圖所示,左側為ChatGPT4o,右側為Claude3.5 Sonnet。

肉眼可見,o1-preview程式碼共86行,o1-mini程式碼共92行,ChatGPT4o程式碼共74行,Claude共54行,相差20行。Claude3.5 Sonnet明顯更加簡潔。

o 1-mini號稱擁有更強的編程能力,仔細一看,發現 o 1-mini新增了很多輸入輸出校驗,增強了程式碼的健壯性。

程式碼能力小結:

ChatGPT4o給出了解題思路、Java程式碼、程式碼解釋、測試用例。

Claude3.5 Sonnet給出了解題思路、Java程式碼、程式碼解釋、測試用例,還給出了演算法的時間復雜度。

o1-preview給出了解題思路、Java程式碼、程式碼解釋、測試用例、測試說明、註意事項、總結。

o1-mini給出了解題思路、Java程式碼、程式碼說明、4個測試用例總結。

透過review程式碼,Claude3.5 Sonnet明顯更加簡潔、o1-mini更加縝密。

程式碼能力,o1-mini >o1-preview > > Claude3.5 Sonnet > ChatGPT4o

round 2:程式碼最佳化

PS:我們將「透過回溯演算法解答猴子吃桃的程式碼」發給它們,讓它們對程式碼進行最佳化。

ChatGPT4o

ChatGPT4o指出了程式碼存在4個問題:

  1. 效率低,遞迴回溯,時間復雜度為 O(N)

  2. 遞迴深度限制,可能會導致 StackOverflowError

  3. 不必要的排序

  4. 全域變量使用,不符合編碼規範

ChatGPT4o給出了最佳化後的程式碼、關鍵點、下一步改進建議。


Claude3.5 Sonnet

Claude指出了程式碼存在4個問題:

  1. 效率低,遞迴回溯,時間復雜度為 O(N)

  2. 不必要的排序

  3. 全域變量使用,不符合編碼規範

  4. 程式碼沒有處理輸入異常的情況

Claude給出了最佳化建議、最佳化後的程式碼、最佳化說明、小總結。

o1-preview o1-preview指出了程式碼存在4個問題:

  1. 效率低下

  2. 缺少輸入校驗

  3. 不必要的排序操作

  4. 全域變量的使用

o1-preview 給出了最佳化建議、最佳化後的程式碼、程式碼說明、 測試範例、 最佳化效果 總結。

o1-mini o1-mini指出了程式碼存在6個問題:
  1. 遞迴深度過大

  2. 效率低下

  3. 不必要的排序

  4. 缺乏輸入驗證

  5. 靜態變量的使用

  6. 錯誤的測試用例預期

o1-mini 給出了最佳化建議、最佳化後的程式碼、程式碼說明、4個 測試範例、 總結。

程式碼最佳化小結:

ChatGPT4o、Claude、 o1-preview 都指出了4項問題,但 o1-mini指出了6個問 題。

給出了 給出了最佳化建議、最佳化後的程式碼、程式碼說明、 測試範例、 最佳化效果 總結。

程式碼最佳化能力,o1-mini > o1-preview > Claude3.5 Sonnet = ChatGPT4o

round 3:解讀程式碼

Prompt:請給出程式碼的解題思路

ChatGPT4o

ChatGPT4o給出了具體的解題思路、最佳化後的程式碼、程式碼解析、建議的下一步改進

Claude3.5 Sonnet

Claude3.5 Sonnet給出了最佳化後程式碼的解題思路:

  1. 問題分析

  2. 輸入處理

  3. 初始驗證

  4. 二分尋找最小速度

  5. 驗證函式

  6. 返回結果

  7. 分析程式碼優勢

Claude3.5並沒有再次輸出程式碼,其實這一點是好評的,因為上面已經輸出過了,完全沒必要再次輸出。

o1-preview o1-preview給出了具體步驟、整體思想、程式碼解釋、範例執行、可能的問題和最佳化、最佳化後的解法思路、總結。

o1-mini

o1-mini給出了問題分析、程式碼解讀、主要步驟解析、存在的問題、最佳化建議、最佳化後的解題思路、最佳化後的範例程式碼、最佳化後的程式碼說明、5個範例測試、總結。

解讀程式碼小結:

ChatGPT4o看似給的東西比較多,Claude3.5只是返回了解題思路。

o1-mini給的東西更多,牛逼plus,真頂。

解讀程式碼 能力, o1-mini > o1-preview >> Claude3.5 Sonnet > ChatGPT4o

round 4:測試用例及說明

Prompt:給出3個測試用例和說明

ChatGPT4o

ChatGPT4o給出了三個測試用例,涵蓋了不同的場景、完整程式碼及測試用例、測試用例結果

Claude3.5 Sonnet

Claude3.5 Sonnet給出了3個測試用例,並對每個用例進行詳細說明。

這些測試用例涵蓋了幾種不同的情況:

  1. 正常情況,需要計算的最小速度

  2. 需要較高速度才能完成的情況

  3. 無法完成任務的情況(時間不足)

o1-preview

o1-preview給出了4個測試用例和總結。

o1-mini


o1-mini 直接給出了5個測試用例和說明,還給出了小總結。


  1. 正常情況

  2. 邊界情況

  3. 無效輸入


測試用例及說明能力小結:

ChatGPT4o給出的東西很多,又輸出一遍完整程式碼,但是回答內容有些重復。

Claude3.5 Sonnet給出了3個測試用例,並對每個用例進行詳細說明,還指出了3個測試用例覆蓋了3種不同的情況。

o1-preview給出了4個測試用例和總結。

o1-mini 直接給出了5個測試用例 和說明,還給出了 小總結。

測試用例及說明能力,o1-mini > o1-preview > Claude3.5 Sonnet > ChatGPT4o

round 5:Java轉Python

Prompt:將程式碼轉為Python語言

ChatGPT4o

ChatGPT4o給出了Python程式碼、關鍵程式碼解析、測試用例

Claude3.5 Sonnet

Claude3.5給出了Python程式碼、解題思路、時間復雜度

o1-preview o1-preview給出了Python程式碼實作、程式碼說明、測試範例、註意事項、執行方法

o1-mini o1-mini給出了解題思路、主要步驟、Python程式碼實作、程式碼說明、程式碼最佳化點、5個測試範例、結論

轉碼能力小結:

ChatGPT4o和Claude3.5都給出了Python程式碼、解題思路、測試用例,測試後,透過率100%。

o1-preview給出了Python程式碼實作、程式碼說明、測試範例、註意事項、執行方法。

o1-mini給出了解題思路、主要步驟、Python程式碼實作、程式碼說明、程式碼最佳化點、5個測試範例、結論。

轉碼能力,o1-mini > o1-preview > Claude3.5 Sonnet = ChatGPT4o

轉碼能力,旗鼓相當。

round 6:添加註釋

ChatGPT4o

Claude3.5 Sonnet


ChatGPT4o和Claude3.5都為Python程式碼添加了詳細的程式碼註釋,能力堪稱頂級。

o1-preview和o1-mini給出的程式碼內建詳細的程式碼註釋,不用添加了...

添加註釋能力,o1-mini > o1-preview > Claude3.5 Sonnet = ChatGPT4o

總結

我們分別從六大方面對比了o1-mini、o1-preview 、ChatGPT4o和Claude3.5 Sonnet。

  1. 程式碼能力 o1-mini > o1-preview > Claude3.5 Sonnet > ChatGPT4o

  2. 程式碼最佳化能力 ,o1-mini > o1-preview > Claude3.5 Sonnet = ChatGPT4o

  3. 解讀程式碼能力 ,o1-mini > o1-preview >> Claude3.5 Sonnet > ChatGPT4o

  4. 測試用例及說明能力 ,o1-mini > o1-preview > Claude3.5 Sonnet > ChatGPT4o

  5. 轉碼能力 ,o1-mini > o1-preview > Claude3.5 Sonnet = ChatGPT4o

  6. 添加註釋能力 ,o1-mini > o1-preview > Claude3.5 Sonnet = ChatGPT4o

就今天的測試而言,我們不難看出,在編程方面, o1-mini效能提升明顯。

編程能力:

o1-mini > o1-preview > Claude3.5 Sonnet > ChatGPT4o

如何使用 o1-mini

谷歌瀏覽器存取:https://www.nezhasoft.cn

回復gpt,獲取ChatGPT4o、 o1-mini 直接使用地址

點選閱讀原文,國內直接使用ChatGpt4o、o1-mini