AgentSkillsCN

unsloth-hf-jobs

在 HF Jobs(Hugging Face 按需云 GPU)上,使用 Unsloth 对 LLM 和 VLM 进行微调。当用户希望微调语言模型、训练 VLM(视觉语言模型)、进行持续预训练、领域适应,或在 HF Jobs 上运行 UV 脚本时,请使用此技能。它会在涉及 Unsloth 训练、HF Jobs GPU 训练、Qwen3-VL 微调、Gemma VLM 训练,或在云 GPU 上进行 LoRA 微调的请求时自动触发。

SKILL.md
--- frontmatter
name: unsloth-hf-jobs
description: Fine-tune LLMs and VLMs using Unsloth on HF Jobs (Hugging Face on-demand cloud GPUs). Use when users want to fine-tune language models, train VLMs (Vision Language Models), do continued pretraining, domain adaptation, or run UV scripts on HF Jobs. Triggers on requests involving Unsloth training, HF Jobs GPU training, Qwen3-VL fine-tuning, Gemma VLM training, or LoRA fine-tuning on cloud GPUs.

Unsloth Training on HF Jobs

Fine-tune LLMs and VLMs using Unsloth on HF Jobs with UV scripts that handle dependencies automatically.

Prerequisites

  • Hugging Face account with token
  • HF CLI: curl -LsSf https://hf.co/cli/install.sh | bash
  • Dataset on the Hub (see data formats below)

Available Scripts

ScriptBase ModelTask
scripts/sft-qwen3-vl.pyQwen3-VL-8BVLM fine-tuning
scripts/sft-gemma3-vlm.pyGemma 3 4BVLM fine-tuning (smaller)
scripts/continued-pretraining.pyQwen3-0.6BDomain adaptation

Remote URL (for HF Jobs): https://huggingface.co/datasets/uv-scripts/unsloth-jobs/raw/main/

Data Formats

VLM Fine-tuning

Requires images and messages columns:

python
{
    "images": [<PIL.Image>],
    "messages": [
        {"role": "user", "content": [{"type": "image"}, {"type": "text", "text": "What's in this image?"}]},
        {"role": "assistant", "content": [{"type": "text", "text": "A golden retriever playing fetch."}]}
    ]
}

Example dataset: davanstrien/iconclass-vlm-sft

Continued Pretraining

Any dataset with a text column (use --text-column if named differently):

python
{"text": "Your domain-specific text here..."}

Usage Patterns

VLM Fine-tuning

bash
hf jobs uv run \
  https://huggingface.co/datasets/uv-scripts/unsloth-jobs/raw/main/sft-qwen3-vl.py \
  --flavor a100-large --secrets HF_TOKEN --timeout 4h \
  -- --dataset <username>/<dataset> \
     --num-epochs 1 \
     --eval-split 0.2 \
     --output-repo <username>/<model-name>

Continued Pretraining

bash
hf jobs uv run \
  https://huggingface.co/datasets/uv-scripts/unsloth-jobs/raw/main/continued-pretraining.py \
  --flavor a100-large --secrets HF_TOKEN \
  -- --dataset <username>/<dataset> \
     --text-column content \
     --max-steps 1000 \
     --output-repo <username>/<model-name>

With Trackio Monitoring

Add --trackio-space <username>/trackio to any command for live monitoring.

Common Options

OptionDescriptionDefault
--datasetHF dataset IDrequired
--output-repoWhere to save trained modelrequired
--max-stepsTraining steps500
--num-epochsTrain for N epochs (overrides steps)-
--eval-splitFraction for evaluation0
--batch-sizePer-device batch size2
--gradient-accumulationAccumulation steps4
--lora-rLoRA rank16
--learning-rateLearning rate2e-4
--merge-modelUpload merged model (not just adapter)false
--streamingStream large datasetsfalse

Quick Tips

  • Verify setup with --max-steps 10 before full runs
  • Use --eval-split 0.1 to detect overfitting
  • Check GPU pricing: hf jobs hardware (A100-large ~$2.50/hr, L40S ~$1.80/hr)
  • First step may take minutes (CUDA kernel compilation)
  • View script options: uv run <script-url> --help

Resources