預訓練、微調和上下文學習
最近語言模型在自然語言理解和生成方面取得了顯著進展。這些模型通過預訓練、微調和上下文學習的組合來學習。在本文中將深入研究這三種主要方法,瞭解它們之間的差異,並探討它們如何有助於語言模型的學習過程。
預訓練
預訓練(Pre-training)是語言模型學習的初始階段。 在預訓練期間,模型會接觸到大量未標記的文本數據,例如書籍、文章和網站。 在大量未標記文本數據上訓練語言模型。 比如說在包含數百萬本書、文章和網站的數據集上預訓練像 GPT-3 這樣的語言模型。 預訓練目標是捕獲文本語料庫中存在的底層模式、結構和語義知識。
主要特點:
預訓練模型作爲廣泛的自然語言處理任務的基礎,例如文本分類、命名實體識別和情感分析。因爲它們提供了對語言的一般理解,並且可以針對特定的下游任務進行微調。
預訓練的主要下游任務如下:
微調
微調(Fine-Tuning)是在特定任務或領域上進一步訓練大型語言模型(LLM)的過程。這可以通過使用預訓練的LLM作爲起點,然後在特定任務或領域的標記數據集上訓練它來完成。微調可以通過調整模型的權重來更好地擬合數據,從而提高LLM在特定任務或領域上的性能。
監督微調(Supervised Fine-Tuning)
SFT使用標記數據來訓練LLM。標記的數據由輸入和輸出數據對組成。輸入數據是LLM將得到的數據,輸出數據是LLM期望生成的數據。SFT是一種相對簡單和有效的方法來微調LLM。
基於人類反饋的強化學習(Reinforcement Learning from Human Feedback)
RLHF使用人類反饋來訓練LLM。反饋可以通過多種方式收集,例如調查、訪談或用戶研究。RLHF是一種更復雜、更耗時的方法來微調LLM,但它比SFT更有效。
應該使用哪種方法?
微調 LLM 的最佳方法取決於許多因素,例如標記數據的可用性、可用時間和資源以及所需的性能。 如果有很多可用的標記數據,SFT 是一個不錯的選擇。但是如果沒有可用的標記數據,或者如果需要將 LLM 的性能提高到 SFT 無法達到的水平,RLHF 是一個不錯的選擇,但是RLHF 需要更多的事件和後期的人工參與。
微調的好處
微調可以提高 LLM 在特定任務或領域上的性能,可以爲自然語言生成、問答和翻譯等任務帶來更好的結果。 微調還可以使 LLM 更具可解釋性,這有助於調試和理解模型的行爲。
所以Fine-tuning 是語言模型學習過程中的後續步驟。 在經過預訓練後,模型根據特定於任務的標記數據進行微調,以使其知識適應特定的下游任務。
微調使模型能夠在各種特定的自然語言處理任務中表現出色,包括情感分析、問題回答、機器翻譯和文本生成。像BERT這樣的預訓練語言模型可以在標有積極或消極情緒的客戶評論數據集上進行微調。一般的微調任務如下:
上下文學習
上下文學習(In-Context Learning)也可以翻譯成情境學習:是一種新興的方法,它結合了預訓練和微調,同時在訓練過程中結合特定任務的指令或提示。模型學會根據給定的指令生成與上下文相關的響應或輸出,從而提高它們在特定任務中的表現。
隨着大模型(GPT3,Instruction GPT,ChatGPT)的橫空出世,如何更高效地提示大模型也成了學術界與工業界的關注,因此 In-context learning 的方法在 NLP 領域十分火熱。
ICL的關鍵思想是從類比中學習。上圖給出了一個描述語言模型如何使用 ICL 進行決策的例子。首先,ICL 需要一些示例來形成一個演示上下文。這些示例通常是用自然語言模板編寫的。然後 ICL 將查詢的問題(即你需要預測標籤的 input)和一個上下文提示(一些相關的 cases)連接在一起,形成帶有提示的輸入,並將其輸入到語言模型中進行預測。
上下文提示:上下文學習包括提供明確的指令或提示,以指導模型在生成響應或輸出時的行爲。
強化學習或結構化反饋:上下文學習可以結合強化學習技術或結構化反饋來指導模型的響應。
迭代訓練:模型經歷多次迭代訓練,接收反饋並根據提供的提示改進它們的響應。
上下文學習在各種任務中顯示出有希望的結果,包括問題回答,對話系統,文本完成和文本摘要。它允許模型生成上下文一致的和特定於任務的輸出。
上下文學習與預訓練和微調的關係
預訓練側重於從大規模未標記數據中進行無監督學習,獲取一般語言理解。微調建立在預訓練的基礎上,並使用特定於任務的標記數據使模型適應特定的任務,從而實現專門的性能。上下文學習在訓練過程中包含特定於任務的指令或提示,指導模型的行爲並提高任務性能。
上下文學習包括訓練語言模型,以根據特定的指令或提示生成與上下文相關的響應。主要訓練語言模型以禮貌和有用的方式生成對客戶查詢的響應
總結
語言模型通過預訓練、微調和上下文學習的結合來學習。預訓練捕獲一般的語言理解,微調專門針對特定任務的模型,而上下文學習包含特定任務的指令以提高性能。理解這些方法可以深入瞭解語言模型學習過程中涉及的不同階段和技術,從而使它們能夠有效地應用於各種自然語言處理任務。
https://avoid.overfit.cn/post/6a45189633a94969b7f1ecd90181a9be
作者:Bijit Ghosh