選擇GPT-3.5、還是微調(diào)Llama 2等開源模型?綜合比較后答案有了
眾所周知,對 GPT-3.5 進行微調(diào)是非常昂貴的。本文通過實驗來驗證手動微調(diào)模型是否可以接近 GPT-3.5 的性能,而成本只是 GPT-3.5 的一小部分。有趣的是,本文確實做到了。
在 SQL 任務和 functional representation 任務上的結果對比,本文發(fā)現(xiàn):
- GPT-3.5 在兩個數(shù)據(jù)集(Spider 數(shù)據(jù)集的子集以及 Viggo functional representation 數(shù)據(jù)集)上都比經(jīng)過 Lora 微調(diào)的 Code Llama 34B 表現(xiàn)略微好一點。
- GPT-3.5 的訓練成本高出 4-6 倍,部署成本也更高。
本實驗的結論之一是微調(diào) GPT-3.5 適用于初始驗證工作,但在那之后,像 Llama 2 這樣的模型可能是最佳選擇,簡單總結一下:
- 如果你想驗證微調(diào)是解決特定任務 / 數(shù)據(jù)集的正確方法,又或者想要一個完全托管的環(huán)境,那么微調(diào) GPT-3.5。
- 如果想省錢、想從數(shù)據(jù)集中獲取最大性能、想要在訓練和部署基礎設施方面具有更大的靈活性、又或者想要保留一些私有數(shù)據(jù),那么就微調(diào)類似 Llama 2 的這種開源模型。
接下來我們看看,本文是如何實現(xiàn)的。
下圖為 Code Llama 34B 和 GPT-3.5 在 SQL 任務和 functional representation 任務上訓練至收斂的性能。結果表明,GPT-3.5 在這兩個任務上都取得了更好的準確率。
在硬件使用上,實驗使用的是 A40 GPU,每小時約 0.475 美元。
此外,實驗選取了兩個非常適合進行微調(diào)的數(shù)據(jù)集,Spider 數(shù)據(jù)集的子集以及 Viggo functional representation 數(shù)據(jù)集。
為了與 GPT-3.5 模型進行公平的比較,實驗對 Llama 進行了最少超參數(shù)微調(diào)。
本文實驗的兩個關鍵選擇是使用 Code Llama 34B 和 Lora 微調(diào),而不是全參數(shù)微調(diào)。
實驗在很大程度上遵循了有關 Lora 超參數(shù)微調(diào)的規(guī)則,Lora 適配器配置如下:
SQL 提示示例如下:
SQL 提示部分展示,完整提示請查看原博客
實驗沒有使用完整的 Spider 數(shù)據(jù)集,具體形式如下
department : Department_ID [ INT ] primary_key Name [ TEXT ] Creation [ TEXT ] Ranking [ INT ] Budget_in_Billions [ INT ] Num_Employees [ INT ] head : head_ID [ INT ] primary_key name [ TEXT ] born_state [ TEXT ] age [ INT ] management : department_ID [ INT ] primary_key management.department_ID = department.Department_ID head_ID [ INT ] management.head_ID = head.head_ID temporary_acting [ TEXT ]
實驗選擇使用 sql-create-context 數(shù)據(jù)集和 Spider 數(shù)據(jù)集的交集。為模型提供的上下文是一個 SQL 創(chuàng)建命令,如下所示:
CREATE TABLE table_name_12 (class VARCHAR, frequency_mhz VARCHAR, city_of_license VARCHAR)
SQL 任務的代碼和數(shù)據(jù)地址:https://github.com/samlhuillier/spider-sql-finetune
functional representation 提示的示例如下所示:
functional representation 提示部分展示,完整提示請查看原博客
輸出如下所示:
verify_attribute(name[Little Big Adventure], rating[average], has_multiplayer[no], platforms[PlayStation])
評估階段,兩個實驗很快就收斂了:
functional representation 任務代碼和數(shù)據(jù)地址:https://github.com/samlhuillier/viggo-finetune
了解更多內(nèi)容,請查看原博客。