智慧體課程文件
為函式呼叫微調模型
並獲得增強的文件體驗
開始使用
為函式呼叫微調模型
我們現在準備好為函式呼叫微調我們的第一個模型了 🔥。
我們如何訓練模型進行函式呼叫?
答案:我們需要資料
模型訓練過程可分為 3 個步驟
模型在大規模資料上進行預訓練。該步驟的輸出是一個預訓練模型。例如,google/gemma-2-2b。它是一個基礎模型,只知道如何預測下一個 token,不具備強大的指令遵循能力。
為了在聊天語境中發揮作用,模型需要微調以遵循指令。在這一步,它可以由模型建立者、開源社群、您或任何其他人進行訓練。例如,google/gemma-2-2b-it 是由 Gemma 專案背後的 Google 團隊進行指令微調的模型。
然後,模型可以根據建立者的偏好進行對齊。例如,一個客戶服務聊天模型必須永遠不對客戶無禮。
通常,像 Gemini 或 Mistral 這樣的完整產品會經歷所有 3 個步驟,而您在 Hugging Face 上找到的模型已經完成了這些訓練的一個或多個步驟。
在本教程中,我們將基於 google/gemma-2-2b-it 構建一個函式呼叫模型。我們選擇微調模型 google/gemma-2-2b-it 而不是基礎模型 google/gemma-2-2b,因為微調模型已經針對我們的用例進行了改進。
從預訓練模型開始將需要更多的訓練才能學習指令遵循、聊天和函式呼叫。
透過從指令微調模型開始,我們最大限度地減少了模型需要學習的資訊量。
LoRA(大型語言模型的低秩適應)
LoRA 是一種流行且輕量級的訓練技術,可顯著減少可訓練引數的數量。
它的工作原理是向模型中插入少量新的權重作為介面卡進行訓練。這使得使用 LoRA 進行訓練更快、記憶體效率更高,併產生更小的模型權重(幾百兆位元組),這些權重更容易儲存和共享。

LoRA 透過向 Transformer 層新增成對的秩分解矩陣來工作,通常專注於線性層。在訓練過程中,我們將“凍結”模型的其餘部分,並且只更新這些新新增的介面卡的權重。
透過這樣做,我們需要訓練的引數數量大大減少,因為我們只需要更新介面卡的權重。
在推理過程中,輸入被傳遞到介面卡和基礎模型中,或者這些介面卡權重可以與基礎模型合併,從而不會產生額外的延遲開銷。
LoRA 對於使大型語言模型適應特定任務或領域特別有用,同時保持資源需求可管理。這有助於減少訓練模型所需的記憶體。
如果您想了解更多關於 LoRA 如何工作的資訊,您應該檢視此教程。
為函式呼叫微調模型
您可以訪問教程筆記本 👉 此處。
然後,點選 ,以便在 Colab Notebook 中執行它。