OpenA對GPT-3.5 開放微調 API,允許 AI開發人員通過專門的數據在專門的任務上實現更高的性能。OpenAI聲稱,最終的定制模型在某些特定任務上可以匹配或超過GPT-4的能力。也就是說,每個企業或個人將擁有自己的專屬OpenAI。
OpenAI 的大語言模型 ChatGPT 已經在大量文本上進行了預訓練,而微調可以讓其更適合特定的應用場景。微調的步驟包括:準備和上傳數據;訓練新的微調模型;評估結果,并在需要時繼續迭代;微調結束后使用模型。
在準備數據階段,OpenAI對數據集以及內容格式有一定的要求。首先要求數據集為JSONL 格式,數據格式如下:
![]()
如果是對話式聊天格式,且預訓練模型為 gpt-3.5-turbo、babbage-002 和 davinci-002也可以按照下面的數據格式進行微調。
![]()
準備好數據集之后,需要將數據集切分成訓練數據集和測試數據集。而每條訓練數據的大小也受到基礎模型的限制。對于 gpt-3.5-turbo-0125,每個訓練樣本限制為 16385 個Token;對于 gpt-3.5-turbo-0613,每個訓練樣本限制為 4096個 Token。超過最大長度限制的部分將被截斷。
在進行微調之前,可以先使用數據集格式驗證工具對數據集進行檢查,以驗證數據集中的每個對話是否都符合微調接口所要求的格式;還可以通過一些輕量級分析,提前識別數據集中存在的問題,例如缺少系統/用戶消息等,并提供對消息數和Token數的統計分析,用來估算微調成本。
下面將通過使用 Fine-Tuning UI、CLI命令和 API的方式來介紹 OpenAl的微調。
1.使用Fine-Tuning Ul 微調
OpenAl 支持通過 Fine-Tuning UI進行大語言模型的微調。如果要進入 OpenAI 的微調Web 頁面,需要打開相應的頁面(https://platform.openai.com/finetune),在左側的導航欄單擊"Fine-tuning"即可,如以下圖所示。
![]()
在 Fine-tuning 頁面中,左側展示可微調的所有任務,右側展示選中任務的詳細信息單擊“+Create”按鈕就可以創建微調任務,如下圖所示。在創建微調任務的頁面,完成微調任務的創建需要如下幾個步驟:
![]()
選擇基礎大模型:OpenAI提供的基礎模型有 babbage-002、davinci-002、gpt-3.5-turbo-0125、gpt-3.5-turbo-0613 和 gpt-3.5-turbo-1106。添加訓練數據集:可以上傳或者選擇一個已經存在的json1文件。添加驗證數據集:可以上傳或者選擇一個已經存在的.jsonl 文件。設置模型后綴:給輸出的模型添加一個自定義的后綴。
設置隨機種子:隨機種子用來控制任務的可重復性。如果未設置種子,則會自動生成一個。
配置超參數:超參數需要設置批大小、學習率和訓練周期,默認值都是 auto。
創建微調任務:完成上面的步驟后,單擊“Create”即可完成訓練任務的創建。
評估微調結果:通過監控微調過程,確定使用模型,還是重新迭代。
使用微調模型:完成微調之后,就可以使用微調模型了。
2.使用CLI 命令微調
OpenAI提供了命令行工具,可以幫助我們快速處理數據集、操作文件、創建微調任務和使用模型等,下面介紹一些常用的命令行工具。
使用命令行工具需要先安裝 openai庫,代碼如下:
pip3 install --upgrade openai在需要運行的環境(Linux、macOs)中,配置 OpenAl 的 api key,代碼如下:
export OPEN_API_KEY="自己的api key"使用幫助工具查看 tools 和 api 分別支持的相關命令,代碼如下:* *
openai tools-h或openai tools --help openai api -h或openai api --help從幫助工具的查看結果可以發現,命令行工具支持圖像、音頻、文件和模型等,具體使用方法見表:
![]()
使用 prepare data 進行數據的準備,參數 -f用于指定本地的數據,代碼如下:* *
openai tools fine_tunes.prepare_data -f ./tmp/data.txt準備數據的過程,會對本地數據進行分析和處理,最終生成一個新的JSONL格式的文件,如下圖所示。
![]()
使用 fles.create 方法將數據上傳到 OpenAI服務器,參數-p用于指定文件的用途(purpose),如fine-tune、answers 和search,代碼如下:* *
openai api files.create -f ./training_data.jsonl -p fine-tune創建微調任務,參數 -t用于指定訓練數據集,--model用于指定基礎模型,代碼如下:
openai api fine_tunes.create -t 訓練文件ID --model 選擇的基礎模型查看所有微調任務及其狀態信息,代碼如下:
openai api fine_tunes.list根據任務ID,查看微調任務的詳細信息,代碼如下:
openai api fine_tunes.get -i 微調任務ID當微調任務結束并完成模型評估后,就可以使用微調后的模型了,代碼如下:
openai api completions.create -m 模型名稱 -p 提示詞還可以添加更多參數來控制文本的生成,如最大生成長度、溫度和生成數量等,代碼如下:* *
openai api completions.create -m 模型名稱-p 提示詞 --max-tokens 100 --temperature 0.7 --n 1通過上述示例可以看出,使用 OpenAI的 CLI命令工具,用戶可以很方便地創建微調任務,包括準備和上傳數據集文件、創建微調任務、檢查任務狀態和使用模型等。
3.使用API微調
對于大多數開發者而言,使用 Fime-Tuning Ul和 CLI命令微調僅用于測試。在實際的生產環境中,需要通過編程實現微調。為此,OpenAI提供了相關的 API。先初始化 OpenAI的客戶端,配置自己的 api key,代碼如下:* *
from openai import OpenAIapi key = "填寫自己申請的 OpenAI的 api key" client = OpenAI(api key=api key)假設已經準備好微調的數據集為 mydata.jsonl文件,將 mydata.json 文件上傳到 OpenAI服務器,并指定目的是fine-tune,代碼如下:
data_file_path ="mydata.jsonl" client.files.create(file=open(data_file_path, "rb"), purpose="fine-tune")根據數據集返回的文件ID,基于基礎模型 gpt-3.5-turbo 創建一個微調任務,代碼如下:
file_id ="file-xxx" client.fine_tuning.jobs.create(training_file=file_id, model="gpt-3.5-turbo", suffix="2024-07-10")可以對微調任務進行列出、查詢和取消等一系列操作,代碼如下:
client.fine_tuning.jobs.list(limit=5) fine_tuning_job_id = "ftiob-xxx" client.fine_tuning.jobs.retrieve(fine_tuning_job_id) client.fine_tuning.jobs.cancel(fine_tuning_job_id) client.fine_tuning.jobs.list_events(fine_tuning_job_id=fine_tuning_job_id, limit=5)微調和評估結束后,就可以使用微調出的模型了,代碼如下:
model = "ft:gpt-3.5-turbo:demo:suffix:2024-07-10" completion = client.chat.completions.create( model=model, messages=[ {"role": "system", "content": "你是一個虛擬助手。"}, {"role": "assistant", "content": "您好。"}, {"role": "user", "content": "您好。"} ] )本節介紹了 3種用于 ChatGPT 微調的方法:Fine-Tuning UI、CLI命令和 API。雖然這三種方法可以滿足大部分需求,但它們僅依賴于 ChatGPT。本節內容不僅適用于大多數場景,還可以作為了解和使用 ChatGPT的基礎。然而,為了滿足更多更復雜的使用場景,接下來我們將探討一些其他的微調最佳實踐。這些實踐將幫助你更靈活地利用大語言模型。以實現更出色的性能和更廣泛的應用。
注:本文節選自機械工業出版社出版的《Python大模型應用開發:核心技術與項目實戰》,略有改動,以紙質書出版為準。
編輯推薦
(1)打通完整Python開發鏈條:系統梳理大模型應用開發全流程,涵蓋分詞、詞嵌入、向量數據庫、提示詞工程、模型微調與部署等關鍵技術,幫助開發者構建成體系的技能框架。
(2)主流工具一網打盡:聚焦Hugging Face、LangChain、RAG等當前最熱門的大模型開發框架,講解其原理與實操方法,配合可運行的代碼與實戰案例,快速上手、易于應用。
(3)項目實戰導向,深度挖掘數字人場景:通過多個數字人電商項目實戰,完整展示智能系統構建方式,貼近熱門應用場景,增強實戰價值與可落地性。
(4)內容循序漸進,初學與進階開發者友好:全書由淺入深、結構清晰,從基礎認知到高級實戰,兼顧知識體系構建與動手能力提升,既適合AI開發初學者,也能幫助有經驗的工程師補齊短板。
(5)作者技術實力深厚,經驗提煉與代碼實操雙助力:作者傾力總結多年AI架構實戰經驗,結合真實項目中的痛點問題,提供一線開發技巧與工程化思維,幫助開發者在實踐中掌握大模型開發的“術”與“道”。
編輯推薦
(1)體系完整,循序漸進:從零基礎認知到核心原理,再到開發、部署與運維,全流程掌握智能體的全棧知識體系。
(2)案例驅動,實操為王:融合GPTs、LangChain、LlamaIndex等熱門技術,配套“即插即用”示例代碼與真實行業案例,快速落地。
(3)應用廣泛,價值突顯:覆蓋教育、科研、醫療、設計、零售等場景,既能助新手入門,也能為開發者和創業者提供創新思路與商業機會。
![]()
今日互動
大模型時代,程序員的職業發展面臨哪些轉變?
在留言區參與互動,我們將選取3名幸運讀者各獲得贈書1本(上面兩本,2選1),截止時間為2025年10月17日。(參與要求:2025年10月14日之前已關注“Ai學習的章北海”公眾號)
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.