上一單元介紹了通用 LLM,也稱為:
- foundation LLM
- 基礎 LLM
- 預先訓練的 LLM
基礎 LLM 會以足夠的自然語言進行訓練,以便「瞭解」大量的語法、字詞和成語。基礎語言模型可以針對訓練的主題產生實用的句子。此外,基礎 LLM 還能執行傳統上稱為「創意」的特定工作,例如寫詩。不過,基礎 LLM 的生成文字輸出內容並非其他常見機器學習問題 (例如迴歸或分類) 的解決方案。針對這些用途,基礎 LLM 可做為平台而非解決方案。
如要將基礎 LLM 轉換為符合應用程式需求的解決方案,就必須進行「微調」程序。稱為「蒸餾」的次要程序會產生精細調整模型的較小版本 (參數較少)。
微調
研究顯示,基礎語言模型的模式辨識能力非常強大,有時只需相對較少的額外訓練,就能學習特定工作。這項額外訓練可協助模型針對特定任務做出更準確的預測。這項額外訓練稱為微調,可發揮 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。