博客專欄

EEPW首頁 > 博客 > 獨家 | 何時微調(diào)大語言模型?

獨家 | 何時微調(diào)大語言模型?

發(fā)布人:數(shù)據(jù)派THU 時間:2023-08-04 來源:工程師 發(fā)布文章

領(lǐng)英(LinkedIn)賬號的fork中向我提出了這樣一個問題:如何微調(diào)諸如LLaMA的開源模型。公司正在尋找銷售LLM托管和部署解決方案的業(yè)務(wù)案例,將人工智能和LLM應(yīng)用于具體的產(chǎn)品。我問他們?yōu)槭裁床皇褂孟馛hatGPT這樣的非開源模型時,他們沒有給出正確的答案。所以我決定寫這篇文章來解答如何利用llm解決日常業(yè)務(wù)問題。


非開源API的案例


是否嘗試過用ChatGPT的API 實現(xiàn)具體案例?如果想實現(xiàn)文本總結(jié)或回答問題,或者只是想在網(wǎng)站上找一個聊天機器人,通常情況下,ChatGPT在這些語言任務(wù)上會做得很好。


人們普遍認為,非開源的模型太貴了,1000個 token需要花費0.002美元,為什么不可以在100個樣本上做一下嘗試,并評估大語言模型是否為特定應(yīng)用程序的最佳選擇。事實上,在這個范圍內(nèi)每天至少有數(shù)千次的API調(diào)用,ChatGPT API比博客中提到的開源模型要便宜得多。


其中一個觀點是,假設(shè)需要回答成千上萬份文件中的問題,此時,對這些數(shù)據(jù)進行訓練或微調(diào)開源模型,并詢問利用這些數(shù)據(jù)微調(diào)模型會不會更容易一些?事實證明,這并不像聽起來那么簡單(出于各種原因,將在下文關(guān)于微調(diào)標簽數(shù)據(jù)一節(jié)中討論)。


但是ChatGPT有一個簡單的解決方案,可以根據(jù)包含數(shù)千個文檔的上下文來回答問題。它將所有文檔分為小塊文本存儲到數(shù)據(jù)庫中。

圖片 

圖片將文檔下載到數(shù)據(jù)庫中進行規(guī)?;疞LM查詢| Skanda Vivek


將數(shù)據(jù)從模型架構(gòu)中卸載到一個包含文檔塊的數(shù)據(jù)庫中,為模型提供回答問題所必要的信息。


通過計算問題和文檔塊之間的相似性,就可以找到具有相關(guān)性的文檔,通過將文檔塊和問題轉(zhuǎn)換為單詞嵌入向量,并計算文檔塊和問題之間的余弦相似度,最后只選擇特定余弦相似度以上的文檔塊作為相關(guān)上下文。


最后,問題和上下文可以組合成如下的提示符,并入像ChatGPT這樣的大語言模型API:

圖片 

圖片


大家可能會問——為什么不將整個文檔和問題輸入到提示中,而是分成小的文檔塊呢?之所以將文檔分割成塊,而沒有將所有文檔合并成一個提示符,是因為大語言模型對最大輸入和輸出長度有一定的限制。對于ChatGPT來說,最大輸入和輸出長度是4096個 token,大約是6-7頁的文本。


將文檔下載到數(shù)據(jù)庫中,并使用非開源的LLM API進行查詢,可能在文檔中明顯存在答案的情況下工作良好。但在很多情況下,可能會產(chǎn)生次優(yōu)結(jié)果,比如想讓ChatGPT對一個話題提供專家視角——例如,對美國經(jīng)濟的金融前景進行推測。


 專業(yè)領(lǐng)域LLM


好吧,如果已經(jīng)試用了ChatGPT或BARD,但你并不喜歡它。答案確實有點離譜。例如,如果問ChatGPT:


“美國經(jīng)濟的通脹可能會持續(xù)多久?”


 它返回下述答案:


作為一個人工智能語言模型,我無法確定地預(yù)測未來,特別是關(guān)于復(fù)雜的經(jīng)濟系統(tǒng)。但是,我可以為您提供一些信息和觀點,以幫助您了解當前的情況。


通貨膨脹是一種復(fù)雜的現(xiàn)象,可以由多種因素引起,如需求增加、供應(yīng)限制等….


不幸的是,上述答案還不夠好。當然,還可以給ChatGPT提示一些關(guān)于美聯(lián)儲主席杰羅姆·鮑威爾聲明的消息。但這并沒有給你該領(lǐng)域的豐富經(jīng)驗,如果繼續(xù)交談,可能會得出-好吧,杰羅姆·鮑威爾,還有誰!或者是另一個專家。


考慮如何成為某一領(lǐng)域的專家,雖然可以閱讀關(guān)于該領(lǐng)域的書籍,但也可以與該領(lǐng)域的專家互動,從經(jīng)驗中學習。雖然ChatGPT已經(jīng)接受過了大量金融書籍的訓練,但它可能還沒有接受過頂級金融專家或其他特定領(lǐng)域的專家的訓練。那么,如何讓LLM成為一個在金融領(lǐng)域的“專家”呢?這就是微調(diào)的作用所在。


微調(diào)LLM


在討論微調(diào)大語言模型之前,首先談?wù)勏馚ERT這樣的小語言模型的微調(diào),這在大語言模型出現(xiàn)之前很常見。對于像BERT和RoBERTa這樣的模型,微調(diào)相當于傳遞一些上下文和標簽。將任務(wù)定義好,比如從上下文中提取答案,或者將電子郵件分類為垃圾郵件和非垃圾郵件。我寫了一些關(guān)于這些方面的博客文章,如果對微調(diào)語言模型感興趣,它們可能會很有用:

圖片 

圖片

大型語言模型(llm)之所以如此流行,是因為它們可以通過改變提示的方式無縫地執(zhí)行多個任務(wù),而且有類似于在另一端與人交談的經(jīng)驗?,F(xiàn)在需要對LLM做出調(diào)整,使其成為某一主題方面的專家,并像一個“人”一樣參與對話。這與在特定的任務(wù)上微調(diào)BERT模型截然不同。


最早的開源突破之一是斯坦福大學的一組研究人員,他們對7B LLaMa模型(今年早些時候由Meta發(fā)布)進行了微調(diào),他們在52K指令下使用不到600$實現(xiàn)了微調(diào),并稱之為 Alpaca。不久之后,Vicuna團隊發(fā)布了一個130億個參數(shù)的模型,它達到了ChatGPT質(zhì)量的90%。


最近,又發(fā)布了MPT-7B transformer,它可以攝入65k個token,是ChatGPT輸入大小的16倍!訓練從頭開始,為期9.5天,花費200k$。作為專業(yè)領(lǐng)域LLM的一個例子,Bloomberg 發(fā)布了一個類似gpt的模型 BloombergGPT,為金融領(lǐng)域而構(gòu)建,也是從零開始訓練。


在訓練和微調(diào)開源模型方面的最新進展是中小型公司通過定制的llm來豐富其產(chǎn)品。那么,又如何決定何時調(diào)整或訓練專業(yè)領(lǐng)域的llm呢?


首先,需要明確專業(yè)領(lǐng)域中閉源LLM  API的局限性,并允許客戶以很小的成本與該領(lǐng)域的專家聊天。對于10萬左右的指令來說,微調(diào)模型并不是很昂貴——但是需要仔細考慮之后才能獲得正確的指令。這是需要大膽一些,雖然還想不到哪個專業(yè)領(lǐng)域的微調(diào)模型性能明顯優(yōu)于ChatGPT,但我相信這里會有拐點,任何這樣做的公司將會得到獎勵。


這令我想到了如果從頭開始完全訓練LLM的案例,這很容易花費超過數(shù)十萬美元,但如果有一個可信服的理由,投資者會很樂意投入其中。在最近接受IBM的采訪時,Hugging Face的首席執(zhí)行官克萊姆·德蘭古評論說,不久,定制的大語言模型會像專有代碼庫一樣常見——并且會成為提高行業(yè)競爭力的重要組成。


要點


應(yīng)用于特定領(lǐng)域的LLM在行業(yè)中非常有價值,在增加成本和可定制性方面分為3個層面:


1. 非開源API+文檔嵌入數(shù)據(jù)庫:第一種解決方案可能是最容易實現(xiàn)的,考慮到ChatGPT API的高質(zhì)量——甚至可能提供足夠好(即便不是最好的)的性能。而且也不貴!

2. 微調(diào)LLM:最近從對LLaMA模型進行微調(diào)中取得的進展表明,這需要花費大約500$才能在某些領(lǐng)域獲得類似于ChatGPT的基線性能。如果具備大約~50-100k指令或?qū)υ拋砦⒄{(diào)基線模型的數(shù)據(jù)庫,這也值得一試。

3. 從零開始訓練:正如 LLaMA 和最新近的MPT-7B 模型所顯示的那樣,它將花費大約100-200k,需要一兩個星期的時間。


了解上述內(nèi)容后,開始構(gòu)建自定義專有領(lǐng)域的LLM應(yīng)用程序吧!


原文標題:When Should You Fine-Tune LLMs?原文鏈接:https://medium.com/towards-data-science/when-should-you-fine-tune-llms-2dddc09a404a?source=explore---------8-58--------------------bbc182a3_471b_4f78_ad66_68a6b5de2c39-------15


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉