如何使用OpenAI Fine-tuning API微調GPT-3模型

https://platform.openai.com/docs/guides/fine-tuning(官方文檔)

​ 當我們使用語言模型時候,往往需要給多個例子供ai參考,才能給出更爲準確的回答,這種方法費時費力。而通過微調(Fine-tuning)能夠把原始模型打造成更加適合你的任務需求的模型。模型進行微調後,無需再在prompt中提供示例。這樣可以節省成本並實現更低的延遲請求。

模型微調可以簡單分爲以下三步:

  1. 準備訓練數據集

  2. 訓練一個新的微調模型

  3. 使用新的微調模型。

0.配置環境

首先,確保你已經安裝 Python(從 Python 官方網站下載適合本機的 Python 安裝程序)以及OpenAI 工具箱所依賴的‘panda’模塊(控制檯輸入pip install pandas安裝)

準備就緒後,在開始訓練數據之前,首先要配置好openai的環境

在控制檯中輸入

pip install --upgrade openai

完成後,輸入

set OPENAI_API_KEY="<OPENAI_API_KEY>"

如果指令無效,先查看openai工具箱有沒有正確下載;然後查看是不是自己的密鑰有沒有正確複製。檢查無誤後,如果依然不能運行,則可以嘗試在操作系統中設置全局環境變量

打開 Windows 控制面板,點擊"系統和安全" -> "系統" -> "高級系統設置" -> "環境變量",在系統變量中添加一個新的變量,變量名爲 OPENAI_API_KEY,變量值爲你的 OpenAI API 密鑰。

.asset

.asset

.asset

還可以嘗試在 Windows 中創建一個名爲 .openai 的文件夾,並在該文件夾中創建一個名爲 config.json 的文件。在 config.json 文件中輸入以下內容:

jsonCopy code{
  "api_key": "<OPENAI_API_KEY>",
  "models": {
    "davinci": "text-davinci-002",
    "curie": "text-curi-001",
    "babbage": "text-babbage-001",
    "ada": "text-ada-001",
    "content-filter-alpha-c4": "content-filter-alpha-c4"
  }
}

確保將 <OPENAI_API_KEY> 替換爲你的 OpenAI API 密鑰。

.openai 文件夾放在你的用戶主目錄下(例如 C:\Users\YourUserName)。

現在,你已經成功安裝 OpenAI 工具箱並設置了環境變量和配置文件。

1.準備訓練數據集

首先,訓練數據的最終形式必須是JSONL文檔的格式:

`{"prompt": "<prompt text>", "completion": "<ideal generated text>"}`
`{"prompt": "<prompt text>", "completion": "<ideal generated text>"}`
`{"prompt": "<prompt text>", "completion": "<ideal generated text>"}`
`...`

簡單地說,prompt可以理解爲問題(輸入),而completion則是標準答案(預期模型輸出),二者是一一對應的關係。

當然,我們的原始數據往往是csv/txt/xlsx等格式,openai開發了一個CLI 數據準備工具來驗證、提供建議和重新格式化您的數據:

openai tools fine_tunes.prepare_data -f <LOCAL_FILE>

此工具接受不同的格式傳遞CSV、TSV、XLSX、JSONJSONL文件,運行完畢後,它會將輸出保存到新創建的 JSONL 文件中,以便進行微調。

注意,要確認你在命令行中是否使用了正確的本地文件路徑。例如,如果你要準備的數據文件名爲 "data.csv",並且該文件位於當前終端窗口的工作目錄中,則應該使用以下命令:

openai tools fine_tunes.prepare_data -f data.csv

如果該文件不在當前工作目錄中,則應該使用完整路徑來指定文件位置,例如:

openai tools fine_tunes.prepare_data -f /path/to/data.csv

.asset

.asset

.asset

至此,我們就獲得了最終的訓練數據集。

2.訓練一個新的微調模型

接下來使用 OpenAI CLI 啓動微調作業:

openai api fine_tunes.create -t <TRAIN_FILE_ID_OR_PATH> -m <BASE_MODEL>

運行上述命令會執行以下幾項操作:

  1. 使用文件API 上傳文件(或使用已上傳的文件)

  2. 創建微調作業

  3. 流式傳輸事件,直到作業完成(這通常需要幾分鐘,但如果隊列中有許多作業或數據集很大,則可能需要數小時)

至此,屬於自己的新的微調模型已經訓練完成。

3.使用新的微調模型。

最後,打開官網中playground,在model中先選擇我們剛剛創建好的模型,嘗試輸入,觀察其輸出結果是否與預期一致:

(注意結尾要帶"->"作爲分隔符,同時不要有空格)

.asset

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章