智慧體課程文件

為函式呼叫微調模型

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

為函式呼叫微調模型

我們現在準備好為函式呼叫微調我們的第一個模型了 🔥。

我們如何訓練模型進行函式呼叫?

答案:我們需要資料

模型訓練過程可分為 3 個步驟

  1. 模型在大規模資料上進行預訓練。該步驟的輸出是一個預訓練模型。例如,google/gemma-2-2b。它是一個基礎模型,只知道如何預測下一個 token,不具備強大的指令遵循能力

  2. 為了在聊天語境中發揮作用,模型需要微調以遵循指令。在這一步,它可以由模型建立者、開源社群、您或任何其他人進行訓練。例如,google/gemma-2-2b-it 是由 Gemma 專案背後的 Google 團隊進行指令微調的模型。

  3. 然後,模型可以根據建立者的偏好進行對齊。例如,一個客戶服務聊天模型必須永遠不對客戶無禮。

通常,像 Gemini 或 Mistral 這樣的完整產品會經歷所有 3 個步驟,而您在 Hugging Face 上找到的模型已經完成了這些訓練的一個或多個步驟。

在本教程中,我們將基於 google/gemma-2-2b-it 構建一個函式呼叫模型。我們選擇微調模型 google/gemma-2-2b-it 而不是基礎模型 google/gemma-2-2b,因為微調模型已經針對我們的用例進行了改進。

從預訓練模型開始將需要更多的訓練才能學習指令遵循、聊天和函式呼叫

透過從指令微調模型開始,我們最大限度地減少了模型需要學習的資訊量

LoRA(大型語言模型的低秩適應)

LoRA 是一種流行且輕量級的訓練技術,可顯著減少可訓練引數的數量

它的工作原理是向模型中插入少量新的權重作為介面卡進行訓練。這使得使用 LoRA 進行訓練更快、記憶體效率更高,併產生更小的模型權重(幾百兆位元組),這些權重更容易儲存和共享。

LoRA inference

LoRA 透過向 Transformer 層新增成對的秩分解矩陣來工作,通常專注於線性層。在訓練過程中,我們將“凍結”模型的其餘部分,並且只更新這些新新增的介面卡的權重。

透過這樣做,我們需要訓練的引數數量大大減少,因為我們只需要更新介面卡的權重。

在推理過程中,輸入被傳遞到介面卡和基礎模型中,或者這些介面卡權重可以與基礎模型合併,從而不會產生額外的延遲開銷。

LoRA 對於使大型語言模型適應特定任務或領域特別有用,同時保持資源需求可管理。這有助於減少訓練模型所需的記憶體。

如果您想了解更多關於 LoRA 如何工作的資訊,您應該檢視此教程

為函式呼叫微調模型

您可以訪問教程筆記本 👉 此處

然後,點選 在 Colab 中開啟,以便在 Colab Notebook 中執行它。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.