Hugging Face Jobs 云上 LLM 训练实战:基于 TRL 的 SFT/DPO/GRPO 全流程指南
Hugging Face Jobs 云上 LLM 训练实战基于 TRL 的 SFT/DPO/GRPO 全流程指南【免费下载链接】skillsGive your agents the power of the Hugging Face ecosystem项目地址: https://gitcode.com/GitHub_Trending/skills7/skills导读本文是skills/huggingface-llm-trainer技能SKILL.md的完整技术展开。它面向无本地 GPU场景讲解如何用 TRLTransformer Reinforcement Learning在 Hugging Face Jobs 全托管云 GPU 上完成 SFT、DPO、GRPO 与奖励建模训练并覆盖 UV 脚本PEP 723、数据集预校验、硬件选型、成本估算、Trackio 监控、Hub 鉴权、模型选型以及 GGUF 本地部署转换。读完本文你将能独立编写并提交一个生产级云训练作业、实时监控训练曲线、把成果安全落盘到 Hub并转换为 Ollama / llama.cpp 可用的量化模型。核心概念为什么选择在 HF Jobs 上训练Hugging Face Jobs 是面向云 GPU 训练的全托管基础设施训练作业在隔离的 Docker 容器中异步执行模型与指标自动保存/同步到 Hugging Face Hub本地无需配置任何 GPU 环境。huggingface-llm-trainer技能将其作为默认训练路径并明确要求通过 MCP 工具hf_jobs()提交作业而不是在 bash 里敲trl-jobs命令。TRL 提供四类核心训练方法详见 references/training_methods.md方法全称用途数据集格式SFTSupervised Fine-Tuning标准指令微调、教模型新能力messages/text/ prompt-completionDPODirect Preference Optimization无需奖励模型的对齐偏好对promptchosenrejectedGRPOGroup Relative Policy Optimization在线 RL代码执行、数学验证等自动奖励场景仅promptReward Modeling奖励建模为 RLHF 训练奖励模型偏好对/打分数据适用场景判断当用户提出训练/微调模型在云 GPU 上跑训练把模型转 GGUF 本地部署确保模型持久保存到 Hub等需求时就应启用本技能。开工前置Prerequisites 检查清单账号与鉴权缺失则训练直接失败Hugging Face 账号需具备Pro / Team / Enterprise付费计划Jobs 要求付费计划使用hf_whoami()确认已登录HF_TOKEN 是 Hub 推送的关键Jobs 训练环境是临时容器若不推送结果全部丢失。Token 必须具有写权限提交作业时必须在 job 配置中传递secrets{HF_TOKEN: $HF_TOKEN}其中$HF_TOKEN引用你的真实 token 值否则环境内无法鉴权。数据集要求数据集必须存在于 Hub或能通过datasets.load_dataset()加载格式必须匹配训练方法SFTmessages/text/prompt-completionDPOchosen/rejectedGRPO仅 prompt未知数据集在 GPU 训练前必须校验见下文数据集校验节格式不匹配是训练失败的第一大原因规模需与硬件匹配Demo 用 t4-small 跑 50–100 条即可生产建议 a10g-large / a100-large 上跑 1K–10K 条。两个关键设置最常见的坑Timeout 必须大于预估训练时长默认 30 分钟对多数训练来说太短最低建议 1–2 小时。超时作业会被直接杀掉、进度全部丢失Hub 推送必须开启脚本配置push_to_hubTrue, hub_model_idusername/model-name作业配置secrets{HF_TOKEN: $HF_TOKEN}。序列长度配置max_length而非max_seq_lengthTRL 配置类使用max_length不是max_seq_length控制分词后的序列长度# ✅ 正确 - 需要设置序列长度时 SFTConfig(max_length512) # 截断到 512 tokens DPOConfig(max_length2048) # 更长上下文2048 tokens # ❌ 错误 - 该参数不存在 SFTConfig(max_seq_length512) # TypeError!默认值max_length1024从右侧截断对大多数训练已足够。何时覆盖更长上下文设高如max_length2048内存受限设低如max_length512视觉模型设max_lengthNone防止裁掉图像 tokens。通常无需手动设置此参数——下文示例均使用合理默认值。四种提交方式从推荐到备用技能定义了四条训练路径按优先级排列。Approach 1UV 脚本 hf_jobs()默认推荐UV 脚本使用 PEP 723 内联依赖声明代码自包含、无需保存文件。这是 Claude Code 场景下的首选hf_jobs(uv, { script: # /// script # dependencies [trl0.12.0, peft0.7.0, trackio] # /// from datasets import load_dataset from peft import LoraConfig from trl import SFTTrainer, SFTConfig import trackio dataset load_dataset(trl-lib/Capybara, splittrain) # Create train/eval split for monitoring dataset_split dataset.train_test_split(test_size0.1, seed42) trainer SFTTrainer( modelQwen/Qwen2.5-0.5B, train_datasetdataset_split[train], eval_datasetdataset_split[test], peft_configLoraConfig(r16, lora_alpha32), argsSFTConfig( output_dirmy-model, push_to_hubTrue, hub_model_idusername/my-model, num_train_epochs3, eval_strategysteps, eval_steps50, report_totrackio, projectmeaningful_prject_name, # project name for the training name (trackio) run_namemeaningful_run_name, # descriptive name for the specific training run (trackio) ) ) trainer.train() trainer.push_to_hub() , flavor: a10g-large, timeout: 2h, secrets: {HF_TOKEN: $HF_TOKEN} })script 参数的三个合法来源# ✅ 内联代码推荐 hf_jobs(uv, {script: # /// script\n# dependencies [...]\n# ///\n\nyour code}) # ✅ Hugging Face Hub 上的公开脚本 hf_jobs(uv, {script: https://huggingface.co/user/repo/resolve/main/train.py}) # ✅ GitHub raw / Gist hf_jobs(uv, {script: https://raw.githubusercontent.com/user/repo/main/train.py}) hf_jobs(uv, {script: https://gist.githubusercontent.com/user/id/raw/train.py})⚠️本地文件路径不可用——作业运行在隔离 Docker 容器中无法访问你的本地文件系统# ❌ 以下全部失败 hf_jobs(uv, {script: train.py}) hf_jobs(uv, {script: ./scripts/train.py}) hf_jobs(uv, {script: /path/to/train.py})要使用本地脚本先上传到 Hubhf repos create my-training-scripts --type model hf upload my-training-scripts ./train.py train.py # 然后用: https://huggingface.co/USERNAME/my-training-scripts/resolve/main/train.pyApproach 2TRL 官方维护脚本无需写代码直接跑官方验证过的脚本hf_jobs(uv, { script: https://github.com/huggingface/trl/blob/main/trl/scripts/sft.py, script_args: [ --model_name_or_path, Qwen/Qwen2.5-0.5B, --dataset_name, trl-lib/Capybara, --output_dir, my-model, --push_to_hub, --hub_model_id, username/my-model ], flavor: a10g-large, timeout: 2h, secrets: {HF_TOKEN: $HF_TOKEN} })适用场景标准 TRL 训练、快速实验、不需要自定义代码。Approach 3HF Jobs CLIMCP 不可用时的备选在终端直接使用hf jobsCLI语法规则非常严格# ✅ 正确语法 - 所有 flags 在脚本 URL 之前 hf jobs uv run --flavor a10g-large --timeout 2h --secrets HF_TOKEN https://example.com/train.py # ❌ 错误 - run uv 而非 uv run hf jobs run uv https://example.com/train.py --flavor a10g-large # ❌ 错误 - flags 放在脚本 URL 之后会被忽略 hf jobs uv run https://example.com/train.py --flavor a10g-large # ❌ 错误 - --secret 应为复数 --secrets hf jobs uv run --secret HF_TOKEN https://example.com/train.py要点① 命令顺序是hf jobs uv run② 所有 flags 必须在脚本 URL 之前③ 用复数--secrets④ 脚本 URL 是最后一个位置参数。状态查询hf jobs ps列全部作业、hf jobs logs job-id、hf jobs inspect job-id、hf jobs cancel job-id。Approach 4trl-jobs包一键训练提供优化默认值与自动化自动 Trackio、自动 Hub 推送uvx trl-jobs sft \ --model_name Qwen/Qwen2.5-0.5B \ --dataset_name trl-lib/Capybara适用终端直接操作的用户在 Claude Code 场景下优先使用 Approach 1 的hf_jobs()。在 Hub 上发现更多 UV 脚本uv-scripts组织以 dataset 形式托管了大量现成 UV 脚本集合ocr、classification、synthetic-data、vllm、dataset-creation 等可通过数据集搜索发现dataset_search({author: uv-scripts, sort: downloads, limit: 20}) hub_repo_details([uv-scripts/classification], repo_typedataset, include_readmeTrue)硬件选型与成本预估GPU Flavor 速查模型规模推荐硬件约价/小时用途1B 参数t4-small~$0.75Demo、快速测试可不带 eval1–3B 参数t4-medium,l4x1~$1.50–2.50开发调试3–7B 参数a10g-small,a10g-large~$3.50–5.00生产训练7–13B 参数a10g-large,a100-large~$5–10大模型建议 LoRA13B 参数a100-large,a10g-largex2~$10–20超大模型必须 LoRA完整 GPU flavor 列表cpu-basic/upgrade/performance/xl、t4-small/medium、l4x1/x4、a10g-small/large/largex2/largex4、a100-large、h100/h100x8。详细规格见 references/hardware_guide.md。指导原则7B 模型务必用 LoRA/PEFT 降内存多卡由 TRL/Accelerate 自动处理先用小硬件验证。用脚本预估成本与时长scripts/estimate_cost.py 内置硬件单价表t4-small $0.75/h、a10g-large $5.00/h、a100-large $10.00/h 等、模型规模解析与经验估算公式输出预估时间、成本、含 30% 缓冲的推荐 timeout以及硬件/规模建议uv run scripts/estimate_cost.py \ --model meta-llama/Llama-2-7b-hf \ --dataset trl-lib/Capybara \ --hardware a10g-large \ --dataset-size 16000 \ --epochs 3输出示例模型约 7B 参数、预估训练时间、预估费用、推荐 timeout ≈ 时间 × 1.3若时长 4h 或模型 ≥7B 还会给出换卡/降 epoch/用 LoRA 的优化提示并直接打印一份hf_jobs(uv, {...})模板。何时主动提供成本估算用户正在规划作业、询问成本/时长、挑选硬件或作业预计运行 1 小时、花费 $5。Timeout 管理{ timeout: 2h # 格式支持 90m、2h、1.5h 或整数秒 }场景建议说明快速 Demo50–100 条10–30 min验证配置开发训练1–2 小时小数据集生产3–7B 模型4–6 小时全量数据集大模型 LoRA3–6 小时取决于数据集总是预留 20–30% 缓冲覆盖模型/数据集加载、checkpoint 保存、Hub 推送和网络延迟。超时后作业立即被杀、未保存进度全部丢失、必须从头重启。生产级训练脚本模板SFT / DPO / GRPO技能目录提供三个开箱即用的生产模板均已内置 Trackio、Hub 保存、checkpoint 管理与优化参数可直接内联给hf_jobs()或作为自定义脚本起点。SFT 模板scripts/train_sft_example.py#!/usr/bin/env python3 # /// script # requires-python 3.10 # dependencies [ # trl0.12.0, # peft0.7.0, # transformers4.36.0, # accelerate0.24.0, # trackio, # ] # /// import trackio from datasets import load_dataset from peft import LoraConfig from trl import SFTTrainer, SFTConfig # Load dataset dataset load_dataset(trl-lib/Capybara, splittrain) # Create train/eval split dataset_split dataset.train_test_split(test_size0.1, seed42) train_dataset dataset_split[train] eval_dataset dataset_split[test] # Training configuration config SFTConfig( # CRITICAL: Hub settings output_dirqwen-capybara-sft, push_to_hubTrue, hub_model_idusername/qwen-capybara-sft, hub_strategyevery_save, # Push checkpoints # Training parameters num_train_epochs3, per_device_train_batch_size4, gradient_accumulation_steps4, learning_rate2e-5, # max_length1024, # Default - only set if you need different sequence length # Logging checkpointing logging_steps10, save_strategysteps, save_steps100, save_total_limit2, # Evaluation - IMPORTANT: Only enable if eval_dataset provided eval_strategysteps, eval_steps100, # Optimization warmup_ratio0.1, lr_scheduler_typecosine, # Monitoring report_totrackio, projectmeaningful_project_name, run_namebaseline-run, ) # LoRA configuration peft_config LoraConfig( r16, lora_alpha32, lora_dropout0.05, biasnone, task_typeCAUSAL_LM, target_modules[q_proj, v_proj], ) trainer SFTTrainer( modelQwen/Qwen2.5-0.5B, train_datasettrain_dataset, eval_dataseteval_dataset, # CRITICAL: Must provide eval_dataset when eval_strategy enabled argsconfig, peft_configpeft_config, ) trainer.train() trainer.push_to_hub() trackio.finish()参数注释要点hub_strategyevery_save将每个 checkpoint 推送到 Hubsave_total_limit2控制保留的 checkpoint 数量eval_strategysteps时必须提供eval_dataset。若在 t4-small 上跑 Demo省略eval_dataset与eval_strategy可省约 40% 内存。DPO 模板scripts/train_dpo_example.pyDPO 直接基于偏好对chosen vs rejected训练、无需奖励模型核心差异参数基座模型必须用instruct 版本如Qwen/Qwen2.5-0.5B-Instruct不能用 base 模型beta0.1KL 惩罚系数越大越贴近参考模型学习率远低于 SFT5e-7且epoch 数更少典型 1 epoch数据集要求prompt/chosen/rejected三列。from trl import DPOTrainer, DPOConfig config DPOConfig( output_dirqwen-dpo-aligned, push_to_hubTrue, hub_model_idusername/qwen-dpo-aligned, hub_strategyevery_save, beta0.1, # KL penalty coefficient num_train_epochs1, # DPO needs fewer epochs than SFT per_device_train_batch_size4, gradient_accumulation_steps4, learning_rate5e-7, # DPO uses much lower LR than SFT logging_steps10, save_strategysteps, save_steps100, save_total_limit2, eval_strategysteps, eval_steps100, warmup_ratio0.1, lr_scheduler_typecosine, report_totrackio, projectmeaningful_project_name, run_namebaseline-run, ) trainer DPOTrainer( modelQwen/Qwen2.5-0.5B-Instruct, # Use instruct model, not base model train_datasettrain_dataset, eval_dataseteval_dataset, argsconfig, ) trainer.train() trainer.push_to_hub() trackio.finish()GRPO 模板scripts/train_grpo_example.pyGRPO 是相对组内表现的在线 RL 方法最适合有自动奖励信号的任务代码执行、数学验证。数据集只含prompt列基座同样建议 instruct 模型from trl import GRPOTrainer, GRPOConfig config GRPOConfig( output_dirqwen-grpo-math, push_to_hubTrue, hub_model_idusername/qwen-grpo-math, hub_strategyevery_save, num_train_epochs1, per_device_train_batch_size4, gradient_accumulation_steps4, learning_rate1e-6, logging_steps10, save_strategysteps, save_steps100, save_total_limit2, warmup_ratio0.1, lr_scheduler_typecosine, report_totrackio, projectmeaningful_project_name, run_namebaseline-run, ) trainer GRPOTrainer( modelQwen/Qwen2.5-0.5B-Instruct, train_datasetdataset, # prompt-only dataset argsconfig, ) trainer.train() trainer.push_to_hub()脚本头部注释提示多数 GRPO 场景推荐直接使用 TRL 官方维护脚本examples/scripts/grpo.py。何时改用 Unsloth当出现以下情况用 references/unsloth.md 替代标准 TRLGPU 内存有限Unsloth 省约 60% VRAM、追求速度约 2 倍速、训练13B 大模型、或训练视觉-语言模型VLMUnsloth 提供FastVisionModel。scripts/unsloth_sft_example.py 是一个完整的 Unsloth 文本 LLM 训练脚本覆盖 epoch/step 两种模式、可选 eval 划分、train_on_responses_only掩码用户输入、adamw_8bit优化器与use_gradient_checkpointingunsloth并支持--merge-model将 LoRA 权重合入基座后上传# 本地运行需 CUDA GPU uv run unsloth_sft_example.py \ --dataset mlabonne/FineTome-100k \ --num-epochs 1 \ --eval-split 0.2 \ --output-repo your-username/model-finetuned # 在 HF Jobs 上运行注意 -- 分隔符后的参数 hf jobs uv run unsloth_sft_example.py \ --flavor a10g-small --secrets HF_TOKEN --timeout 4h \ -- --dataset mlabonne/FineTome-100k \ --num-epochs 1 \ --eval-split 0.2 \ --output-repo your-username/model-finetuned异步作业的正确使用姿势训练作业异步运行、可能长达数小时必须遵守以下规则用户请求训练时① 创建含 Trackio 的训练脚本以train_sft_example.py为模板② 用hf_jobs()立即内联提交除非用户要求不保存到本地文件③ 报告 job ID、监控 URL 与预估时长④ 等待用户请求状态检查不要自动轮询。提交后提供给用户的信息Job ID 监控 URL、预计完成时间、Trackio 仪表盘 URL、提示用户后续可随时请求状态查询。示例回复格式✅ Job submitted successfully! Job ID: abc123xyz Monitor: https://huggingface.co/jobs/username/abc123xyz Expected time: ~2 hours Estimated cost: ~$10 The job is running in the background. Ask me to check status/logs when ready!注意作业后台运行、提交即返回初始日志可能需要 30–60 秒才出现日志仅在用户请求时查看。状态查询与 Trackio 监控查询作业状态hf_jobs(ps) # 列出所有作业 hf_jobs(inspect, {job_id: your-job-id}) # 查看作业详情 hf_jobs(logs, {job_id: your-job-id}) # 查看日志Trackio 实时监控Trackio 为远程 Jobs 训练提供实时指标可视化完整配置见 references/trackio_guide.md。由于训练发生在临时云环境必须把指标同步到一个 HF Space否则作业结束后指标丢失① 依赖中声明 trackio# /// script # dependencies [trl0.12.0, trackio] # ///② 初始化 Trackio自动创建 Spaceimport trackio trackio.init( projectmy-training, space_idusername/trackio, # CRITICAL for Jobs! 替换 username privateTrue, # Space 默认 PUBLIC不想公开就传 privateTrue config{ model: Qwen/Qwen2.5-0.5B, dataset: trl-lib/Capybara, learning_rate: 2e-5, } )③ 训练器接入SFTConfig(report_totrackio, ...)④ 训练结束调用trackio.finish()。技能默认的 Trackio 配置用户未指定时Space ID 用{username}/trackiorun 命名要描述性能反映任务/模型/用途config 保持精简只含超参与模型/数据集信息用 Project Name 把多次运行归组。用户指定了自定义 Space、命名或分组规则时优先遵循用户偏好。数据集校验把格式错误扼杀在 CPU 上训练失败的第一大原因就是数据集格式不匹配约 50% 的训练失败源于此DPO 尤其严格必须精确列名prompt/chosen/rejected。一次失败的 GPU 作业浪费 $1–10 与 30–60 分钟而 CPU 上校验仅需 ~$0.01 与 1 分钟。必须校验未知/自定义数据集、DPO 训练关键——约 90% 的 DPO 数据集需要映射、任何未明确 TRL 兼容的数据集。可跳过trl-lib/ultrachat_200k、trl-lib/Capybara、HuggingFaceH4/ultrachat_200k等已知 TRL 数据集。仓库内的 scripts/dataset_inspector.py 通过Datasets Server API检查数据集无需下载、通常 2 秒内完成。用法hf_jobs(uv, { script: https://huggingface.co/datasets/mcp-tools/skills/raw/main/dataset_inspector.py, script_args: [--dataset, username/dataset-name, --split, train] })脚本会依次判断 SFT / DPO / GRPO / KTO 四种方法的兼容性输出标记含义✓ READY— 数据集直接可用✗ NEEDS MAPPING— 可兼容但需预处理输出自带可复制粘贴的映射代码✗ INCOMPATIBLE— 该训练方法无法使用此数据集。标准工作流# 1. 检查数据集CPU 上 ~$0.01、1 分钟 hf_jobs(uv, { script: https://huggingface.co/datasets/mcp-tools/skills/raw/main/dataset_inspector.py, script_args: [--dataset, argilla/distilabel-math-preference-dpo, --split, train] }) # 2. 读取输出标记: ✓ READY → 直接训练; ✗ NEEDS MAPPING → 应用下方映射代码; ✗ INCOMPATIBLE → 换方法/数据集 # 3. 需要映射时先应用再训练例如 DPO 列名映射: def format_for_dpo(example): return { prompt: example[instruction], chosen: example[chosen_response], rejected: example[rejected_response], } dataset dataset.map(format_for_dpo, remove_columnsdataset.column_names) # 4. 放心提交训练作业常见场景DPO 格式不匹配。多数 DPO 数据集用非标准列名例如数据集是instruction, chosen_response, rejected_response而 DPO 期望prompt, chosen, rejected。校验器会检测到并给出精确的映射代码。脚本内部逻辑从源码看支持智能列名识别find_columns按[prompt,instruction,question,input]等模式匹配提示列、[chosen,preferred,winner]匹配正向回答、[rejected,dispreferred,loser]匹配负向回答--json-output可输出结构化 JSON 便于程序化消费。选择基座模型用基准排行榜做决策训练前可用 scripts/hf_benchmarks.py 依据任务类型或基准成绩挑选表现最好的模型作为基座同时兼顾模型尺寸与硬件约束。该脚本从 Hub 拉取benchmark:official数据集目录按查询词、别名、任务、模态打分排序从源码看支持--query自由文本、--alias预置别名、--task、--modality过滤并内置 ocr / coding / math / retrieval / agents / asr 六组别名展开leaderboard 输出会归一化 rank、model_id、value、verified 等字段uv run scripts/hf_benchmarks.py --help # 搜索名字含 ocr 的基准 uv run scripts/hf_benchmarks.py search --query ocr # 获取 allenai/olmOCR-bench 的排名榜 uv run scripts/hf_benchmarks.py leaderboard allenai/olmOCR-bench还支持管道链式操作search --format ndjson | leaderboard --stdin --top 5。关键一役把成果保存到 Hub防止一切白训⚠️ 训练环境是临时的——作业结束所有文件都会被删除。不推送到 Hub全部训练成果都会丢失。必要配置双端缺一不可脚本/配置端SFTConfig( push_to_hubTrue, hub_model_idusername/model-name, # MUST specify hub_strategyevery_save, # Optional: 推 checkpoint )作业提交端{ secrets: {HF_TOKEN: $HF_TOKEN} # 启用鉴权 }提交前自检清单配置中已设push_to_hubTruehub_model_id含username/repo-name完整格式secrets参数包含 HF_TOKEN用户对目标 repo 有写权限Hub 鉴权排障详见 references/hub_saving.md。GGUF 转换训练成果本地化部署训练完成后可将模型转为GGUF格式供 llama.cpp、Ollama、LM Studio、Jan、GPT4All 等本地推理工具使用。GGUF 是什么专为 llama.cpp 的 CPU/GPU 推理优化支持 4/5/8-bit 量化以缩小体积7B 模型通常 2–8GB对比未量化 14GB。何时转换本地跑 Ollama/LM Studio量化减小体积边缘设备部署为本地优先场景分发模型。仓库内完整转换脚本见 scripts/convert_to_gguf.py完整指南见 references/gguf_conversion.md。脚本流程① 环境变量读取配置 → ② 加载基座 LoRA adapter 并merge_and_unload()合并 → ③ 保存合并模型 → ④ clone llama.cpp 并安装依赖 → ⑤ 用convert_hf_to_gguf.py转 FP16 → ⑥ CMake 构建llama-quantize生成Q4_K_M / Q5_K_M / Q8_0三档量化 → ⑦ 自动创建 Hub repo 并上传全部版本 生成含量化对照表与 Ollama/llama.cpp 用法的 README。通过hf_jobs()提交转换作业hf_jobs(uv, { script: see references/gguf_conversion.md for complete script, flavor: a10g-large, timeout: 45m, secrets: {HF_TOKEN: $HF_TOKEN}, env: { ADAPTER_MODEL: username/my-finetuned-model, # 微调产物 BASE_MODEL: Qwen/Qwen2.5-0.5B, # 微调所用基座 OUTPUT_REPO: username/my-model-gguf # GGUF 输出仓库 } })转换脚本依赖系统构建工具git、make/cmake前置安装Ubuntu/Debian 需apt-get install build-essential cmakemacOS 需xcode-select --install brew install cmake。常见失败模式与修复显存不足OOM按顺序尝试① 减小 batchper_device_train_batch_size1、提高gradient_accumulation_steps8有效 batch 两者乘积性能最佳时保持有效 batch 接近 128② 开启gradient_checkpointingTrue③ 升级硬件t4-small → l4x1a10g-small → a10g-large 等。数据集格式错误先用 dataset inspector 校验uv run https://huggingface.co/datasets/mcp-tools/skills/raw/main/dataset_inspector.py \ --dataset name --split train检查兼容性标记需要时套用脚本输出的映射代码。作业超时①hf_jobs(logs, {job_id: ...})查看实际运行时长② 加大 timeout 并留缓冲如timeout: 3h比预估加 30%③ 或缩减训练降低num_train_epochs、用小数据集、启用max_steps④ 保存 checkpointsave_strategysteps、save_steps500、hub_strategyevery_save。再次强调默认 30 分钟不够真实训练最低 1–2 小时。Hub 推送失败① 作业端加secrets{HF_TOKEN: $HF_TOKEN}② 配置端加push_to_hubTrue、hub_model_idusername/model-name③ 用hf_whoami()验证鉴权④ 确认 token 有写权限、repo 存在或设hub_private_repoTrue。依赖缺失补全 PEP 723 头# /// script # dependencies [trl0.12.0, peft0.7.0, trackio, missing-package] # ///完整的故障排查指南见 references/troubleshooting.md。更多参考资源本技能参考文档位于 skills/huggingface-llm-trainer/referencestraining_methods.md — SFT、DPO、GRPO、KTO、PPO、Reward Modeling 方法总览与选择指引training_patterns.md — 快速 Demo5–10 分钟、带 checkpoint 的生产训练、多卡训练、DPO/GRPO 等常见模式unsloth.md — Unsloth 快速 VLM 训练约 2 倍速、省 60% VRAMgguf_conversion.md — 完整 GGUF 转换指南含生产脚本、量化选项、硬件要求、使用示例与排障trackio_guide.md — Trackio 监控搭建与实验分组hardware_guide.md — 硬件规格与选型hub_saving.md — Hub 鉴权排障troubleshooting.md — 完整故障排查local_training_macos.md — macOS 本地训练reliability_principles.md — 可靠性原则。本技能脚本位于 skills/huggingface-llm-trainer/scriptstrain_sft_example.py — 生产级 SFT 模板train_dpo_example.py — 生产级 DPO 模板train_grpo_example.py — 生产级 GRPO 模板unsloth_sft_example.py — Unsloth 文本 LLM 训练模板estimate_cost.py — 时间与成本估算convert_to_gguf.py — 完整 GGUF 转换脚本hf_benchmarks.py — 按任务/别名/自由文本搜索基准与排行榜dataset_inspector.py — 训练前数据集格式校验。十条关键经验Key Takeaways内联提交脚本——script参数直接接受 Python 代码无需保存文件除非用户要求作业是异步的——不要等待/轮询让用户随时查询状态总是设置 timeout——默认 30 分钟不够最低 1–2 小时总是开启 Hub 推送——环境临时不推送全丢纳入 Trackio——以示例脚本为模板实现实时监控主动提供成本估算——参数已知时用estimate_cost.py默认走 UV 脚本Approach 1——标准训练用 TRL 官方脚本Claude Code 中避免 bash 直跑trl-jobs用hf_doc_fetch/hf_doc_search获取最新 TRL 文档训练前校验数据集格式——用 dataset inspector按模型规模选硬件——7B 模型用 LoRA。【免费下载链接】skillsGive your agents the power of the Hugging Face ecosystem项目地址: https://gitcode.com/GitHub_Trending/skills7/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考