tribunal-kit 9.2.3 → 9.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. package/.agent/.tribunal/session.jsonl +15 -0
  2. package/.agent/ARCHITECTURE.md +4 -4
  3. package/.agent/agents/agent-shield-auditor.md +18 -0
  4. package/.agent/agents/harness-manager.md +49 -0
  5. package/.agent/agents/human-gate-negotiator.md +22 -0
  6. package/.agent/agents/kernel-scheduler.md +56 -0
  7. package/.agent/agents/memory-archivist.md +37 -0
  8. package/.agent/agents/orchestrator.md +5 -0
  9. package/.agent/agents/project-planner.md +5 -0
  10. package/.agent/agents/security-auditor.md +5 -0
  11. package/.agent/rules/GEMINI.md +1 -1
  12. package/.agent/scripts/_utils.js +1 -1
  13. package/.agent/scripts/checklist.js +1 -1
  14. package/.agent/scripts/context_compiler.js +1 -1
  15. package/.agent/scripts/guardrail_engine.js +1 -1
  16. package/.agent/scripts/harness_manager.js +60 -0
  17. package/.agent/scripts/lint_runner.js +1 -1
  18. package/.agent/scripts/mcp_server.js +181 -0
  19. package/.agent/scripts/memory_archivist.js +97 -0
  20. package/.agent/scripts/memory_consolidator.js +37 -0
  21. package/.agent/scripts/memory_engine.js +61 -21
  22. package/.agent/scripts/pipeline_engine.js +17 -2
  23. package/.agent/scripts/session_logger.js +115 -0
  24. package/.agent/scripts/session_manager.js +10 -0
  25. package/.agent/scripts/swarm_dispatcher.js +74 -1
  26. package/.agent/scripts/syscall_registry.js +105 -0
  27. package/.agent/scripts/test_runner.js +1 -1
  28. package/.agent/scripts/verify_all.js +2 -2
  29. package/.agent/skill_topic_map.json +28 -1
  30. package/.agent/skills/agent-syscall-guidelines/SKILL.md +25 -0
  31. package/.agent/skills/agentic-workflows-2026/SKILL.md +8 -0
  32. package/.agent/skills/agentshield-security/SKILL.md +26 -0
  33. package/.agent/skills/context-engineering-pro/SKILL.md +7 -0
  34. package/.agent/skills/fabel-protocol/SKILL.md +5 -0
  35. package/.agent/skills/graph-engineering/SKILL.md +28 -0
  36. package/.agent/skills/harness-protocol/SKILL.md +8 -0
  37. package/.agent/skills/hf-cli/SKILL.md +239 -0
  38. package/.agent/skills/hf-cloud-aws-context-discovery/SKILL.md +74 -0
  39. package/.agent/skills/hf-cloud-python-env-setup/SKILL.md +90 -0
  40. package/.agent/skills/hf-cloud-python-env-setup/requirements.txt +17 -0
  41. package/.agent/skills/hf-cloud-python-env-setup/scripts/check_versions.py +29 -0
  42. package/.agent/skills/hf-cloud-python-env-setup/scripts/setup_env.py +143 -0
  43. package/.agent/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +90 -0
  44. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +102 -0
  45. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/references/minimum-permissions.json +47 -0
  46. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/references/trust-policy.json +12 -0
  47. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/scripts/check_role.py +184 -0
  48. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/scripts/create_role.py +118 -0
  49. package/.agent/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +419 -0
  50. package/.agent/skills/hf-cloud-sagemaker-production-defaults/references/deployment-template.md +59 -0
  51. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/_common.py +148 -0
  52. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy.py +327 -0
  53. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_async.py +434 -0
  54. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_ic.py +506 -0
  55. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/invoke_endpoint.py +180 -0
  56. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/teardown.py +246 -0
  57. package/.agent/skills/hf-cloud-serving-image-selection/SKILL.md +220 -0
  58. package/.agent/skills/hf-cloud-serving-image-selection/references/model-to-image.md +111 -0
  59. package/.agent/skills/hf-cloud-serving-image-selection/scripts/mirror_image.py +145 -0
  60. package/.agent/skills/hf-mem/SKILL.md +79 -0
  61. package/.agent/skills/huggingface-best/SKILL.md +134 -0
  62. package/.agent/skills/huggingface-community-evals/SKILL.md +207 -0
  63. package/.agent/skills/huggingface-community-evals/examples/.env.example +3 -0
  64. package/.agent/skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
  65. package/.agent/skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
  66. package/.agent/skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
  67. package/.agent/skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
  68. package/.agent/skills/huggingface-datasets/SKILL.md +107 -0
  69. package/.agent/skills/huggingface-gradio/SKILL.md +298 -0
  70. package/.agent/skills/huggingface-gradio/examples.md +613 -0
  71. package/.agent/skills/huggingface-llm-trainer/SKILL.md +738 -0
  72. package/.agent/skills/huggingface-llm-trainer/references/gguf_conversion.md +296 -0
  73. package/.agent/skills/huggingface-llm-trainer/references/hardware_guide.md +283 -0
  74. package/.agent/skills/huggingface-llm-trainer/references/hub_saving.md +364 -0
  75. package/.agent/skills/huggingface-llm-trainer/references/local_training_macos.md +231 -0
  76. package/.agent/skills/huggingface-llm-trainer/references/reliability_principles.md +371 -0
  77. package/.agent/skills/huggingface-llm-trainer/references/trackio_guide.md +191 -0
  78. package/.agent/skills/huggingface-llm-trainer/references/training_methods.md +150 -0
  79. package/.agent/skills/huggingface-llm-trainer/references/training_patterns.md +203 -0
  80. package/.agent/skills/huggingface-llm-trainer/references/troubleshooting.md +282 -0
  81. package/.agent/skills/huggingface-llm-trainer/references/unsloth.md +313 -0
  82. package/.agent/skills/huggingface-llm-trainer/scripts/convert_to_gguf.py +424 -0
  83. package/.agent/skills/huggingface-llm-trainer/scripts/dataset_inspector.py +417 -0
  84. package/.agent/skills/huggingface-llm-trainer/scripts/estimate_cost.py +150 -0
  85. package/.agent/skills/huggingface-llm-trainer/scripts/hf_benchmarks.py +659 -0
  86. package/.agent/skills/huggingface-llm-trainer/scripts/train_dpo_example.py +106 -0
  87. package/.agent/skills/huggingface-llm-trainer/scripts/train_grpo_example.py +89 -0
  88. package/.agent/skills/huggingface-llm-trainer/scripts/train_sft_example.py +122 -0
  89. package/.agent/skills/huggingface-llm-trainer/scripts/unsloth_sft_example.py +512 -0
  90. package/.agent/skills/huggingface-local-models/SKILL.md +113 -0
  91. package/.agent/skills/huggingface-local-models/references/hardware.md +38 -0
  92. package/.agent/skills/huggingface-local-models/references/hub-discovery.md +178 -0
  93. package/.agent/skills/huggingface-local-models/references/quantization.md +256 -0
  94. package/.agent/skills/huggingface-lora-space-builder/SKILL.md +394 -0
  95. package/.agent/skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
  96. package/.agent/skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
  97. package/.agent/skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
  98. package/.agent/skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
  99. package/.agent/skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
  100. package/.agent/skills/huggingface-lora-space-builder/references/tasks.md +124 -0
  101. package/.agent/skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +196 -0
  102. package/.agent/skills/huggingface-paper-publisher/SKILL.md +624 -0
  103. package/.agent/skills/huggingface-paper-publisher/examples/example_usage.md +326 -0
  104. package/.agent/skills/huggingface-paper-publisher/references/quick_reference.md +216 -0
  105. package/.agent/skills/huggingface-paper-publisher/scripts/paper_manager.py +606 -0
  106. package/.agent/skills/huggingface-paper-publisher/templates/arxiv.md +299 -0
  107. package/.agent/skills/huggingface-paper-publisher/templates/ml-report.md +358 -0
  108. package/.agent/skills/huggingface-paper-publisher/templates/modern.md +319 -0
  109. package/.agent/skills/huggingface-paper-publisher/templates/standard.md +201 -0
  110. package/.agent/skills/huggingface-papers/SKILL.md +239 -0
  111. package/.agent/skills/huggingface-spaces/README.md +9 -0
  112. package/.agent/skills/huggingface-spaces/SKILL.md +242 -0
  113. package/.agent/skills/huggingface-spaces/references/3d-cuda-extensions.md +109 -0
  114. package/.agent/skills/huggingface-spaces/references/3d-generation.md +98 -0
  115. package/.agent/skills/huggingface-spaces/references/3d-gsplat.md +53 -0
  116. package/.agent/skills/huggingface-spaces/references/3d-models.md +227 -0
  117. package/.agent/skills/huggingface-spaces/references/3d-outputs.md +114 -0
  118. package/.agent/skills/huggingface-spaces/references/buckets.md +89 -0
  119. package/.agent/skills/huggingface-spaces/references/debugging.md +236 -0
  120. package/.agent/skills/huggingface-spaces/references/gradio.md +200 -0
  121. package/.agent/skills/huggingface-spaces/references/grants.md +63 -0
  122. package/.agent/skills/huggingface-spaces/references/inference-providers.md +97 -0
  123. package/.agent/skills/huggingface-spaces/references/known-errors.md +232 -0
  124. package/.agent/skills/huggingface-spaces/references/requirements.md +169 -0
  125. package/.agent/skills/huggingface-spaces/references/zerogpu.md +349 -0
  126. package/.agent/skills/huggingface-tool-builder/SKILL.md +120 -0
  127. package/.agent/skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
  128. package/.agent/skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
  129. package/.agent/skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
  130. package/.agent/skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
  131. package/.agent/skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
  132. package/.agent/skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
  133. package/.agent/skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
  134. package/.agent/skills/huggingface-trackio/SKILL.md +142 -0
  135. package/.agent/skills/huggingface-trackio/references/alerts.md +196 -0
  136. package/.agent/skills/huggingface-trackio/references/logging_metrics.md +212 -0
  137. package/.agent/skills/huggingface-trackio/references/retrieving_metrics.md +251 -0
  138. package/.agent/skills/huggingface-vision-trainer/SKILL.md +593 -0
  139. package/.agent/skills/huggingface-vision-trainer/references/finetune_sam2_trainer.md +254 -0
  140. package/.agent/skills/huggingface-vision-trainer/references/hub_saving.md +618 -0
  141. package/.agent/skills/huggingface-vision-trainer/references/image_classification_training_notebook.md +279 -0
  142. package/.agent/skills/huggingface-vision-trainer/references/object_detection_training_notebook.md +700 -0
  143. package/.agent/skills/huggingface-vision-trainer/references/reliability_principles.md +310 -0
  144. package/.agent/skills/huggingface-vision-trainer/references/timm_trainer.md +91 -0
  145. package/.agent/skills/huggingface-vision-trainer/scripts/dataset_inspector.py +814 -0
  146. package/.agent/skills/huggingface-vision-trainer/scripts/estimate_cost.py +217 -0
  147. package/.agent/skills/huggingface-vision-trainer/scripts/image_classification_training.py +383 -0
  148. package/.agent/skills/huggingface-vision-trainer/scripts/object_detection_training.py +710 -0
  149. package/.agent/skills/huggingface-vision-trainer/scripts/sam_segmentation_training.py +382 -0
  150. package/.agent/skills/huggingface-zerogpu/SKILL.md +289 -0
  151. package/.agent/skills/huggingface-zerogpu/references/concurrency.md +79 -0
  152. package/.agent/skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
  153. package/.agent/skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
  154. package/.agent/skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
  155. package/.agent/skills/human-gate-negotiation/SKILL.md +30 -0
  156. package/.agent/skills/intelligent-routing/SKILL.md +10 -4
  157. package/.agent/skills/semantic-filesystem-navigation/SKILL.md +24 -0
  158. package/.agent/skills/session-log-interrogation/SKILL.md +29 -0
  159. package/.agent/skills/subagent-driven-development/SKILL.md +32 -0
  160. package/.agent/skills/systematic-debugging/SKILL.md +5 -0
  161. package/.agent/skills/train-sentence-transformers/SKILL.md +109 -0
  162. package/.agent/skills/train-sentence-transformers/references/base_model_selection.md +79 -0
  163. package/.agent/skills/train-sentence-transformers/references/dataset_formats.md +128 -0
  164. package/.agent/skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
  165. package/.agent/skills/train-sentence-transformers/references/evaluators_multi_vector_encoder.md +101 -0
  166. package/.agent/skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
  167. package/.agent/skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
  168. package/.agent/skills/train-sentence-transformers/references/hardware_guide.md +105 -0
  169. package/.agent/skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
  170. package/.agent/skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
  171. package/.agent/skills/train-sentence-transformers/references/losses_multi_vector_encoder.md +100 -0
  172. package/.agent/skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
  173. package/.agent/skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
  174. package/.agent/skills/train-sentence-transformers/references/model_architectures.md +178 -0
  175. package/.agent/skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
  176. package/.agent/skills/train-sentence-transformers/references/training_args.md +270 -0
  177. package/.agent/skills/train-sentence-transformers/references/troubleshooting.md +225 -0
  178. package/.agent/skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
  179. package/.agent/skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
  180. package/.agent/skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
  181. package/.agent/skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
  182. package/.agent/skills/train-sentence-transformers/scripts/train_multi_vector_encoder_example.py +240 -0
  183. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
  184. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
  185. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
  186. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
  187. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
  188. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
  189. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
  190. package/.agent/skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
  191. package/.agent/skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
  192. package/.agent/skills/transformers-js/SKILL.md +692 -0
  193. package/.agent/skills/transformers-js/references/CACHE.md +339 -0
  194. package/.agent/skills/transformers-js/references/CONFIGURATION.md +438 -0
  195. package/.agent/skills/transformers-js/references/EXAMPLES.md +620 -0
  196. package/.agent/skills/transformers-js/references/MODEL_ARCHITECTURES.md +167 -0
  197. package/.agent/skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
  198. package/.agent/skills/transformers-js/references/PIPELINE_OPTIONS.md +557 -0
  199. package/.agent/skills/transformers-js/references/TEXT_GENERATION.md +315 -0
  200. package/.agent/skills/tribunal-instincts-memory/SKILL.md +31 -0
  201. package/.agent/skills/trl-training/SKILL.md +318 -0
  202. package/.agent/workflows/assimilate.md +21 -0
  203. package/.agent/workflows/audit.md +5 -0
  204. package/.agent/workflows/generate.md +5 -0
  205. package/.agent/workflows/htop.md +22 -0
  206. package/.agent/workflows/marathon.md +5 -0
  207. package/.agent/workflows/resume.md +20 -0
  208. package/.agent/workflows/team-mode.md +22 -0
  209. package/.agents/skills/agent-syscall-guidelines/SKILL.md +25 -0
  210. package/.agents/skills/agentic-workflows-2026/SKILL.md +8 -0
  211. package/.agents/skills/agentshield-security/SKILL.md +26 -0
  212. package/.agents/skills/context-engineering-pro/SKILL.md +7 -0
  213. package/.agents/skills/fabel-protocol/SKILL.md +5 -0
  214. package/.agents/skills/graph-engineering/SKILL.md +28 -0
  215. package/.agents/skills/harness-protocol/SKILL.md +8 -0
  216. package/.agents/skills/hf-cli/SKILL.md +239 -0
  217. package/.agents/skills/hf-cloud-aws-context-discovery/SKILL.md +74 -0
  218. package/.agents/skills/hf-cloud-python-env-setup/SKILL.md +90 -0
  219. package/.agents/skills/hf-cloud-python-env-setup/requirements.txt +17 -0
  220. package/.agents/skills/hf-cloud-python-env-setup/scripts/check_versions.py +29 -0
  221. package/.agents/skills/hf-cloud-python-env-setup/scripts/setup_env.py +143 -0
  222. package/.agents/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +90 -0
  223. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +102 -0
  224. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/references/minimum-permissions.json +47 -0
  225. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/references/trust-policy.json +12 -0
  226. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/scripts/check_role.py +184 -0
  227. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/scripts/create_role.py +118 -0
  228. package/.agents/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +419 -0
  229. package/.agents/skills/hf-cloud-sagemaker-production-defaults/references/deployment-template.md +59 -0
  230. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/_common.py +148 -0
  231. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy.py +327 -0
  232. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_async.py +434 -0
  233. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_ic.py +506 -0
  234. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/invoke_endpoint.py +180 -0
  235. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/teardown.py +246 -0
  236. package/.agents/skills/hf-cloud-serving-image-selection/SKILL.md +220 -0
  237. package/.agents/skills/hf-cloud-serving-image-selection/references/model-to-image.md +111 -0
  238. package/.agents/skills/hf-cloud-serving-image-selection/scripts/mirror_image.py +145 -0
  239. package/.agents/skills/hf-mem/SKILL.md +79 -0
  240. package/.agents/skills/huggingface-best/SKILL.md +134 -0
  241. package/.agents/skills/huggingface-community-evals/SKILL.md +207 -0
  242. package/.agents/skills/huggingface-community-evals/examples/.env.example +3 -0
  243. package/.agents/skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
  244. package/.agents/skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
  245. package/.agents/skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
  246. package/.agents/skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
  247. package/.agents/skills/huggingface-datasets/SKILL.md +107 -0
  248. package/.agents/skills/huggingface-gradio/SKILL.md +298 -0
  249. package/.agents/skills/huggingface-gradio/examples.md +613 -0
  250. package/.agents/skills/huggingface-llm-trainer/SKILL.md +738 -0
  251. package/.agents/skills/huggingface-llm-trainer/references/gguf_conversion.md +296 -0
  252. package/.agents/skills/huggingface-llm-trainer/references/hardware_guide.md +283 -0
  253. package/.agents/skills/huggingface-llm-trainer/references/hub_saving.md +364 -0
  254. package/.agents/skills/huggingface-llm-trainer/references/local_training_macos.md +231 -0
  255. package/.agents/skills/huggingface-llm-trainer/references/reliability_principles.md +371 -0
  256. package/.agents/skills/huggingface-llm-trainer/references/trackio_guide.md +191 -0
  257. package/.agents/skills/huggingface-llm-trainer/references/training_methods.md +150 -0
  258. package/.agents/skills/huggingface-llm-trainer/references/training_patterns.md +203 -0
  259. package/.agents/skills/huggingface-llm-trainer/references/troubleshooting.md +282 -0
  260. package/.agents/skills/huggingface-llm-trainer/references/unsloth.md +313 -0
  261. package/.agents/skills/huggingface-llm-trainer/scripts/convert_to_gguf.py +424 -0
  262. package/.agents/skills/huggingface-llm-trainer/scripts/dataset_inspector.py +417 -0
  263. package/.agents/skills/huggingface-llm-trainer/scripts/estimate_cost.py +150 -0
  264. package/.agents/skills/huggingface-llm-trainer/scripts/hf_benchmarks.py +659 -0
  265. package/.agents/skills/huggingface-llm-trainer/scripts/train_dpo_example.py +106 -0
  266. package/.agents/skills/huggingface-llm-trainer/scripts/train_grpo_example.py +89 -0
  267. package/.agents/skills/huggingface-llm-trainer/scripts/train_sft_example.py +122 -0
  268. package/.agents/skills/huggingface-llm-trainer/scripts/unsloth_sft_example.py +512 -0
  269. package/.agents/skills/huggingface-local-models/SKILL.md +113 -0
  270. package/.agents/skills/huggingface-local-models/references/hardware.md +38 -0
  271. package/.agents/skills/huggingface-local-models/references/hub-discovery.md +178 -0
  272. package/.agents/skills/huggingface-local-models/references/quantization.md +256 -0
  273. package/.agents/skills/huggingface-lora-space-builder/SKILL.md +394 -0
  274. package/.agents/skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
  275. package/.agents/skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
  276. package/.agents/skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
  277. package/.agents/skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
  278. package/.agents/skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
  279. package/.agents/skills/huggingface-lora-space-builder/references/tasks.md +124 -0
  280. package/.agents/skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +196 -0
  281. package/.agents/skills/huggingface-paper-publisher/SKILL.md +624 -0
  282. package/.agents/skills/huggingface-paper-publisher/examples/example_usage.md +326 -0
  283. package/.agents/skills/huggingface-paper-publisher/references/quick_reference.md +216 -0
  284. package/.agents/skills/huggingface-paper-publisher/scripts/paper_manager.py +606 -0
  285. package/.agents/skills/huggingface-paper-publisher/templates/arxiv.md +299 -0
  286. package/.agents/skills/huggingface-paper-publisher/templates/ml-report.md +358 -0
  287. package/.agents/skills/huggingface-paper-publisher/templates/modern.md +319 -0
  288. package/.agents/skills/huggingface-paper-publisher/templates/standard.md +201 -0
  289. package/.agents/skills/huggingface-papers/SKILL.md +239 -0
  290. package/.agents/skills/huggingface-spaces/README.md +9 -0
  291. package/.agents/skills/huggingface-spaces/SKILL.md +242 -0
  292. package/.agents/skills/huggingface-spaces/references/3d-cuda-extensions.md +109 -0
  293. package/.agents/skills/huggingface-spaces/references/3d-generation.md +98 -0
  294. package/.agents/skills/huggingface-spaces/references/3d-gsplat.md +53 -0
  295. package/.agents/skills/huggingface-spaces/references/3d-models.md +227 -0
  296. package/.agents/skills/huggingface-spaces/references/3d-outputs.md +114 -0
  297. package/.agents/skills/huggingface-spaces/references/buckets.md +89 -0
  298. package/.agents/skills/huggingface-spaces/references/debugging.md +236 -0
  299. package/.agents/skills/huggingface-spaces/references/gradio.md +200 -0
  300. package/.agents/skills/huggingface-spaces/references/grants.md +63 -0
  301. package/.agents/skills/huggingface-spaces/references/inference-providers.md +97 -0
  302. package/.agents/skills/huggingface-spaces/references/known-errors.md +232 -0
  303. package/.agents/skills/huggingface-spaces/references/requirements.md +169 -0
  304. package/.agents/skills/huggingface-spaces/references/zerogpu.md +349 -0
  305. package/.agents/skills/huggingface-tool-builder/SKILL.md +120 -0
  306. package/.agents/skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
  307. package/.agents/skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
  308. package/.agents/skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
  309. package/.agents/skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
  310. package/.agents/skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
  311. package/.agents/skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
  312. package/.agents/skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
  313. package/.agents/skills/huggingface-trackio/SKILL.md +142 -0
  314. package/.agents/skills/huggingface-trackio/references/alerts.md +196 -0
  315. package/.agents/skills/huggingface-trackio/references/logging_metrics.md +212 -0
  316. package/.agents/skills/huggingface-trackio/references/retrieving_metrics.md +251 -0
  317. package/.agents/skills/huggingface-vision-trainer/SKILL.md +593 -0
  318. package/.agents/skills/huggingface-vision-trainer/references/finetune_sam2_trainer.md +254 -0
  319. package/.agents/skills/huggingface-vision-trainer/references/hub_saving.md +618 -0
  320. package/.agents/skills/huggingface-vision-trainer/references/image_classification_training_notebook.md +279 -0
  321. package/.agents/skills/huggingface-vision-trainer/references/object_detection_training_notebook.md +700 -0
  322. package/.agents/skills/huggingface-vision-trainer/references/reliability_principles.md +310 -0
  323. package/.agents/skills/huggingface-vision-trainer/references/timm_trainer.md +91 -0
  324. package/.agents/skills/huggingface-vision-trainer/scripts/dataset_inspector.py +814 -0
  325. package/.agents/skills/huggingface-vision-trainer/scripts/estimate_cost.py +217 -0
  326. package/.agents/skills/huggingface-vision-trainer/scripts/image_classification_training.py +383 -0
  327. package/.agents/skills/huggingface-vision-trainer/scripts/object_detection_training.py +710 -0
  328. package/.agents/skills/huggingface-vision-trainer/scripts/sam_segmentation_training.py +382 -0
  329. package/.agents/skills/huggingface-zerogpu/SKILL.md +289 -0
  330. package/.agents/skills/huggingface-zerogpu/references/concurrency.md +79 -0
  331. package/.agents/skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
  332. package/.agents/skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
  333. package/.agents/skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
  334. package/.agents/skills/human-gate-negotiation/SKILL.md +30 -0
  335. package/.agents/skills/intelligent-routing/SKILL.md +10 -4
  336. package/.agents/skills/semantic-filesystem-navigation/SKILL.md +24 -0
  337. package/.agents/skills/session-log-interrogation/SKILL.md +29 -0
  338. package/.agents/skills/subagent-driven-development/SKILL.md +32 -0
  339. package/.agents/skills/systematic-debugging/SKILL.md +5 -0
  340. package/.agents/skills/train-sentence-transformers/SKILL.md +109 -0
  341. package/.agents/skills/train-sentence-transformers/references/base_model_selection.md +79 -0
  342. package/.agents/skills/train-sentence-transformers/references/dataset_formats.md +128 -0
  343. package/.agents/skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
  344. package/.agents/skills/train-sentence-transformers/references/evaluators_multi_vector_encoder.md +101 -0
  345. package/.agents/skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
  346. package/.agents/skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
  347. package/.agents/skills/train-sentence-transformers/references/hardware_guide.md +105 -0
  348. package/.agents/skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
  349. package/.agents/skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
  350. package/.agents/skills/train-sentence-transformers/references/losses_multi_vector_encoder.md +100 -0
  351. package/.agents/skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
  352. package/.agents/skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
  353. package/.agents/skills/train-sentence-transformers/references/model_architectures.md +178 -0
  354. package/.agents/skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
  355. package/.agents/skills/train-sentence-transformers/references/training_args.md +270 -0
  356. package/.agents/skills/train-sentence-transformers/references/troubleshooting.md +225 -0
  357. package/.agents/skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
  358. package/.agents/skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
  359. package/.agents/skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
  360. package/.agents/skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
  361. package/.agents/skills/train-sentence-transformers/scripts/train_multi_vector_encoder_example.py +240 -0
  362. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
  363. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
  364. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
  365. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
  366. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
  367. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
  368. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
  369. package/.agents/skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
  370. package/.agents/skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
  371. package/.agents/skills/transformers-js/SKILL.md +692 -0
  372. package/.agents/skills/transformers-js/references/CACHE.md +339 -0
  373. package/.agents/skills/transformers-js/references/CONFIGURATION.md +438 -0
  374. package/.agents/skills/transformers-js/references/EXAMPLES.md +620 -0
  375. package/.agents/skills/transformers-js/references/MODEL_ARCHITECTURES.md +167 -0
  376. package/.agents/skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
  377. package/.agents/skills/transformers-js/references/PIPELINE_OPTIONS.md +557 -0
  378. package/.agents/skills/transformers-js/references/TEXT_GENERATION.md +315 -0
  379. package/.agents/skills/tribunal-instincts-memory/SKILL.md +31 -0
  380. package/.agents/skills/trl-training/SKILL.md +318 -0
  381. package/CONTRIBUTING.md +2 -2
  382. package/README.md +135 -435
  383. package/bin/adapter-install.js +1 -1
  384. package/bin/mcp-server.js +5 -5
  385. package/dist/tui/banner.js +1 -1
  386. package/gemini-extension.json +1 -1
  387. package/mcp_config.json +1 -1
  388. package/package.json +7 -7
  389. package/plugin.json +1 -1
  390. package/scripts/context_compiler.js +1 -1
  391. package/scripts/skill_enhancement_engine.js +6 -6
  392. package/skills/agent-syscall-guidelines/SKILL.md +25 -0
  393. package/skills/agentic-workflows-2026/SKILL.md +8 -0
  394. package/skills/agentshield-security/SKILL.md +26 -0
  395. package/skills/context-engineering-pro/SKILL.md +7 -0
  396. package/skills/fabel-protocol/SKILL.md +5 -0
  397. package/skills/graph-engineering/SKILL.md +28 -0
  398. package/skills/harness-protocol/SKILL.md +8 -0
  399. package/skills/hf-cli/SKILL.md +239 -0
  400. package/skills/hf-cloud-aws-context-discovery/SKILL.md +74 -0
  401. package/skills/hf-cloud-python-env-setup/SKILL.md +90 -0
  402. package/skills/hf-cloud-python-env-setup/requirements.txt +17 -0
  403. package/skills/hf-cloud-python-env-setup/scripts/check_versions.py +29 -0
  404. package/skills/hf-cloud-python-env-setup/scripts/setup_env.py +143 -0
  405. package/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +90 -0
  406. package/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +102 -0
  407. package/skills/hf-cloud-sagemaker-iam-preflight/references/minimum-permissions.json +47 -0
  408. package/skills/hf-cloud-sagemaker-iam-preflight/references/trust-policy.json +12 -0
  409. package/skills/hf-cloud-sagemaker-iam-preflight/scripts/check_role.py +184 -0
  410. package/skills/hf-cloud-sagemaker-iam-preflight/scripts/create_role.py +118 -0
  411. package/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +419 -0
  412. package/skills/hf-cloud-sagemaker-production-defaults/references/deployment-template.md +59 -0
  413. package/skills/hf-cloud-sagemaker-production-defaults/scripts/_common.py +148 -0
  414. package/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy.py +327 -0
  415. package/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_async.py +434 -0
  416. package/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_ic.py +506 -0
  417. package/skills/hf-cloud-sagemaker-production-defaults/scripts/invoke_endpoint.py +180 -0
  418. package/skills/hf-cloud-sagemaker-production-defaults/scripts/teardown.py +246 -0
  419. package/skills/hf-cloud-serving-image-selection/SKILL.md +220 -0
  420. package/skills/hf-cloud-serving-image-selection/references/model-to-image.md +111 -0
  421. package/skills/hf-cloud-serving-image-selection/scripts/mirror_image.py +145 -0
  422. package/skills/hf-mem/SKILL.md +79 -0
  423. package/skills/huggingface-best/SKILL.md +134 -0
  424. package/skills/huggingface-community-evals/SKILL.md +207 -0
  425. package/skills/huggingface-community-evals/examples/.env.example +3 -0
  426. package/skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
  427. package/skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
  428. package/skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
  429. package/skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
  430. package/skills/huggingface-datasets/SKILL.md +107 -0
  431. package/skills/huggingface-gradio/SKILL.md +298 -0
  432. package/skills/huggingface-gradio/examples.md +613 -0
  433. package/skills/huggingface-llm-trainer/SKILL.md +738 -0
  434. package/skills/huggingface-llm-trainer/references/gguf_conversion.md +296 -0
  435. package/skills/huggingface-llm-trainer/references/hardware_guide.md +283 -0
  436. package/skills/huggingface-llm-trainer/references/hub_saving.md +364 -0
  437. package/skills/huggingface-llm-trainer/references/local_training_macos.md +231 -0
  438. package/skills/huggingface-llm-trainer/references/reliability_principles.md +371 -0
  439. package/skills/huggingface-llm-trainer/references/trackio_guide.md +191 -0
  440. package/skills/huggingface-llm-trainer/references/training_methods.md +150 -0
  441. package/skills/huggingface-llm-trainer/references/training_patterns.md +203 -0
  442. package/skills/huggingface-llm-trainer/references/troubleshooting.md +282 -0
  443. package/skills/huggingface-llm-trainer/references/unsloth.md +313 -0
  444. package/skills/huggingface-llm-trainer/scripts/convert_to_gguf.py +424 -0
  445. package/skills/huggingface-llm-trainer/scripts/dataset_inspector.py +417 -0
  446. package/skills/huggingface-llm-trainer/scripts/estimate_cost.py +150 -0
  447. package/skills/huggingface-llm-trainer/scripts/hf_benchmarks.py +659 -0
  448. package/skills/huggingface-llm-trainer/scripts/train_dpo_example.py +106 -0
  449. package/skills/huggingface-llm-trainer/scripts/train_grpo_example.py +89 -0
  450. package/skills/huggingface-llm-trainer/scripts/train_sft_example.py +122 -0
  451. package/skills/huggingface-llm-trainer/scripts/unsloth_sft_example.py +512 -0
  452. package/skills/huggingface-local-models/SKILL.md +113 -0
  453. package/skills/huggingface-local-models/references/hardware.md +38 -0
  454. package/skills/huggingface-local-models/references/hub-discovery.md +178 -0
  455. package/skills/huggingface-local-models/references/quantization.md +256 -0
  456. package/skills/huggingface-lora-space-builder/SKILL.md +394 -0
  457. package/skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
  458. package/skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
  459. package/skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
  460. package/skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
  461. package/skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
  462. package/skills/huggingface-lora-space-builder/references/tasks.md +124 -0
  463. package/skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +196 -0
  464. package/skills/huggingface-paper-publisher/SKILL.md +624 -0
  465. package/skills/huggingface-paper-publisher/examples/example_usage.md +326 -0
  466. package/skills/huggingface-paper-publisher/references/quick_reference.md +216 -0
  467. package/skills/huggingface-paper-publisher/scripts/paper_manager.py +606 -0
  468. package/skills/huggingface-paper-publisher/templates/arxiv.md +299 -0
  469. package/skills/huggingface-paper-publisher/templates/ml-report.md +358 -0
  470. package/skills/huggingface-paper-publisher/templates/modern.md +319 -0
  471. package/skills/huggingface-paper-publisher/templates/standard.md +201 -0
  472. package/skills/huggingface-papers/SKILL.md +239 -0
  473. package/skills/huggingface-spaces/README.md +9 -0
  474. package/skills/huggingface-spaces/SKILL.md +242 -0
  475. package/skills/huggingface-spaces/references/3d-cuda-extensions.md +109 -0
  476. package/skills/huggingface-spaces/references/3d-generation.md +98 -0
  477. package/skills/huggingface-spaces/references/3d-gsplat.md +53 -0
  478. package/skills/huggingface-spaces/references/3d-models.md +227 -0
  479. package/skills/huggingface-spaces/references/3d-outputs.md +114 -0
  480. package/skills/huggingface-spaces/references/buckets.md +89 -0
  481. package/skills/huggingface-spaces/references/debugging.md +236 -0
  482. package/skills/huggingface-spaces/references/gradio.md +200 -0
  483. package/skills/huggingface-spaces/references/grants.md +63 -0
  484. package/skills/huggingface-spaces/references/inference-providers.md +97 -0
  485. package/skills/huggingface-spaces/references/known-errors.md +232 -0
  486. package/skills/huggingface-spaces/references/requirements.md +169 -0
  487. package/skills/huggingface-spaces/references/zerogpu.md +349 -0
  488. package/skills/huggingface-tool-builder/SKILL.md +120 -0
  489. package/skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
  490. package/skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
  491. package/skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
  492. package/skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
  493. package/skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
  494. package/skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
  495. package/skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
  496. package/skills/huggingface-trackio/SKILL.md +142 -0
  497. package/skills/huggingface-trackio/references/alerts.md +196 -0
  498. package/skills/huggingface-trackio/references/logging_metrics.md +212 -0
  499. package/skills/huggingface-trackio/references/retrieving_metrics.md +251 -0
  500. package/skills/huggingface-vision-trainer/SKILL.md +593 -0
  501. package/skills/huggingface-vision-trainer/references/finetune_sam2_trainer.md +254 -0
  502. package/skills/huggingface-vision-trainer/references/hub_saving.md +618 -0
  503. package/skills/huggingface-vision-trainer/references/image_classification_training_notebook.md +279 -0
  504. package/skills/huggingface-vision-trainer/references/object_detection_training_notebook.md +700 -0
  505. package/skills/huggingface-vision-trainer/references/reliability_principles.md +310 -0
  506. package/skills/huggingface-vision-trainer/references/timm_trainer.md +91 -0
  507. package/skills/huggingface-vision-trainer/scripts/dataset_inspector.py +814 -0
  508. package/skills/huggingface-vision-trainer/scripts/estimate_cost.py +217 -0
  509. package/skills/huggingface-vision-trainer/scripts/image_classification_training.py +383 -0
  510. package/skills/huggingface-vision-trainer/scripts/object_detection_training.py +710 -0
  511. package/skills/huggingface-vision-trainer/scripts/sam_segmentation_training.py +382 -0
  512. package/skills/huggingface-zerogpu/SKILL.md +289 -0
  513. package/skills/huggingface-zerogpu/references/concurrency.md +79 -0
  514. package/skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
  515. package/skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
  516. package/skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
  517. package/skills/human-gate-negotiation/SKILL.md +30 -0
  518. package/skills/intelligent-routing/SKILL.md +10 -4
  519. package/skills/semantic-filesystem-navigation/SKILL.md +24 -0
  520. package/skills/session-log-interrogation/SKILL.md +29 -0
  521. package/skills/subagent-driven-development/SKILL.md +32 -0
  522. package/skills/systematic-debugging/SKILL.md +5 -0
  523. package/skills/train-sentence-transformers/SKILL.md +109 -0
  524. package/skills/train-sentence-transformers/references/base_model_selection.md +79 -0
  525. package/skills/train-sentence-transformers/references/dataset_formats.md +128 -0
  526. package/skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
  527. package/skills/train-sentence-transformers/references/evaluators_multi_vector_encoder.md +101 -0
  528. package/skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
  529. package/skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
  530. package/skills/train-sentence-transformers/references/hardware_guide.md +105 -0
  531. package/skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
  532. package/skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
  533. package/skills/train-sentence-transformers/references/losses_multi_vector_encoder.md +100 -0
  534. package/skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
  535. package/skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
  536. package/skills/train-sentence-transformers/references/model_architectures.md +178 -0
  537. package/skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
  538. package/skills/train-sentence-transformers/references/training_args.md +270 -0
  539. package/skills/train-sentence-transformers/references/troubleshooting.md +225 -0
  540. package/skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
  541. package/skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
  542. package/skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
  543. package/skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
  544. package/skills/train-sentence-transformers/scripts/train_multi_vector_encoder_example.py +240 -0
  545. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
  546. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
  547. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
  548. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
  549. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
  550. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
  551. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
  552. package/skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
  553. package/skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
  554. package/skills/transformers-js/SKILL.md +692 -0
  555. package/skills/transformers-js/references/CACHE.md +339 -0
  556. package/skills/transformers-js/references/CONFIGURATION.md +438 -0
  557. package/skills/transformers-js/references/EXAMPLES.md +620 -0
  558. package/skills/transformers-js/references/MODEL_ARCHITECTURES.md +167 -0
  559. package/skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
  560. package/skills/transformers-js/references/PIPELINE_OPTIONS.md +557 -0
  561. package/skills/transformers-js/references/TEXT_GENERATION.md +315 -0
  562. package/skills/tribunal-instincts-memory/SKILL.md +31 -0
  563. package/skills/trl-training/SKILL.md +318 -0
@@ -0,0 +1,217 @@
1
+ #!/usr/bin/env python3
2
+ # /// script
3
+ # requires-python = ">=3.10"
4
+ # dependencies = []
5
+ # ///
6
+ """
7
+ Estimate training time and cost for vision model training jobs on Hugging Face Jobs.
8
+
9
+ Usage:
10
+ uv run estimate_cost.py --model ustc-community/dfine-small-coco --dataset cppe-5 --hardware t4-small
11
+ uv run estimate_cost.py --model PekingU/rtdetr_v2_r50vd --dataset-size 5000 --hardware t4-small --epochs 30
12
+ uv run estimate_cost.py --model google/vit-base-patch16-224-in21k --dataset ethz/food101 --hardware t4-small --epochs 3
13
+ """
14
+
15
+ import argparse
16
+
17
+ HARDWARE_COSTS = {
18
+ "t4-small": 0.40,
19
+ "t4-medium": 0.60,
20
+ "l4x1": 0.80,
21
+ "l4x4": 3.80,
22
+ "a10g-small": 1.00,
23
+ "a10g-large": 1.50,
24
+ "a10g-largex2": 3.00,
25
+ "a10g-largex4": 5.00,
26
+ "l40sx1": 1.80,
27
+ "l40sx4": 8.30,
28
+ "a100-large": 2.50,
29
+ "a100x4": 10.00,
30
+ }
31
+
32
+ # Vision model sizes in millions of parameters
33
+ MODEL_PARAMS_M = {
34
+ # Object detection
35
+ "dfine-small": 10.4,
36
+ "dfine-large": 31.4,
37
+ "dfine-xlarge": 63.5,
38
+ "rtdetr_v2_r18vd": 20.2,
39
+ "rtdetr_v2_r50vd": 43.0,
40
+ "rtdetr_v2_r101vd": 76.0,
41
+ "detr-resnet-50": 41.3,
42
+ "detr-resnet-101": 60.2,
43
+ "yolos-small": 30.7,
44
+ "yolos-tiny": 6.5,
45
+ # Image classification
46
+ "mobilenetv3_small": 2.5,
47
+ "mobilevit_s": 5.6,
48
+ "resnet50": 25.6,
49
+ "vit_base_patch16": 86.6,
50
+ # SAM / SAM2 segmentation
51
+ "sam-vit-base": 93.7,
52
+ "sam-vit-large": 312.3,
53
+ "sam-vit-huge": 641.1,
54
+ "sam2.1-hiera-tiny": 38.9,
55
+ "sam2.1-hiera-small": 46.0,
56
+ "sam2.1-hiera-base-plus": 80.8,
57
+ "sam2.1-hiera-large": 224.4,
58
+ }
59
+
60
+ KNOWN_DATASETS = {
61
+ # Object detection
62
+ "cppe-5": 1000,
63
+ "merve/license-plate": 6180,
64
+ # Image classification
65
+ "ethz/food101": 75750,
66
+ # SAM segmentation
67
+ "merve/MicroMat-mini": 240,
68
+ }
69
+
70
+
71
+ def extract_model_params(model_name: str) -> float:
72
+ """Extract model size in millions of parameters from the model name."""
73
+ name_lower = model_name.lower()
74
+ for key, params in MODEL_PARAMS_M.items():
75
+ if key.lower() in name_lower:
76
+ return params
77
+ return 30.0 # reasonable default for vision models
78
+
79
+
80
+ def estimate_training_time(model_params_m: float, dataset_size: int, epochs: int,
81
+ image_size: int, batch_size: int, hardware: str) -> float:
82
+ """Estimate training time in hours for vision model training."""
83
+ # Steps per epoch
84
+ steps_per_epoch = dataset_size / batch_size
85
+ # empirical calibration values
86
+ base_secs_per_step = 0.8
87
+ model_factor = (model_params_m / 30.0) ** 0.6
88
+ image_factor = (image_size / 640.0) ** 2
89
+
90
+
91
+ batch_factor = (batch_size / 8.0) ** 0.7
92
+
93
+ secs_per_step = base_secs_per_step * model_factor * image_factor * batch_factor
94
+
95
+ hardware_multipliers = {
96
+ "t4-small": 2.0,
97
+ "t4-medium": 2.0,
98
+ "l4x1": 1.2,
99
+ "l4x4": 0.5,
100
+ "a10g-small": 1.0,
101
+ "a10g-large": 1.0,
102
+ "a10g-largex2": 0.6,
103
+ "a10g-largex4": 0.4,
104
+ "l40sx1": 0.7,
105
+ "l40sx4": 0.25,
106
+ "a100-large": 0.5,
107
+ "a100x4": 0.2,
108
+ }
109
+
110
+ multiplier = hardware_multipliers.get(hardware, 1.0)
111
+ total_steps = steps_per_epoch * epochs
112
+ total_secs = total_steps * secs_per_step * multiplier
113
+
114
+ # Add overhead: model loading (~2 min), eval per epoch (~10% of training), Hub push (~3 min)
115
+ eval_overhead = total_secs * 0.10
116
+ fixed_overhead = 5 * 60 # 5 minutes
117
+ total_secs += eval_overhead + fixed_overhead
118
+
119
+ return total_secs / 3600
120
+
121
+
122
+ def parse_args():
123
+ parser = argparse.ArgumentParser(description="Estimate training cost for vision model training jobs")
124
+ parser.add_argument("--model", required=True,
125
+ help="Model name (e.g., 'ustc-community/dfine-small-coco' or 'detr-resnet-50')")
126
+ parser.add_argument("--dataset", default=None, help="Dataset name (for known size lookup)")
127
+ parser.add_argument("--hardware", required=True, choices=HARDWARE_COSTS.keys(), help="Hardware flavor")
128
+ parser.add_argument("--dataset-size", type=int, default=None,
129
+ help="Number of training images (overrides dataset lookup)")
130
+ parser.add_argument("--epochs", type=int, default=30, help="Number of training epochs (default: 30)")
131
+ parser.add_argument("--image-size", type=int, default=640, help="Image square size in pixels (default: 640)")
132
+ parser.add_argument("--batch-size", type=int, default=8, help="Per-device batch size (default: 8)")
133
+ return parser.parse_args()
134
+
135
+
136
+ def main():
137
+ args = parse_args()
138
+
139
+ model_params = extract_model_params(args.model)
140
+ print(f"Model: {args.model} (~{model_params:.1f}M parameters)")
141
+
142
+ if args.dataset_size:
143
+ dataset_size = args.dataset_size
144
+ elif args.dataset and args.dataset in KNOWN_DATASETS:
145
+ dataset_size = KNOWN_DATASETS[args.dataset]
146
+ elif args.dataset:
147
+ print(f"Unknown dataset '{args.dataset}', defaulting to 1000 images.")
148
+ print(f"Use --dataset-size to specify the exact count.")
149
+ dataset_size = 1000
150
+ else:
151
+ dataset_size = 1000
152
+
153
+ print(f"Dataset: {args.dataset or 'custom'} (~{dataset_size} images)")
154
+ print(f"Epochs: {args.epochs}")
155
+ print(f"Image size: {args.image_size}px")
156
+ print(f"Batch size: {args.batch_size}")
157
+ print(f"Hardware: {args.hardware} (${HARDWARE_COSTS[args.hardware]:.2f}/hr)")
158
+ print()
159
+
160
+ estimated_hours = estimate_training_time(
161
+ model_params, dataset_size, args.epochs, args.image_size, args.batch_size, args.hardware
162
+ )
163
+ estimated_cost = estimated_hours * HARDWARE_COSTS[args.hardware]
164
+ recommended_timeout = estimated_hours * 1.3 # 30% buffer
165
+
166
+ print(f"Estimated training time: {estimated_hours:.1f} hours")
167
+ print(f"Estimated cost: ${estimated_cost:.2f}")
168
+ print(f"Recommended timeout: {recommended_timeout:.1f}h (with 30% buffer)")
169
+ print()
170
+
171
+ if estimated_hours > 6:
172
+ print("Warning: Long training time. Consider:")
173
+ print(" - Reducing epochs or image size")
174
+ print(" - Using --max_train_samples for a test run first")
175
+ print(" - Upgrading hardware")
176
+ print()
177
+
178
+ if model_params > 50 and args.hardware in ("t4-small", "t4-medium"):
179
+ print("Warning: Large model on T4. If you hit OOM:")
180
+ print(" - Reduce batch size (try 4, then 2)")
181
+ print(" - Reduce image size (try 480)")
182
+ print(" - Upgrade to l4x1 or a10g-small")
183
+ print()
184
+
185
+ timeout_str = f"{recommended_timeout:.0f}h"
186
+ timeout_secs = int(recommended_timeout * 3600)
187
+ print(f"Example job configuration (MCP tool):")
188
+ print(f"""
189
+ hf_jobs("uv", {{
190
+ "script": "scripts/object_detection_training.py",
191
+ "script_args": [
192
+ "--model_name_or_path", "{args.model}",
193
+ "--dataset_name", "{args.dataset or 'your-dataset'}",
194
+ "--image_square_size", "{args.image_size}",
195
+ "--num_train_epochs", "{args.epochs}",
196
+ "--per_device_train_batch_size", "{args.batch_size}",
197
+ "--push_to_hub", "--do_train", "--do_eval"
198
+ ],
199
+ "flavor": "{args.hardware}",
200
+ "timeout": "{timeout_str}",
201
+ "secrets": {{"HF_TOKEN": "$HF_TOKEN"}}
202
+ }})
203
+ """)
204
+ print(f"Example job configuration (Python API):")
205
+ print(f"""
206
+ api.run_uv_job(
207
+ script="scripts/object_detection_training.py",
208
+ script_args=[...],
209
+ flavor="{args.hardware}",
210
+ timeout={timeout_secs},
211
+ secrets={{"HF_TOKEN": get_token()}},
212
+ )
213
+ """)
214
+
215
+
216
+ if __name__ == "__main__":
217
+ main()
@@ -0,0 +1,383 @@
1
+ # /// script
2
+ # dependencies = [
3
+ # "transformers>=5.2.0",
4
+ # "accelerate>=1.1.0",
5
+ # "timm",
6
+ # "datasets>=4.0",
7
+ # "evaluate",
8
+ # "scikit-learn",
9
+ # "torchvision",
10
+ # "trackio",
11
+ # "huggingface_hub",
12
+ # ]
13
+ # ///
14
+
15
+ """Fine-tuning any Transformers or timm model supported by AutoModelForImageClassification using the Trainer API."""
16
+
17
+ import logging
18
+ import os
19
+ import sys
20
+ from dataclasses import dataclass, field
21
+ from functools import partial
22
+ from typing import Any
23
+
24
+ import evaluate
25
+ import numpy as np
26
+ import torch
27
+ from datasets import load_dataset
28
+ from torchvision.transforms import (
29
+ CenterCrop,
30
+ Compose,
31
+ Normalize,
32
+ RandomHorizontalFlip,
33
+ RandomResizedCrop,
34
+ Resize,
35
+ ToTensor,
36
+ )
37
+
38
+ import trackio
39
+
40
+ import transformers
41
+ from transformers import (
42
+ AutoConfig,
43
+ AutoImageProcessor,
44
+ AutoModelForImageClassification,
45
+ DefaultDataCollator,
46
+ HfArgumentParser,
47
+ Trainer,
48
+ TrainingArguments,
49
+ )
50
+ from transformers.trainer import EvalPrediction
51
+ from transformers.utils import check_min_version
52
+ from transformers.utils.versions import require_version
53
+
54
+
55
+ logger = logging.getLogger(__name__)
56
+
57
+ check_min_version("4.57.0.dev0")
58
+ require_version("datasets>=2.0.0")
59
+
60
+
61
+ @dataclass
62
+ class DataTrainingArguments:
63
+ dataset_name: str = field(
64
+ default="ethz/food101",
65
+ metadata={"help": "Name of a dataset from the Hub."},
66
+ )
67
+ dataset_config_name: str | None = field(
68
+ default=None,
69
+ metadata={"help": "The configuration name of the dataset to use (via the datasets library)."},
70
+ )
71
+ train_val_split: float | None = field(
72
+ default=0.15,
73
+ metadata={"help": "Fraction to split off of train for validation (used only when no validation split exists)."},
74
+ )
75
+ max_train_samples: int | None = field(
76
+ default=None,
77
+ metadata={"help": "Truncate training set to this many samples (for debugging / quick tests)."},
78
+ )
79
+ max_eval_samples: int | None = field(
80
+ default=None,
81
+ metadata={"help": "Truncate evaluation set to this many samples."},
82
+ )
83
+ image_column_name: str = field(
84
+ default="image",
85
+ metadata={"help": "The column name for images in the dataset."},
86
+ )
87
+ label_column_name: str = field(
88
+ default="label",
89
+ metadata={"help": "The column name for labels in the dataset."},
90
+ )
91
+
92
+
93
+ @dataclass
94
+ class ModelArguments:
95
+ model_name_or_path: str = field(
96
+ default="timm/mobilenetv3_small_100.lamb_in1k",
97
+ metadata={"help": "Path to pretrained model or model identifier from huggingface.co/models."},
98
+ )
99
+ config_name: str | None = field(
100
+ default=None,
101
+ metadata={"help": "Pretrained config name or path if not the same as model_name."},
102
+ )
103
+ cache_dir: str | None = field(
104
+ default=None,
105
+ metadata={"help": "Where to store pretrained models downloaded from the Hub."},
106
+ )
107
+ model_revision: str = field(
108
+ default="main",
109
+ metadata={"help": "The specific model version to use (branch, tag, or commit id)."},
110
+ )
111
+ image_processor_name: str | None = field(
112
+ default=None,
113
+ metadata={"help": "Name or path of image processor config."},
114
+ )
115
+ ignore_mismatched_sizes: bool = field(
116
+ default=True,
117
+ metadata={"help": "Allow loading weights when num_labels differs from pretrained checkpoint."},
118
+ )
119
+ token: str | None = field(
120
+ default=None,
121
+ metadata={"help": "Auth token for private models / datasets."},
122
+ )
123
+ trust_remote_code: bool = field(
124
+ default=False,
125
+ metadata={"help": "Whether to trust remote code from Hub repos."},
126
+ )
127
+
128
+
129
+ def build_transforms(image_processor, is_training: bool):
130
+ """Build torchvision transforms from the image processor's config."""
131
+ if hasattr(image_processor, "size"):
132
+ size = image_processor.size
133
+ if "shortest_edge" in size:
134
+ img_size = size["shortest_edge"]
135
+ elif "height" in size and "width" in size:
136
+ img_size = (size["height"], size["width"])
137
+ else:
138
+ img_size = 224
139
+ else:
140
+ img_size = 224
141
+
142
+ if hasattr(image_processor, "image_mean") and image_processor.image_mean:
143
+ normalize = Normalize(mean=image_processor.image_mean, std=image_processor.image_std)
144
+ else:
145
+ normalize = Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
146
+
147
+ if is_training:
148
+ return Compose([
149
+ RandomResizedCrop(img_size),
150
+ RandomHorizontalFlip(),
151
+ ToTensor(),
152
+ normalize,
153
+ ])
154
+ else:
155
+ if isinstance(img_size, int):
156
+ resize_size = int(img_size / 0.875) # standard 87.5% center crop ratio
157
+ else:
158
+ resize_size = tuple(int(s / 0.875) for s in img_size)
159
+ return Compose([
160
+ Resize(resize_size),
161
+ CenterCrop(img_size),
162
+ ToTensor(),
163
+ normalize,
164
+ ])
165
+
166
+
167
+ def main():
168
+ parser = HfArgumentParser((ModelArguments, DataTrainingArguments, TrainingArguments))
169
+ if len(sys.argv) == 2 and sys.argv[1].endswith(".json"):
170
+ model_args, data_args, training_args = parser.parse_json_file(json_file=os.path.abspath(sys.argv[1]))
171
+ else:
172
+ model_args, data_args, training_args = parser.parse_args_into_dataclasses()
173
+
174
+ # --- Hub authentication ---
175
+ from huggingface_hub import login
176
+ hf_token = os.environ.get("HF_TOKEN") or os.environ.get("hfjob")
177
+ if hf_token:
178
+ login(token=hf_token)
179
+ training_args.hub_token = hf_token
180
+ logger.info("Logged in to Hugging Face Hub")
181
+ elif training_args.push_to_hub:
182
+ logger.warning("HF_TOKEN not found in environment. Hub push will likely fail.")
183
+
184
+ # --- Trackio ---
185
+ trackio.init(project=training_args.output_dir, name=training_args.run_name)
186
+
187
+ # --- Logging ---
188
+ logging.basicConfig(
189
+ format="%(asctime)s - %(levelname)s - %(name)s - %(message)s",
190
+ datefmt="%m/%d/%Y %H:%M:%S",
191
+ handlers=[logging.StreamHandler(sys.stdout)],
192
+ )
193
+ if training_args.should_log:
194
+ transformers.utils.logging.set_verbosity_info()
195
+
196
+ log_level = training_args.get_process_log_level()
197
+ logger.setLevel(log_level)
198
+ transformers.utils.logging.set_verbosity(log_level)
199
+ transformers.utils.logging.enable_default_handler()
200
+ transformers.utils.logging.enable_explicit_format()
201
+
202
+ logger.warning(
203
+ f"Process rank: {training_args.local_process_index}, device: {training_args.device}, "
204
+ f"n_gpu: {training_args.n_gpu}, distributed training: "
205
+ f"{training_args.parallel_mode.value == 'distributed'}, 16-bits training: {training_args.fp16}"
206
+ )
207
+ logger.info(f"Training/evaluation parameters {training_args}")
208
+
209
+ # --- Load dataset ---
210
+ dataset = load_dataset(
211
+ data_args.dataset_name,
212
+ data_args.dataset_config_name,
213
+ cache_dir=model_args.cache_dir,
214
+ trust_remote_code=model_args.trust_remote_code,
215
+ )
216
+
217
+ # --- Resolve label column ---
218
+ label_col = data_args.label_column_name
219
+ if label_col not in dataset["train"].column_names:
220
+ candidates = [c for c in dataset["train"].column_names if c in ("label", "labels", "class", "fine_label")]
221
+ if candidates:
222
+ label_col = candidates[0]
223
+ logger.info(f"Label column '{data_args.label_column_name}' not found, using '{label_col}'")
224
+ else:
225
+ raise ValueError(
226
+ f"Label column '{data_args.label_column_name}' not found. "
227
+ f"Available columns: {dataset['train'].column_names}"
228
+ )
229
+
230
+ # --- Discover labels ---
231
+ label_feature = dataset["train"].features[label_col]
232
+ if hasattr(label_feature, "names"):
233
+ label_names = label_feature.names
234
+ else:
235
+ unique_labels = sorted(set(dataset["train"][label_col]))
236
+ if all(isinstance(l, str) for l in unique_labels):
237
+ label_names = unique_labels
238
+ else:
239
+ label_names = [str(l) for l in unique_labels]
240
+
241
+ num_labels = len(label_names)
242
+ id2label = dict(enumerate(label_names))
243
+ label2id = {v: k for k, v in id2label.items()}
244
+ logger.info(f"Number of classes: {num_labels}")
245
+
246
+ # --- Remap string labels to int if needed ---
247
+ sample_label = dataset["train"][0][label_col]
248
+ if isinstance(sample_label, str):
249
+ logger.info("Remapping string labels to integer IDs")
250
+ for split_name in list(dataset.keys()):
251
+ dataset[split_name] = dataset[split_name].map(
252
+ lambda ex: {label_col: label2id[ex[label_col]]},
253
+ )
254
+
255
+ # --- Shuffle + Train/val split ---
256
+ dataset["train"] = dataset["train"].shuffle(seed=training_args.seed)
257
+
258
+ data_args.train_val_split = None if "validation" in dataset else data_args.train_val_split
259
+ if isinstance(data_args.train_val_split, float) and data_args.train_val_split > 0.0:
260
+ split = dataset["train"].train_test_split(data_args.train_val_split, seed=training_args.seed)
261
+ dataset["train"] = split["train"]
262
+ dataset["validation"] = split["test"]
263
+
264
+ # --- Truncate ---
265
+ if data_args.max_train_samples is not None:
266
+ max_train = min(data_args.max_train_samples, len(dataset["train"]))
267
+ dataset["train"] = dataset["train"].select(range(max_train))
268
+ logger.info(f"Truncated training set to {max_train} samples")
269
+ if data_args.max_eval_samples is not None and "validation" in dataset:
270
+ max_eval = min(data_args.max_eval_samples, len(dataset["validation"]))
271
+ dataset["validation"] = dataset["validation"].select(range(max_eval))
272
+ logger.info(f"Truncated validation set to {max_eval} samples")
273
+
274
+ # --- Load model & image processor ---
275
+ common_pretrained_args = {
276
+ "cache_dir": model_args.cache_dir,
277
+ "revision": model_args.model_revision,
278
+ "token": model_args.token,
279
+ "trust_remote_code": model_args.trust_remote_code,
280
+ }
281
+
282
+ config = AutoConfig.from_pretrained(
283
+ model_args.config_name or model_args.model_name_or_path,
284
+ num_labels=num_labels,
285
+ label2id=label2id,
286
+ id2label=id2label,
287
+ **common_pretrained_args,
288
+ )
289
+
290
+ model = AutoModelForImageClassification.from_pretrained(
291
+ model_args.model_name_or_path,
292
+ config=config,
293
+ ignore_mismatched_sizes=model_args.ignore_mismatched_sizes,
294
+ **common_pretrained_args,
295
+ )
296
+
297
+ image_processor = AutoImageProcessor.from_pretrained(
298
+ model_args.image_processor_name or model_args.model_name_or_path,
299
+ **common_pretrained_args,
300
+ )
301
+
302
+ # --- Build transforms ---
303
+ train_transforms = build_transforms(image_processor, is_training=True)
304
+ val_transforms = build_transforms(image_processor, is_training=False)
305
+
306
+ image_col = data_args.image_column_name
307
+
308
+ def preprocess_train(examples):
309
+ return {
310
+ "pixel_values": [train_transforms(img.convert("RGB")) for img in examples[image_col]],
311
+ "labels": examples[label_col],
312
+ }
313
+
314
+ def preprocess_val(examples):
315
+ return {
316
+ "pixel_values": [val_transforms(img.convert("RGB")) for img in examples[image_col]],
317
+ "labels": examples[label_col],
318
+ }
319
+
320
+ dataset["train"].set_transform(preprocess_train)
321
+ if "validation" in dataset:
322
+ dataset["validation"].set_transform(preprocess_val)
323
+ if "test" in dataset:
324
+ dataset["test"].set_transform(preprocess_val)
325
+
326
+ # --- Metrics ---
327
+ accuracy_metric = evaluate.load("accuracy")
328
+
329
+ def compute_metrics(eval_pred: EvalPrediction):
330
+ predictions = np.argmax(eval_pred.predictions, axis=1)
331
+ return accuracy_metric.compute(predictions=predictions, references=eval_pred.label_ids)
332
+
333
+ # --- Trainer ---
334
+ eval_dataset = None
335
+ if training_args.do_eval:
336
+ if "validation" in dataset:
337
+ eval_dataset = dataset["validation"]
338
+ elif "test" in dataset:
339
+ eval_dataset = dataset["test"]
340
+
341
+ trainer = Trainer(
342
+ model=model,
343
+ args=training_args,
344
+ train_dataset=dataset["train"] if training_args.do_train else None,
345
+ eval_dataset=eval_dataset,
346
+ processing_class=image_processor,
347
+ data_collator=DefaultDataCollator(),
348
+ compute_metrics=compute_metrics,
349
+ )
350
+
351
+ # --- Train ---
352
+ if training_args.do_train:
353
+ train_result = trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)
354
+ trainer.save_model()
355
+ trainer.log_metrics("train", train_result.metrics)
356
+ trainer.save_metrics("train", train_result.metrics)
357
+ trainer.save_state()
358
+
359
+ # --- Evaluate ---
360
+ if training_args.do_eval:
361
+ test_dataset = dataset.get("test", dataset.get("validation"))
362
+ test_prefix = "test" if "test" in dataset else "eval"
363
+ if test_dataset is not None:
364
+ metrics = trainer.evaluate(eval_dataset=test_dataset, metric_key_prefix=test_prefix)
365
+ trainer.log_metrics(test_prefix, metrics)
366
+ trainer.save_metrics(test_prefix, metrics)
367
+
368
+ trackio.finish()
369
+
370
+ # --- Push to Hub ---
371
+ kwargs = {
372
+ "finetuned_from": model_args.model_name_or_path,
373
+ "dataset": data_args.dataset_name,
374
+ "tags": ["image-classification", "vision"],
375
+ }
376
+ if training_args.push_to_hub:
377
+ trainer.push_to_hub(**kwargs)
378
+ else:
379
+ trainer.create_model_card(**kwargs)
380
+
381
+
382
+ if __name__ == "__main__":
383
+ main()