Hugging Face 视觉模型训练器 是做什么的?
使用 Hugging Face Transformers 在 Hugging Face Jobs 上训练和微调视觉模型,支持目标检测(D-FINE、RT-DETR v2、DETR、YOLOS)、图像分类(timm 模型 — MobileNetV3、MobileViT、ResNet、ViT/DINOv3 — 以及任何 Transformers 分类器)和 SAM/SAM2 分割。
工作原理
该技能通过 Hugging Face Jobs API 提交训练作业。您需要准备一个包含训练配置的 JSON 或 YAML 文件,然后调用 submit_job 函数。
支持的平台
- Hugging Face Jobs: 所有训练作业在 Hugging Face 的托管基础设施上运行。
先决条件
- 一个 Hugging Face 令牌(
HF_TOKEN环境变量)。 - 训练数据已上传到 Hugging Face 数据集或 Hub。
快速开始
-
克隆仓库:
git clone https://huggingface.co/dhar174/hugging-face-vision-trainer cd hugging-face-vision-trainer -
设置环境变量:
export HF_TOKEN="your_hf_token_here" -
创建配置文件
config.json:{ "model_name": "hustvl/yolos-tiny", "task": "object-detection", "dataset_name": "my-dataset", "output_dir": "./output", "num_train_epochs": 3, "per_device_train_batch_size": 8 } -
提交作业:
python submit_job.py config.json
配置参数
| 参数 | 类型 | 描述 |
|---|---|---|
model_name | 字符串 | 来自 Hugging Face Hub 的模型 ID |
task | 字符串 | 视觉任务(object-detection、image-classification、segmentation) |
dataset_name | 字符串 | 数据集名称或路径 |
output_dir | 字符串 | 模型保存目录 |
num_train_epochs | 整数 | 训练轮数 |
per_device_train_batch_size | 整数 | 每个设备的批次大小 |
示例
目标检测(使用 D-FINE)
{
"model_name": "hf-tiny-model-private/tiny-random-dinov2-detr",
"task": "object-detection",
"dataset_name": "my-detection-dataset",
"output_dir": "./detection-output"
}
图像分类(使用 timm 模型)
{
"model_name": "timm/mobilenetv3_large_100",
"task": "image-classification",
"dataset_name": "my-classification-dataset",
"num_train_epochs": 5
}
分割(SAM2)
{
"model_name": "facebook/sam2-hiera-tiny",
"task": "segmentation",
"dataset_name": "my-segmentation-dataset"
}
故障排除
- 认证错误: 确保
HF_TOKEN环境变量已正确设置。 - 数据集未找到: 验证数据集是否公开或您是否拥有访问权限。
- 内存不足: 减少批量大小或使用更小的模型。
附加说明
- 训练日志和检查点会自动保存到
output_dir。 - 作业状态可通过 Hugging Face Jobs 仪表板监控。
- 修改
config.json中的hyperparameters字段可调整学习率等超参数。