使用 AutoTrain 微调 PaliGemma
在这篇博客中,我们将探讨如何使用 AutoTrain 对 PaliGemma 模型进行微调,以完成视觉问答 (VQA) 和图像描述 (captioning) 任务。
AutoTrain 是一个无代码解决方案,旨在为数据科学家、机器学习工程师和爱好者简化工作流程。它允许您无需编写任何代码即可训练 (几乎) 任何最先进的模型。要开始使用 AutoTrain,请查看 文档 和 Github 仓库。
数据集
您可以使用来自 Hub 的数据集或本地数据集。
Hub 数据集
Hub 数据集的格式应如下:
我们感兴趣的列是:
- image: 图像 (
image
) - question: 问题 (
prompt_text_column
) - multiple_choice_answer: 答案 (
text_column
)
注意:对于 VQA 任务,我们使用以上三列。对于图像描述任务,我们只使用 image
和 text_column
列。
本地数据集
如果使用本地数据集,其格式应如下:
train/
├── 0001.png
├── 0002.png
├── 0003.png
├── .
├── .
├── .
└── metadata.jsonl
其中 metadata.jsonl 的内容如下:
{"file_name": "0001.jpg", "question": "What vehicles are shown?", "multiple_choice_answer": "motorcycles"}
{"file_name": "0002.jpg", "question": "Is the plane upside down?", "multiple_choice_answer": "no"}
{"file_name": "0003.jpg", "question": "What is the boy doing?", "multiple_choice_answer": "batting"}
metadata.jsonl
必须包含 file_name
列,您可以更改其他列的名称。
如果您有验证数据,可以添加一个与上述格式相同的文件夹。
注意:使用 AutoTrain UI 时,文件夹需要被压缩成 ZIP 文件。当 train.zip 被解压时,它应该包含所有图像和 metadata.jsonl 文件,不能有任何文件夹或子文件夹。
本地训练
在本地,autotrain 可以在 UI 模式或 CLI 模式下使用。
要安装 autotrain,请使用 pip 命令:
$ pip install -U autotrain-advanced
安装完成后,您可以使用以下命令启动 UI:
$ autotrain app
使用 CLI/config 训练
要使用配置文件进行训练,请创建一个名为 config.yml
的文件,内容如下:
task: vlm:vqa
base_model: google/paligemma-3b-pt-224
project_name: autotrain-paligemma-finetuned-vqa
log: tensorboard
backend: local
data:
path: abhishek/vqa_small
train_split: train
valid_split: validation
column_mapping:
image_column: image
text_column: multiple_choice_answer
prompt_text_column: question
params:
epochs: 3
batch_size: 2
lr: 2e-5
optimizer: adamw_torch
scheduler: linear
gradient_accumulation: 4
mixed_precision: fp16
peft: true
quantization: int4
hub:
username: ${HF_USERNAME}
token: ${HF_TOKEN}
push_to_hub: true
以上配置使用了来自 Hub 的数据集,如果使用本地数据集,请更改以下内容:
data:
path: local_dataset_folder_path # where training and validation (optional) folders are
train_split: train # name of training folder
valid_split: validation # name of validation folder or none
column_mapping:
image_column: image
text_column: multiple_choice_answer
prompt_text_column: question
请仔细检查列的映射关系!
完成后,运行:
$ export HF_USERNAME=your_hugging_face_username
$ export HF_TOKEN=your_hugging_face_write_token
$ autotrain --config path_to_config.yml
然后等待并观察训练进度 :)
使用 UI 训练
这是使用 HuggingFace Hub 数据集的 UI 截图:
这是使用本地数据集的截图:
再次强调,请特别注意列的映射关系 ;)
最后,您的模型可以被推送到 Hub (由您选择),然后就可以使用了。如果遇到任何问题,请在 Github 问题跟踪器上提问:这里。
祝您 AutoTraining 愉快!🤗