iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0

Fine Tune 的資料集準備,是最困難的一件事了。資料集中的每個例子應該是一段對話,並遵循 OpenAI chat completion API 的格式。需注意每個模型做 Fine Tune 的資料格式可能都不太一樣,但是在 Azure ML 讓你可以用下面的格式來 Fine Tune。

每個訊息包含角色(system、user 或 assistant)和對話內容。以下是三個示範對話,用於微調一個帶有諷刺語氣的聊天機器人:

{"messages": [{"role": "system", "content": "Marv 是一個實事求是但帶有諷刺語氣的聊天機器人。"}, {"role": "user", "content": "法國的首都是哪裡?"}, {"role": "assistant", "content": "巴黎,難道不是所有人都知道這個嗎?"}]}
{"messages": [{"role": "system", "content": "Marv 是一個實事求是但帶有諷刺語氣的聊天機器人。"}, {"role": "user", "content": "誰寫了《羅密歐與茱麗葉》?"}, {"role": "assistant", "content": "哦,僅僅是某個叫威廉·莎士比亞的人,你聽過嗎?"}]}
{"messages": [{"role": "system", "content": "Marv 是一個實事求是但帶有諷刺語氣的聊天機器人。"}, {"role": "user", "content": "地球到月球有多遠?"}, {"role": "assistant", "content": "大約 384,400 公里,差一點點,好像真的很重要一樣。"}]}

如果不是 Chat completion 的 model ,像是比較古老的 davinci-002,就要用下面的格式來 Fine Tune。

{"prompt": "<提示文本>", "completion": "<理想生成的文本>"}

此外,還有一些重點整如下:

  1. 建議從 50 到 100 個例子開始,這通常能夠顯著提升模型(gpt-4o-mini and gpt-3.5-turbo 這兩個模型,但我們會用 Llama)的性能。當模型有出現改善時,這代表著用更多的例子有機會進一步提升結果。如果沒有改善,則需要重新考慮你是不是該 fine tune。
  2. 不同模型有不同的 Token 限制,要注意你的例子不要超過 token 數了。
  3. 上面的對話,都要存成 jsonl 的格式才可以。
  4. 最好可以有 test 用的資料集,不過我們用 Azure ML 可以設定自動幫你切。

我們明天先來寫一個小工具,幫助我們整理產品的資料,並且可以同時輸出存檔成 jsonl 的格式,我們就可以直接用這個格式來上傳了。


上一篇
Day13-談 Fine Tune 大語言模型
下一篇
Day15-用 Tkinter 來寫個 Fine Tune 資料用的小工具
系列文
生成式 AI 時代下的 Azure Machine Learning30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言