Loading...
Loading...
Compare original and translation side by side
hugging-face-jobshugging-face-model-trainerhugging-face-jobshugging-face-model-traineruv runuv run scripts/dataset_inspector.py --dataset username/dataset-name --split train
uv run scripts/estimate_cost.py --helpuv runuv run scripts/dataset_inspector.py --dataset username/dataset-name --split train
uv run scripts/estimate_cost.py --helphf_whoami()hf auth whoamihf_whoami()hf auth whoamiobjectsbboxcategoryareaimage_idbboxcategoryareaobjectsimage_idimagelabelClassLabellabellabelsclassfine_labelimagelabelClassLabellabellabelsclassfine_labelimagemaskprompt{"bbox": [x0,y0,x1,y1]}{"point": [x,y]}bbox[x0,y0,x1,y1]point[x,y][[x,y],...]merve/MicroMat-miniimagemask{"bbox": [x0,y0,x1,y1]}{"point": [x,y]}promptbbox[x0,y0,x1,y1]point[x,y][[x,y],...]merve/MicroMat-minipush_to_hub=Truehub_model_id="username/model-name"secretspush_to_hub=Truehub_model_id="username/model-name"secretscppe-5cppe-5hf_jobs("uv", {
"script": "path/to/dataset_inspector.py",
"script_args": ["--dataset", "username/dataset-name", "--split", "train"]
})uv run scripts/dataset_inspector.py --dataset username/dataset-name --split trainHfApi().run_uv_job()from huggingface_hub import HfApi
api = HfApi()
api.run_uv_job(
script="scripts/dataset_inspector.py",
script_args=["--dataset", "username/dataset-name", "--split", "train"],
flavor="cpu-basic",
timeout=300,
)hf_jobs("uv", {
"script": "path/to/dataset_inspector.py",
"script_args": ["--dataset", "username/dataset-name", "--split", "train"]
})uv run scripts/dataset_inspector.py --dataset username/dataset-name --split trainHfApi().run_uv_job()from huggingface_hub import HfApi
api = HfApi()
api.run_uv_job(
script="scripts/dataset_inspector.py",
script_args=["--dataset", "username/dataset-name", "--split", "train"],
flavor="cpu-basic",
timeout=300,
)✓ READY✗ NEEDS FORMATTING✓ READY✗ NEEDS FORMATTINGscripts/object_detection_training.pyimage_idobjects.bboxobjects.categoryscripts/object_detection_training.pyimage_idobjects.bboxobjects.categoryTraining Progress:
- [ ] Step 1: Verify prerequisites (account, token, dataset)
- [ ] Step 2: Validate dataset format (run dataset_inspector.py)
- [ ] Step 3: Ask user about dataset size and validation split
- [ ] Step 4: Prepare training script (OD: scripts/object_detection_training.py, IC: scripts/image_classification_training.py, SAM: scripts/sam_segmentation_training.py)
- [ ] Step 5: Save script locally, submit job, and report detailsAskUserQuestion({
"questions": [
{
"question": "Do you want to run a quick test with a subset of the data first?",
"header": "Dataset Size",
"options": [
{"label": "Quick test run (10% of data)", "description": "Faster, cheaper (~30-60 min, ~$2-5) to validate setup"},
{"label": "Full dataset (Recommended)", "description": "Complete training for best model quality"}
],
"multiSelect": false
},
{
"question": "Do you want to create a validation split from the training data?",
"header": "Split data",
"options": [
{"label": "Yes (Recommended)", "description": "Automatically split 15% of training data for validation"},
{"label": "No", "description": "Use existing validation split from dataset"}
],
"multiSelect": false
},
{
"question": "Which GPU hardware do you want to use?",
"header": "Hardware Flavor",
"options": [
{"label": "t4-small ($0.40/hr)", "description": "1x T4, 16 GB VRAM — sufficient for all OD models under 100M params"},
{"label": "l4x1 ($0.80/hr)", "description": "1x L4, 24 GB VRAM — more headroom for large images or batch sizes"},
{"label": "a10g-large ($1.50/hr)", "description": "1x A10G, 24 GB VRAM — faster training, more CPU/RAM"},
{"label": "a100-large ($2.50/hr)", "description": "1x A100, 80 GB VRAM — fastest, for very large datasets or image sizes"}
],
"multiSelect": false
}
]
})HfArgumentParserscript_argssubmitted_jobs/training_<dataset>_<YYYYMMDD_HHMMSS>.pyhf_jobsHfApi().run_uv_job()script_args.idhttps://huggingface.co/spaces/{username}/trackio训练进度:
- [ ] 步骤1:验证前置条件(账户、令牌、数据集)
- [ ] 步骤2:验证数据集格式(运行dataset_inspector.py)
- [ ] 步骤3:询问用户数据集大小和验证拆分偏好
- [ ] 步骤4:准备训练脚本(目标检测:scripts/object_detection_training.py,图像分类:scripts/image_classification_training.py,SAM分割:scripts/sam_segmentation_training.py)
- [ ] 步骤5:本地保存脚本、提交任务并反馈详情AskUserQuestion({
"questions": [
{
"question": "是否要先使用数据集子集进行快速测试?",
"header": "数据集规模",
"options": [
{"label": "快速测试(10%数据)", "description": "更快、更便宜(约30-60分钟,2-5美元),用于验证配置"},
{"label": "完整数据集(推荐)", "description": "完整训练以获得最佳模型质量"}
],
"multiSelect": false
},
{
"question": "是否要从训练数据中拆分出验证集?",
"header": "数据拆分",
"options": [
{"label": "是(推荐)", "description": "自动从训练数据中拆分15%作为验证集"},
{"label": "否", "description": "使用数据集中已有的验证集"}
],
"multiSelect": false
},
{
"question": "你想使用哪种GPU硬件?",
"header": "硬件规格",
"options": [
{"label": "t4-small(0.40美元/小时)", "description": "1x T4,16 GB显存——足以支持所有参数量低于1亿的目标检测模型"},
{"label": "l4x1(0.80美元/小时)", "description": "1x L4,24 GB显存——处理大尺寸图像或更大批次数据时更有余量"},
{"label": "a10g-large(1.50美元/小时)", "description": "1x A10G,24 GB显存——训练速度更快,CPU/RAM资源更充足"},
{"label": "a100-large(2.50美元/小时)", "description": "1x A100,80 GB显存——速度最快,适用于超大规模数据集或大尺寸图像"}
],
"multiSelect": false
}
]
})HfArgumentParserscript_argssubmitted_jobs/training_<dataset>_<YYYYMMDD_HHMMSS>.pyhf_jobsHfApi().run_uv_job()script_args.idhttps://huggingface.co/spaces/{username}/trackiohf_jobshf_jobshf_jobs()huggingface_hubhf_jobs("uv", {"script": training_script_content, "flavor": "a10g-large", "timeout": "4h", "secrets": {"HF_TOKEN": "$HF_TOKEN"}})hf_jobsfrom huggingface_hub import HfApi, get_token
api = HfApi()
job_info = api.run_uv_job(
script="path/to/training_script.py", # file PATH, NOT content
script_args=["--dataset_name", "cppe-5", ...],
flavor="a10g-large",
timeout=14400, # seconds (4 hours)
env={"PYTHONUNBUFFERED": "1"},
secrets={"HF_TOKEN": get_token()}, # MUST use get_token(), NOT "$HF_TOKEN"
)
print(f"Job ID: {job_info.id}") | | |
|---|---|---|
| Python code string or URL (NOT local paths) | File path to |
| Token in secrets | | |
| Timeout format | String ( | Seconds ( |
imagecommandrun_job()run_uv_job()hf_jobs()huggingface_hubhf_jobs("uv", {"script": training_script_content, "flavor": "a10g-large", "timeout": "4h", "secrets": {"HF_TOKEN": "$HF_TOKEN"}})hf_jobsfrom huggingface_hub import HfApi, get_token
api = HfApi()
job_info = api.run_uv_job(
script="path/to/training_script.py", # 文件路径,而非内容
script_args=["--dataset_name", "cppe-5", ...],
flavor="a10g-large",
timeout=14400, # 秒(4小时)
env={"PYTHONUNBUFFERED": "1"},
secrets={"HF_TOKEN": get_token()}, # 必须使用get_token(),而非"$HF_TOKEN"
)
print(f"任务ID: {job_info.id}") | | |
|---|---|---|
| Python代码字符串或URL(非本地路径) | .py文件的本地路径(非内容) |
| 密钥中的令牌 | | |
| 超时格式 | 字符串( | 秒数( |
imagecommandrun_job()run_uv_job()Trainercreate_repo(token=self.args.hub_token)__init__()push_to_hub=TrueHF_TOKENtraining_args.hub_tokenTrainerscripts/object_detection_training.pyhf_token = os.environ.get("HF_TOKEN")
if training_args.push_to_hub and not training_args.hub_token:
if hf_token:
training_args.hub_token = hf_tokenTrainer(...)login()scripts/object_detection_training.pyhub_token=Nonehugging-face-jobspush_to_hub=TrueTrainer__init__()create_repo(token=self.args.hub_token)TrainerHF_TOKENtraining_args.hub_tokenscripts/object_detection_training.pyhf_token = os.environ.get("HF_TOKEN")
if training_args.push_to_hub and not training_args.hub_token:
if hf_token:
training_args.hub_token = hf_tokenTrainer(...)scripts/object_detection_training.pylogin()hub_token=Nonehugging-face-jobs.id.job_id.namejob_info = api.run_uv_job(...) # or hf_jobs("uv", {...})
job_id = job_info.id # Correct -- returns string like "687fb701029421ae5549d998".id.job_id.namejob_info = api.run_uv_job(...) # 或hf_jobs("uv", {...})
job_id = job_info.id # 正确方式——返回类似"687fb701029421ae5549d998"的字符串scripts/object_detection_training.pyHfArgumentParserscript_argsboolpush_to_hubdo_train--push_to_hub--no_--no_remove_unused_columnsOptional[bool]greater_is_better--greater_is_better True--greater_is_bettererror: expected one argument--no_remove_unused_columns # MUST: preserves image column for pixel_values
--no_eval_do_concat_batches # MUST: images have different numbers of target boxes
--push_to_hub # MUST: environment is ephemeral
--hub_model_id username/model-name
--metric_for_best_model eval_map
--greater_is_better True # MUST pass "True" explicitly (Optional[bool])
--do_train
--do_eval--no_remove_unused_columns # MUST: preserves image column for pixel_values
--push_to_hub # MUST: environment is ephemeral
--hub_model_id username/model-name
--metric_for_best_model eval_accuracy
--greater_is_better True # MUST pass "True" explicitly (Optional[bool])
--do_train
--do_eval--remove_unused_columns False # MUST: preserves input_boxes/input_points
--push_to_hub # MUST: environment is ephemeral
--hub_model_id username/model-name
--do_train
--prompt_type bbox # or "point"
--dataloader_pin_memory False # MUST: avoids pin_memory issues with custom collatorscripts/object_detection_training.pyHfArgumentParserscript_argsboolpush_to_hubdo_train--push_to_hub--no_--no_remove_unused_columnsOptional[bool]greater_is_better--greater_is_better True--greater_is_bettererror: expected one argument--no_remove_unused_columns # 必须:保留image列以生成pixel_values
--no_eval_do_concat_batches # 必须:图像的目标框数量可能不同
--push_to_hub # 必须:环境为临时环境
--hub_model_id username/model-name
--metric_for_best_model eval_map
--greater_is_better True # 必须显式传递"True"(Optional[bool]类型)
--do_train
--do_eval--no_remove_unused_columns # 必须:保留image列以生成pixel_values
--push_to_hub # 必须:环境为临时环境
--hub_model_id username/model-name
--metric_for_best_model eval_accuracy
--greater_is_better True # 必须显式传递"True"(Optional[bool]类型)
--do_train
--do_eval--remove_unused_columns False # 必须:保留input_boxes/input_points
--push_to_hub # 必须:环境为临时环境
--hub_model_id username/model-name
--do_train
--prompt_type bbox # 或"point"
--dataloader_pin_memory False # 必须:避免自定义collator的pin_memory问题| Scenario | Timeout |
|---|---|
| Quick test (100-200 images, 5-10 epochs) | 1h |
| Development (500-1K images, 15-20 epochs) | 2-3h |
| Production (1K-5K images, 30 epochs) | 4-6h |
| Large dataset (5K+ images) | 6-12h |
| 场景 | 超时设置 |
|---|---|
| 快速测试(100-200张图片,5-10轮) | 1小时 |
| 开发测试(500-1000张图片,15-20轮) | 2-3小时 |
| 生产训练(1000-5000张图片,30轮) | 4-6小时 |
| 大规模数据集(5000+张图片) | 6-12小时 |
trackio.init()trackio.finish()--report_to trackio--output_dir--run_name--report_to trackioTrainingArgumentshttps://huggingface.co/spaces/{username}/trackiotrackio.init()trackio.finish()--report_to trackio--output_dir--run_nameTrainingArguments--report_to trackiohttps://huggingface.co/spaces/{username}/trackio| Model | Params | Use case |
|---|---|---|
| 10.4M | Best starting point — fast, cheap, SOTA quality |
| 20.2M | Lightweight real-time detector |
| 31.4M | Higher accuracy, still efficient |
| 43M | Strong real-time baseline |
| 63.5M | Best accuracy (pretrained on Objects365) |
| 76M | Largest RT-DETR v2 variant |
ustc-community/dfine-small-coco| 模型 | 参数量 | 使用场景 |
|---|---|---|
| 1040万 | 最佳入门选择——快速、低成本、SOTA精度 |
| 2020万 | 轻量级实时检测器 |
| 3140万 | 更高精度,仍保持高效 |
| 4300万 | 强大的实时基线模型 |
| 6350万 | 最高精度(在Objects365上预训练) |
| 7600万 | 最大的RT-DETR v2变体 |
ustc-community/dfine-small-cocotimm/AutoModelForImageClassificationTimmWrapperForImageClassification| Model | Params | Use case |
|---|---|---|
| 2.5M | Ultra-lightweight — mobile/edge, fastest training |
| 5.6M | Mobile transformer — good accuracy/speed trade-off |
| 25.6M | Strong CNN baseline — reliable, well-studied |
| 86.6M | Best accuracy — DINOv3 self-supervised ViT |
timm/mobilenetv3_small_100.lamb_in1ktimm/resnet50.a1_in1ktimm/vit_base_patch16_dinov3.lvd1689mtimm/AutoModelForImageClassificationTimmWrapperForImageClassification| 模型 | 参数量 | 使用场景 |
|---|---|---|
| 250万 | 超轻量级——适用于移动端/边缘设备,训练速度最快 |
| 560万 | 移动端Transformer模型——精度与速度平衡良好 |
| 2560万 | 强大的CNN基线模型——可靠、研究充分 |
| 8660万 | 最高精度——DINOv3自监督ViT模型 |
timm/mobilenetv3_small_100.lamb_in1ktimm/resnet50.a1_in1ktimm/vit_base_patch16_dinov3.lvd1689m| Model | Params | Use case |
|---|---|---|
| 38.9M | Fastest SAM2 — good for quick experiments |
| 46.0M | Best starting point — good quality/speed balance |
| 80.8M | Higher capacity for complex segmentation |
| 224.4M | Best SAM2 accuracy — requires more VRAM |
| 93.7M | Original SAM — ViT-B backbone |
| 312.3M | Original SAM — ViT-L backbone |
| 641.1M | Original SAM — ViT-H, best SAM v1 accuracy |
facebook/sam2.1-hiera-small| 模型 | 参数量 | 使用场景 |
|---|---|---|
| 3890万 | 最快的SAM2模型——适用于快速实验 |
| 4600万 | 最佳入门选择——精度与速度平衡良好 |
| 8080万 | 更高容量,适用于复杂分割任务 |
| 22440万 | SAM2最高精度模型——需要更多显存 |
| 9370万 | 初代SAM模型——ViT-B骨干网络 |
| 31230万 | 初代SAM模型——ViT-L骨干网络 |
| 64130万 | 初代SAM模型——ViT-H骨干网络,SAM v1最高精度 |
facebook/sam2.1-hiera-smallt4-smallt4-smallhiera-base-plust4-smallsam2.1-hiera-largel4x1a10g-larget4-smalll4x1a10g-largehugging-face-jobsscripts/estimate_cost.pyt4-smallt4-smallhiera-base-plust4-smallsam2.1-hiera-largel4x1a10g-larget4-smalll4x1a10g-largehugging-face-jobsscripts/estimate_cost.pyscript_argsOD_SCRIPT_ARGS = [
"--model_name_or_path", "ustc-community/dfine-small-coco",
"--dataset_name", "cppe-5",
"--image_square_size", "640",
"--output_dir", "dfine_finetuned",
"--num_train_epochs", "30",
"--per_device_train_batch_size", "8",
"--learning_rate", "5e-5",
"--eval_strategy", "epoch",
"--save_strategy", "epoch",
"--save_total_limit", "2",
"--load_best_model_at_end",
"--metric_for_best_model", "eval_map",
"--greater_is_better", "True",
"--no_remove_unused_columns",
"--no_eval_do_concat_batches",
"--push_to_hub",
"--hub_model_id", "username/model-name",
"--do_train",
"--do_eval",
]from huggingface_hub import HfApi, get_token
api = HfApi()
job_info = api.run_uv_job(
script="scripts/object_detection_training.py",
script_args=OD_SCRIPT_ARGS,
flavor="t4-small",
timeout=14400,
env={"PYTHONUNBUFFERED": "1"},
secrets={"HF_TOKEN": get_token()},
)
print(f"Job ID: {job_info.id}")script_argsOD_SCRIPT_ARGS = [
"--model_name_or_path", "ustc-community/dfine-small-coco",
"--dataset_name", "cppe-5",
"--image_square_size", "640",
"--output_dir", "dfine_finetuned",
"--num_train_epochs", "30",
"--per_device_train_batch_size", "8",
"--learning_rate", "5e-5",
"--eval_strategy", "epoch",
"--save_strategy", "epoch",
"--save_total_limit", "2",
"--load_best_model_at_end",
"--metric_for_best_model", "eval_map",
"--greater_is_better", "True",
"--no_remove_unused_columns",
"--no_eval_do_concat_batches",
"--push_to_hub",
"--hub_model_id", "username/model-name",
"--do_train",
"--do_eval",
]from huggingface_hub import HfApi, get_token
api = HfApi()
job_info = api.run_uv_job(
script="scripts/object_detection_training.py",
script_args=OD_SCRIPT_ARGS,
flavor="t4-small",
timeout=14400,
env={"PYTHONUNBUFFERED": "1"},
secrets={"HF_TOKEN": get_token()},
)
print(f"任务ID: {job_info.id}")script_argsscript_args--model_name_or_path"ustc-community/dfine-small-coco"--dataset_name--image_square_size--hub_model_id"username/model-name"--num_train_epochs--train_val_split--max_train_samples"785"--max_eval_samples--model_name_or_path"ustc-community/dfine-small-coco"--dataset_name--image_square_size--hub_model_id"username/model-name"--num_train_epochs--train_val_split--max_train_samples"785"--max_eval_samplesIC_SCRIPT_ARGS = [
"--model_name_or_path", "timm/mobilenetv3_small_100.lamb_in1k",
"--dataset_name", "ethz/food101",
"--output_dir", "food101_classifier",
"--num_train_epochs", "5",
"--per_device_train_batch_size", "32",
"--per_device_eval_batch_size", "32",
"--learning_rate", "5e-5",
"--eval_strategy", "epoch",
"--save_strategy", "epoch",
"--save_total_limit", "2",
"--load_best_model_at_end",
"--metric_for_best_model", "eval_accuracy",
"--greater_is_better", "True",
"--no_remove_unused_columns",
"--push_to_hub",
"--hub_model_id", "username/food101-classifier",
"--do_train",
"--do_eval",
]from huggingface_hub import HfApi, get_token
api = HfApi()
job_info = api.run_uv_job(
script="scripts/image_classification_training.py",
script_args=IC_SCRIPT_ARGS,
flavor="t4-small",
timeout=7200,
env={"PYTHONUNBUFFERED": "1"},
secrets={"HF_TOKEN": get_token()},
)
print(f"Job ID: {job_info.id}")IC_SCRIPT_ARGS = [
"--model_name_or_path", "timm/mobilenetv3_small_100.lamb_in1k",
"--dataset_name", "ethz/food101",
"--output_dir", "food101_classifier",
"--num_train_epochs", "5",
"--per_device_train_batch_size", "32",
"--per_device_eval_batch_size", "32",
"--learning_rate", "5e-5",
"--eval_strategy", "epoch",
"--save_strategy", "epoch",
"--save_total_limit", "2",
"--load_best_model_at_end",
"--metric_for_best_model", "eval_accuracy",
"--greater_is_better", "True",
"--no_remove_unused_columns",
"--push_to_hub",
"--hub_model_id", "username/food101-classifier",
"--do_train",
"--do_eval",
]from huggingface_hub import HfApi, get_token
api = HfApi()
job_info = api.run_uv_job(
script="scripts/image_classification_training.py",
script_args=IC_SCRIPT_ARGS,
flavor="t4-small",
timeout=7200,
env={"PYTHONUNBUFFERED": "1"},
secrets={"HF_TOKEN": get_token()},
)
print(f"任务ID: {job_info.id}")script_argsscript_args--model_name_or_pathtimm/--dataset_name--image_column_name"image"--label_column_name"label"--hub_model_id"username/model-name"--num_train_epochs--per_device_train_batch_size--train_val_split--max_train_samples--max_eval_samples--model_name_or_pathtimm/--dataset_name--image_column_name"image"--label_column_name"label"--hub_model_id"username/model-name"--num_train_epochs--per_device_train_batch_size--train_val_split--max_train_samples--max_eval_samplesSAM_SCRIPT_ARGS = [
"--model_name_or_path", "facebook/sam2.1-hiera-small",
"--dataset_name", "merve/MicroMat-mini",
"--prompt_type", "bbox",
"--prompt_column_name", "prompt",
"--output_dir", "sam2-finetuned",
"--num_train_epochs", "30",
"--per_device_train_batch_size", "4",
"--learning_rate", "1e-5",
"--logging_steps", "1",
"--save_strategy", "epoch",
"--save_total_limit", "2",
"--remove_unused_columns", "False",
"--dataloader_pin_memory", "False",
"--push_to_hub",
"--hub_model_id", "username/sam2-finetuned",
"--do_train",
"--report_to", "trackio",
]from huggingface_hub import HfApi, get_token
api = HfApi()
job_info = api.run_uv_job(
script="scripts/sam_segmentation_training.py",
script_args=SAM_SCRIPT_ARGS,
flavor="t4-small",
timeout=7200,
env={"PYTHONUNBUFFERED": "1"},
secrets={"HF_TOKEN": get_token()},
)
print(f"Job ID: {job_info.id}")SAM_SCRIPT_ARGS = [
"--model_name_or_path", "facebook/sam2.1-hiera-small",
"--dataset_name", "merve/MicroMat-mini",
"--prompt_type", "bbox",
"--prompt_column_name", "prompt",
"--output_dir", "sam2-finetuned",
"--num_train_epochs", "30",
"--per_device_train_batch_size", "4",
"--learning_rate", "1e-5",
"--logging_steps", "1",
"--save_strategy", "epoch",
"--save_total_limit", "2",
"--remove_unused_columns", "False",
"--dataloader_pin_memory", "False",
"--push_to_hub",
"--hub_model_id", "username/sam2-finetuned",
"--do_train",
"--report_to", "trackio",
]from huggingface_hub import HfApi, get_token
api = HfApi()
job_info = api.run_uv_job(
script="scripts/sam_segmentation_training.py",
script_args=SAM_SCRIPT_ARGS,
flavor="t4-small",
timeout=7200,
env={"PYTHONUNBUFFERED": "1"},
secrets={"HF_TOKEN": get_token()},
)
print(f"任务ID: {job_info.id}")script_argsscript_args--model_name_or_path--dataset_name"merve/MicroMat-mini"--prompt_type"bbox""point"--prompt_column_name"prompt"--bbox_column_name--point_column_name--mask_column_name"mask"--hub_model_id"username/model-name"--num_train_epochs--per_device_train_batch_size--freeze_vision_encoder--freeze_prompt_encoder--train_val_split--model_name_or_path--dataset_name"merve/MicroMat-mini"--prompt_type"bbox""point"--prompt_column_name"prompt"--bbox_column_name--point_column_name--mask_column_name"mask"--hub_model_id"username/model-name"--num_train_epochs--per_device_train_batch_size--freeze_vision_encoder--freeze_prompt_encoder--train_val_splithf_jobs("ps") # List all jobs
hf_jobs("logs", {"job_id": "your-job-id"}) # View logs
hf_jobs("inspect", {"job_id": "your-job-id"}) # Job detailsfrom huggingface_hub import HfApi
api = HfApi()
api.list_jobs() # List all jobs
api.get_job_logs(job_id="your-job-id") # View logs
api.get_job(job_id="your-job-id") # Job detailshf_jobs("ps") # 列出所有任务
hf_jobs("logs", {"job_id": "your-job-id"}) # 查看日志
hf_jobs("inspect", {"job_id": "your-job-id"}) # 任务详情from huggingface_hub import HfApi
api = HfApi()
api.list_jobs() # 列出所有任务
api.get_job_logs(job_id="your-job-id") # 查看日志
api.get_job(job_id="your-job-id") # 任务详情per_device_train_batch_sizeIMAGE_SIZEper_device_train_batch_sizeIMAGE_SIZEscripts/dataset_inspector.pyimage_idobjects.bboxobjects.categoryscripts/dataset_inspector.pyimage_idobjects.bboxobjects.categorytraining_args.hub_tokenTrainerpush_to_hub=Truehub_model_idTrainertraining_args.hub_tokenpush_to_hub=Truehub_model_idhub_strategy="every_save"hub_strategy="every_save"validationscripts/object_detection_training.pyvalidationscripts/object_detection_training.pytorchmetrics.MeanAveragePrecisionscripts/object_detection_training.py.unsqueeze(0)torchmetrics.MeanAveragePrecisionscripts/object_detection_training.py.unsqueeze(0)