天天看點

70B模型秒出1000token,代碼重寫超越GPT4o,來自OpenAI參投團隊

作者:量子位

克雷西 發自 凹非寺

量子位 | 公衆号 QbitAI

70B模型,秒出1000token,換算成字元接近4000!

研究人員将Llama3進行了微調并引入加速算法,和原生版本相比,速度足足快出了快了13倍!

不僅是快,在代碼重寫任務上的表現甚至超越了GPT-4o。

這項成果,來自爆火的AI程式設計神器Cursor背後團隊anysphere,OpenAI也參與過投資。

70B模型秒出1000token,代碼重寫超越GPT4o,來自OpenAI參投團隊

要知道在以快著稱的推理加速架構Groq上,70B Llama3的推理速度也不過每秒300多token。

Cursor這樣的速度,可以說是實作了近乎即時的完整代碼檔案編輯。

有人直呼好家夥,如果把Cursor魔改後的Llama3放到Groq上,是不是每秒能跑出上萬token了。

70B模型秒出1000token,代碼重寫超越GPT4o,來自OpenAI參投團隊

更是有人激動地說,在大模型領域,我們正在消除“延時”這一概念。

70B模型秒出1000token,代碼重寫超越GPT4o,來自OpenAI參投團隊

引入全新推理加速算法

作者此次設計的加速方法,主要是用來解決一種名為“Fast Apply”的任務,即對代碼内容進行快速修改并應用。

首先需要說明的是,雖然說任務最終實作的效果是代碼的局部修改,但是實際操作過程中,輸出并非是隻有變化的内容,而是直接全局重寫。

這樣做的原因,是團隊在預先測試後做出的選擇——他們發現,除了Claude-3-Opus,大多數模型在真·局部修改任務上的表現都不理想。

之是以會這樣,主要有以下三個原因:

  • 首先是直接重寫時會輸出更多token,使得有更多的前向傳遞來确定正确的解決方案。
  • 其次,模型的訓練資料也大部分都是完整代碼,對局部修改相對陌生。
  • 此外,大模型糟糕的數學運算也無法保證能在輸出差異時正确處理行号。

(不過作者認為這仍然是一個有潛力的未來研究方向。)

70B模型秒出1000token,代碼重寫超越GPT4o,來自OpenAI參投團隊

确定了采用全局重寫的方案後,Cursor團隊使用了任務相關的資料對Llama3進行了微調。

所采用的資料有真實編輯資料與合成資料兩大來源,按照1:4的比例進行了混合。

其中合成資料是指用GPT-4生成代碼編輯的建議,然後用其他模型将這些建議“應用”到原始代碼上。

為了提高資料集的品質,作者還對小檔案、重複檔案和無變化樣本進行了下采樣。

70B模型秒出1000token,代碼重寫超越GPT4o,來自OpenAI參投團隊

為了評估這些模型的表現,作者讓它們處理了450個代碼編輯任務(每個都不超過400行),并用Claude3-Opus對輸出進行了打分。

最終,作者微調出的70B Llama3模型,表現幾乎與Claude3-Opus-diff比對,并且優于GPT-4-Turbo和GPT-4o。

70B模型秒出1000token,代碼重寫超越GPT4o,來自OpenAI參投團隊

至此的微調解決了性能問題,但不難看出此時的Llama3速度依然很慢,每秒隻能輸出不到300個字元(注意是字元,不是詞也不是token)。

而讓改寫工作快到飛起的,還有另一項秘密武器。

針對代碼改寫任務,Cursor團隊專門引入了一種名為預測性編輯(speculative edits)的算法。

這種方式用一種先驗算法來對多個後續token進行預測,然後再用本體大模型進行驗證,降低了大模型的調用次數,進而減輕了運算量。

這種先驗算法來自于代碼任務的一個特點——相比于其他文本,其詞表更小,且文法結構、縮進規則等擁有更高的确定性,利用先驗知識可以更精準預測未來的token。

這樣的做法也與GPT-4和Meta有着共通之處——

傳統的語言模型推理推理速度較慢的原因,主要是預測下一個token的過程通常是自回歸的,即模型在生成每個token時,都要考慮之前生成的所有token。

為了降低運算量,以GPT-4為代表的大模型,使用了名為預測解碼(speculative decoding)的加速算法,通過小的近似模型提前進行預測,然後再讓本體大模型對預測結果進行驗證。

Cursor和GPT-4的差別就在于,前者的小“模型”是一種更确定的算法,而後者隻是模型規模減小,本質上仍是機率預測。

Meta這邊則是推出了一次性預測多個後續token的算法,用n個獨立的輸出頭并行預測n個未來token,結果發現在程式設計任務上表現尤其優異,原因是由于程式設計語言的邏輯結構更嚴謹,知識的内在聯系更緊密。

當然,Cursor對這種特點利用更為充分,沒有用注意力頭,而是直接拿更确定的算法來做多token預測。

最終的結果就是,預測算法為70B的Llama3帶來了近13倍的速度提升,而測評表現沒有任何損失。

70B模型秒出1000token,代碼重寫超越GPT4o,來自OpenAI參投團隊

此外,作者還與企業AI模型基礎設施平台fireworks.ai合作,利用其優化的推理引擎和定制化的硬體環境,進一步提高了模型的運作效率。

未來,團隊還計劃進行知識蒸餾,并把預測編輯算法遷移到更小的8B Llama3,并擴充到更多的程式設計語言和任務。

同時,對于Cursor團隊研究過但并未采用的真·局部修改(Diff)算法,作者也計劃進行改進。

One More Thing

在實驗當中,作者不僅用預測算法加速了Llama3,也實作了對GPT4-Turbo的加速。

不過作者并沒有介紹具體在GPT當中如何實作,而是留做了思考題,還搞了一場“有獎競猜”。

能夠正确解答的人将獲得1個月的Cursor會員;如果能在vllm和TensorRT-LLM中實作預測加速,将分别獲得半年和一年的會員。

70B模型秒出1000token,代碼重寫超越GPT4o,來自OpenAI參投團隊

如果你感覺有思路的話,不妨挑戰試試(手動狗頭)。

參考連結:

https://cursor.sh/blog/instant-apply#user-content-fnref-feel-difference

— 完 —

量子位 QbitAI · 頭條号簽約

關注我們,第一時間獲知前沿科技動态

繼續閱讀