大型語言模型:微調、精煉和提示工程

上一個單元描述了一般用途 LLM,分別稱為:

  • foundation LLM
  • 基礎 LLM
  • 預先訓練的 LLM

基礎 LLM 使用足夠的自然語言訓練出「瞭解」文法、字詞和慣用語。基礎語言模型可以針對訓練用的主題產生實用的語句。此外,基礎 LLM 可執行傳統 稱為「創意」的特定工作,例如寫詩。不過,基礎 LLM 的生成文字輸出內容並非其他常見機器學習問題 (例如迴歸或分類) 的解決方案。針對這些用途,基礎 LLM 可做為平台而非解決方案。

如要將基礎 LLM 轉換為符合應用程式需求的解決方案,就必須進行「微調」程序。稱為「蒸餾」的次要程序會產生精細調整模型的較小版本 (參數較少)。

微調

研究顯示,基礎語言模型的模式辨識能力非常強大,有時需要相對較少的訓練才能學習特定工作。這項額外訓練可協助模型針對特定任務做出更準確的預測。這項額外訓練稱為微調,可發揮 LLM 的實際效用。

精細調整會針對應用程式要執行的任務專門訓練的範例。工程師有時只需幾百或幾千個訓練樣本,就能精細調整基礎 LLM。

儘管訓練樣本數量相對較少,但標準微調通常計算所費不貲。這是因為標準微調會在每個backpropagation迭代中更新每個參數的權重和偏差。幸好,參數高效調整程序更聰明,可以在每個反向傳播疊代作業中只調整參數「部分」,藉此微調 LLM。

經過微調的模型預測結果通常會優於基礎 LLM 的預測結果。不過,微調模型包含的參數數量與基礎 LLM 相同。因此,如果基礎 LLM 包含十億個參數,微調後的版本也會包含十億個參數。

蒸餾

大多數經過精細調整的大型語言模型都含有大量參數。因此,基礎 LLM 需要龐大的運算和環境資源來產生預測。請注意,這些參數的大部分內容通常與特定應用程式無關。

精煉作業可建立較小的 LLM。精煉的 LLM 產生預測結果的速度比完整 LLM 更少,所需的運算和環境資源也較少。然而,精煉後模型的預測通常不如原始 LLM 的預測結果好。提醒您,與使用較少參數的 LLM 相比,含有較多參數的 LLM 通常能產生更優質的預測。

提示工程

提示工程可讓 LLM 的使用者自訂模型輸出內容。也就是說,使用者必須明確說明 LLM 應如何回應提示。

人類從例子中學習得很好。LLM 也是如此向 LLM 顯示一個範例稱為單樣本提示。舉例來說,假設您希望模型使用下列格式輸出水果的科別:

使用者輸入水果名稱:大型語言模型會輸出該水果的類別。

單樣本提示會向 LLM 顯示上述格式的單一範例,然後要求 LLM 根據該範例完成查詢。例如:

peach: drupe
apple: ______

有時只要提供一個範例就足夠了。如果是,LLM 就會輸出實用的預測結果。例如:

apple: pome

在其他情況下,單一示例是不夠的。也就是說,使用者必須顯示 LLM 的「多個」範例。例如,下列提示包含兩個範例:

plum: drupe
pear: pome
lemon: ____

提供多個範例的做法稱為少量樣本提示。您可以將前述提示的前兩行視為訓練範例。

LLM 是否可以在沒有任何範例的情況下提供實用的預測結果 (零樣本提示)?有時會,但大型語言模型喜歡上下文。在沒有上下文的情況下,下列零樣本提示可能會傳回技術公司而非水果的資訊:

apple: _______

離線推論

LLM 中的參數數量有時會非常龐大,因此線上推論的速度太慢,無法用於迴歸或分類等實際任務。因此,許多工程團隊改為使用離線推論 (也稱為大量推論靜態推論)。換句話說,訓練過的模型會預先進行預測,然後快取這些預測資料,而不是在服務期間回應查詢。

如果 LLM 只需要每週或每月執行一次工作,即使 LLM 需要花費很長的時間才能完成工作,也不會有問題。

舉例來說,Google 搜尋使用 LLM 執行離線推論,以便快取超過 800 個 COVID-19 疫苗同義詞的清單,涵蓋 50 多種語言。Google 搜尋服務接著使用快取清單,在即時流量中找出與疫苗相關的查詢。

以負責任的態度使用 LLM

和任何形式的機器學習一樣,LLM 通常會出現以下偏差:

  • 訓練資料。
  • 萃取資料的來源。

請依據本課程先前介紹的課程,以公平且負責任的方式使用 LLM。

練習:檢查您的理解程度

以下哪個敘述是關於 LLM 的正確描述?
經過精煉的 LLM 包含的參數數量少於從基礎語言模型中擷取的參數。
是,精煉作業會減少參數的數量。
經過微調的 LLM 所含參數少於用於訓練的基礎語言模型。
精修模型包含與原始基礎語言模型相同數量的參數
當使用者執行更多提示工程作業,大型語言模型中的參數數量就會增加。
提示工程不會新增 (或移除或變更) LLM 參數。