GPT-4 API平替?性能媲美同時成本降低98%,史丹佛提出FrugalGPT,研究卻惹爭議
隨著大型語言模型(LLM)的發展,人工智慧正處於變革的爆發期。眾所周知,LLM 可用於商業、科學和金融等應用,因而越來越多的公司(OpenAI、AI21、CoHere 等)都在提供 LLM 作為基礎服務。雖然像 GPT-4 這樣的 LLM 在問答等任務中取得了前所未有的性能,但因為其高吞吐量的特質,使得它們在應用中非常昂貴。
例如,ChatGPT 每天的營運成本超過 70 萬美元,而使用 GPT-4 來支援客戶服務可能會讓小型企業每月花費超過 21,000 美元。除了金錢成本外,使用最大的 LLM 還會帶來巨大的環境和能源影響。
現在很多公司透過 API 提供 LLM 服務,它們收費各異。使用LLM API 的成本通常包括三個組成部分:1)prompt 成本(與prompt 的長度成比例),2)產生成本(與生成的長度成比例),以及3)有時還會有對於每個查詢的固定成本。
下表 1 比較了 12 個不同商業 LLM 的成本,這些 LLM 來自主流供應商,包括 OpenAI、AI21、CoHere 和 Textsynth。它們的成本相差高達 2 個數量級:例如,對於 1000 萬個 token,OpenAI 的 GPT-4 的 prompt 成本為 30 美元,而 Textsynth 託管的 GPT-J 僅為 0.2 美元。
#成本和準確度之間的平衡是決策的關鍵因素,尤其是在採用新技術時。如何有效和有效率地利用LLM 是從業者面臨的關鍵挑戰:如果任務相對簡單,那麼聚合來自GPT-J (其規模比GPT-3 小30 倍)的多個響應可以實現與GPT-3 類似的性能,從而實現成本和環境上的權衡。然而,在較為困難任務上,GPT-J 的表現可能會大幅下降。因此,如何經濟高效地使用 LLM 需要採用新的方法。
最近的一項研究嘗試提出解決這一成本問題的方法,研究者透過實驗表明,FrugalGPT 可以與最佳個體LLM(例如GPT-4) 的表現相媲美,成本降低高達98%,或在相同成本下將最佳個體LLM 的準確性提高4%。
- #論文網址:https://arxiv.org/ pdf/2305.05176.pdf
#來自史丹佛大學的研究者回顧了使用LLM API(例如GPT-4,ChatGPT,J1-Jumbo)所需的成本,並發現這些模型具有不同的定價,費用可能相差兩個數量級,特別是在大量查詢和文字上使用LLM 可能更昂貴。基於這一點,研究概述並討論了使用者可以利用的三種策略來降低使用 LLM 的推理成本:1)prompt 適應,2)LLM 近似和 3)LLM 級聯。此外,研究提出了級聯 LLM 一個簡單而靈活的實例 FrugalGPT,它學習在不同查詢中使用哪些 LLM 組合以減少成本並提高準確性。
這項研究提出的想法和發現為可持續且有效率地使用 LLM 奠定了基礎。如果能夠在不增加預算的情況下採用更高級的 AI 功能,這可能會推動人工智慧技術在各個行業的更廣泛採用,即使是較小的企業也有能力在其營運中實施複雜的人工智慧模型。
當然,這只是一個角度,FrugalGPT 到底能實現怎樣的影響力,能否成為「AI 產業的遊戲規則改變者」,還需要一段時間才能揭曉。在論文發布之後,這項研究也引發了一些爭議:
「摘要嚴重誇大了論文的內容,這裡的標題也有嚴重的誤導性。他們所做的是設計了一種方法,以減少在論文中所涉及的一類問題中需要調用高端模型的次數。這不是以2% 的成本取代GPT-4,也不是以4% 的精度取代GPT-4。它是一種將GPT-4 與更低廉的模型和支援性基礎設施相結合的方法。摘要中沒有指出的是,這需要建立一個自訂模型來對結果進行評分,而這是該機制的真正核心。… 這種方法有合法的用例,其中包括基本的成本工程,如快取結果。但對於大多數用例來說,這完全不相關,因為你沒有一個合適的評分模型。」
#具體如何判斷,讓我們看一下論文內容。
如何經濟、準確地使用 LLM
接下來論文介紹如何在預算範圍內高效的使用 LLM API。如圖 1 (b) 所示,研究討論了三種降低成本的策略,即 prompt 適應、LLM 近似和 LLM 級聯。
- #策略 1:prompt 適應。 LLM 查詢的成本與 prompt 的大小呈線性成長。因此,降低使用 LLM API 成本的一個合理方法包括減少 prompt 大小,該研究將這個過程稱為 prompt 適應。 prompt 選擇如圖 2(a)所示:與使用包含許多範例以示範如何執行任務的 prompt 相比,可以只保留 prompt 中的一個小子集範例。這將導致更小的 prompt 和更低的成本。另一個例子是查詢串聯(圖 2(b)所示)。
#策略 2:LLM 近似。 LLM 近似的概念非常簡單:如果使用 LLM API 成本太高,可以使用更實惠的模型或基礎架構進行近似。其中一個例子如圖 2(c)所示,其基本思想是在向 LLM API 提交查詢時將回應儲存在本機快取(例如資料庫)中。 LLM 近似的另一個例子是模型微調,如圖 2 (d) 所示。
策略 3:LLM 級聯。不同的 LLM API 在各種查詢中都有自己的優點和缺點。因此,適當選擇要使用的 LLM 既能降低成本又能提高效能。如圖 2(e)所示為 LLM 級聯的一個例子。
FrugalGPT 是在上述 API 之上開發的,並在一系列屬於不同任務的資料集上進行了評估。其中,HEADLINES 是一個金融新聞資料集,目標是透過閱讀金融新聞標題來確定金價趨勢(上升、下降、中性或無),這對於過濾金融市場的相關新聞特別有用;OVERRULING 是一個法律文件資料集,其目標是確定一個給定的句子是否是一個“overruling”,即推翻以前的法律案件;COQA 是一個在對話環境中開發的閱讀理解數據集,研究者將其改編為一個直接查詢回答任務。
他們專注於 LLM 級聯方法,級聯長度為 3,因為這簡化了最佳化空間,並且已經展示了良好的結果。每個資料集被隨機分成一個訓練集來學習 LLM 級聯和一個測試集進行評估。
#這裡有一個HEADLINES 資料集案例研究:設定預算為6.5 美元,是GPT-4 成本的五分之一。採用針對迴歸的 DistilBERT [SDCW19] 作為評分函數。值得注意的是,DistilBERT 比這裡考慮的所有 LLM 都要小得多,因此成本較低。如圖 3(a)所示,學習的 FrugalGPT 順序呼叫 GPT-J、J1-L 和 GPT-4。對於任何給定的查詢,它首先從 GPT-J 中提取一個答案。如果這個答案的分數大於 0.96,這個答案就被接受為最終的回應。否則,將對 J1-L 進行查詢。如果 J1-L 的答案分數大於 0.37,則被接受為最終答案;否則,將呼叫 GPT-4 來獲得最終答案。有趣的是,這種方法在許多查詢中都優於 GPT-4。例如,基於納斯達克的頭條新聞“美國GDP 數據慘淡,黃金脫離低點”,FrugalGPT 準確地預測了價格將下跌,而GPT-4 提供了一個錯誤的答案(如圖3(b)所示)。
整體來說,FrugalGPT 的結果是既提高了準確率又降低了成本。如圖 3 (c) 所示,其成本降低了 80%,而準確率甚至高出 1.5%。
#LLM 的多樣性
為什麼多個LLM API 有可能產生比最好的單一LLM 更好的效能?從本質上講,這是由於生成的多樣性:即使是一個低成本的 LLM 有時也能正確地回答更高成本的 LLM 所不能回答的查詢。為了衡量這種多樣性,研究者使用最大的表現改進,也可以成為 MPI。 LLM A 相對於 LLM B 的 MPI 是指 LLM A 產生正確答案而 LLM B 提供錯誤答案的機率。這個指標實質上是衡量在調用 LLM B 的同時調用 LLM A 所能達到的最大效能提升。
圖 4 顯示了所有資料集的每一對 LLM API 之間的 MPI。在 HEADLINES 資料集上,GPT-C、GPT-J 和 J1-L 都可以將 GPT-4 的效能提高 6%。在 COQA 資料集上,有 13% 的數據點 GPT-4 出現了錯誤,但 GPT-3 提供了正確的答案。儘管這些改進的上界可能並不總是可以實現的,但它們確實證明了利用更低廉的服務來實現更好性能的可能性。
#成本節約
隨後,研究者考察了FrugalGPT 是否能在保持準確性的同時降低成本,如果能,又能降低多少。表 3 顯示了 FrugalGPT 的總體成本節約,範圍從 50% 到 98%。這是可行的,因為 FrugalGPT 可以識別那些可以由較小的 LLM 準確回答的查詢,因此只呼叫那些具有成本效益的 LLM。而強大但昂貴的 LLM,如 GPT-4,只用於由 FrugalGPT 檢測到的挑戰性查詢。
效能與成本的權衡
#接著,研究者探討了FrugalGPT 所實現的性能和成本之間的權衡,如圖5 所示,得出了幾個有趣的觀察結果。
首先,不同 LLM API 的成本排名並不是固定的。此外,較昂貴的 LLM APIs 有時會導致比其更便宜的同類產品更差的效能。這些觀察結果強調了適當選擇 LLM API 的重要性,即使在沒有預算限制的情況下。
接下來,研究者也注意到,FrugalGPT 能夠在所有被評估的資料集上實現平滑的效能 - 成本權衡。這為 LLM 用戶提供了靈活的選擇,並有可能幫助 LLM API 供應商節省能源和減少碳排放。事實上,FrugalGPT 可以同時降低成本並提高精確度,這可能是因為 FrugalGPT 整合了來自多個 LLM 的知識。
圖 5 所示的範例查詢進一步解釋了為什麼 FrugalGPT 可以同時提高效能和降低成本。 GPT-4 在一些查詢上犯了錯誤,例如例如(a)部分的第一個例子,但一些低成本的 API 提供了正確的預測。 FrugalGPT 準確地識別了這些查詢,並完全依賴低成本的 API。例如,GPT-4 錯誤地從法律陳述「現在是協調和規範我們在這個領域的案件的時候了」推斷出沒有推翻,如圖 5(b)所示。然而,FrugalGPT 接受了 GPT-J 的正確答案,避免了昂貴的 LLM 的使用,提高了整體性能。當然,單一的 LLM API 並不總是正確的;LLM 級聯透過採用一連串的 LLM API 克服了這一點。例如,在圖 5 (a) 所示的第二個例子中,FrugalGPT 發現 GPT-J 的產生可能不可靠,於是轉向鏈中的第二個 LLM J1-L,以找到正確的答案。同樣,GPT-4 提供了錯誤的答案。 FrugalGPT 並不完美,仍有足夠的空間來減少成本。例如,在圖 5 (c) 的第三個例子中,鏈中所有的 LLM API 都給出了相同的答案。然而,FrugalGPT 不確定第一個 LLM 是否正確,導致需要查詢鏈中的所有 LLM。確定如何避免這種情況仍然是一個開放的問題。
#更多研究細節,可參考原論文。
以上是GPT-4 API平替?性能媲美同時成本降低98%,史丹佛提出FrugalGPT,研究卻惹爭議的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

MeMebox 2.0通過創新架構和性能突破重新定義了加密資產管理。 1) 它解決了資產孤島、收益衰減和安全與便利悖論三大痛點。 2) 通過智能資產樞紐、動態風險管理和收益增強引擎,提升了跨鏈轉賬速度、平均收益率和安全事件響應速度。 3) 為用戶提供資產可視化、策略自動化和治理一體化,實現了用戶價值重構。 4) 通過生態協同和合規化創新,增強了平台的整體效能。 5) 未來將推出智能合約保險池、預測市場集成和AI驅動資產配置,繼續引領行業發展。

全球十大加密貨幣交易平台包括Binance、OKX、Gate.io、Coinbase、Kraken、Huobi Global、Bitfinex、Bittrex、KuCoin和Poloniex,均提供多種交易方式和強大的安全措施。

靠谱的数字货币交易平台推荐:1. OKX,2. Binance,3. Coinbase,4. Kraken,5. Huobi,6. KuCoin,7. Bitfinex,8. Gemini,9. Bitstamp,10. Poloniex,这些平台均以其安全性、用户体验和多样化的功能著称,适合不同层次的用户进行数字货币交易

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

Binance、OKX、gate.io等十大數字貨幣交易所完善系統、高效多元化交易和嚴密安全措施嚴重推崇。

目前排名前十的虛擬幣交易所:1.幣安,2. OKX,3. Gate.io,4。幣庫,5。海妖,6。火幣全球站,7.拜比特,8.庫幣,9.比特幣,10。比特戳。

C 中使用字符串流的主要步驟和注意事項如下:1.創建輸出字符串流並轉換數據,如將整數轉換為字符串。 2.應用於復雜數據結構的序列化,如將vector轉換為字符串。 3.注意性能問題,避免在處理大量數據時頻繁使用字符串流,可考慮使用std::string的append方法。 4.注意內存管理,避免頻繁創建和銷毀字符串流對象,可以重用或使用std::stringstream。
