代碼能力超越GPT-4,這個(gè)模型登頂Big Code排行榜,YC創(chuàng)始人點(diǎn)贊
一款號(hào)稱代碼能力超越GPT-4的模型,引發(fā)了不少網(wǎng)友的關(guān)注。
準(zhǔn)確率比GPT-4高出超過(guò)10%,速度卻接近GPT-3.5,而且窗口長(zhǎng)度也更長(zhǎng)。
據(jù)開(kāi)發(fā)者描述,他們的模型取得了74.7%的Pass@1通過(guò)率,超過(guò)了原始GPT-4的67%,登上了Big Code榜首。
這個(gè)模型名叫Phind,和以其為基礎(chǔ)的面向開(kāi)發(fā)者的AI搜索工具同名。
它是由開(kāi)發(fā)團(tuán)隊(duì)在CodeLlama-34B的基礎(chǔ)之上微調(diào)得到的。
Phind利用TensorRT-LLM在H100上可以跑出每秒100個(gè)token的速度,是GPT-4的5倍。
此外,Phind的上下文長(zhǎng)度達(dá)到了16k,其中12k可供用戶輸入,另外4k保留給檢索結(jié)果中的文本。
針對(duì)這個(gè)產(chǎn)品,網(wǎng)友們議論紛紛,結(jié)果是喜憂參半:
支持的人,如著名創(chuàng)業(yè)投資公司YCombinator創(chuàng)始人Paul Graham表示,Phind可以讓人們用更少的資源和大廠抗衡。
也有網(wǎng)友具體列出了Phind的優(yōu)點(diǎn):
不認(rèn)可Phind的網(wǎng)友則說(shuō),自己之前用GPT-4寫的代碼,Phind寫不出來(lái):
更是有人吐槽說(shuō),GPT“每天都在被打敗”,但是從來(lái)沒(méi)被超越過(guò)。
有意思的是,在Phind應(yīng)用當(dāng)中,自研模型又被稱作“fast model”,而“best model”仍然是GPT-4。
(雖然沒(méi)明說(shuō),但是GPT-4和best model的剩余可用次數(shù)是同步變化的)
所以,這個(gè)號(hào)稱“擊敗了GPT-4”的模型到底是不是真的那么好用,我們進(jìn)行了一番實(shí)測(cè)。
Phind vs GPT-4
正式開(kāi)始之前,先來(lái)說(shuō)說(shuō)對(duì)Phind的第一印象。
它的界面十分簡(jiǎn)潔,主要就是一個(gè)搜索框,而且不需要登錄就能無(wú)限量使用。
左下角有一個(gè)Pair Programmer的開(kāi)關(guān),直觀上的區(qū)別就是開(kāi)啟之后回答界面更側(cè)重對(duì)話,不開(kāi)啟的話則更像搜索引擎。
此外,還可以從自研模型和GPT-4中選擇,GPT-4則需要登錄,而且每天只能用10次。
接下來(lái)就是和GPT-4進(jìn)行的對(duì)比測(cè)試,GPT-4沒(méi)有開(kāi)啟代碼解釋器。
首先還是從LeetCode題目開(kāi)始測(cè)起,Prompt就是是原問(wèn)題加上下面這段話:
請(qǐng)用Python寫一段代碼解決這個(gè)問(wèn)題,給出通用的解法,不需要設(shè)定參數(shù)值,代碼需要以如下內(nèi)容開(kāi)頭:
(LeetCode頁(yè)面中給出的起始片段)
為了防止Phind通過(guò)檢索來(lái)“作弊”,我們還在Phind的Prompt結(jié)尾加入了這句話:
不要檢索任何信息,靠你自己的能力創(chuàng)建代碼
第一題在LeetCode中被歸為組合數(shù)學(xué)問(wèn)題,難度為困難,通過(guò)率67.1%。
Phind給出了這樣的代碼和解釋,經(jīng)過(guò)測(cè)試,20條測(cè)試數(shù)據(jù)中有19項(xiàng)正確。
出錯(cuò)的是這一條,這里的輸出結(jié)果應(yīng)該是3,但Phind給出的程序運(yùn)行結(jié)果是4。
我們?cè)囍答伣oPhind,看它能不能找出錯(cuò)誤的原因,結(jié)果分析一番之后給出了新的代碼,并通過(guò)了測(cè)試。
而GPT-4這邊,則是一次性通過(guò)。
進(jìn)入下一題,這道題目涉及到了動(dòng)態(tài)規(guī)劃,通過(guò)率為53.9%。
這次Phind和GPT-4都是以一次通過(guò)。
第三道題目的通過(guò)率只有約30%,但它的難度可能在于用來(lái)判題的測(cè)試數(shù)據(jù)太龐大了。
Phind給出的這段代碼就在通過(guò)前12組測(cè)試數(shù)據(jù)之后出現(xiàn)了運(yùn)行時(shí)間超限的現(xiàn)象。
我們讓它試著進(jìn)行優(yōu)化,結(jié)果這次直接是算不對(duì)了。
而GPT-4則輕松解決,不過(guò)在解釋說(shuō)明部分有些錯(cuò)誤,因?yàn)槌?jí)回文數(shù)的概念中的描述是“回文數(shù)的平方”而不是“平方是回文數(shù)”。
三道LeetCode題目測(cè)試下來(lái),Phind以一平兩負(fù)的成績(jī)輸給了GPT-4。
但需要說(shuō)明的是,這里我們?yōu)榱藴y(cè)試模型本身表現(xiàn),通過(guò)提示詞關(guān)閉了Phind的檢索功能,但從實(shí)用角度出發(fā),如果保留搜索,Phind還是能很好地解決這些問(wèn)題的。
接著,我們又測(cè)試了一下他們的實(shí)際開(kāi)發(fā)能力,這次的題目是掃雷游戲。
Phind會(huì)問(wèn)我們有沒(méi)有什么特殊要求,這里我們直接點(diǎn)跳過(guò)。
然后Phind會(huì)對(duì)任務(wù)進(jìn)行拆解,對(duì)每個(gè)子任務(wù)又分別進(jìn)行檢索。
這時(shí)的代碼也是分段給出的,有趣的是,在生成過(guò)程中,Phind會(huì)使用不同來(lái)源中的代碼。
然后我們讓Phind給出完整代碼,并通過(guò)鏈接的第三方平臺(tái)直接運(yùn)行。
結(jié)果呢,我們一進(jìn)去就看到程序已經(jīng)非常“貼心”地把雷的位置清楚地標(biāo)注好了。
不過(guò)這次,GPT-4的代碼更加離譜一些,運(yùn)行出來(lái)是這樣的:
雖然都沒(méi)做對(duì),但硬要比較的話,這一輪,Phind略勝一籌。
一路測(cè)試下來(lái),很難判斷它們孰優(yōu)孰劣,但考慮到搜索能力,以及免費(fèi)免登錄的特性,Phind還是可圈可點(diǎn)的。
參考鏈接:
https://www.phind.com/blog/phind-model-beats-gpt4-fast。