Buildt 使用 OpenAI 基礎(chǔ)模型已經(jīng)有一段時間了。這些模型非常強大,關(guān)于這一點,互聯(lián)網(wǎng)上已經(jīng)有了大量的記錄,特別是隨著 ChatGPT 的出現(xiàn),它的關(guān)注度超過了之前 GPT-3 的 100 倍。然而,在應(yīng)用這些模型解決相應(yīng)問題(代碼庫搜索、理解和增強)的過程中,我們發(fā)現(xiàn)了一個明顯的障礙:延遲和成本。比較大的模型(特別是 davinci 家族)無疑能產(chǎn)生最高質(zhì)量的輸出,但運行起來也最慢、最昂貴。
要獲得良好的搜索體驗,顯然速度就得快。你看谷歌,100 毫秒就可以索引數(shù)百萬個網(wǎng)頁,代碼庫搜索也是如此。我們發(fā)現(xiàn),在單個搜索中,其中一個最耗時的點就是生成輸出的 LLM 層(我們使用 LLM 來增強搜索,讓你可以搜索代碼是什么,而不是它做什么,例如“找出最慢的遞歸函數(shù)”)。Alex grave 是 Github Copilot 的創(chuàng)建者之一。據(jù)他說,每增加 10 毫秒的延遲,完成率就會下降 1%。這一邏輯也適用于搜索。所以,當務(wù)之急是從 davinci 這樣的大型模型轉(zhuǎn)向 ada 和 babbage 這樣的小型模型。
我們的解決方案很簡單,對于給定的任務(wù),由 davinci 生成一個中等大小的語料庫,并精心優(yōu)化像 babbage 這樣的模型來完成相同的任務(wù)。如果操作得當,你可以以低 40 倍的成本、低 4-5 倍的延遲獲得幾乎相同的完成率(或至少 90% 的相似性)。
如果你愿意花點時間,則還可以在循環(huán)中加一個人:我們最近就做了這樣的事情來優(yōu)化 babbage 模型,以便能夠識別代碼的特征,所以我讓 ChatGPT 幫我創(chuàng)建了一個基本的 Web UI,讓我們可以輕松地審核和改進 davinci 所的識別結(jié)果;從根本上說,你永遠無法從一個更小的模型那里獲得類似的性能,所以讓完成率勝過你試圖模仿的模型,意味著你至少在訓(xùn)練完成時就比較接近。
關(guān)于這種技術(shù),我想的最多的一個問題是:我需要多少樣本?答案恐怕是“視情況而定”。
根據(jù)經(jīng)驗,如果你只是想標準化平淡無奇的輸出格式,那么你可以用幾百個樣本;如果你是在做邏輯推理,那么你至少需要 1000 個樣本;如果你在做 DSL 工作,那么你需要幾千個樣本。樣本大小通常會是一個障礙,但有了用更大的模型來生成合成數(shù)據(jù)集的方法,那突然變得比較容易處理了,特別是當這些模型變得越來越好時。
這種方法有很多應(yīng)用場景;如果你有一個提示符,它可以重復(fù)做同樣的工作,那么你就可以使用這項技術(shù)來加快速度,降低成本。
有人問過我這種方法的維護問題,特別是如果想要更改輸出結(jié)構(gòu)時會出現(xiàn)什么情況。我們內(nèi)部構(gòu)建了一個經(jīng)過精心優(yōu)化的管道來自動化整個過程,其底層是 davinci-003 提示符,然后我們用它來生成 n 個合成樣本,格式化后傳遞給 OpenAI 調(diào)優(yōu) API,它會吐出一個調(diào)優(yōu)過的模型。這樣,如果你想更改提示符的輸出,只需一次單擊就可以更新一個調(diào)優(yōu)過的模型。
我總是很樂意談?wù)撨@個話題,歡迎在 Twitter 上關(guān)注我(@AlistairPullen),我上面描述的所有內(nèi)容都可以在我們的代碼搜索工具 Buildt 中找到。
審核編輯 :李倩
-
模型
+關(guān)注
關(guān)注
1文章
3294瀏覽量
49037 -
OpenAI
+關(guān)注
關(guān)注
9文章
1116瀏覽量
6625
原文標題:錯誤使用 GPT-3:成本卻降低了40 倍,速度提高了5 倍
文章出處:【微信號:AI前線,微信公眾號:AI前線】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論