Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

0 評論 4538 瀏覽 14 收藏 15 分鐘

作為開源大模型,Llama的能力不容小覷。本文總結了Llama3微調教程,教你如何打造自己的GPT。

隨著Llama 3的發布,國內各路英雄豪杰紛紛開啟了煉丹之旅。Llama-3 8b在驚人的15萬億令牌上訓練,而Llama-2僅為2萬億。毋庸置疑,Llama 3目前是開源大模型中能力最強的!其跑分成績已經趕上了GPT-4。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

然而,Llama的優勢不僅限于此。作為開源大模型,每個人都可以對其進行定制,這意味著相比GPT,它具有更強的定制性和安全性。Llama可應用于針對B端企業的自然語言處理、機器翻譯、文本生成、問答系統、聊天機器人等場景。

目前,我們主要通過微調(Fine-Tuning)來定制所需的模型。例如,Llama 3原生不支持中文,但我們可以通過微調讓它支持中文。

微調是指在已經經過大規模預訓練的基礎模型上,使用特定領域或任務的數據集對模型進行額外訓練,以適應特定任務或問題。微調過程通常包括在預訓練模型的基礎上進行少量迭代訓練,以調整模型參數,使其在特定任務上表現更好。

通過這個簡單的Llama 3微調案例,我們可以體驗整個大模型微調的過程。對于普通人來說,這是一個免費體驗算法工程師工作方式的機會;如果你想轉入AI行業,這也是一個很好的入門案例。

愿每個人都能從中受益,開啟自己的AI探索之旅!

接下來,你將學習如何進行環境配置、數據準備、模型訓練、模型運行、模型保存以及本地模型使用。在開始之前,讓我們先完成一些準備工作。

一、準備工作

1. 訪問Unsloth

目前,最簡單的方法是使用Unsloth,它是一個微調模型的集成工具。通過Unsloth微調Mistral、Gemma、Llama,速度提高2-5倍,內存減少70%!

訪問Unsloth的GitHub地址:https://github.com/unslothai/unsloth,點擊”??Start on Colab””即可打開Colab訓練腳本。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

為了方便大家快速上手,我已經將其翻譯成中文并簡化:https://colab.research.google.com/drive/1pvzl7E2rdTF7LkDQZOTyl32_Vu9Zwe4N?usp=sharing

如果你是初學者,建議使用我修改過的Colab筆記。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

2. 創建Colab筆記副本

使用Colab的好處是標準化的環境,免去了很多問題。我們先將筆記復制為副本,這樣它能保存到自己的Google Drive中。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

3. 連接T4 GPU

你可以免費使用Google提供的GPU資源,選擇連接T4。當連接成功后,就可以開始了。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

你也可以在彈框中選擇T4 GPU。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

當鏈接成功后,你就準備就緒了。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

4. 連接Google Drive

我們需要連接Google Drive,以便將訓練好的模型保存到云端。使用Colab非常簡單,你基本只需依次點擊運行每個代碼塊即可。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

5. 安裝Unsloth

點擊運行,這段代碼主要是安裝Unsloth和模型訓練相關的必要庫。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

展示執行時間表示已經執行過了。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

二、步入正題

一切準備就緒,我們要進入正式流程了

1. 選擇預訓練模型

這一段代碼主要用于選擇我們要訓練的模型,代碼中已經幫我們選擇好了”unsloth/llama-3-8b-bnb-4bit”。繼續點擊運行,等待模型下載完成。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

點擊之后,我們會看到它正在下載模型,需要等待它執行完畢。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

2. 配置LoRA參數

我們的微調是通過LoRA實現的。LoRA(Low-Rank Adaptation of Large Language Models)是大語言模型的低階適配器,用于在模型微調過程中只更新整個模型參數的一小部分,通常在1%到10%之間。

繼續點擊運行。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

3. 準備數據

微調模型最重要的是數據。這里我們使用yahma的Alpaca數據集,它包含52,000條由OpenAI的text-davinci-003引擎生成的指令和演示數據。這些指令數據可用于對語言模型進行指令調優,使其更好地遵循指令。

Alpaca的數據結構如下:

 

“instruction”: “描述原子的結構。”,
“input”: “”,
“output”: “原子是所有物質的基本組成部分,由三種類型的粒子組成:質子、中子和電子。原子的結構可以描述為中心有一個原子核,周圍環繞著電子云。原子核由質子和中子組成。質子是帶正電的粒子,中子是不帶電荷的中性粒子……”

每條數據,結構由三部分組成:instruction (指令)、input(輸入)和output(輸出),我們可以根據這個格式準備自己的數據集。

  1. instruction(指令):這部分定義了要求AI執行的任務或問題。它是一條明確的指示,告訴AI需要做什么。例如,”識別以下句子中的名詞”或”我應該投資股票嗎?”。
  2. input(輸入):這部分提供了執行指令所需的具體信息或上下文。在某些情況下,這個部分可能為空,表示指令本身已經包含了執行任務所需的所有信息。
  3. output(輸出):這部分是AI根據給定的指令和輸入生成的答案或結果。它是AI處理完輸入信息后的響應或解決方案。

繼續點擊播放,執行代碼。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

4. 訓練模型

現在讓我們使用Huggingface TRL的SFTTrainer庫來訓練模型,我們設置max_steps最大步數為60步來加快訓練速度,讓我們繼續無腦的點擊播放:

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

然后,就可以開始正式訓練模型了。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

5. 測試訓練效果

訓練完成后,我們可以測試模型效果。這里我們先讓它生成斐波那契數列(Fibonacci sequence)。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

你也可以更改指令instruction和輸入input,測試你想要的內容。但是注意需要使用英文。

另外,我們還可以使用流格式,像使用GPT一樣,一個個字地輸出。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

6. 保存模型和加載模型

目前,我們模型已經訓練好了,我們可以將剛剛訓練的LoRA保存下來。

6.1.保存和加載LoRA模型

點擊運行,將LoRA模型保存到Colab的臨時服務器中。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

訓練好的LoRA模型保存在lora_model文件夾中。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

如果你想加載剛剛訓練的LoRA模型進行測試,可以執行相應的代碼。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

6.2 保存為GGUF模型

目前較為常用的模型格式是GGUF,我們可以使用LM Studio在本地加載使用。

這段代碼可以將模型保存為不同的精度格式,建議使用Q4_K,生成的體積比較小,只有4GB。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

生成的模型在這里,但是直接下載比較難。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

我們可以執行這段代碼,將生成的模型移動到Google云端硬盤中,這樣下載更方便。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

移動完成后,訪問Google云端硬盤即可下載GGUF模型。

地址:https://drive.google.com/drive/my-drive

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

這樣我們微調的整個過程就完成了。恭喜你!

三、本地使用模型

1. 下載LM Studio的客戶端

訪問:https://lmstudio.ai 下載LM Studio的客戶端,它可以加載我們剛剛訓練的模型。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

2. 導入模型

將GGUF文件放到LM Studio的模型文件夾中。打開保存模型的文件夾目錄:models。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

在指定路徑中創建文件夾,目錄結構為llama3/model-unsloth/。在models文件夾中新建一個文件夾llama3,然后再創建一個模型文件夾model-unsloth,將下載的模型放進去。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

設置完成后,重啟LM Studio。

3. 開始聊天

選擇模型后,就可以開始聊天了。

Llama3微調教程:超簡單,人人都可以打造屬于自己的GPT!

總結

本教程詳細介紹了如何使用Unsloth和Google Colab環境對Llama 3進行微調。使用Colab基本上是無腦點擊運行就好了。

經過這個教程,我們發現微調模型主要有三個核心環節:

  1. 數據準備,這一步決定了質量;
  2. 模型訓練,這一步硬件資源決定了時間;
  3. 模型測試,因為我們初步體驗,所以比較簡略,后續可以進一步探討。

通過本教程,即使是AI領域的新手也能夠掌握大模型的微調技術。Unsloth不僅降低了技術門檻,也為個人和小團隊提供了強大的工具。后續還會討論更生深入話題。

專欄作家

PM熊叔,微信公眾號:PM熊叔,人人都是產品經理專欄作家。教育類產品產品經理出身,學過設計,做過開發,做過運營的產品經理。

本文原創發布于人人都是產品經理。未經許可,禁止轉載

題圖來自Unsplash,基于 CC0 協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!