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