iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
生成式 AI

VLM系列 第 25

Day 25 :VLM QLoRA Fine-Tuning (2/3)

  • 分享至 

  • xImage
  •  

準備資料集

使用 Hugging Face 的 llava-instruct-150k 作為範例(圖像-指令對)

from datasets import load_dataset
raw_datasets = load_dataset("HuggingFaceH4/llava-instruct-mix-vsft")

raw_datasets

(輸出結果,llava-instruct-150k資料集的格式:每一筆資料主要包含兩個欄位:image 和 messages)
https://ithelp.ithome.com.tw/upload/images/20251009/20178920IOXh8BMVP4.jpg

train_dataset = raw_datasets["train"]
eval_dataset = raw_datasets["test"]

# 練習用,只隨機選取一小部分資料做測試
small_train_dataset = train_dataset.shuffle(seed=42).select(range(int(len(train_dataset)*0.1)))
small_eval_dataset = eval_dataset.shuffle(seed=42).select(range(int(len(eval_dataset)*0.1)))

檢視資料內容

example = small_train_dataset[10]
images = example["images"]
images[0]

https://ithelp.ithome.com.tw/upload/images/20251009/20178920drn0IIz4V5.png

messages = example['messages']
messages

https://ithelp.ithome.com.tw/upload/images/20251009/20178920DTxmpaWy0g.png

格式說明:

  • image 欄位: 直接存放了圖片的物件(通常是 Python 的 PIL 圖像物件)。
  • messages 欄位: 這是一個列表(list),模擬了多輪對話的結構。
    • role:表示說話者的角色,"user" 代表使用者,"assistant" 代表模型。
    • content:這也是一個列表,用來容納多模態的輸入內容。
      • type: "text":表示這部分的內容是文字。
      • type: "image":這是一個佔位符,表示圖片應該被插入到對話的這個位置。訓練框架(如 TRL)會自動處理這個佔位符,將 image 欄位的圖片與之對應。

LLaVA 的對話格式需要符合特定的模板
格式: "USER: \n{question}\nASSISTANT: {answer}"
我們需要將資料集的每一筆資料轉換成這個格式


上一篇
Day 24 :VLM QLoRA Fine-Tuning (1/3)
系列文
VLM25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言