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.
- package/.agent/.tribunal/session.jsonl +15 -0
- package/.agent/ARCHITECTURE.md +4 -4
- package/.agent/agents/agent-shield-auditor.md +18 -0
- package/.agent/agents/harness-manager.md +49 -0
- package/.agent/agents/human-gate-negotiator.md +22 -0
- package/.agent/agents/kernel-scheduler.md +56 -0
- package/.agent/agents/memory-archivist.md +37 -0
- package/.agent/agents/orchestrator.md +5 -0
- package/.agent/agents/project-planner.md +5 -0
- package/.agent/agents/security-auditor.md +5 -0
- package/.agent/rules/GEMINI.md +1 -1
- package/.agent/scripts/_utils.js +1 -1
- package/.agent/scripts/checklist.js +1 -1
- package/.agent/scripts/context_compiler.js +1 -1
- package/.agent/scripts/guardrail_engine.js +1 -1
- package/.agent/scripts/harness_manager.js +60 -0
- package/.agent/scripts/lint_runner.js +1 -1
- package/.agent/scripts/mcp_server.js +181 -0
- package/.agent/scripts/memory_archivist.js +97 -0
- package/.agent/scripts/memory_consolidator.js +37 -0
- package/.agent/scripts/memory_engine.js +61 -21
- package/.agent/scripts/pipeline_engine.js +17 -2
- package/.agent/scripts/session_logger.js +115 -0
- package/.agent/scripts/session_manager.js +10 -0
- package/.agent/scripts/swarm_dispatcher.js +74 -1
- package/.agent/scripts/syscall_registry.js +105 -0
- package/.agent/scripts/test_runner.js +1 -1
- package/.agent/scripts/verify_all.js +2 -2
- package/.agent/skill_topic_map.json +28 -1
- package/.agent/skills/agent-syscall-guidelines/SKILL.md +25 -0
- package/.agent/skills/agentic-workflows-2026/SKILL.md +8 -0
- package/.agent/skills/agentshield-security/SKILL.md +26 -0
- package/.agent/skills/context-engineering-pro/SKILL.md +7 -0
- package/.agent/skills/fabel-protocol/SKILL.md +5 -0
- package/.agent/skills/graph-engineering/SKILL.md +28 -0
- package/.agent/skills/harness-protocol/SKILL.md +8 -0
- package/.agent/skills/hf-cli/SKILL.md +239 -0
- package/.agent/skills/hf-cloud-aws-context-discovery/SKILL.md +74 -0
- package/.agent/skills/hf-cloud-python-env-setup/SKILL.md +90 -0
- package/.agent/skills/hf-cloud-python-env-setup/requirements.txt +17 -0
- package/.agent/skills/hf-cloud-python-env-setup/scripts/check_versions.py +29 -0
- package/.agent/skills/hf-cloud-python-env-setup/scripts/setup_env.py +143 -0
- package/.agent/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +90 -0
- package/.agent/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +102 -0
- package/.agent/skills/hf-cloud-sagemaker-iam-preflight/references/minimum-permissions.json +47 -0
- package/.agent/skills/hf-cloud-sagemaker-iam-preflight/references/trust-policy.json +12 -0
- package/.agent/skills/hf-cloud-sagemaker-iam-preflight/scripts/check_role.py +184 -0
- package/.agent/skills/hf-cloud-sagemaker-iam-preflight/scripts/create_role.py +118 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +419 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/references/deployment-template.md +59 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/_common.py +148 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy.py +327 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_async.py +434 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_ic.py +506 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/invoke_endpoint.py +180 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/teardown.py +246 -0
- package/.agent/skills/hf-cloud-serving-image-selection/SKILL.md +220 -0
- package/.agent/skills/hf-cloud-serving-image-selection/references/model-to-image.md +111 -0
- package/.agent/skills/hf-cloud-serving-image-selection/scripts/mirror_image.py +145 -0
- package/.agent/skills/hf-mem/SKILL.md +79 -0
- package/.agent/skills/huggingface-best/SKILL.md +134 -0
- package/.agent/skills/huggingface-community-evals/SKILL.md +207 -0
- package/.agent/skills/huggingface-community-evals/examples/.env.example +3 -0
- package/.agent/skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
- package/.agent/skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
- package/.agent/skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
- package/.agent/skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
- package/.agent/skills/huggingface-datasets/SKILL.md +107 -0
- package/.agent/skills/huggingface-gradio/SKILL.md +298 -0
- package/.agent/skills/huggingface-gradio/examples.md +613 -0
- package/.agent/skills/huggingface-llm-trainer/SKILL.md +738 -0
- package/.agent/skills/huggingface-llm-trainer/references/gguf_conversion.md +296 -0
- package/.agent/skills/huggingface-llm-trainer/references/hardware_guide.md +283 -0
- package/.agent/skills/huggingface-llm-trainer/references/hub_saving.md +364 -0
- package/.agent/skills/huggingface-llm-trainer/references/local_training_macos.md +231 -0
- package/.agent/skills/huggingface-llm-trainer/references/reliability_principles.md +371 -0
- package/.agent/skills/huggingface-llm-trainer/references/trackio_guide.md +191 -0
- package/.agent/skills/huggingface-llm-trainer/references/training_methods.md +150 -0
- package/.agent/skills/huggingface-llm-trainer/references/training_patterns.md +203 -0
- package/.agent/skills/huggingface-llm-trainer/references/troubleshooting.md +282 -0
- package/.agent/skills/huggingface-llm-trainer/references/unsloth.md +313 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/convert_to_gguf.py +424 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/dataset_inspector.py +417 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/estimate_cost.py +150 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/hf_benchmarks.py +659 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/train_dpo_example.py +106 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/train_grpo_example.py +89 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/train_sft_example.py +122 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/unsloth_sft_example.py +512 -0
- package/.agent/skills/huggingface-local-models/SKILL.md +113 -0
- package/.agent/skills/huggingface-local-models/references/hardware.md +38 -0
- package/.agent/skills/huggingface-local-models/references/hub-discovery.md +178 -0
- package/.agent/skills/huggingface-local-models/references/quantization.md +256 -0
- package/.agent/skills/huggingface-lora-space-builder/SKILL.md +394 -0
- package/.agent/skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
- package/.agent/skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
- package/.agent/skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
- package/.agent/skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
- package/.agent/skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
- package/.agent/skills/huggingface-lora-space-builder/references/tasks.md +124 -0
- package/.agent/skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +196 -0
- package/.agent/skills/huggingface-paper-publisher/SKILL.md +624 -0
- package/.agent/skills/huggingface-paper-publisher/examples/example_usage.md +326 -0
- package/.agent/skills/huggingface-paper-publisher/references/quick_reference.md +216 -0
- package/.agent/skills/huggingface-paper-publisher/scripts/paper_manager.py +606 -0
- package/.agent/skills/huggingface-paper-publisher/templates/arxiv.md +299 -0
- package/.agent/skills/huggingface-paper-publisher/templates/ml-report.md +358 -0
- package/.agent/skills/huggingface-paper-publisher/templates/modern.md +319 -0
- package/.agent/skills/huggingface-paper-publisher/templates/standard.md +201 -0
- package/.agent/skills/huggingface-papers/SKILL.md +239 -0
- package/.agent/skills/huggingface-spaces/README.md +9 -0
- package/.agent/skills/huggingface-spaces/SKILL.md +242 -0
- package/.agent/skills/huggingface-spaces/references/3d-cuda-extensions.md +109 -0
- package/.agent/skills/huggingface-spaces/references/3d-generation.md +98 -0
- package/.agent/skills/huggingface-spaces/references/3d-gsplat.md +53 -0
- package/.agent/skills/huggingface-spaces/references/3d-models.md +227 -0
- package/.agent/skills/huggingface-spaces/references/3d-outputs.md +114 -0
- package/.agent/skills/huggingface-spaces/references/buckets.md +89 -0
- package/.agent/skills/huggingface-spaces/references/debugging.md +236 -0
- package/.agent/skills/huggingface-spaces/references/gradio.md +200 -0
- package/.agent/skills/huggingface-spaces/references/grants.md +63 -0
- package/.agent/skills/huggingface-spaces/references/inference-providers.md +97 -0
- package/.agent/skills/huggingface-spaces/references/known-errors.md +232 -0
- package/.agent/skills/huggingface-spaces/references/requirements.md +169 -0
- package/.agent/skills/huggingface-spaces/references/zerogpu.md +349 -0
- package/.agent/skills/huggingface-tool-builder/SKILL.md +120 -0
- package/.agent/skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
- package/.agent/skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
- package/.agent/skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
- package/.agent/skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
- package/.agent/skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
- package/.agent/skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
- package/.agent/skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
- package/.agent/skills/huggingface-trackio/SKILL.md +142 -0
- package/.agent/skills/huggingface-trackio/references/alerts.md +196 -0
- package/.agent/skills/huggingface-trackio/references/logging_metrics.md +212 -0
- package/.agent/skills/huggingface-trackio/references/retrieving_metrics.md +251 -0
- package/.agent/skills/huggingface-vision-trainer/SKILL.md +593 -0
- package/.agent/skills/huggingface-vision-trainer/references/finetune_sam2_trainer.md +254 -0
- package/.agent/skills/huggingface-vision-trainer/references/hub_saving.md +618 -0
- package/.agent/skills/huggingface-vision-trainer/references/image_classification_training_notebook.md +279 -0
- package/.agent/skills/huggingface-vision-trainer/references/object_detection_training_notebook.md +700 -0
- package/.agent/skills/huggingface-vision-trainer/references/reliability_principles.md +310 -0
- package/.agent/skills/huggingface-vision-trainer/references/timm_trainer.md +91 -0
- package/.agent/skills/huggingface-vision-trainer/scripts/dataset_inspector.py +814 -0
- package/.agent/skills/huggingface-vision-trainer/scripts/estimate_cost.py +217 -0
- package/.agent/skills/huggingface-vision-trainer/scripts/image_classification_training.py +383 -0
- package/.agent/skills/huggingface-vision-trainer/scripts/object_detection_training.py +710 -0
- package/.agent/skills/huggingface-vision-trainer/scripts/sam_segmentation_training.py +382 -0
- package/.agent/skills/huggingface-zerogpu/SKILL.md +289 -0
- package/.agent/skills/huggingface-zerogpu/references/concurrency.md +79 -0
- package/.agent/skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
- package/.agent/skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
- package/.agent/skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
- package/.agent/skills/human-gate-negotiation/SKILL.md +30 -0
- package/.agent/skills/intelligent-routing/SKILL.md +10 -4
- package/.agent/skills/semantic-filesystem-navigation/SKILL.md +24 -0
- package/.agent/skills/session-log-interrogation/SKILL.md +29 -0
- package/.agent/skills/subagent-driven-development/SKILL.md +32 -0
- package/.agent/skills/systematic-debugging/SKILL.md +5 -0
- package/.agent/skills/train-sentence-transformers/SKILL.md +109 -0
- package/.agent/skills/train-sentence-transformers/references/base_model_selection.md +79 -0
- package/.agent/skills/train-sentence-transformers/references/dataset_formats.md +128 -0
- package/.agent/skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
- package/.agent/skills/train-sentence-transformers/references/evaluators_multi_vector_encoder.md +101 -0
- package/.agent/skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
- package/.agent/skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
- package/.agent/skills/train-sentence-transformers/references/hardware_guide.md +105 -0
- package/.agent/skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
- package/.agent/skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
- package/.agent/skills/train-sentence-transformers/references/losses_multi_vector_encoder.md +100 -0
- package/.agent/skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
- package/.agent/skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
- package/.agent/skills/train-sentence-transformers/references/model_architectures.md +178 -0
- package/.agent/skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
- package/.agent/skills/train-sentence-transformers/references/training_args.md +270 -0
- package/.agent/skills/train-sentence-transformers/references/troubleshooting.md +225 -0
- package/.agent/skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_multi_vector_encoder_example.py +240 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
- package/.agent/skills/transformers-js/SKILL.md +692 -0
- package/.agent/skills/transformers-js/references/CACHE.md +339 -0
- package/.agent/skills/transformers-js/references/CONFIGURATION.md +438 -0
- package/.agent/skills/transformers-js/references/EXAMPLES.md +620 -0
- package/.agent/skills/transformers-js/references/MODEL_ARCHITECTURES.md +167 -0
- package/.agent/skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
- package/.agent/skills/transformers-js/references/PIPELINE_OPTIONS.md +557 -0
- package/.agent/skills/transformers-js/references/TEXT_GENERATION.md +315 -0
- package/.agent/skills/tribunal-instincts-memory/SKILL.md +31 -0
- package/.agent/skills/trl-training/SKILL.md +318 -0
- package/.agent/workflows/assimilate.md +21 -0
- package/.agent/workflows/audit.md +5 -0
- package/.agent/workflows/generate.md +5 -0
- package/.agent/workflows/htop.md +22 -0
- package/.agent/workflows/marathon.md +5 -0
- package/.agent/workflows/resume.md +20 -0
- package/.agent/workflows/team-mode.md +22 -0
- package/.agents/skills/agent-syscall-guidelines/SKILL.md +25 -0
- package/.agents/skills/agentic-workflows-2026/SKILL.md +8 -0
- package/.agents/skills/agentshield-security/SKILL.md +26 -0
- package/.agents/skills/context-engineering-pro/SKILL.md +7 -0
- package/.agents/skills/fabel-protocol/SKILL.md +5 -0
- package/.agents/skills/graph-engineering/SKILL.md +28 -0
- package/.agents/skills/harness-protocol/SKILL.md +8 -0
- package/.agents/skills/hf-cli/SKILL.md +239 -0
- package/.agents/skills/hf-cloud-aws-context-discovery/SKILL.md +74 -0
- package/.agents/skills/hf-cloud-python-env-setup/SKILL.md +90 -0
- package/.agents/skills/hf-cloud-python-env-setup/requirements.txt +17 -0
- package/.agents/skills/hf-cloud-python-env-setup/scripts/check_versions.py +29 -0
- package/.agents/skills/hf-cloud-python-env-setup/scripts/setup_env.py +143 -0
- package/.agents/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +90 -0
- package/.agents/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +102 -0
- package/.agents/skills/hf-cloud-sagemaker-iam-preflight/references/minimum-permissions.json +47 -0
- package/.agents/skills/hf-cloud-sagemaker-iam-preflight/references/trust-policy.json +12 -0
- package/.agents/skills/hf-cloud-sagemaker-iam-preflight/scripts/check_role.py +184 -0
- package/.agents/skills/hf-cloud-sagemaker-iam-preflight/scripts/create_role.py +118 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +419 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/references/deployment-template.md +59 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/_common.py +148 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy.py +327 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_async.py +434 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_ic.py +506 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/invoke_endpoint.py +180 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/teardown.py +246 -0
- package/.agents/skills/hf-cloud-serving-image-selection/SKILL.md +220 -0
- package/.agents/skills/hf-cloud-serving-image-selection/references/model-to-image.md +111 -0
- package/.agents/skills/hf-cloud-serving-image-selection/scripts/mirror_image.py +145 -0
- package/.agents/skills/hf-mem/SKILL.md +79 -0
- package/.agents/skills/huggingface-best/SKILL.md +134 -0
- package/.agents/skills/huggingface-community-evals/SKILL.md +207 -0
- package/.agents/skills/huggingface-community-evals/examples/.env.example +3 -0
- package/.agents/skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
- package/.agents/skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
- package/.agents/skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
- package/.agents/skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
- package/.agents/skills/huggingface-datasets/SKILL.md +107 -0
- package/.agents/skills/huggingface-gradio/SKILL.md +298 -0
- package/.agents/skills/huggingface-gradio/examples.md +613 -0
- package/.agents/skills/huggingface-llm-trainer/SKILL.md +738 -0
- package/.agents/skills/huggingface-llm-trainer/references/gguf_conversion.md +296 -0
- package/.agents/skills/huggingface-llm-trainer/references/hardware_guide.md +283 -0
- package/.agents/skills/huggingface-llm-trainer/references/hub_saving.md +364 -0
- package/.agents/skills/huggingface-llm-trainer/references/local_training_macos.md +231 -0
- package/.agents/skills/huggingface-llm-trainer/references/reliability_principles.md +371 -0
- package/.agents/skills/huggingface-llm-trainer/references/trackio_guide.md +191 -0
- package/.agents/skills/huggingface-llm-trainer/references/training_methods.md +150 -0
- package/.agents/skills/huggingface-llm-trainer/references/training_patterns.md +203 -0
- package/.agents/skills/huggingface-llm-trainer/references/troubleshooting.md +282 -0
- package/.agents/skills/huggingface-llm-trainer/references/unsloth.md +313 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/convert_to_gguf.py +424 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/dataset_inspector.py +417 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/estimate_cost.py +150 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/hf_benchmarks.py +659 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/train_dpo_example.py +106 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/train_grpo_example.py +89 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/train_sft_example.py +122 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/unsloth_sft_example.py +512 -0
- package/.agents/skills/huggingface-local-models/SKILL.md +113 -0
- package/.agents/skills/huggingface-local-models/references/hardware.md +38 -0
- package/.agents/skills/huggingface-local-models/references/hub-discovery.md +178 -0
- package/.agents/skills/huggingface-local-models/references/quantization.md +256 -0
- package/.agents/skills/huggingface-lora-space-builder/SKILL.md +394 -0
- package/.agents/skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
- package/.agents/skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
- package/.agents/skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
- package/.agents/skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
- package/.agents/skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
- package/.agents/skills/huggingface-lora-space-builder/references/tasks.md +124 -0
- package/.agents/skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +196 -0
- package/.agents/skills/huggingface-paper-publisher/SKILL.md +624 -0
- package/.agents/skills/huggingface-paper-publisher/examples/example_usage.md +326 -0
- package/.agents/skills/huggingface-paper-publisher/references/quick_reference.md +216 -0
- package/.agents/skills/huggingface-paper-publisher/scripts/paper_manager.py +606 -0
- package/.agents/skills/huggingface-paper-publisher/templates/arxiv.md +299 -0
- package/.agents/skills/huggingface-paper-publisher/templates/ml-report.md +358 -0
- package/.agents/skills/huggingface-paper-publisher/templates/modern.md +319 -0
- package/.agents/skills/huggingface-paper-publisher/templates/standard.md +201 -0
- package/.agents/skills/huggingface-papers/SKILL.md +239 -0
- package/.agents/skills/huggingface-spaces/README.md +9 -0
- package/.agents/skills/huggingface-spaces/SKILL.md +242 -0
- package/.agents/skills/huggingface-spaces/references/3d-cuda-extensions.md +109 -0
- package/.agents/skills/huggingface-spaces/references/3d-generation.md +98 -0
- package/.agents/skills/huggingface-spaces/references/3d-gsplat.md +53 -0
- package/.agents/skills/huggingface-spaces/references/3d-models.md +227 -0
- package/.agents/skills/huggingface-spaces/references/3d-outputs.md +114 -0
- package/.agents/skills/huggingface-spaces/references/buckets.md +89 -0
- package/.agents/skills/huggingface-spaces/references/debugging.md +236 -0
- package/.agents/skills/huggingface-spaces/references/gradio.md +200 -0
- package/.agents/skills/huggingface-spaces/references/grants.md +63 -0
- package/.agents/skills/huggingface-spaces/references/inference-providers.md +97 -0
- package/.agents/skills/huggingface-spaces/references/known-errors.md +232 -0
- package/.agents/skills/huggingface-spaces/references/requirements.md +169 -0
- package/.agents/skills/huggingface-spaces/references/zerogpu.md +349 -0
- package/.agents/skills/huggingface-tool-builder/SKILL.md +120 -0
- package/.agents/skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
- package/.agents/skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
- package/.agents/skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
- package/.agents/skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
- package/.agents/skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
- package/.agents/skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
- package/.agents/skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
- package/.agents/skills/huggingface-trackio/SKILL.md +142 -0
- package/.agents/skills/huggingface-trackio/references/alerts.md +196 -0
- package/.agents/skills/huggingface-trackio/references/logging_metrics.md +212 -0
- package/.agents/skills/huggingface-trackio/references/retrieving_metrics.md +251 -0
- package/.agents/skills/huggingface-vision-trainer/SKILL.md +593 -0
- package/.agents/skills/huggingface-vision-trainer/references/finetune_sam2_trainer.md +254 -0
- package/.agents/skills/huggingface-vision-trainer/references/hub_saving.md +618 -0
- package/.agents/skills/huggingface-vision-trainer/references/image_classification_training_notebook.md +279 -0
- package/.agents/skills/huggingface-vision-trainer/references/object_detection_training_notebook.md +700 -0
- package/.agents/skills/huggingface-vision-trainer/references/reliability_principles.md +310 -0
- package/.agents/skills/huggingface-vision-trainer/references/timm_trainer.md +91 -0
- package/.agents/skills/huggingface-vision-trainer/scripts/dataset_inspector.py +814 -0
- package/.agents/skills/huggingface-vision-trainer/scripts/estimate_cost.py +217 -0
- package/.agents/skills/huggingface-vision-trainer/scripts/image_classification_training.py +383 -0
- package/.agents/skills/huggingface-vision-trainer/scripts/object_detection_training.py +710 -0
- package/.agents/skills/huggingface-vision-trainer/scripts/sam_segmentation_training.py +382 -0
- package/.agents/skills/huggingface-zerogpu/SKILL.md +289 -0
- package/.agents/skills/huggingface-zerogpu/references/concurrency.md +79 -0
- package/.agents/skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
- package/.agents/skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
- package/.agents/skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
- package/.agents/skills/human-gate-negotiation/SKILL.md +30 -0
- package/.agents/skills/intelligent-routing/SKILL.md +10 -4
- package/.agents/skills/semantic-filesystem-navigation/SKILL.md +24 -0
- package/.agents/skills/session-log-interrogation/SKILL.md +29 -0
- package/.agents/skills/subagent-driven-development/SKILL.md +32 -0
- package/.agents/skills/systematic-debugging/SKILL.md +5 -0
- package/.agents/skills/train-sentence-transformers/SKILL.md +109 -0
- package/.agents/skills/train-sentence-transformers/references/base_model_selection.md +79 -0
- package/.agents/skills/train-sentence-transformers/references/dataset_formats.md +128 -0
- package/.agents/skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
- package/.agents/skills/train-sentence-transformers/references/evaluators_multi_vector_encoder.md +101 -0
- package/.agents/skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
- package/.agents/skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
- package/.agents/skills/train-sentence-transformers/references/hardware_guide.md +105 -0
- package/.agents/skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
- package/.agents/skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
- package/.agents/skills/train-sentence-transformers/references/losses_multi_vector_encoder.md +100 -0
- package/.agents/skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
- package/.agents/skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
- package/.agents/skills/train-sentence-transformers/references/model_architectures.md +178 -0
- package/.agents/skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
- package/.agents/skills/train-sentence-transformers/references/training_args.md +270 -0
- package/.agents/skills/train-sentence-transformers/references/troubleshooting.md +225 -0
- package/.agents/skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_multi_vector_encoder_example.py +240 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
- package/.agents/skills/transformers-js/SKILL.md +692 -0
- package/.agents/skills/transformers-js/references/CACHE.md +339 -0
- package/.agents/skills/transformers-js/references/CONFIGURATION.md +438 -0
- package/.agents/skills/transformers-js/references/EXAMPLES.md +620 -0
- package/.agents/skills/transformers-js/references/MODEL_ARCHITECTURES.md +167 -0
- package/.agents/skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
- package/.agents/skills/transformers-js/references/PIPELINE_OPTIONS.md +557 -0
- package/.agents/skills/transformers-js/references/TEXT_GENERATION.md +315 -0
- package/.agents/skills/tribunal-instincts-memory/SKILL.md +31 -0
- package/.agents/skills/trl-training/SKILL.md +318 -0
- package/CONTRIBUTING.md +2 -2
- package/README.md +135 -435
- package/bin/adapter-install.js +1 -1
- package/bin/mcp-server.js +5 -5
- package/dist/tui/banner.js +1 -1
- package/gemini-extension.json +1 -1
- package/mcp_config.json +1 -1
- package/package.json +7 -7
- package/plugin.json +1 -1
- package/scripts/context_compiler.js +1 -1
- package/scripts/skill_enhancement_engine.js +6 -6
- package/skills/agent-syscall-guidelines/SKILL.md +25 -0
- package/skills/agentic-workflows-2026/SKILL.md +8 -0
- package/skills/agentshield-security/SKILL.md +26 -0
- package/skills/context-engineering-pro/SKILL.md +7 -0
- package/skills/fabel-protocol/SKILL.md +5 -0
- package/skills/graph-engineering/SKILL.md +28 -0
- package/skills/harness-protocol/SKILL.md +8 -0
- package/skills/hf-cli/SKILL.md +239 -0
- package/skills/hf-cloud-aws-context-discovery/SKILL.md +74 -0
- package/skills/hf-cloud-python-env-setup/SKILL.md +90 -0
- package/skills/hf-cloud-python-env-setup/requirements.txt +17 -0
- package/skills/hf-cloud-python-env-setup/scripts/check_versions.py +29 -0
- package/skills/hf-cloud-python-env-setup/scripts/setup_env.py +143 -0
- package/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +90 -0
- package/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +102 -0
- package/skills/hf-cloud-sagemaker-iam-preflight/references/minimum-permissions.json +47 -0
- package/skills/hf-cloud-sagemaker-iam-preflight/references/trust-policy.json +12 -0
- package/skills/hf-cloud-sagemaker-iam-preflight/scripts/check_role.py +184 -0
- package/skills/hf-cloud-sagemaker-iam-preflight/scripts/create_role.py +118 -0
- package/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +419 -0
- package/skills/hf-cloud-sagemaker-production-defaults/references/deployment-template.md +59 -0
- package/skills/hf-cloud-sagemaker-production-defaults/scripts/_common.py +148 -0
- package/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy.py +327 -0
- package/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_async.py +434 -0
- package/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_ic.py +506 -0
- package/skills/hf-cloud-sagemaker-production-defaults/scripts/invoke_endpoint.py +180 -0
- package/skills/hf-cloud-sagemaker-production-defaults/scripts/teardown.py +246 -0
- package/skills/hf-cloud-serving-image-selection/SKILL.md +220 -0
- package/skills/hf-cloud-serving-image-selection/references/model-to-image.md +111 -0
- package/skills/hf-cloud-serving-image-selection/scripts/mirror_image.py +145 -0
- package/skills/hf-mem/SKILL.md +79 -0
- package/skills/huggingface-best/SKILL.md +134 -0
- package/skills/huggingface-community-evals/SKILL.md +207 -0
- package/skills/huggingface-community-evals/examples/.env.example +3 -0
- package/skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
- package/skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
- package/skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
- package/skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
- package/skills/huggingface-datasets/SKILL.md +107 -0
- package/skills/huggingface-gradio/SKILL.md +298 -0
- package/skills/huggingface-gradio/examples.md +613 -0
- package/skills/huggingface-llm-trainer/SKILL.md +738 -0
- package/skills/huggingface-llm-trainer/references/gguf_conversion.md +296 -0
- package/skills/huggingface-llm-trainer/references/hardware_guide.md +283 -0
- package/skills/huggingface-llm-trainer/references/hub_saving.md +364 -0
- package/skills/huggingface-llm-trainer/references/local_training_macos.md +231 -0
- package/skills/huggingface-llm-trainer/references/reliability_principles.md +371 -0
- package/skills/huggingface-llm-trainer/references/trackio_guide.md +191 -0
- package/skills/huggingface-llm-trainer/references/training_methods.md +150 -0
- package/skills/huggingface-llm-trainer/references/training_patterns.md +203 -0
- package/skills/huggingface-llm-trainer/references/troubleshooting.md +282 -0
- package/skills/huggingface-llm-trainer/references/unsloth.md +313 -0
- package/skills/huggingface-llm-trainer/scripts/convert_to_gguf.py +424 -0
- package/skills/huggingface-llm-trainer/scripts/dataset_inspector.py +417 -0
- package/skills/huggingface-llm-trainer/scripts/estimate_cost.py +150 -0
- package/skills/huggingface-llm-trainer/scripts/hf_benchmarks.py +659 -0
- package/skills/huggingface-llm-trainer/scripts/train_dpo_example.py +106 -0
- package/skills/huggingface-llm-trainer/scripts/train_grpo_example.py +89 -0
- package/skills/huggingface-llm-trainer/scripts/train_sft_example.py +122 -0
- package/skills/huggingface-llm-trainer/scripts/unsloth_sft_example.py +512 -0
- package/skills/huggingface-local-models/SKILL.md +113 -0
- package/skills/huggingface-local-models/references/hardware.md +38 -0
- package/skills/huggingface-local-models/references/hub-discovery.md +178 -0
- package/skills/huggingface-local-models/references/quantization.md +256 -0
- package/skills/huggingface-lora-space-builder/SKILL.md +394 -0
- package/skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
- package/skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
- package/skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
- package/skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
- package/skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
- package/skills/huggingface-lora-space-builder/references/tasks.md +124 -0
- package/skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +196 -0
- package/skills/huggingface-paper-publisher/SKILL.md +624 -0
- package/skills/huggingface-paper-publisher/examples/example_usage.md +326 -0
- package/skills/huggingface-paper-publisher/references/quick_reference.md +216 -0
- package/skills/huggingface-paper-publisher/scripts/paper_manager.py +606 -0
- package/skills/huggingface-paper-publisher/templates/arxiv.md +299 -0
- package/skills/huggingface-paper-publisher/templates/ml-report.md +358 -0
- package/skills/huggingface-paper-publisher/templates/modern.md +319 -0
- package/skills/huggingface-paper-publisher/templates/standard.md +201 -0
- package/skills/huggingface-papers/SKILL.md +239 -0
- package/skills/huggingface-spaces/README.md +9 -0
- package/skills/huggingface-spaces/SKILL.md +242 -0
- package/skills/huggingface-spaces/references/3d-cuda-extensions.md +109 -0
- package/skills/huggingface-spaces/references/3d-generation.md +98 -0
- package/skills/huggingface-spaces/references/3d-gsplat.md +53 -0
- package/skills/huggingface-spaces/references/3d-models.md +227 -0
- package/skills/huggingface-spaces/references/3d-outputs.md +114 -0
- package/skills/huggingface-spaces/references/buckets.md +89 -0
- package/skills/huggingface-spaces/references/debugging.md +236 -0
- package/skills/huggingface-spaces/references/gradio.md +200 -0
- package/skills/huggingface-spaces/references/grants.md +63 -0
- package/skills/huggingface-spaces/references/inference-providers.md +97 -0
- package/skills/huggingface-spaces/references/known-errors.md +232 -0
- package/skills/huggingface-spaces/references/requirements.md +169 -0
- package/skills/huggingface-spaces/references/zerogpu.md +349 -0
- package/skills/huggingface-tool-builder/SKILL.md +120 -0
- package/skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
- package/skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
- package/skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
- package/skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
- package/skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
- package/skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
- package/skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
- package/skills/huggingface-trackio/SKILL.md +142 -0
- package/skills/huggingface-trackio/references/alerts.md +196 -0
- package/skills/huggingface-trackio/references/logging_metrics.md +212 -0
- package/skills/huggingface-trackio/references/retrieving_metrics.md +251 -0
- package/skills/huggingface-vision-trainer/SKILL.md +593 -0
- package/skills/huggingface-vision-trainer/references/finetune_sam2_trainer.md +254 -0
- package/skills/huggingface-vision-trainer/references/hub_saving.md +618 -0
- package/skills/huggingface-vision-trainer/references/image_classification_training_notebook.md +279 -0
- package/skills/huggingface-vision-trainer/references/object_detection_training_notebook.md +700 -0
- package/skills/huggingface-vision-trainer/references/reliability_principles.md +310 -0
- package/skills/huggingface-vision-trainer/references/timm_trainer.md +91 -0
- package/skills/huggingface-vision-trainer/scripts/dataset_inspector.py +814 -0
- package/skills/huggingface-vision-trainer/scripts/estimate_cost.py +217 -0
- package/skills/huggingface-vision-trainer/scripts/image_classification_training.py +383 -0
- package/skills/huggingface-vision-trainer/scripts/object_detection_training.py +710 -0
- package/skills/huggingface-vision-trainer/scripts/sam_segmentation_training.py +382 -0
- package/skills/huggingface-zerogpu/SKILL.md +289 -0
- package/skills/huggingface-zerogpu/references/concurrency.md +79 -0
- package/skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
- package/skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
- package/skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
- package/skills/human-gate-negotiation/SKILL.md +30 -0
- package/skills/intelligent-routing/SKILL.md +10 -4
- package/skills/semantic-filesystem-navigation/SKILL.md +24 -0
- package/skills/session-log-interrogation/SKILL.md +29 -0
- package/skills/subagent-driven-development/SKILL.md +32 -0
- package/skills/systematic-debugging/SKILL.md +5 -0
- package/skills/train-sentence-transformers/SKILL.md +109 -0
- package/skills/train-sentence-transformers/references/base_model_selection.md +79 -0
- package/skills/train-sentence-transformers/references/dataset_formats.md +128 -0
- package/skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
- package/skills/train-sentence-transformers/references/evaluators_multi_vector_encoder.md +101 -0
- package/skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
- package/skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
- package/skills/train-sentence-transformers/references/hardware_guide.md +105 -0
- package/skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
- package/skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
- package/skills/train-sentence-transformers/references/losses_multi_vector_encoder.md +100 -0
- package/skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
- package/skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
- package/skills/train-sentence-transformers/references/model_architectures.md +178 -0
- package/skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
- package/skills/train-sentence-transformers/references/training_args.md +270 -0
- package/skills/train-sentence-transformers/references/troubleshooting.md +225 -0
- package/skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
- package/skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
- package/skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
- package/skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
- package/skills/train-sentence-transformers/scripts/train_multi_vector_encoder_example.py +240 -0
- package/skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
- package/skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
- package/skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
- package/skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
- package/skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
- package/skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
- package/skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
- package/skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
- package/skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
- package/skills/transformers-js/SKILL.md +692 -0
- package/skills/transformers-js/references/CACHE.md +339 -0
- package/skills/transformers-js/references/CONFIGURATION.md +438 -0
- package/skills/transformers-js/references/EXAMPLES.md +620 -0
- package/skills/transformers-js/references/MODEL_ARCHITECTURES.md +167 -0
- package/skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
- package/skills/transformers-js/references/PIPELINE_OPTIONS.md +557 -0
- package/skills/transformers-js/references/TEXT_GENERATION.md +315 -0
- package/skills/tribunal-instincts-memory/SKILL.md +31 -0
- package/skills/trl-training/SKILL.md +318 -0
|
@@ -0,0 +1,512 @@
|
|
|
1
|
+
# /// script
|
|
2
|
+
# requires-python = ">=3.10"
|
|
3
|
+
# dependencies = [
|
|
4
|
+
# "unsloth",
|
|
5
|
+
# "datasets",
|
|
6
|
+
# "trl==0.22.2",
|
|
7
|
+
# "huggingface_hub[hf_transfer]",
|
|
8
|
+
# "trackio",
|
|
9
|
+
# "tensorboard",
|
|
10
|
+
# "transformers==4.57.3",
|
|
11
|
+
# ]
|
|
12
|
+
# ///
|
|
13
|
+
"""
|
|
14
|
+
Fine-tune LLMs using Unsloth optimizations for ~60% less VRAM and 2x faster training.
|
|
15
|
+
|
|
16
|
+
Supports epoch-based or step-based training with optional eval split.
|
|
17
|
+
Default model: LFM2.5-1.2B-Instruct (Liquid Foundation Model).
|
|
18
|
+
|
|
19
|
+
Epoch-based training (recommended for full datasets):
|
|
20
|
+
uv run unsloth_sft_example.py \
|
|
21
|
+
--dataset mlabonne/FineTome-100k \
|
|
22
|
+
--num-epochs 1 \
|
|
23
|
+
--eval-split 0.2 \
|
|
24
|
+
--output-repo your-username/model-finetuned
|
|
25
|
+
|
|
26
|
+
Run on HF Jobs (1 epoch with eval):
|
|
27
|
+
hf jobs uv run unsloth_sft_example.py \
|
|
28
|
+
--flavor a10g-small --secrets HF_TOKEN --timeout 4h \
|
|
29
|
+
-- --dataset mlabonne/FineTome-100k \
|
|
30
|
+
--num-epochs 1 \
|
|
31
|
+
--eval-split 0.2 \
|
|
32
|
+
--output-repo your-username/model-finetuned
|
|
33
|
+
|
|
34
|
+
Step-based training (for quick tests):
|
|
35
|
+
uv run unsloth_sft_example.py \
|
|
36
|
+
--dataset mlabonne/FineTome-100k \
|
|
37
|
+
--max-steps 500 \
|
|
38
|
+
--output-repo your-username/model-finetuned
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
import argparse
|
|
42
|
+
import logging
|
|
43
|
+
import os
|
|
44
|
+
import sys
|
|
45
|
+
import time
|
|
46
|
+
|
|
47
|
+
# Force unbuffered output for HF Jobs logs
|
|
48
|
+
sys.stdout.reconfigure(line_buffering=True)
|
|
49
|
+
sys.stderr.reconfigure(line_buffering=True)
|
|
50
|
+
|
|
51
|
+
logging.basicConfig(
|
|
52
|
+
level=logging.INFO,
|
|
53
|
+
format="%(asctime)s - %(levelname)s - %(message)s",
|
|
54
|
+
)
|
|
55
|
+
logger = logging.getLogger(__name__)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def check_cuda():
|
|
59
|
+
"""Check CUDA availability and exit if not available."""
|
|
60
|
+
import torch
|
|
61
|
+
|
|
62
|
+
if not torch.cuda.is_available():
|
|
63
|
+
logger.error("CUDA is not available. This script requires a GPU.")
|
|
64
|
+
logger.error("Run on a machine with a CUDA-capable GPU or use HF Jobs:")
|
|
65
|
+
logger.error(
|
|
66
|
+
" hf jobs uv run unsloth_sft_example.py --flavor a10g-small ..."
|
|
67
|
+
)
|
|
68
|
+
sys.exit(1)
|
|
69
|
+
logger.info(f"CUDA available: {torch.cuda.get_device_name(0)}")
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def parse_args():
|
|
73
|
+
parser = argparse.ArgumentParser(
|
|
74
|
+
description="Fine-tune LLMs with Unsloth optimizations",
|
|
75
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
76
|
+
epilog="""
|
|
77
|
+
Examples:
|
|
78
|
+
# Quick test run
|
|
79
|
+
uv run unsloth_sft_example.py \\
|
|
80
|
+
--dataset mlabonne/FineTome-100k \\
|
|
81
|
+
--max-steps 50 \\
|
|
82
|
+
--output-repo username/model-test
|
|
83
|
+
|
|
84
|
+
# Full training with eval
|
|
85
|
+
uv run unsloth_sft_example.py \\
|
|
86
|
+
--dataset mlabonne/FineTome-100k \\
|
|
87
|
+
--num-epochs 1 \\
|
|
88
|
+
--eval-split 0.2 \\
|
|
89
|
+
--output-repo username/model-finetuned
|
|
90
|
+
|
|
91
|
+
# With Trackio monitoring
|
|
92
|
+
uv run unsloth_sft_example.py \\
|
|
93
|
+
--dataset mlabonne/FineTome-100k \\
|
|
94
|
+
--num-epochs 1 \\
|
|
95
|
+
--output-repo username/model-finetuned \\
|
|
96
|
+
--trackio-space username/trackio
|
|
97
|
+
""",
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
# Model and data
|
|
101
|
+
parser.add_argument(
|
|
102
|
+
"--base-model",
|
|
103
|
+
default="LiquidAI/LFM2.5-1.2B-Instruct",
|
|
104
|
+
help="Base model (default: LiquidAI/LFM2.5-1.2B-Instruct)",
|
|
105
|
+
)
|
|
106
|
+
parser.add_argument(
|
|
107
|
+
"--dataset",
|
|
108
|
+
required=True,
|
|
109
|
+
help="Dataset in ShareGPT/conversation format (e.g., mlabonne/FineTome-100k)",
|
|
110
|
+
)
|
|
111
|
+
parser.add_argument(
|
|
112
|
+
"--output-repo",
|
|
113
|
+
required=True,
|
|
114
|
+
help="HF Hub repo to push model to (e.g., 'username/model-finetuned')",
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
# Training config
|
|
118
|
+
parser.add_argument(
|
|
119
|
+
"--num-epochs",
|
|
120
|
+
type=float,
|
|
121
|
+
default=None,
|
|
122
|
+
help="Number of epochs (default: None). Use instead of --max-steps.",
|
|
123
|
+
)
|
|
124
|
+
parser.add_argument(
|
|
125
|
+
"--max-steps",
|
|
126
|
+
type=int,
|
|
127
|
+
default=None,
|
|
128
|
+
help="Training steps (default: None). Use for quick tests or streaming.",
|
|
129
|
+
)
|
|
130
|
+
parser.add_argument(
|
|
131
|
+
"--batch-size",
|
|
132
|
+
type=int,
|
|
133
|
+
default=2,
|
|
134
|
+
help="Per-device batch size (default: 2)",
|
|
135
|
+
)
|
|
136
|
+
parser.add_argument(
|
|
137
|
+
"--gradient-accumulation",
|
|
138
|
+
type=int,
|
|
139
|
+
default=4,
|
|
140
|
+
help="Gradient accumulation steps (default: 4). Effective batch = batch-size * this",
|
|
141
|
+
)
|
|
142
|
+
parser.add_argument(
|
|
143
|
+
"--learning-rate",
|
|
144
|
+
type=float,
|
|
145
|
+
default=2e-4,
|
|
146
|
+
help="Learning rate (default: 2e-4)",
|
|
147
|
+
)
|
|
148
|
+
parser.add_argument(
|
|
149
|
+
"--max-seq-length",
|
|
150
|
+
type=int,
|
|
151
|
+
default=2048,
|
|
152
|
+
help="Maximum sequence length (default: 2048)",
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
# LoRA config
|
|
156
|
+
parser.add_argument(
|
|
157
|
+
"--lora-r",
|
|
158
|
+
type=int,
|
|
159
|
+
default=16,
|
|
160
|
+
help="LoRA rank (default: 16). Higher = more capacity but more VRAM",
|
|
161
|
+
)
|
|
162
|
+
parser.add_argument(
|
|
163
|
+
"--lora-alpha",
|
|
164
|
+
type=int,
|
|
165
|
+
default=16,
|
|
166
|
+
help="LoRA alpha (default: 16). Same as r per Unsloth recommendation",
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
# Logging
|
|
170
|
+
parser.add_argument(
|
|
171
|
+
"--trackio-space",
|
|
172
|
+
default=None,
|
|
173
|
+
help="HF Space for Trackio dashboard (e.g., 'username/trackio')",
|
|
174
|
+
)
|
|
175
|
+
parser.add_argument(
|
|
176
|
+
"--run-name",
|
|
177
|
+
default=None,
|
|
178
|
+
help="Custom run name for Trackio (default: auto-generated)",
|
|
179
|
+
)
|
|
180
|
+
parser.add_argument(
|
|
181
|
+
"--save-local",
|
|
182
|
+
default="unsloth-output",
|
|
183
|
+
help="Local directory to save model (default: unsloth-output)",
|
|
184
|
+
)
|
|
185
|
+
|
|
186
|
+
# Evaluation and data control
|
|
187
|
+
parser.add_argument(
|
|
188
|
+
"--eval-split",
|
|
189
|
+
type=float,
|
|
190
|
+
default=0.0,
|
|
191
|
+
help="Fraction of data for evaluation (0.0-0.5). Default: 0.0 (no eval)",
|
|
192
|
+
)
|
|
193
|
+
parser.add_argument(
|
|
194
|
+
"--num-samples",
|
|
195
|
+
type=int,
|
|
196
|
+
default=None,
|
|
197
|
+
help="Limit samples (default: None = use all)",
|
|
198
|
+
)
|
|
199
|
+
parser.add_argument(
|
|
200
|
+
"--seed",
|
|
201
|
+
type=int,
|
|
202
|
+
default=3407,
|
|
203
|
+
help="Random seed for reproducibility (default: 3407)",
|
|
204
|
+
)
|
|
205
|
+
parser.add_argument(
|
|
206
|
+
"--merge-model",
|
|
207
|
+
action="store_true",
|
|
208
|
+
default=False,
|
|
209
|
+
help="Merge LoRA weights into base model before uploading (larger file, easier to use)",
|
|
210
|
+
)
|
|
211
|
+
|
|
212
|
+
return parser.parse_args()
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
def main():
|
|
216
|
+
args = parse_args()
|
|
217
|
+
|
|
218
|
+
# Validate epochs/steps configuration
|
|
219
|
+
if not args.num_epochs and not args.max_steps:
|
|
220
|
+
args.num_epochs = 1
|
|
221
|
+
logger.info("Using default --num-epochs=1")
|
|
222
|
+
|
|
223
|
+
# Determine training duration display
|
|
224
|
+
if args.num_epochs:
|
|
225
|
+
duration_str = f"{args.num_epochs} epoch(s)"
|
|
226
|
+
else:
|
|
227
|
+
duration_str = f"{args.max_steps} steps"
|
|
228
|
+
|
|
229
|
+
print("=" * 70)
|
|
230
|
+
print("LLM Fine-tuning with Unsloth")
|
|
231
|
+
print("=" * 70)
|
|
232
|
+
print("\nConfiguration:")
|
|
233
|
+
print(f" Base model: {args.base_model}")
|
|
234
|
+
print(f" Dataset: {args.dataset}")
|
|
235
|
+
print(f" Num samples: {args.num_samples or 'all'}")
|
|
236
|
+
print(f" Eval split: {args.eval_split if args.eval_split > 0 else '(disabled)'}")
|
|
237
|
+
print(f" Seed: {args.seed}")
|
|
238
|
+
print(f" Training: {duration_str}")
|
|
239
|
+
print(f" Batch size: {args.batch_size} x {args.gradient_accumulation} = {args.batch_size * args.gradient_accumulation}")
|
|
240
|
+
print(f" Learning rate: {args.learning_rate}")
|
|
241
|
+
print(f" LoRA rank: {args.lora_r}")
|
|
242
|
+
print(f" Max seq length: {args.max_seq_length}")
|
|
243
|
+
print(f" Output repo: {args.output_repo}")
|
|
244
|
+
print(f" Trackio space: {args.trackio_space or '(not configured)'}")
|
|
245
|
+
print()
|
|
246
|
+
|
|
247
|
+
# Check CUDA before heavy imports
|
|
248
|
+
check_cuda()
|
|
249
|
+
|
|
250
|
+
# Enable fast transfers
|
|
251
|
+
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
|
|
252
|
+
|
|
253
|
+
# Set Trackio space if provided
|
|
254
|
+
if args.trackio_space:
|
|
255
|
+
os.environ["TRACKIO_SPACE_ID"] = args.trackio_space
|
|
256
|
+
logger.info(f"Trackio dashboard: https://huggingface.co/spaces/{args.trackio_space}")
|
|
257
|
+
|
|
258
|
+
# Import heavy dependencies
|
|
259
|
+
from unsloth import FastLanguageModel
|
|
260
|
+
from unsloth.chat_templates import standardize_data_formats, train_on_responses_only
|
|
261
|
+
from datasets import load_dataset
|
|
262
|
+
from trl import SFTTrainer, SFTConfig
|
|
263
|
+
from huggingface_hub import login
|
|
264
|
+
|
|
265
|
+
# Login to Hub
|
|
266
|
+
token = os.environ.get("HF_TOKEN") or os.environ.get("hfjob")
|
|
267
|
+
if token:
|
|
268
|
+
login(token=token)
|
|
269
|
+
logger.info("Logged in to Hugging Face Hub")
|
|
270
|
+
else:
|
|
271
|
+
logger.warning("HF_TOKEN not set - model upload may fail")
|
|
272
|
+
|
|
273
|
+
# 1. Load model
|
|
274
|
+
print("\n[1/5] Loading model...")
|
|
275
|
+
start = time.time()
|
|
276
|
+
|
|
277
|
+
model, tokenizer = FastLanguageModel.from_pretrained(
|
|
278
|
+
model_name=args.base_model,
|
|
279
|
+
max_seq_length=args.max_seq_length,
|
|
280
|
+
load_in_4bit=False,
|
|
281
|
+
load_in_8bit=False,
|
|
282
|
+
load_in_16bit=True,
|
|
283
|
+
full_finetuning=False,
|
|
284
|
+
)
|
|
285
|
+
|
|
286
|
+
# Add LoRA adapters
|
|
287
|
+
model = FastLanguageModel.get_peft_model(
|
|
288
|
+
model,
|
|
289
|
+
r=args.lora_r,
|
|
290
|
+
target_modules=["q_proj", "k_proj", "v_proj", "out_proj", "in_proj", "w1", "w2", "w3"],
|
|
291
|
+
lora_alpha=args.lora_alpha,
|
|
292
|
+
lora_dropout=0,
|
|
293
|
+
bias="none",
|
|
294
|
+
use_gradient_checkpointing="unsloth",
|
|
295
|
+
random_state=args.seed,
|
|
296
|
+
use_rslora=False,
|
|
297
|
+
loftq_config=None,
|
|
298
|
+
)
|
|
299
|
+
print(f"Model loaded in {time.time() - start:.1f}s")
|
|
300
|
+
|
|
301
|
+
# 2. Load and prepare dataset
|
|
302
|
+
print("\n[2/5] Loading dataset...")
|
|
303
|
+
start = time.time()
|
|
304
|
+
|
|
305
|
+
dataset = load_dataset(args.dataset, split="train")
|
|
306
|
+
print(f" Dataset has {len(dataset)} total samples")
|
|
307
|
+
|
|
308
|
+
if args.num_samples:
|
|
309
|
+
dataset = dataset.select(range(min(args.num_samples, len(dataset))))
|
|
310
|
+
print(f" Limited to {len(dataset)} samples")
|
|
311
|
+
|
|
312
|
+
# Auto-detect and normalize conversation column
|
|
313
|
+
for col in ["messages", "conversations", "conversation"]:
|
|
314
|
+
if col in dataset.column_names and isinstance(dataset[0][col], list):
|
|
315
|
+
if col != "conversations":
|
|
316
|
+
dataset = dataset.rename_column(col, "conversations")
|
|
317
|
+
break
|
|
318
|
+
dataset = standardize_data_formats(dataset)
|
|
319
|
+
|
|
320
|
+
# Apply chat template
|
|
321
|
+
def formatting_prompts_func(examples):
|
|
322
|
+
texts = tokenizer.apply_chat_template(
|
|
323
|
+
examples["conversations"],
|
|
324
|
+
tokenize=False,
|
|
325
|
+
add_generation_prompt=False,
|
|
326
|
+
)
|
|
327
|
+
# Remove BOS token to avoid duplicates
|
|
328
|
+
return {"text": [x.removeprefix(tokenizer.bos_token) for x in texts]}
|
|
329
|
+
|
|
330
|
+
dataset = dataset.map(formatting_prompts_func, batched=True)
|
|
331
|
+
|
|
332
|
+
# Split for evaluation if requested
|
|
333
|
+
if args.eval_split > 0:
|
|
334
|
+
split = dataset.train_test_split(test_size=args.eval_split, seed=args.seed)
|
|
335
|
+
train_data = split["train"]
|
|
336
|
+
eval_data = split["test"]
|
|
337
|
+
print(f" Train: {len(train_data)} samples, Eval: {len(eval_data)} samples")
|
|
338
|
+
else:
|
|
339
|
+
train_data = dataset
|
|
340
|
+
eval_data = None
|
|
341
|
+
|
|
342
|
+
print(f" Dataset ready in {time.time() - start:.1f}s")
|
|
343
|
+
|
|
344
|
+
# 3. Configure trainer
|
|
345
|
+
print("\n[3/5] Configuring trainer...")
|
|
346
|
+
|
|
347
|
+
# Calculate steps per epoch for logging/eval intervals
|
|
348
|
+
effective_batch = args.batch_size * args.gradient_accumulation
|
|
349
|
+
num_samples = len(train_data)
|
|
350
|
+
steps_per_epoch = num_samples // effective_batch
|
|
351
|
+
|
|
352
|
+
# Determine run name and logging steps
|
|
353
|
+
if args.run_name:
|
|
354
|
+
run_name = args.run_name
|
|
355
|
+
elif args.num_epochs:
|
|
356
|
+
run_name = f"unsloth-sft-{args.num_epochs}ep"
|
|
357
|
+
else:
|
|
358
|
+
run_name = f"unsloth-sft-{args.max_steps}steps"
|
|
359
|
+
|
|
360
|
+
if args.num_epochs:
|
|
361
|
+
logging_steps = max(1, steps_per_epoch // 10)
|
|
362
|
+
save_steps = max(1, steps_per_epoch // 4)
|
|
363
|
+
else:
|
|
364
|
+
logging_steps = max(1, args.max_steps // 20)
|
|
365
|
+
save_steps = max(1, args.max_steps // 4)
|
|
366
|
+
|
|
367
|
+
# Determine reporting backend
|
|
368
|
+
if args.trackio_space:
|
|
369
|
+
report_to = ["tensorboard", "trackio"]
|
|
370
|
+
else:
|
|
371
|
+
report_to = ["tensorboard"]
|
|
372
|
+
|
|
373
|
+
training_config = SFTConfig(
|
|
374
|
+
output_dir=args.save_local,
|
|
375
|
+
dataset_text_field="text",
|
|
376
|
+
per_device_train_batch_size=args.batch_size,
|
|
377
|
+
gradient_accumulation_steps=args.gradient_accumulation,
|
|
378
|
+
warmup_steps=5,
|
|
379
|
+
num_train_epochs=args.num_epochs if args.num_epochs else 1,
|
|
380
|
+
max_steps=args.max_steps if args.max_steps else -1,
|
|
381
|
+
learning_rate=args.learning_rate,
|
|
382
|
+
logging_steps=logging_steps,
|
|
383
|
+
optim="adamw_8bit",
|
|
384
|
+
weight_decay=0.01,
|
|
385
|
+
lr_scheduler_type="linear",
|
|
386
|
+
seed=args.seed,
|
|
387
|
+
max_length=args.max_seq_length,
|
|
388
|
+
report_to=report_to,
|
|
389
|
+
run_name=run_name,
|
|
390
|
+
push_to_hub=True,
|
|
391
|
+
hub_model_id=args.output_repo,
|
|
392
|
+
save_steps=save_steps,
|
|
393
|
+
save_total_limit=3,
|
|
394
|
+
)
|
|
395
|
+
|
|
396
|
+
# Add evaluation config if eval is enabled
|
|
397
|
+
if eval_data:
|
|
398
|
+
if args.num_epochs:
|
|
399
|
+
training_config.eval_strategy = "epoch"
|
|
400
|
+
print(" Evaluation enabled: every epoch")
|
|
401
|
+
else:
|
|
402
|
+
training_config.eval_strategy = "steps"
|
|
403
|
+
training_config.eval_steps = max(1, args.max_steps // 5)
|
|
404
|
+
print(f" Evaluation enabled: every {training_config.eval_steps} steps")
|
|
405
|
+
|
|
406
|
+
trainer = SFTTrainer(
|
|
407
|
+
model=model,
|
|
408
|
+
tokenizer=tokenizer,
|
|
409
|
+
train_dataset=train_data,
|
|
410
|
+
eval_dataset=eval_data,
|
|
411
|
+
args=training_config,
|
|
412
|
+
)
|
|
413
|
+
|
|
414
|
+
# Train on responses only (mask user inputs)
|
|
415
|
+
trainer = train_on_responses_only(
|
|
416
|
+
trainer,
|
|
417
|
+
instruction_part="<|im_start|>user\n",
|
|
418
|
+
response_part="<|im_start|>assistant\n",
|
|
419
|
+
)
|
|
420
|
+
|
|
421
|
+
# 4. Train
|
|
422
|
+
print(f"\n[4/5] Training for {duration_str}...")
|
|
423
|
+
if args.num_epochs:
|
|
424
|
+
print(f" (~{steps_per_epoch} steps/epoch, {int(steps_per_epoch * args.num_epochs)} total steps)")
|
|
425
|
+
start = time.time()
|
|
426
|
+
|
|
427
|
+
train_result = trainer.train()
|
|
428
|
+
|
|
429
|
+
train_time = time.time() - start
|
|
430
|
+
total_steps = train_result.metrics.get("train_steps", args.max_steps or steps_per_epoch * args.num_epochs)
|
|
431
|
+
print(f"\nTraining completed in {train_time / 60:.1f} minutes")
|
|
432
|
+
print(f" Speed: {total_steps / train_time:.2f} steps/s")
|
|
433
|
+
|
|
434
|
+
# Print training metrics
|
|
435
|
+
train_loss = train_result.metrics.get("train_loss")
|
|
436
|
+
if train_loss:
|
|
437
|
+
print(f" Final train loss: {train_loss:.4f}")
|
|
438
|
+
|
|
439
|
+
# Print eval results if eval was enabled
|
|
440
|
+
if eval_data:
|
|
441
|
+
print("\nRunning final evaluation...")
|
|
442
|
+
try:
|
|
443
|
+
eval_results = trainer.evaluate()
|
|
444
|
+
eval_loss = eval_results.get("eval_loss")
|
|
445
|
+
if eval_loss:
|
|
446
|
+
print(f" Final eval loss: {eval_loss:.4f}")
|
|
447
|
+
if train_loss:
|
|
448
|
+
ratio = eval_loss / train_loss
|
|
449
|
+
if ratio > 1.5:
|
|
450
|
+
print(f" Warning: Eval loss is {ratio:.1f}x train loss - possible overfitting")
|
|
451
|
+
else:
|
|
452
|
+
print(f" Eval/train ratio: {ratio:.2f} - model generalizes well")
|
|
453
|
+
except Exception as e:
|
|
454
|
+
print(f" Warning: Final evaluation failed: {e}")
|
|
455
|
+
print(" Continuing to save model...")
|
|
456
|
+
|
|
457
|
+
# 5. Save and push
|
|
458
|
+
print("\n[5/5] Saving model...")
|
|
459
|
+
|
|
460
|
+
if args.merge_model:
|
|
461
|
+
print("Merging LoRA weights into base model...")
|
|
462
|
+
print(f"\nPushing merged model to {args.output_repo}...")
|
|
463
|
+
model.push_to_hub_merged(
|
|
464
|
+
args.output_repo,
|
|
465
|
+
tokenizer=tokenizer,
|
|
466
|
+
save_method="merged_16bit",
|
|
467
|
+
)
|
|
468
|
+
print(f"Merged model available at: https://huggingface.co/{args.output_repo}")
|
|
469
|
+
else:
|
|
470
|
+
model.save_pretrained(args.save_local)
|
|
471
|
+
tokenizer.save_pretrained(args.save_local)
|
|
472
|
+
print(f"Saved locally to {args.save_local}/")
|
|
473
|
+
|
|
474
|
+
print(f"\nPushing adapter to {args.output_repo}...")
|
|
475
|
+
model.push_to_hub(args.output_repo, tokenizer=tokenizer)
|
|
476
|
+
print(f"Adapter available at: https://huggingface.co/{args.output_repo}")
|
|
477
|
+
|
|
478
|
+
print("\n" + "=" * 70)
|
|
479
|
+
print("Done!")
|
|
480
|
+
print("=" * 70)
|
|
481
|
+
|
|
482
|
+
|
|
483
|
+
if __name__ == "__main__":
|
|
484
|
+
if len(sys.argv) == 1:
|
|
485
|
+
print("=" * 70)
|
|
486
|
+
print("LLM Fine-tuning with Unsloth")
|
|
487
|
+
print("=" * 70)
|
|
488
|
+
print("\nFine-tune language models with optional train/eval split.")
|
|
489
|
+
print("\nFeatures:")
|
|
490
|
+
print(" - ~60% less VRAM with Unsloth optimizations")
|
|
491
|
+
print(" - 2x faster training vs standard methods")
|
|
492
|
+
print(" - Epoch-based or step-based training")
|
|
493
|
+
print(" - Optional evaluation to detect overfitting")
|
|
494
|
+
print(" - Trains only on assistant responses (masked user inputs)")
|
|
495
|
+
print("\nEpoch-based training:")
|
|
496
|
+
print("\n uv run unsloth_sft_example.py \\")
|
|
497
|
+
print(" --dataset mlabonne/FineTome-100k \\")
|
|
498
|
+
print(" --num-epochs 1 \\")
|
|
499
|
+
print(" --eval-split 0.2 \\")
|
|
500
|
+
print(" --output-repo your-username/model-finetuned")
|
|
501
|
+
print("\nHF Jobs example:")
|
|
502
|
+
print("\n hf jobs uv run unsloth_sft_example.py \\")
|
|
503
|
+
print(" --flavor a10g-small --secrets HF_TOKEN --timeout 4h \\")
|
|
504
|
+
print(" -- --dataset mlabonne/FineTome-100k \\")
|
|
505
|
+
print(" --num-epochs 1 \\")
|
|
506
|
+
print(" --eval-split 0.2 \\")
|
|
507
|
+
print(" --output-repo your-username/model-finetuned")
|
|
508
|
+
print("\nFor full help: uv run unsloth_sft_example.py --help")
|
|
509
|
+
print("=" * 70)
|
|
510
|
+
sys.exit(0)
|
|
511
|
+
|
|
512
|
+
main()
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: huggingface-local-models
|
|
3
|
+
description: "Use to select models to run locally with llama.cpp and GGUF on CPU, Mac Metal, CUDA, or ROCm. Covers finding GGUFs, quant selection, running servers, exact GGUF file lookup, conversion, and OpenAI-compatible local serving."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Hugging Face Local Models
|
|
7
|
+
|
|
8
|
+
Search the Hugging Face Hub for llama.cpp-compatible GGUF repos, choose the right quant, and launch the model with `llama-cli` or `llama-server`.
|
|
9
|
+
|
|
10
|
+
## Default Workflow
|
|
11
|
+
|
|
12
|
+
1. Search the Hub with `apps=llama.cpp`.
|
|
13
|
+
2. Open `https://huggingface.co/<repo>?local-app=llama.cpp`.
|
|
14
|
+
3. Prefer the exact HF local-app snippet and quant recommendation when it is visible.
|
|
15
|
+
4. Confirm exact `.gguf` filenames with `https://huggingface.co/api/models/<repo>/tree/main?recursive=true`.
|
|
16
|
+
5. Launch with `llama-cli -hf <repo>:<QUANT>` or `llama-server -hf <repo>:<QUANT>`.
|
|
17
|
+
6. Fall back to `--hf-repo` plus `--hf-file` when the repo uses custom file naming.
|
|
18
|
+
7. Convert from Transformers weights only if the repo does not already expose GGUF files.
|
|
19
|
+
|
|
20
|
+
## Quick Start
|
|
21
|
+
|
|
22
|
+
### Install llama.cpp
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
brew install llama.cpp
|
|
26
|
+
winget install llama.cpp
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
git clone https://github.com/ggml-org/llama.cpp
|
|
31
|
+
cd llama.cpp
|
|
32
|
+
make
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Authenticate for gated repos
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
hf auth login
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Search the Hub
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
https://huggingface.co/models?apps=llama.cpp&sort=trending
|
|
45
|
+
https://huggingface.co/models?search=Qwen3.6&apps=llama.cpp&sort=trending
|
|
46
|
+
https://huggingface.co/models?search=<term>&apps=llama.cpp&num_parameters=min:0,max:24B&sort=trending
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Run directly from the Hub
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
llama-cli -hf unsloth/Qwen3.6-35B-A3B-GGUF:UD-Q4_K_M
|
|
53
|
+
llama-server -hf unsloth/Qwen3.6-35B-A3B-GGUF:UD-Q4_K_M
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Run an exact GGUF file
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
llama-server \
|
|
60
|
+
--hf-repo unsloth/Qwen3.6-35B-A3B-GGUF \
|
|
61
|
+
--hf-file Qwen3.6-35B-A3B-UD-Q4_K_M.gguf \
|
|
62
|
+
-c 4096
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Convert only when no GGUF is available
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
hf download <repo-without-gguf> --local-dir ./model-src
|
|
69
|
+
python convert_hf_to_gguf.py ./model-src \
|
|
70
|
+
--outfile model-f16.gguf \
|
|
71
|
+
--outtype f16
|
|
72
|
+
llama-quantize model-f16.gguf model-q4_k_m.gguf Q4_K_M
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Smoke test a local server
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
llama-server -hf unsloth/Qwen3.6-35B-A3B-GGUF:UD-Q4_K_M
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
curl http://localhost:8080/v1/chat/completions \
|
|
83
|
+
-H "Content-Type: application/json" \
|
|
84
|
+
-H "Authorization: Bearer no-key" \
|
|
85
|
+
-d '{
|
|
86
|
+
"messages": [
|
|
87
|
+
{"role": "user", "content": "Write a limerick about exception handling"}
|
|
88
|
+
]
|
|
89
|
+
}'
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Quant Choice
|
|
93
|
+
|
|
94
|
+
- Prefer the exact quant that HF marks as compatible on the `?local-app=llama.cpp` page.
|
|
95
|
+
- Keep repo-native labels such as `UD-Q4_K_M` instead of normalizing them.
|
|
96
|
+
- Default to `Q4_K_M` unless the repo page or hardware profile suggests otherwise.
|
|
97
|
+
- Prefer `Q5_K_M` or `Q6_K` for code or technical workloads when memory allows.
|
|
98
|
+
- Consider `Q3_K_M`, `Q4_K_S`, or repo-specific `IQ` / `UD-*` variants for tighter RAM or VRAM budgets.
|
|
99
|
+
- Treat `mmproj-*.gguf` files as projector weights, not the main checkpoint.
|
|
100
|
+
|
|
101
|
+
## Load References
|
|
102
|
+
|
|
103
|
+
- Read [hub-discovery.md](references/hub-discovery.md) for URL-first workflows, model search, tree API extraction, and command reconstruction.
|
|
104
|
+
- Read [quantization.md](references/quantization.md) for format tables, model scaling, quality tradeoffs, and `imatrix`.
|
|
105
|
+
- Read [hardware.md](references/hardware.md) for Metal, CUDA, ROCm, or CPU build and acceleration details.
|
|
106
|
+
|
|
107
|
+
## Resources
|
|
108
|
+
|
|
109
|
+
- llama.cpp: `https://github.com/ggml-org/llama.cpp`
|
|
110
|
+
- Hugging Face GGUF + llama.cpp docs: `https://huggingface.co/docs/hub/gguf-llamacpp`
|
|
111
|
+
- Hugging Face Local Apps docs: `https://huggingface.co/docs/hub/main/local-apps`
|
|
112
|
+
- Hugging Face Local Agents docs: `https://huggingface.co/docs/hub/agents-local`
|
|
113
|
+
- GGUF converter Space: `https://huggingface.co/spaces/ggml-org/gguf-my-repo`
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
## Hardware Acceleration
|
|
2
|
+
|
|
3
|
+
### Apple Silicon (Metal)
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
make clean && make GGML_METAL=1
|
|
7
|
+
llama-cli -m model.gguf -ngl 99 -p "Hello"
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
### NVIDIA (CUDA)
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
make clean && make GGML_CUDA=1
|
|
14
|
+
llama-cli -m model.gguf -ngl 35 -p "Hello"
|
|
15
|
+
|
|
16
|
+
# Hybrid for large models
|
|
17
|
+
llama-cli -m llama-70b.Q4_K_M.gguf -ngl 20
|
|
18
|
+
|
|
19
|
+
# Multi-GPU split
|
|
20
|
+
llama-cli -m large-model.gguf --tensor-split 0.5,0.5 -ngl 60
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### AMD (ROCm)
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
make LLAMA_HIP=1
|
|
27
|
+
llama-cli -m model.gguf -ngl 999
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### CPU
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Match physical cores, not logical threads
|
|
34
|
+
llama-cli -m model.gguf -t 8 -p "Hello"
|
|
35
|
+
|
|
36
|
+
# BLAS acceleration
|
|
37
|
+
make LLAMA_OPENBLAS=1
|
|
38
|
+
```
|