在我們之前的入門指南中 GPT 3.5 微調,我們討論瞭如何為品牌創建自定義語氣成為微調的一個引人注目的用例。
回顧一下:
…微調是在新的、較小的數據集上訓練預先訓練的模型的過程,該數據集是針對特定任務或表現出某些行為而定制的。
在保持一致的品牌語氣的背景下,微調意味著我們不需要在 GPT 系統消息以獲得我們想要的結果。
相反,通過提供訓練示例並創建微調模型,我們可以通過特定的風格、語氣等獲得更可靠的輸出。
在本指南中,我們將逐步討論如何微調 GPT 3.5 保持語氣,包括:
- 定義我們的品牌基調和風格
- 創建微調數據集
- 創建微調作業
- 測試微調模型
讓我們開始吧。
第 1 步:定義我們的品牌語氣
首先,我們使用 ChatGPT 幫助定義品牌語氣。 為了進行微調,我們需要大約 50 到 100 個品牌聲音的示例,例如 OpenAI 強調:
要微調模型,您需要提供至少 10 個示例。 我們通常會看到通過對 50 到 100 個訓練示例進行微調可以得到明顯的改進 gpt-3.5-turbo
但根據具體的用例,正確的數字會有很大差異。
在我們開始創建數據集之前,我創建了一個簡單的品牌提示模板,將在下一節中使用:
當然,我們可以對此進行擴展,但這只是我們的開始。 為了 example:Old Spice 可能會使用以下品牌指南:
雖然微調對 Old Spice 來說當然有效,但我注意到,由於它是一個如此知名的品牌,基礎型號已經非常了解他們的品牌聲音,因此很難注意到性能的變化。 對於像這樣的較大品牌,您可能需要更多的訓練示例才能看到顯著的結果。
為了這 example,讓我們為我的網站 MLQ.ai 創建另一個品牌指南
筆記: 這完全是虛構的,不是我們真正的品牌聲音,我只是想創造一些對於微調模型來說很容易識別的東西。
第 2 步:創建訓練示例
好吧,現在我們已經有了品牌聲音的指南,讓我們為我們的微調模型創建 50 個訓練示例。 作為 OpenAI 寫道:
我們建議從 50 個精心設計的演示開始,看看模型在微調後是否顯示出改進的跡象。
現在,為了創建我們的微調訓練示例,我使用了以下提示模板並將其輸入 ChatGPT 以及上一步的品牌指南。
接著就,隨即, ChatGPT 現在將創建我們的訓練示例,如下所示:
{"messages": [{"role": "system", "content": "MLQ.ai is a quirky, playful, and informed chatbot focused on machine learning for quantitative finance."},
{"role": "user", "content": "Tell me about quantitative finance."},
{"role": "assistant", "content": "Quantitative finance is the data dance of the financial world! It's where math meets money, using algorithms and statistical models to make financial decisions. Feeling the beat yet?"}]}
{"messages": [{"role": "system", "content": "MLQ.ai is a quirky, playful, and informed chatbot focused on machine learning for quantitative finance."},
{"role": "user", "content": "How does ML fit into trading?"},
{"role": "assistant", "content": "Machine learning and trading? That's like the ultimate algorithmic antics! ML can analyze vast amounts of data quickly, spot patterns, and make predictions, giving traders a quirky edge in the market."}]}
步驟3: GPT 3.5 微調過程
好吧,現在我們有了 50 個訓練示例,讓我們開始微調過程,其中包括首先以 JSONL 格式保存示例。
檢查數據格式
接下來,我們將通過此運行我們的 JSONL 文件 數據格式化腳本,它返回以下內容:
我們可以看到我們的數據沒有問題,所以下一步是開始我們的微調工作。
創建微調作業
我們首先需要上傳文件進行微調,如下所示:
openai.File.create(
file=open("/content/mlq_brand.jsonl", "rb"),
purpose="fine-tune"
)
接下來,我們將創建微調作業,如下所示:
openai.FineTuningJob.create(training_file="file-abc123", model="gpt-3.5-turbo")
第 4 步:測試微調後的模型
一旦微調完成並且我們有了新模型,我們就可以在基礎上對其進行測試 GPT 3.5渦輪型號。
首先,讓我們測試基本模型,我將提供與訓練相同的系統消息,以查看其性能:
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "MLQ.ai is a quirky, playful, and informed chatbot focused on machine learning for quantitative finance."},
{"role": "user", "content": "Tell me about quantitative finance."}
]
)
print(completion.choices[0].message)
由此,我們看到我們得到了一個相當標準的 GPT 回應,沒有古怪或品牌語氣:
現在,讓我們使用經過微調的新模型進行測試:
completion = openai.ChatCompletion.create(
model="ft:gpt-3.5-turbo:my-org:custom_suffix:id",
messages=[
{"role": "system", "content": "MLQ.ai is a quirky, playful, and informed chatbot focused on machine learning for quantitative finance."},
{"role": "user", "content": "Tell me about quantitative finance."}
]
)
print(completion.choices[0].message)
不錯! 我們可以看到它顯然遵循了我們之前描述的品牌聲音。
概括: GPT 3.5 品牌聲音微調
正如我們所看到的,僅通過 50 個訓練示例,我們就可以看到微調模型與基本模型的響應存在明顯差異。
因此,無論您是想為自己的初創公司還是其他品牌微調模型,這顯然都是提示工程師工具包中的強大工具。
請繼續關注我們未來的指南,我們將在其中討論如何進行微調 GPT 3.5 用於結構化輸出格式。