Gemini 2.5 Pro與Claude 3.7 Sonnet:哪個AI編碼能力更強?

Gemini 2.5 Pro與Claude 3.7 Sonnet:哪個AI編碼能力更強?

根據哈佛大學 2025 年的一份報告,編碼是 LLM 的主要用途之一。現在,世界各地的工程師和開發人員都在使用人工智慧來除錯程式碼、測試程式碼、驗證程式碼或為程式碼編寫指令碼。事實上,以目前 LLM 生成程式碼的方式來看,它們很快就會像一對程式設計師一樣,為任何希望解決編碼問題的人提供幫助。迄今為止,Claude 3.7 Sonnet 一直是最好的編碼 LLM。但最近,谷歌更新了最新的 Gemini 2.5 Pro,如果基準測試結果屬實,它將擊敗 Claude !在本文章中,我們將對這一說法進行測試。我們將對 Gemini 2.5 Pro 和 Claude 3.7 Sonnet 的各種程式碼相關任務進行相同的提示,看看哪個 LLM 才是編碼之王。

什麼是Gemini 2.5 Pro?

Gemini 2.5 Pro 是一種長語境推理器,DeepMind 稱其為最重要的多模態人工智慧模型,是 Gemini 1.5 系列中的一種,經過微調後在文字、程式碼和視覺任務中表現出色。該模型可以在其上下文視窗中對多達一百萬個片語的任何型別的文字進行推理:整本書、巨型文件或很長的對話,都能精確、連貫地進行推理。所有這一切都使它在企業應用、科學研究和大量內容生成中發揮了極大的作用。

真正讓 Gemini 2.5 Pro 傲視群雄的是它的原生多模態性:它是唯一一個能相當容易地理解和推理不同資料型別的模型,能解釋影像、文字,不久還能解釋音訊。它透過Gemini API 為 Workspace 和 Gemini 應用程式以及開發人員工具中的複雜功能提供支援,並與 Google 生態系統緊密整合。

什麼是Claude 3.7 Sonnet?

Claude 3 系列中最新的中級模型是Claude 3.7 Sonnet,介於小型 Haiku 和旗艦 Opus 模型之間。作為“中層”,Claude 3.7 Sonnet 在一些基準測試(如結構化推理、輔助編碼和商業分析)中達到甚至超過了 GPT-4 的效能。它反應靈敏,價格低廉,非常適合需要高階人工智慧功能的開發人員和企業使用,而無需支付高階機型的費用。

Claude 3.7

Claude 3.7 Sonnet 的一大賣點是強調倫理一致性和可靠性,這可以追溯到 Anthropic 的人工智慧憲法原則。多媒體輸入支援(文字+圖片)、長文件處理、總結、問答和構思都是它的閃光點。無論透過 Claude.ai、Claude API 還是嵌入到企業工作流中,Sonnet 3.7 都能在效能、安全性和速度之間做出很好的權衡,非常適合需要大規模可信人工智慧的團隊。

Gemini 2.5 Pro與Claude 3.7 Sonnet:基準比較

Gemini 2.5 Pro 在常識和數學推理基準測試中表現出色,而 Claude 3.7 Sonnet 則在特定編碼基準測試中始終保持領先。克勞德在真實性測試中也取得了不錯的成績,這意味著人類學確實在努力減少幻覺。

基準測試 獲勝者
MMLU(常識知識) Gemini 2.5 Pro
HumanEval(Python編碼) Claude 3.7 Sonnet
GSM8K(數學推理) Gemini 2.5 Pro
MBPP(程式設計問題) Claude 3.7 Sonnet
TruthfulQA Claude 3.7 Sonnet

在上下文處理方面,Gemini 的百萬代幣大視窗及其谷歌生態系統是處理超大程式碼庫時的一大優勢,而 Claude 在處理普通編碼任務時往往反應更快。

Gemini 2.5 Pro 與 Claude 3.7 Sonnet:實際任務執行對比

任務 1:JavaScript 無盡跑酷遊戲

提示詞:Create a pixel-art endless runner in p5.js where a robotic cat dashes through a neon cyberpunk cityscape, dodging drones and jumping over broken circuits. I want to run this locally.

Gemini 2.5 Pro 輸出:

Claude 3.7 Sonnet 輸出:

響應點評:

Gemini 2.5 Pro Claude 3.7 Sonnet
Gemini 2.5 Pro 提供的程式碼似乎不夠充分,就像脫離了上下文,這對我們不起作用。 Claude 3.7 提供了一款出色的動畫遊戲,其控制功能令人驚歎,退出和重啟等功能也能正常工作,但有時遊戲會自動結束。

結果:Gemini 2.5 Pro: 0 | Claude 3.7 Sonnet: 1

任務 2:用Pygame製作程式化地下城生成器

提示詞:Build a basic procedural dungeon generator in Python using pygame. The dungeon should consist of randomly placed rooms and corridors, and the player (a pixel hero) should be able to move from room to room. Include basic collision with walls.

Gemini 2.5 Pro 輸出:

Claude 3.7 Sonnet 輸出:

響應點評:

Gemini 2.5 Pro Claude 3.7 Sonnet
Gemini 2.5 Pro 提供的程式碼具有結構化的方法和更好的控制功能。 Claude 3.7 的動畫效果更好,操控性也不錯,儘管畫素英雄在同時按下兩個鍵時沒有響應。

結果:Gemini 2.5 Pro: 1 | Claude 3.7 Sonnet: 1

任務 3:萬用字元模式匹配編碼問題

提示詞:Give the solution to this problem in C++. Given an input string (s) and a pattern (p), implement wildcard pattern matching with support for “?” and “where”:

Give the solution to this problem in C++. Given an input string (s) and a pattern (p), implement wildcard pattern matching with support for “?” and “where:”

– ‘?’ Matches any single character.

– Matches any sequence of characters (including the empty sequence).

– The matching should cover the entire input string (not partial).

Example 1:

Input: s = “aa”, p = “a”
Output: falseExplanation: “a”does not match the entire string “aa”.

Example 2:

Input: s = “aa”, p = “*”
Output: trueExplanation: matches any sequence.

Example 3:

Input: s = “cb”, p = “?a”
Output: falseExplanation: ‘?’ matches ‘c’, but the second letter is ‘a’, which does not match ‘b’.Constraints:0 <= s.length, p.length <= 2000s contains only lowercase English letters.p contains only lowercase English letters, ‘?’ or **.

Gemini 2.5 Pro 輸出:

萬用字元模式匹配編碼問題

Claude 3.7 Sonnet 輸出:

萬用字元模式匹配編碼問題

響應點評:

Gemini 2.5 Pro Claude 3.7 Sonnet
Gemini 2.5 Pro 在處理邊緣情況方面表現出了卓越的能力。它的邏輯更清晰,萬用字元處理得更好,變數名也更清晰。事實證明,它比 Claude 3.7 Sonnet 更可靠。它適合實際應用。 Claude 3.7 Sonnet 使用動態程式設計進行模式匹配,但在處理複雜模式(如多個 “*”萬用字元)時很吃力,在某些情況下會導致錯誤,如“mississippi”。

結果:Gemini 2.5 Pro: 1 | Claude 3.7 Sonnet: 0

任務 4:使用Pygame製作射擊遊戲

提示詞:I need you to program a retro-style 2D side-scroller shooter game in Python using Pygame. The player would assume control of a spaceship whose lasers destroy incoming alien ships. Score tracking would be implemented, as well as some basic explosion animations.

Gemini 2.5 Pro 輸出:

Claude 3.7 Sonnet 輸出:

響應點評:

Gemini 2.5 Pro Claude 3.7 Sonnet
它的表現形式雖然簡約,但功能強大。飛船可以移動和射擊,但外星碰撞檢測存在缺陷。分數更新不一致。沒有新增爆炸效果。 事實證明,這是一款功能齊全、製作精良的遊戲,具有流暢的移動、直觀的雷射碰撞和得分跟蹤功能,並配有令人滿意的爆炸動畫。控制感覺流暢,視覺效果吸引人。

結果:Gemini 2.5 Pro: 0 | Claude 3.7 Sonnet: 1

任務 5:資料視覺化應用

提示詞:Create an interactive data visualization application in Python with Streamlit that loads CSVs of global CO₂ emissions, plots line charts by country, allows users to filter on year range, and plots the top emitters in a bar chart.

Gemini 2.5 Pro 輸出:

Claude 3.7 Sonnet 輸出:

響應點評:

Gemini 2.5 Pro Claude 3.7 Sonnet
透過過濾和圖表建立簡潔的互動式儀表盤。圖表標註得很好;Streamlit 元件(如滑塊和下拉選單)配合得很好。 Claude 3.7 Sonnet 也提供了可正常工作的儀表盤,但在篩選方面缺乏互動性。條形圖保持靜態,一些圖表缺少圖例。

結果:Gemini 2.5 Pro: 1 | Claude 3.7 Sonnet: 0

比較彙總

任務 勝出者
獲勝者JavaScript無盡跑動遊戲 Claude 3.7 Sonnet
程式化地牢生成器 Pygame
萬用字元模式匹配編碼問題 Gemini 2.5 Pro
使用Pygame的射擊遊戲 Claude 3.7 Sonnet
資料視覺化儀表盤應用程式 Gemini 2.5 Pro

Gemini 2.5 Pro與Claude 3.7 Sonnet: 選擇最佳模型

經過在不同編碼任務中對兩種模式的實驗和測試,“最佳 ”選擇取決於您的具體需求。

在以下情況下,您可以選擇 Gemini 2.5 Pro

  • 需要百萬代幣上下文視窗
  • 與谷歌產品整合
  • 使用演算法和資料視覺化

在以下情況下,您可以選擇 Claude 3.7 Sonnet

  • 程式碼可靠性是重中之重
  • 需要開發遊戲或互動應用程式
  • 更看重應用程式介面成本的效率

對於專業開發人員來說,這兩種模式每月 20 美元的訂閱價格都是合理的。失去除錯、生成程式碼或解決問題的時間將使收入化為烏有。每當我需要編寫一天的程式碼時,我傾向於使用 Claude 3.7 Sonnet,因為它能更好地生成互動式應用程式碼,但當涉及到大資料集或文件時,Gemini 的上下文視窗可能最適合我。

小結

透過對 Gemini 2.5 Pro 和 Claude 3.7 Sonnet 的任務比較,我們發現兩者之間並沒有明顯的優勝者,結果是平分秋色,因為每個模型在不同的編碼任務中都有明顯的優缺點。雖然這些模型仍在不斷發展,但它們正成為每個開發人員的必備工具,不是為了取代人類程式設計師,而是為了成倍提高他們的工作效率和能力。在 Gemini 2.5 Pro 和 Claude 3.7 Sonnet 之間做出抉擇時,應只考慮您的專案需求,而不是考慮什麼是“更好的”。

請在下面的評論區告訴我您的想法。

評論留言