[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XGGYBC7CYVVTCEN8NSG1AK":3,"skill-same:01M6XGGYBC7CYVVTCEN8NSG1AK":260},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":67,"commitSha":68,"skillDirectory":69,"forksCount":14,"repositoryHtmlUrl":70,"repositoryHomepageUrl":6,"ownerHtmlUrl":71,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":72,"install":73,"resources":86},"01M6XGGYBC7CYVVTCEN8NSG1AK","unsloth-fine-tuning",null,"Fast LLM fine-tuning with Unsloth - 2-5x faster training, 50-80% less VRAM. Use for single-GPU LoRA\u002FQLoRA SFT, GRPO\u002FRL reasoning training, vision\u002FTTS fine-tuning, and GGUF export to Ollama\u002FvLLM\u002Fllama.cpp. Supports 300+ models including Llama, Qwen, Gemma, DeepSeek, Mistral, Phi, and gpt-oss.","fadrienne\u002FMyGitHub","fadrienne","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F197874571?v=4","01M6X64V8VWCRSMFZ4EPS2BWXG","Francesca Adrienne","01M6X64VD5MW4F9PHDWQKS7ZAF",0,"MIT","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"unsloth fine tuning","Unsloth","tuning","fine tuning","export","single","for","vram","TRL","llama.cpp","GGUF","synthetic","vision","memory","ollama","tts","phi","Transformers","cpp","training","2026-11-10 10:12:30",false,"---\nname: unsloth-fine-tuning\ndescription: Fast LLM fine-tuning with Unsloth - 2-5x faster training, 50-80% less VRAM. Use for single-GPU LoRA\u002FQLoRA SFT, GRPO\u002FRL reasoning training, vision\u002FTTS fine-tuning, and GGUF export to Ollama\u002FvLLM\u002Fllama.cpp. Supports 300+ models including Llama, Qwen, Gemma, DeepSeek, Mistral, Phi, and gpt-oss.\ncategory: ml-training\nversion: 1.0.0\nauthor: Synthetic Sciences\nlicense: MIT\ntags: [Fine-Tuning, Unsloth, LoRA, QLoRA, GRPO, RL, Vision, TTS, GGUF, Ollama, vLLM, Fast Training, Memory-Efficient]\ndependencies: [unsloth, torch>=2.1.0, transformers>=4.45.0, trl>=0.15.0, datasets, peft, xformers]\n---\n\n# Unsloth - Fast LLM Fine-Tuning\n\nFine-tune LLMs 2-5x faster with 50-80% less VRAM. Supports SFT, RL (GRPO), vision, TTS, and 300+ models with zero accuracy loss.\n\n## When to Use Unsloth\n\n**Use Unsloth when:**\n- Fine-tuning on a single GPU with LoRA\u002FQLoRA (consumer or datacenter)\n- Training reasoning models with GRPO, Dr. GRPO, DAPO, BNPO, or GSPO\n- Fine-tuning vision models (Qwen3-VL, Gemma 3, Llama 3.2 Vision)\n- Fine-tuning TTS models (Orpheus, Sesame-CSM, Whisper)\n- Exporting to GGUF for Ollama, llama.cpp, or LM Studio\n- Need padding-free training and uncontaminated packing (automatic)\n- Using FP8 precision for additional memory savings on Ampere+ GPUs\n\n**Don't use Unsloth when:**\n- Multi-node distributed training at scale (Unsloth DDP works but is single-node)\n- Apple Silicon \u002F MLX (not yet supported)\n- Full fine-tuning of 70B+ models (use DeepSpeed + Transformers)\n- Custom architectures not supported by `transformers`\n- Cloud-managed training without GPU access (use Tinker instead)\n\n**Unsloth vs Alternatives:**\n\n| Need | Use |\n|------|-----|\n| Fast single-GPU LoRA\u002FQLoRA | **Unsloth** |\n| Managed cloud LoRA training | Tinker |\n| Parameter-efficient methods (IA3, Prefix, etc.) | PEFT |\n| Multi-node distributed training | DeepSpeed + Transformers |\n| YAML-config-driven training | Axolotl |\n| Full fine-tuning with FSDP | Transformers + Accelerate |\n\n## Quick Reference\n\n| Topic | Documentation |\n|-------|---------------|\n| Overview & Features | [docs\u002Foverview.md](docs\u002Foverview.md) |\n| Installation (pip) | [docs\u002Finstallation-pip.md](docs\u002Finstallation-pip.md) |\n| Installation (Docker) | [docs\u002Finstallation-docker.md](docs\u002Finstallation-docker.md) |\n| Model Selection Guide | [docs\u002Fmodel-selection.md](docs\u002Fmodel-selection.md) |\n| VRAM Requirements | [docs\u002Frequirements.md](docs\u002Frequirements.md) |\n| Model Catalog (300+) | [docs\u002Fmodels.md](docs\u002Fmodels.md) |\n| Datasets & Formatting | [docs\u002Fdatasets.md](docs\u002Fdatasets.md) |\n| Chat Templates | [docs\u002Fchat-templates.md](docs\u002Fchat-templates.md) |\n| LoRA Hyperparameters | [docs\u002Flora-hyperparameters.md](docs\u002Flora-hyperparameters.md) |\n| GRPO RL Tutorial | [docs\u002Ftutorial-grpo.md](docs\u002Ftutorial-grpo.md) |\n| Advanced RL Parameters | [docs\u002Fadvanced-rl.md](docs\u002Fadvanced-rl.md) |\n| Memory-Efficient RL | [docs\u002Fmemory-efficient-rl.md](docs\u002Fmemory-efficient-rl.md) |\n| Vision Fine-Tuning | [docs\u002Fvision-fine-tuning.md](docs\u002Fvision-fine-tuning.md) |\n| Vision RL (VLM GRPO) | [docs\u002Fvision-rl.md](docs\u002Fvision-rl.md) |\n| TTS Fine-Tuning | [docs\u002Ftts-fine-tuning.md](docs\u002Ftts-fine-tuning.md) |\n| Saving to GGUF | [docs\u002Fsaving-to-gguf.md](docs\u002Fsaving-to-gguf.md) |\n| Saving to Ollama | [docs\u002Fsaving-to-ollama.md](docs\u002Fsaving-to-ollama.md) |\n| vLLM Deployment | [docs\u002Fvllm-guide.md](docs\u002Fvllm-guide.md) |\n| FP8 Training | [docs\u002Ffp8-rl.md](docs\u002Ffp8-rl.md) |\n| FP16 vs BF16 for RL | [docs\u002Ffp16-vs-bf16.md](docs\u002Ffp16-vs-bf16.md) |\n| Multi-GPU DDP | [docs\u002Fmulti-gpu-ddp.md](docs\u002Fmulti-gpu-ddp.md) |\n| Kernels & Packing | [docs\u002Fkernels-packing.md](docs\u002Fkernels-packing.md) |\n| Inference | [docs\u002Finference.md](docs\u002Finference.md) |\n| Troubleshooting | [docs\u002Ftroubleshooting-faq.md](docs\u002Ftroubleshooting-faq.md) |\n| Troubleshooting Inference | [docs\u002Ftroubleshooting-inference.md](docs\u002Ftroubleshooting-inference.md) |\n\n## Installation\n\n```bash\n# Recommended (pip)\npip install unsloth\n\n# With vLLM (for GRPO fast inference)\npip install uv && uv pip install unsloth vllm\n\n# Docker (all dependencies pre-installed)\ndocker run -d -e JUPYTER_PASSWORD=\"mypassword\" \\\n  -p 8888:8888 --gpus all -v $(pwd)\u002Fwork:\u002Fworkspace\u002Fwork \\\n  unsloth\u002Funsloth\n```\n\n**Requirements:** Linux or Windows (WSL), NVIDIA GPU with CUDA Capability 7.0+ (V100, T4, RTX 20-50, A100, H100, L40). AMD and Intel GPUs also supported. Python 3.10-3.13.\n\n---\n\n## Workflow 1: SFT (Supervised Fine-Tuning)\n\nUse this for standard instruction tuning, chat fine-tuning, or domain adaptation.\n\n### Checklist\n- [ ] Prepare dataset in ShareGPT, ChatML, or Alpaca format\n- [ ] Choose base vs instruct model (see Model Selection below)\n- [ ] Select QLoRA (4-bit) or LoRA (16-bit) based on VRAM\n- [ ] Set hyperparameters (rank, alpha, LR, epochs)\n- [ ] Run training with SFTTrainer\n- [ ] Save and deploy (LoRA adapter, merged 16-bit, or GGUF)\n\n### Implementation\n\n```python\nfrom unsloth import FastLanguageModel\nfrom trl import SFTTrainer, SFTConfig\nfrom datasets import load_dataset\n\n# Step 1: Load model (QLoRA 4-bit)\nmodel, tokenizer = FastLanguageModel.from_pretrained(\n    model_name=\"unsloth\u002FQwen3-8B-bnb-4bit\",  # or any HF model\n    max_seq_length=2048,\n    load_in_4bit=True,   # False for LoRA 16-bit\n)\n\n# Step 2: Add LoRA adapters\nmodel = FastLanguageModel.get_peft_model(\n    model,\n    r=16,                              # Rank: 8-128 (16-32 recommended)\n    lora_alpha=16,                     # Alpha: equal to r or 2*r\n    lora_dropout=0,                    # 0 is default, use 0.05-0.1 for regularization\n    target_modules=[\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\",\n                    \"gate_proj\", \"up_proj\", \"down_proj\"],\n    use_gradient_checkpointing=\"unsloth\",  # 30% less VRAM\n    use_rslora=False,                  # True for rank-stabilized LoRA\n)\n\n# Step 3: Prepare dataset\ndataset = load_dataset(\"philschmid\u002Fdolly-15k-oai-style\", split=\"train\")\n\n# Step 4: Train\ntrainer = SFTTrainer(\n    model=model,\n    tokenizer=tokenizer,\n    train_dataset=dataset,\n    args=SFTConfig(\n        output_dir=\".\u002Fsft-output\",\n        per_device_train_batch_size=2,\n        gradient_accumulation_steps=4,   # Effective batch = 2*4 = 8\n        num_train_epochs=3,\n        learning_rate=2e-4,\n        fp16=True,                       # or bf16=True\n        logging_steps=10,\n        optim=\"adamw_8bit\",\n        max_seq_length=2048,\n        packing=True,                    # Uncontaminated packing (2-5x faster)\n    ),\n)\ntrainer.train()\n\n# Step 5: Save\nmodel.save_pretrained(\"lora_adapter\")          # LoRA only (~6MB)\ntokenizer.save_pretrained(\"lora_adapter\")\n```\n\n### Data Formats\n\n| Format | Template | Use Case |\n|--------|----------|----------|\n| ShareGPT | `{\"conversations\": [{\"from\": \"human\", ...}]}` | Multi-turn chat, instruct models |\n| ChatML \u002F OpenAI | `{\"messages\": [{\"role\": \"user\", ...}]}` | OpenAI-compatible, instruct models |\n| Alpaca | `{\"instruction\": ..., \"input\": ..., \"output\": ...}` | Single-turn tasks, base models |\n| Raw text | Plain text corpus | Continued pretraining |\n\nUse `get_chat_template(tokenizer, chat_template=\"chatml\")` to apply templates. Use `standardize_sharegpt(dataset)` for ShareGPT-formatted data with non-standard keys.\n\n### Training on Completions Only\n\nMask user inputs so loss is only computed on assistant responses:\n\n```python\nfrom unsloth.chat_templates import train_on_responses_only\ntrainer = train_on_responses_only(\n    trainer,\n    instruction_part=\"\u003C|start_header_id|>user\u003C|end_header_id|>\\n\\n\",      # Llama 3.x\n    response_part=\"\u003C|start_header_id|>assistant\u003C|end_header_id|>\\n\\n\",\n)\n# For Gemma: instruction_part=\"\u003Cstart_of_turn>user\\n\", response_part=\"\u003Cstart_of_turn>model\\n\"\n```\n\n**Sources:** [docs\u002Fdatasets.md](docs\u002Fdatasets.md), [docs\u002Fchat-templates.md](docs\u002Fchat-templates.md), [docs\u002Flora-hyperparameters.md](docs\u002Flora-hyperparameters.md)\n\n---\n\n## Workflow 2: RL Training (GRPO)\n\nUse this for training reasoning models with reward functions — math, code, format compliance, verifiable tasks.\n\n### Checklist\n- [ ] Define reward function(s) returning float scores\n- [ ] Choose model and enable vLLM fast inference\n- [ ] Enable Unsloth Standby for memory-efficient RL\n- [ ] Configure GRPOConfig with num_generations, epsilon, loss_type\n- [ ] Monitor reward curves and KL divergence\n- [ ] Save and export model\n\n### Implementation\n\n```python\nimport os\nos.environ[\"UNSLOTH_VLLM_STANDBY\"] = \"1\"  # Memory-efficient RL\n\nfrom unsloth import FastLanguageModel\nimport torch\nimport re\n\nmodel, tokenizer = FastLanguageModel.from_pretrained(\n    model_name=\"unsloth\u002FQwen3-8B\",\n    max_seq_length=2048,\n    load_in_4bit=True,          # False for LoRA 16-bit\n    fast_inference=True,         # Enable vLLM for fast generation\n    max_lora_rank=32,\n    gpu_memory_utilization=0.9,  # Reduce if OOM\n)\n\nmodel = FastLanguageModel.get_peft_model(\n    model, r=32, lora_alpha=64,\n    target_modules=[\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\",\n                    \"gate_proj\", \"up_proj\", \"down_proj\"],\n    use_gradient_checkpointing=\"unsloth\",\n)\n\n# Define reward functions\ndef correctness_reward(completions, answer, **kwargs):\n    scores = []\n    for completion in completions:\n        match = re.search(r\"\u003Canswer>(.*?)\u003C\u002Fanswer>\", completion, re.DOTALL)\n        extracted = match.group(1).strip() if match else \"\"\n        scores.append(1.0 if extracted == answer else 0.0)\n    return scores\n\ndef format_reward(completions, **kwargs):\n    pattern = r\"\u003Creasoning>.*?\u003C\u002Freasoning>\\s*\u003Canswer>.*?\u003C\u002Fanswer>\"\n    return [1.0 if re.search(pattern, c, re.DOTALL) else 0.0 for c in completions]\n\n# Train\nfrom trl import GRPOConfig, GRPOTrainer\n\ntraining_args = GRPOConfig(\n    output_dir=\".\u002Fgrpo-output\",\n    per_device_train_batch_size=2,\n    gradient_accumulation_steps=4,\n    learning_rate=5e-6,\n    num_generations=8,          # Rollouts per prompt\n    max_completion_length=512,\n    max_prompt_length=512,\n    max_steps=250,\n    temperature=1.0,\n    # RL algorithm variants\n    loss_type=\"dapo\",           # \"grpo\", \"dr_grpo\", \"dapo\", \"bnpo\"\n    epsilon=0.2,\n    epsilon_high=0.28,          # DAPO upper clipping\n    scale_rewards=\"none\",       # Dr. GRPO: no reward scaling\n    optim=\"adamw_8bit\",\n    report_to=\"none\",\n)\n\ntrainer = GRPOTrainer(\n    model=model,\n    processing_class=tokenizer,\n    args=training_args,\n    train_dataset=dataset,\n    reward_funcs=[correctness_reward, format_reward],\n)\ntrainer.train()\n\n# Save\nmodel.save_lora(\"grpo_saved_lora\")\n```\n\n### RL Algorithm Variants\n\n| Algorithm | `loss_type` | Key Setting | Notes |\n|-----------|-------------|-------------|-------|\n| GRPO | `\"grpo\"` | Default | Standard group relative policy optimization |\n| Dr. GRPO | `\"dr_grpo\"` | `scale_rewards=\"none\"` | No reward normalization, more stable |\n| DAPO | `\"dapo\"` | `epsilon_high=0.28` | Two-sided clipping, recommended default |\n| BNPO | `\"bnpo\"` | — | Bounded negative policy optimization |\n| GSPO | any | `importance_sampling_level=\"sequence\"` | Sequence-level importance weighting (Qwen team) |\n\n### Unsloth Standby (Memory-Efficient RL)\n\nSet `os.environ[\"UNSLOTH_VLLM_STANDBY\"] = \"1\"` before imports. This shares vLLM's weight space with training and repurposes KV cache memory during training — saving up to 60% VRAM. On H100 80GB: 16GB shared weights + 64GB multi-purpose space.\n\n**Sources:** [docs\u002Ftutorial-grpo.md](docs\u002Ftutorial-grpo.md), [docs\u002Fadvanced-rl.md](docs\u002Fadvanced-rl.md), [docs\u002Fmemory-efficient-rl.md](docs\u002Fmemory-efficient-rl.md)\n\n---\n\n## Workflow 3: Vision Fine-Tuning\n\nUse this for training vision-language models on image+text tasks.\n\n### Implementation\n\n```python\nfrom unsloth import FastVisionModel\nfrom trl import SFTTrainer, SFTConfig\nfrom unsloth.trainer import UnslothVisionDataCollator\n\nmodel, tokenizer = FastVisionModel.from_pretrained(\n    \"unsloth\u002FQwen2.5-VL-7B-Instruct-bnb-4bit\",\n    max_seq_length=2048,\n    load_in_4bit=True,\n)\n\nmodel = FastVisionModel.get_peft_model(\n    model,\n    finetune_vision_layers=True,       # Toggle vision encoder training\n    finetune_language_layers=True,\n    finetune_attention_modules=True,\n    finetune_mlp_modules=True,\n    r=16, lora_alpha=16,\n    target_modules=\"all-linear\",\n    use_gradient_checkpointing=\"unsloth\",\n)\n\n# Dataset format: user content has text + image\ndef convert_to_conversation(sample):\n    return {\"messages\": [\n        {\"role\": \"user\", \"content\": [\n            {\"type\": \"text\", \"text\": \"Describe this image.\"},\n            {\"type\": \"image\", \"image\": sample[\"image\"]}]},\n        {\"role\": \"assistant\", \"content\": [\n            {\"type\": \"text\", \"text\": sample[\"caption\"]}]},\n    ]}\n\ndataset = [convert_to_conversation(s) for s in raw_dataset]  # Use list, not .map()\n\ntrainer = SFTTrainer(\n    model=model, tokenizer=tokenizer,\n    data_collator=UnslothVisionDataCollator(model, tokenizer),\n    train_dataset=dataset,\n    args=SFTConfig(output_dir=\".\u002Fvision-output\", max_seq_length=2048,\n                   per_device_train_batch_size=1, gradient_accumulation_steps=4),\n)\ntrainer.train()\n```\n\n### Vision RL (GRPO with Images)\n\nFor VLM RL with vLLM, set `fast_inference=True` but `finetune_vision_layers=False` (vLLM limitation). Enable Standby for memory savings.\n\n### Supported Vision Models\n\n| Model | Sizes | Notes |\n|-------|-------|-------|\n| Qwen3-VL | 2B-235B | Best vLLM VLM support |\n| Qwen2.5-VL | 3B-72B | Stable, well-tested |\n| Gemma 3 | 4B-27B | Requires L4+ GPU (BF16 only in vLLM) |\n| Llama 3.2 Vision | 11B, 90B | No vLLM LoRA support; use Unsloth inference |\n| Pixtral | 12B | Mistral vision model |\n\n**Sources:** [docs\u002Fvision-fine-tuning.md](docs\u002Fvision-fine-tuning.md), [docs\u002Fvision-rl.md](docs\u002Fvision-rl.md)\n\n---\n\n## Workflow 4: TTS Fine-Tuning\n\nUse this for voice cloning, style adaptation, or speech-to-text fine-tuning.\n\n```python\nfrom unsloth import FastModel\nfrom datasets import load_dataset, Audio\n\nmodel, tokenizer = FastModel.from_pretrained(\n    \"unsloth\u002Forpheus-3b-0.1-ft\",\n    max_seq_length=2048,\n    load_in_4bit=False,  # 16-bit recommended for TTS\n)\n\ndataset = load_dataset(\"MrDragonFox\u002FElise\", split=\"train\")\ndataset = dataset.cast_column(\"audio\", Audio(sampling_rate=24000))  # 24kHz required\n```\n\nOrpheus supports emotional tags: `\u003Claugh>`, `\u003Csigh>`, `\u003Ccough>`, `\u003Cgasp>`, `\u003Cyawn>`, etc.\n\n### TTS Models\n\n| Model | Size | Type | Notes |\n|-------|------|------|-------|\n| Orpheus-TTS | 3B | Speech generation | Emotional cues, llama.cpp compatible |\n| Sesame-CSM | 1B | Speech generation | Requires audio context per speaker |\n| Spark-TTS | 0.5B | Speech generation | Smallest, fastest inference |\n| Whisper Large V3 | ~1.5B | Speech-to-text | STT fine-tuning |\n| Llasa-TTS | 1B | Speech generation | — |\n| Oute-TTS | 1B | Speech generation | — |\n\n**Sources:** [docs\u002Ftts-fine-tuning.md](docs\u002Ftts-fine-tuning.md)\n\n---\n\n## Workflow 5: Colab Fine-Tuning (Remote GPU)\n\nUse this to run any Unsloth workflow on a Google Colab GPU directly from openscience — no local GPU required.\n\n### Setup\n1. Generate the bridge notebook: `colab_notebook workflow=bridge`\n2. Upload to Google Colab, select GPU runtime, run all cells\n3. Copy the WebSocket URL → `colab_connect connection_url=\"wss:\u002F\u002F...\"`\n\n### Run Training Remotely\n```\ncolab_finetune workflow=sft model=\"unsloth\u002FQwen3-4B-unsloth-bnb-4bit\" dataset=\"mlabonne\u002FFineTome-100k\"\n```\n\nAll SFT\u002FGRPO\u002FDPO\u002Fvision\u002FTTS workflows work identically on Colab. The plugin handles:\n- Unsloth installation on the Colab VM\n- Model loading, LoRA setup, dataset preparation\n- Training execution with streaming output\n- Model saving and optional HuggingFace Hub push\n\n### GPU Recommendations\n\n| Colab Tier | GPU | VRAM | Max Model (QLoRA) |\n|-----------|-----|------|-------------------|\n| Free | T4 | 15 GB | ~14B |\n| Pro | A100 | 40 GB | ~32B |\n| Pro+ | A100 80GB | 80 GB | ~72B |\n\n### Key Differences from Local Training\n- Files are ephemeral — save to HuggingFace Hub with `push_to_hub` parameter\n- Session may disconnect — use keep-alive cell in bridge notebook\n- Package installation happens on each new session\n\nSee the **colab-finetuning** skill for detailed Colab-specific guidance.\n\n---\n\n## Model Selection\n\n### Instruct vs Base Model\n\n| Dataset Size | Recommendation |\n|-------------|----------------|\n| 1,000+ rows | Base model (more customizable) |\n| 300-1,000 rows | Either base or instruct |\n| \u003C 300 rows | Instruct model (preserves built-in capabilities) |\n\n### Model Name Conventions\n\n| Suffix | Meaning |\n|--------|---------|\n| `unsloth-bnb-4bit` | Unsloth dynamic 4-bit quants (higher accuracy, slightly more VRAM) |\n| `bnb-4bit` | Standard BitsAndBytes 4-bit quantization |\n| No suffix | Original 16-bit or 8-bit format |\n\n### VRAM Requirements\n\n| Parameters | QLoRA (4-bit) | LoRA (16-bit) |\n|-----------|---------------|---------------|\n| 3B | 3.5 GB | 8 GB |\n| 7-8B | 5-6 GB | 19-22 GB |\n| 14B | 8.5 GB | 33 GB |\n| 27B | 22 GB | 64 GB |\n| 32B | 26 GB | 76 GB |\n| 70B | 41 GB | 164 GB |\n| 90B | 53 GB | 212 GB |\n\nCommon OOM fix: reduce `per_device_train_batch_size` to 1 or 2.\n\n**Sources:** [docs\u002Fmodel-selection.md](docs\u002Fmodel-selection.md), [docs\u002Frequirements.md](docs\u002Frequirements.md)\n\n---\n\n## Key Hyperparameters\n\n| Parameter | Default | Range | Notes |\n|-----------|---------|-------|-------|\n| `r` (rank) | 16 | 8-128 | Higher = more capacity, more VRAM. Start with 16-32 |\n| `lora_alpha` | r | r to 2*r | Scaling factor. `W_hat = W + (alpha\u002Fr) * AB` |\n| `lora_dropout` | 0 | 0-0.1 | Regularization. 0 is recommended default |\n| `target_modules` | attention | `\"all-linear\"` or list | QLoRA-All gives best quality |\n| `use_gradient_checkpointing` | — | `\"unsloth\"` | 30% less memory than standard checkpointing |\n| `use_rslora` | False | True\u002FFalse | Rank-stabilized LoRA: scales by `sqrt(r)` instead of `r` |\n| `learning_rate` | 2e-4 | 1e-4 to 5e-4 | For LoRA\u002FQLoRA SFT. Use 5e-6 for RL |\n| `num_train_epochs` | 3 | 1-5 | More than 5 risks overfitting |\n| `per_device_train_batch_size` | 2 | 1-8 | Reduce to 1 if OOM |\n| `gradient_accumulation_steps` | 4 | 1-16 | Effective batch = batch_size * accumulation |\n\n### Batch Size Equivalence\n\nUnsloth's gradient accumulation fix makes all configurations equivalent:\n\n```\nEffective Batch Size = per_device_train_batch_size × gradient_accumulation_steps\n# batch_size=2, accum=4 ≡ batch_size=1, accum=8 ≡ batch_size=8, accum=1\n```\n\n**Sources:** [docs\u002Flora-hyperparameters.md](docs\u002Flora-hyperparameters.md)\n\n---\n\n## Saving and Deployment\n\n### Save Methods\n\n```python\n# LoRA adapter only (~6MB)\nmodel.save_pretrained(\"lora_adapter\")\n\n# Merged 16-bit (for vLLM deployment)\nmodel.save_pretrained_merged(\"model_16bit\", tokenizer, save_method=\"merged_16bit\")\n\n# GGUF (for Ollama, llama.cpp, LM Studio)\nmodel.save_pretrained_gguf(\"model_gguf\", tokenizer, quantization_method=\"q4_k_m\")\n\n# Push to Hugging Face Hub\nmodel.push_to_hub_merged(\"username\u002Fmodel\", tokenizer, save_method=\"merged_16bit\", token=\"...\")\nmodel.push_to_hub_gguf(\"username\u002Fmodel\", tokenizer, quantization_method=\"q4_k_m\", token=\"...\")\n```\n\n### GGUF Quantization Options\n\n| Method | Bits | Quality | Speed | Size | Notes |\n|--------|------|---------|-------|------|-------|\n| `f16` | 16 | Best | Slow | Large | 100% accuracy, no quantization |\n| `q8_0` | 8 | Very High | Good | Medium | Generally acceptable |\n| `q5_k_m` | 5 | High | Fast | Small | Good balance |\n| `q4_k_m` | 4 | Good | Fast | Small | **Recommended** for most use cases |\n| `q3_k_m` | 3 | OK | Fastest | Smallest | For very limited VRAM |\n| `q2_k` | 2 | Lower | Fastest | Tiny | Maximum compression |\n\n### Deployment Targets\n\n| Platform | Save Method | Command |\n|----------|-------------|---------|\n| Ollama | `save_pretrained_gguf` | Auto-creates Modelfile, then `ollama create` |\n| vLLM | `save_pretrained_merged(\"...\", save_method=\"merged_16bit\")` | `vllm serve .\u002Fmodel` |\n| llama.cpp | `save_pretrained_gguf` or manual GGUF | `.\u002Fllama-cli -m model.gguf` |\n| LM Studio | `save_pretrained_gguf` | Import GGUF file |\n| Hugging Face | `push_to_hub_merged` or `push_to_hub_gguf` | Online inference |\n\n### Inference with Unsloth (2x faster)\n\n```python\nfrom unsloth import FastLanguageModel\nmodel, tokenizer = FastLanguageModel.from_pretrained(\"lora_adapter\", max_seq_length=2048, load_in_4bit=True)\nFastLanguageModel.for_inference(model)  # Enable 2x faster inference\n\ninputs = tokenizer(\"What is machine learning?\", return_tensors=\"pt\").to(\"cuda\")\noutput = model.generate(**inputs, max_new_tokens=256)\nprint(tokenizer.decode(output[0], skip_special_tokens=True))\n```\n\n**Sources:** [docs\u002Fsaving-to-gguf.md](docs\u002Fsaving-to-gguf.md), [docs\u002Fsaving-to-ollama.md](docs\u002Fsaving-to-ollama.md), [docs\u002Fvllm-guide.md](docs\u002Fvllm-guide.md), [docs\u002Finference.md](docs\u002Finference.md)\n\n---\n\n## Common Issues\n\n| Problem | Solution |\n|---------|----------|\n| CUDA OOM during training | Reduce `per_device_train_batch_size` to 1. Enable `use_gradient_checkpointing=\"unsloth\"`. Use QLoRA (`load_in_4bit=True`). |\n| Poor results after GGUF\u002FOllama export | Use the SAME chat template for training and inference. Check `eos_token`. Use conversational notebooks to force template. |\n| GGUF\u002FvLLM 16-bit save crashes | Reduce `maximum_memory_usage` to 0.5: `model.save_pretrained(..., maximum_memory_usage=0.5)` |\n| Overfitting (val loss increases) | Reduce epochs\u002FLR, increase weight_decay\u002Flora_dropout, add more data, use early stopping |\n| Underfitting (loss stays high) | Increase rank, alpha, epochs, or LR. Decrease batch size to 1. Use domain-relevant data. |\n| All labels are -100 | `train_on_responses_only` has wrong instruction\u002Fresponse parts for your model. Check template. |\n| RL OOM with vLLM | Enable Standby: `os.environ[\"UNSLOTH_VLLM_STANDBY\"] = \"1\"`. Reduce `gpu_memory_utilization`. |\n| `add_new_tokens` breaks LoRA | Must call `add_new_tokens(model, tokenizer, ...)` BEFORE `get_peft_model()` |\n| CUDA device-side assert | Set `os.environ[\"UNSLOTH_COMPILE_DISABLE\"] = \"1\"` and `os.environ[\"UNSLOTH_DISABLE_FAST_GENERATION\"] = \"1\"` |\n| New model not supported | Set `trust_remote_code=True` and `unsloth_force_compile=True` — works with any `transformers`-compatible model |\n| Downloads stuck at 90-95% | Set `os.environ[\"UNSLOTH_STABLE_DOWNLOADS\"] = \"1\"` before imports |\n| torch.compile slow startup | Normal — takes ~5 minutes to warm up. Measure throughput after warmup. Disable with `UNSLOTH_COMPILE_DISABLE=1`. |\n\n**Sources:** [docs\u002Ftroubleshooting-faq.md](docs\u002Ftroubleshooting-faq.md), [docs\u002Ftroubleshooting-inference.md](docs\u002Ftroubleshooting-inference.md)\n\n---\n\n## Best Practices\n\n1. **Start with QLoRA 4-bit** (`load_in_4bit=True`) — fits most models on consumer GPUs with minimal accuracy loss\n2. **Use `unsloth-bnb-4bit` model variants** for higher accuracy than standard 4-bit quants\n3. **Set `use_gradient_checkpointing=\"unsloth\"`** — 30% less VRAM than standard gradient checkpointing\n4. **Use `target_modules=\"all-linear\"`** for best quality, or specify attention+MLP modules\n5. **Start with rank 16-32**, increase only if quality is insufficient\n6. **Set `lora_alpha = r` or `2*r`** — higher alpha increases effective learning rate\n7. **Enable packing** (`packing=True` in SFTConfig) for 2-5x faster training with proper attention masking\n8. **Use `train_on_responses_only`** to avoid training on user prompts\n9. **For RL, enable Standby** (`UNSLOTH_VLLM_STANDBY=1`) and `fast_inference=True`\n10. **Use DAPO loss** (`loss_type=\"dapo\"`) as the default RL algorithm — most stable\n11. **Always use the same chat template** for training and inference to avoid gibberish output\n12. **Consider FP8** (`load_in_fp8=True`) on Ampere+ GPUs for 60% less VRAM with ~equal accuracy\n13. **Split dataset** into train\u002Ftest and enable `eval_strategy=\"steps\"` for monitoring\n14. **Save adapters frequently** — they're tiny (~6MB) and easy to rollback\n\n## References\n\n### Core Training\n- [docs\u002Foverview.md](docs\u002Foverview.md) — Features and capabilities overview\n- [docs\u002Fdatasets.md](docs\u002Fdatasets.md) — Dataset formatting and preparation\n- [docs\u002Fchat-templates.md](docs\u002Fchat-templates.md) — Chat template configuration\n- [docs\u002Flora-hyperparameters.md](docs\u002Flora-hyperparameters.md) — LoRA parameter tuning guide\n- [docs\u002Fkernels-packing.md](docs\u002Fkernels-packing.md) — Custom kernels and packing optimizations\n\n### Reinforcement Learning\n- [docs\u002Ftutorial-grpo.md](docs\u002Ftutorial-grpo.md) — Step-by-step GRPO tutorial\n- [docs\u002Fadvanced-rl.md](docs\u002Fadvanced-rl.md) — Advanced RL parameters and batching\n- [docs\u002Fmemory-efficient-rl.md](docs\u002Fmemory-efficient-rl.md) — Standby and memory optimizations\n- [docs\u002Ffp8-rl.md](docs\u002Ffp8-rl.md) — FP8 precision RL training\n- [docs\u002Ffp16-vs-bf16.md](docs\u002Ffp16-vs-bf16.md) — Precision comparison for RL stability\n- [docs\u002Freward-hacking.md](docs\u002Freward-hacking.md) — Counter-measures for reward hacking\n\n### Specialized Models\n- [docs\u002Fvision-fine-tuning.md](docs\u002Fvision-fine-tuning.md) — Vision-language model training\n- [docs\u002Fvision-rl.md](docs\u002Fvision-rl.md) — VLM RL with GRPO\u002FGSPO\n- [docs\u002Ftts-fine-tuning.md](docs\u002Ftts-fine-tuning.md) — Text-to-speech fine-tuning\n- [docs\u002Ftool-calling.md](docs\u002Ftool-calling.md) — Tool\u002Ffunction calling training\n\n### Deployment & Inference\n- [docs\u002Fsaving-to-gguf.md](docs\u002Fsaving-to-gguf.md) — GGUF export and quantization\n- [docs\u002Fsaving-to-ollama.md](docs\u002Fsaving-to-ollama.md) — Ollama integration\n- [docs\u002Fvllm-guide.md](docs\u002Fvllm-guide.md) — vLLM deployment\n- [docs\u002Finference.md](docs\u002Finference.md) — 2x faster native inference\n- [docs\u002Flora-hot-swapping.md](docs\u002Flora-hot-swapping.md) — Runtime adapter switching\n\n### Infrastructure\n- [docs\u002Frequirements.md](docs\u002Frequirements.md) — System and VRAM requirements\n- [docs\u002Fmodel-selection.md](docs\u002Fmodel-selection.md) — Choosing the right model\n- [docs\u002Fmodels.md](docs\u002Fmodels.md) — Full model catalog (300+ models)\n- [docs\u002Fmulti-gpu-ddp.md](docs\u002Fmulti-gpu-ddp.md) — Multi-GPU distributed training\n- [docs\u002Finstallation-pip.md](docs\u002Finstallation-pip.md) — pip installation guide\n- [docs\u002Finstallation-docker.md](docs\u002Finstallation-docker.md) — Docker setup\n\n\n## Known Conflicts\n\n- **Do not install alongside `flash-attention`** in the same environment. Unsloth bundles xformers which may conflict with flash-attn on attention kernels. Use separate environments.\n\n## Resources\n\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Funslothai\u002Funsloth\n- **Documentation**: https:\u002F\u002Fdocs.unsloth.ai\n- **Hugging Face**: https:\u002F\u002Fhuggingface.co\u002Funsloth\n- **Docker Hub**: https:\u002F\u002Fhub.docker.com\u002Fr\u002Funsloth\u002Funsloth\n- **Notebooks**: https:\u002F\u002Fgithub.com\u002Funslothai\u002Fnotebooks\n- **Discord**: https:\u002F\u002Fdiscord.gg\u002Funsloth\n","# Unsloth - Fast LLM Fine-Tuning\n\nFine-tune LLMs 2-5x faster with 50-80% less VRAM. Supports SFT, RL (GRPO), vision, TTS, and 300+ models with zero accuracy loss.\n\n## When to Use Unsloth\n\n**Use Unsloth when:**\n- Fine-tuning on a single GPU with LoRA\u002FQLoRA (consumer or datacenter)\n- Training reasoning models with GRPO, Dr. GRPO, DAPO, BNPO, or GSPO\n- Fine-tuning vision models (Qwen3-VL, Gemma 3, Llama 3.2 Vision)\n- Fine-tuning TTS models (Orpheus, Sesame-CSM, Whisper)\n- Exporting to GGUF for Ollama, llama.cpp, or LM Studio\n- Need padding-free training and uncontaminated packing (automatic)\n- Using FP8 precision for additional memory savings on Ampere+ GPUs\n\n**Don't use Unsloth when:**\n- Multi-node distributed training at scale (Unsloth DDP works but is single-node)\n- Apple Silicon \u002F MLX (not yet supported)\n- Full fine-tuning of 70B+ models (use DeepSpeed + Transformers)\n- Custom architectures not supported by `transformers`\n- Cloud-managed training without GPU access (use Tinker instead)\n\n**Unsloth vs Alternatives:**\n\n| Need | Use |\n|------|-----|\n| Fast single-GPU LoRA\u002FQLoRA | **Unsloth** |\n| Managed cloud LoRA training | Tinker |\n| Parameter-efficient methods (IA3, Prefix, etc.) | PEFT |\n| Multi-node distributed training | DeepSpeed + Transformers |\n| YAML-config-driven training | Axolotl |\n| Full fine-tuning with FSDP | Transformers + Accelerate |\n\n## Quick Reference\n\n| Topic | Documentation |\n|-------|---------------|\n| Overview & Features | [docs\u002Foverview.md](docs\u002Foverview.md) |\n| Installation (pip) | [docs\u002Finstallation-pip.md](docs\u002Finstallation-pip.md) |\n| Installation (Docker) | [docs\u002Finstallation-docker.md](docs\u002Finstallation-docker.md) |\n| Model Selection Guide | [docs\u002Fmodel-selection.md](docs\u002Fmodel-selection.md) |\n| VRAM Requirements | [docs\u002Frequirements.md](docs\u002Frequirements.md) |\n| Model Catalog (300+) | [docs\u002Fmodels.md](docs\u002Fmodels.md) |\n| Datasets & Formatting | [docs\u002Fdatasets.md](docs\u002Fdatasets.md) |\n| Chat Templates | [docs\u002Fchat-templates.md](docs\u002Fchat-templates.md) |\n| LoRA Hyperparameters | [docs\u002Flora-hyperparameters.md](docs\u002Flora-hyperparameters.md) |\n| GRPO RL Tutorial | [docs\u002Ftutorial-grpo.md](docs\u002Ftutorial-grpo.md) |\n| Advanced RL Parameters | [docs\u002Fadvanced-rl.md](docs\u002Fadvanced-rl.md) |\n| Memory-Efficient RL | [docs\u002Fmemory-efficient-rl.md](docs\u002Fmemory-efficient-rl.md) |\n| Vision Fine-Tuning | [docs\u002Fvision-fine-tuning.md](docs\u002Fvision-fine-tuning.md) |\n| Vision RL (VLM GRPO) | [docs\u002Fvision-rl.md](docs\u002Fvision-rl.md) |\n| TTS Fine-Tuning | [docs\u002Ftts-fine-tuning.md](docs\u002Ftts-fine-tuning.md) |\n| Saving to GGUF | [docs\u002Fsaving-to-gguf.md](docs\u002Fsaving-to-gguf.md) |\n| Saving to Ollama | [docs\u002Fsaving-to-ollama.md](docs\u002Fsaving-to-ollama.md) |\n| vLLM Deployment | [docs\u002Fvllm-guide.md](docs\u002Fvllm-guide.md) |\n| FP8 Training | [docs\u002Ffp8-rl.md](docs\u002Ffp8-rl.md) |\n| FP16 vs BF16 for RL | [docs\u002Ffp16-vs-bf16.md](docs\u002Ffp16-vs-bf16.md) |\n| Multi-GPU DDP | [docs\u002Fmulti-gpu-ddp.md](docs\u002Fmulti-gpu-ddp.md) |\n| Kernels & Packing | [docs\u002Fkernels-packing.md](docs\u002Fkernels-packing.md) |\n| Inference | [docs\u002Finference.md](docs\u002Finference.md) |\n| Troubleshooting | [docs\u002Ftroubleshooting-faq.md](docs\u002Ftroubleshooting-faq.md) |\n| Troubleshooting Inference | [docs\u002Ftroubleshooting-inference.md](docs\u002Ftroubleshooting-inference.md) |\n\n## Installation\n\n```bash\n# Recommended (pip)\npip install unsloth\n\n# With vLLM (for GRPO fast inference)\npip install uv && uv pip install unsloth vllm\n\n# Docker (all dependencies pre-installed)\ndocker run -d -e JUPYTER_PASSWORD=\"mypassword\" \\\n  -p 8888:8888 --gpus all -v $(pwd)\u002Fwork:\u002Fworkspace\u002Fwork \\\n  unsloth\u002Funsloth\n```\n\n**Requirements:** Linux or Windows (WSL), NVIDIA GPU with CUDA Capability 7.0+ (V100, T4, RTX 20-50, A100, H100, L40). AMD and Intel GPUs also supported. Python 3.10-3.13.\n\n---\n\n## Workflow 1: SFT (Supervised Fine-Tuning)\n\nUse this for standard instruction tuning, chat fine-tuning, or domain adaptation.\n\n### Checklist\n- [ ] Prepare dataset in ShareGPT, ChatML, or Alpaca format\n- [ ] Choose base vs instruct model (see Model Selection below)\n- [ ] Select QLoRA (4-bit) or LoRA (16-bit) based on VRAM\n- [ ] Set hyperparameters (rank, alpha, LR, epochs)\n- [ ] Run training with SFTTrainer\n- [ ] Save and deploy (LoRA adapter, merged 16-bit, or GGUF)\n\n### Implementation\n\n```python\nfrom unsloth import FastLanguageModel\nfrom trl import SFTTrainer, SFTConfig\nfrom datasets import load_dataset\n\n# Step 1: Load model (QLoRA 4-bit)\nmodel, tokenizer = FastLanguageModel.from_pretrained(\n    model_name=\"unsloth\u002FQwen3-8B-bnb-4bit\",  # or any HF model\n    max_seq_length=2048,\n    load_in_4bit=True,   # False for LoRA 16-bit\n)\n\n# Step 2: Add LoRA adapters\nmodel = FastLanguageModel.get_peft_model(\n    model,\n    r=16,                              # Rank: 8-128 (16-32 recommended)\n    lora_alpha=16,                     # Alpha: equal to r or 2*r\n    lora_dropout=0,                    # 0 is default, use 0.05-0.1 for regularization\n    target_modules=[\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\",\n                    \"gate_proj\", \"up_proj\", \"down_proj\"],\n    use_gradient_checkpointing=\"unsloth\",  # 30% less VRAM\n    use_rslora=False,                  # True for rank-stabilized LoRA\n)\n\n# Step 3: Prepare dataset\ndataset = load_dataset(\"philschmid\u002Fdolly-15k-oai-style\", split=\"train\")\n\n# Step 4: Train\ntrainer = SFTTrainer(\n    model=model,\n    tokenizer=tokenizer,\n    train_dataset=dataset,\n    args=SFTConfig(\n        output_dir=\".\u002Fsft-output\",\n        per_device_train_batch_size=2,\n        gradient_accumulation_steps=4,   # Effective batch = 2*4 = 8\n        num_train_epochs=3,\n        learning_rate=2e-4,\n        fp16=True,                       # or bf16=True\n        logging_steps=10,\n        optim=\"adamw_8bit\",\n        max_seq_length=2048,\n        packing=True,                    # Uncontaminated packing (2-5x faster)\n    ),\n)\ntrainer.train()\n\n# Step 5: Save\nmodel.save_pretrained(\"lora_adapter\")          # LoRA only (~6MB)\ntokenizer.save_pretrained(\"lora_adapter\")\n```\n\n### Data Formats\n\n| Format | Template | Use Case |\n|--------|----------|----------|\n| ShareGPT | `{\"conversations\": [{\"from\": \"human\", ...}]}` | Multi-turn chat, instruct models |\n| ChatML \u002F OpenAI | `{\"messages\": [{\"role\": \"user\", ...}]}` | OpenAI-compatible, instruct models |\n| Alpaca | `{\"instruction\": ..., \"input\": ..., \"output\": ...}` | Single-turn tasks, base models |\n| Raw text | Plain text corpus | Continued pretraining |\n\nUse `get_chat_template(tokenizer, chat_template=\"chatml\")` to apply templates. Use `standardize_sharegpt(dataset)` for ShareGPT-formatted data with non-standard keys.\n\n### Training on Completions Only\n\nMask user inputs so loss is only computed on assistant responses:\n\n```python\nfrom unsloth.chat_templates import train_on_responses_only\ntrainer = train_on_responses_only(\n    trainer,\n    instruction_part=\"\u003C|start_header_id|>user\u003C|end_header_id|>\\n\\n\",      # Llama 3.x\n    response_part=\"\u003C|start_header_id|>assistant\u003C|end_header_id|>\\n\\n\",\n)\n# For Gemma: instruction_part=\"\u003Cstart_of_turn>user\\n\", response_part=\"\u003Cstart_of_turn>model\\n\"\n```\n\n**Sources:** [docs\u002Fdatasets.md](docs\u002Fdatasets.md), [docs\u002Fchat-templates.md](docs\u002Fchat-templates.md), [docs\u002Flora-hyperparameters.md](docs\u002Flora-hyperparameters.md)\n\n---\n\n## Workflow 2: RL Training (GRPO)\n\nUse this for training reasoning models with reward functions — math, code, format compliance, verifiable tasks.\n\n### Checklist\n- [ ] Define reward function(s) returning float scores\n- [ ] Choose model and enable vLLM fast inference\n- [ ] Enable Unsloth Standby for memory-efficient RL\n- [ ] Configure GRPOConfig with num_generations, epsilon, loss_type\n- [ ] Monitor reward curves and KL divergence\n- [ ] Save and export model\n\n### Implementation\n\n```python\nimport os\nos.environ[\"UNSLOTH_VLLM_STANDBY\"] = \"1\"  # Memory-efficient RL\n\nfrom unsloth import FastLanguageModel\nimport torch\nimport re\n\nmodel, tokenizer = FastLanguageModel.from_pretrained(\n    model_name=\"unsloth\u002FQwen3-8B\",\n    max_seq_length=2048,\n    load_in_4bit=True,          # False for LoRA 16-bit\n    fast_inference=True,         # Enable vLLM for fast generation\n    max_lora_rank=32,\n    gpu_memory_utilization=0.9,  # Reduce if OOM\n)\n\nmodel = FastLanguageModel.get_peft_model(\n    model, r=32, lora_alpha=64,\n    target_modules=[\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\",\n                    \"gate_proj\", \"up_proj\", \"down_proj\"],\n    use_gradient_checkpointing=\"unsloth\",\n)\n\n# Define reward functions\ndef correctness_reward(completions, answer, **kwargs):\n    scores = []\n    for completion in completions:\n        match = re.search(r\"\u003Canswer>(.*?)\u003C\u002Fanswer>\", completion, re.DOTALL)\n        extracted = match.group(1).strip() if match else \"\"\n        scores.append(1.0 if extracted == answer else 0.0)\n    return scores\n\ndef format_reward(completions, **kwargs):\n    pattern = r\"\u003Creasoning>.*?\u003C\u002Freasoning>\\s*\u003Canswer>.*?\u003C\u002Fanswer>\"\n    return [1.0 if re.search(pattern, c, re.DOTALL) else 0.0 for c in completions]\n\n# Train\nfrom trl import GRPOConfig, GRPOTrainer\n\ntraining_args = GRPOConfig(\n    output_dir=\".\u002Fgrpo-output\",\n    per_device_train_batch_size=2,\n    gradient_accumulation_steps=4,\n    learning_rate=5e-6,\n    num_generations=8,          # Rollouts per prompt\n    max_completion_length=512,\n    max_prompt_length=512,\n    max_steps=250,\n    temperature=1.0,\n    # RL algorithm variants\n    loss_type=\"dapo\",           # \"grpo\", \"dr_grpo\", \"dapo\", \"bnpo\"\n    epsilon=0.2,\n    epsilon_high=0.28,          # DAPO upper clipping\n    scale_rewards=\"none\",       # Dr. GRPO: no reward scaling\n    optim=\"adamw_8bit\",\n    report_to=\"none\",\n)\n\ntrainer = GRPOTrainer(\n    model=model,\n    processing_class=tokenizer,\n    args=training_args,\n    train_dataset=dataset,\n    reward_funcs=[correctness_reward, format_reward],\n)\ntrainer.train()\n\n# Save\nmodel.save_lora(\"grpo_saved_lora\")\n```\n\n### RL Algorithm Variants\n\n| Algorithm | `loss_type` | Key Setting | Notes |\n|-----------|-------------|-------------|-------|\n| GRPO | `\"grpo\"` | Default | Standard group relative policy optimization |\n| Dr. GRPO | `\"dr_grpo\"` | `scale_rewards=\"none\"` | No reward normalization, more stable |\n| DAPO | `\"dapo\"` | `epsilon_high=0.28` | Two-sided clipping, recommended default |\n| BNPO | `\"bnpo\"` | — | Bounded negative policy optimization |\n| GSPO | any | `importance_sampling_level=\"sequence\"` | Sequence-level importance weighting (Qwen team) |\n\n### Unsloth Standby (Memory-Efficient RL)\n\nSet `os.environ[\"UNSLOTH_VLLM_STANDBY\"] = \"1\"` before imports. This shares vLLM's weight space with training and repurposes KV cache memory during training — saving up to 60% VRAM. On H100 80GB: 16GB shared weights + 64GB multi-purpose space.\n\n**Sources:** [docs\u002Ftutorial-grpo.md](docs\u002Ftutorial-grpo.md), [docs\u002Fadvanced-rl.md](docs\u002Fadvanced-rl.md), [docs\u002Fmemory-efficient-rl.md](docs\u002Fmemory-efficient-rl.md)\n\n---\n\n## Workflow 3: Vision Fine-Tuning\n\nUse this for training vision-language models on image+text tasks.\n\n### Implementation\n\n```python\nfrom unsloth import FastVisionModel\nfrom trl import SFTTrainer, SFTConfig\nfrom unsloth.trainer import UnslothVisionDataCollator\n\nmodel, tokenizer = FastVisionModel.from_pretrained(\n    \"unsloth\u002FQwen2.5-VL-7B-Instruct-bnb-4bit\",\n    max_seq_length=2048,\n    load_in_4bit=True,\n)\n\nmodel = FastVisionModel.get_peft_model(\n    model,\n    finetune_vision_layers=True,       # Toggle vision encoder training\n    finetune_language_layers=True,\n    finetune_attention_modules=True,\n    finetune_mlp_modules=True,\n    r=16, lora_alpha=16,\n    target_modules=\"all-linear\",\n    use_gradient_checkpointing=\"unsloth\",\n)\n\n# Dataset format: user content has text + image\ndef convert_to_conversation(sample):\n    return {\"messages\": [\n        {\"role\": \"user\", \"content\": [\n            {\"type\": \"text\", \"text\": \"Describe this image.\"},\n            {\"type\": \"image\", \"image\": sample[\"image\"]}]},\n        {\"role\": \"assistant\", \"content\": [\n            {\"type\": \"text\", \"text\": sample[\"caption\"]}]},\n    ]}\n\ndataset = [convert_to_conversation(s) for s in raw_dataset]  # Use list, not .map()\n\ntrainer = SFTTrainer(\n    model=model, tokenizer=tokenizer,\n    data_collator=UnslothVisionDataCollator(model, tokenizer),\n    train_dataset=dataset,\n    args=SFTConfig(output_dir=\".\u002Fvision-output\", max_seq_length=2048,\n                   per_device_train_batch_size=1, gradient_accumulation_steps=4),\n)\ntrainer.train()\n```\n\n### Vision RL (GRPO with Images)\n\nFor VLM RL with vLLM, set `fast_inference=True` but `finetune_vision_layers=False` (vLLM limitation). Enable Standby for memory savings.\n\n### Supported Vision Models\n\n| Model | Sizes | Notes |\n|-------|-------|-------|\n| Qwen3-VL | 2B-235B | Best vLLM VLM support |\n| Qwen2.5-VL | 3B-72B | Stable, well-tested |\n| Gemma 3 | 4B-27B | Requires L4+ GPU (BF16 only in vLLM) |\n| Llama 3.2 Vision | 11B, 90B | No vLLM LoRA support; use Unsloth inference |\n| Pixtral | 12B | Mistral vision model |\n\n**Sources:** [docs\u002Fvision-fine-tuning.md](docs\u002Fvision-fine-tuning.md), [docs\u002Fvision-rl.md](docs\u002Fvision-rl.md)\n\n---\n\n## Workflow 4: TTS Fine-Tuning\n\nUse this for voice cloning, style adaptation, or speech-to-text fine-tuning.\n\n```python\nfrom unsloth import FastModel\nfrom datasets import load_dataset, Audio\n\nmodel, tokenizer = FastModel.from_pretrained(\n    \"unsloth\u002Forpheus-3b-0.1-ft\",\n    max_seq_length=2048,\n    load_in_4bit=False,  # 16-bit recommended for TTS\n)\n\ndataset = load_dataset(\"MrDragonFox\u002FElise\", split=\"train\")\ndataset = dataset.cast_column(\"audio\", Audio(sampling_rate=24000))  # 24kHz required\n```\n\nOrpheus supports emotional tags: `\u003Claugh>`, `\u003Csigh>`, `\u003Ccough>`, `\u003Cgasp>`, `\u003Cyawn>`, etc.\n\n### TTS Models\n\n| Model | Size | Type | Notes |\n|-------|------|------|-------|\n| Orpheus-TTS | 3B | Speech generation | Emotional cues, llama.cpp compatible |\n| Sesame-CSM | 1B | Speech generation | Requires audio context per speaker |\n| Spark-TTS | 0.5B | Speech generation | Smallest, fastest inference |\n| Whisper Large V3 | ~1.5B | Speech-to-text | STT fine-tuning |\n| Llasa-TTS | 1B | Speech generation | — |\n| Oute-TTS | 1B | Speech generation | — |\n\n**Sources:** [docs\u002Ftts-fine-tuning.md](docs\u002Ftts-fine-tuning.md)\n\n---\n\n## Workflow 5: Colab Fine-Tuning (Remote GPU)\n\nUse this to run any Unsloth workflow on a Google Colab GPU directly from openscience — no local GPU required.\n\n### Setup\n1. Generate the bridge notebook: `colab_notebook workflow=bridge`\n2. Upload to Google Colab, select GPU runtime, run all cells\n3. Copy the WebSocket URL → `colab_connect connection_url=\"wss:\u002F\u002F...\"`\n\n### Run Training Remotely\n```\ncolab_finetune workflow=sft model=\"unsloth\u002FQwen3-4B-unsloth-bnb-4bit\" dataset=\"mlabonne\u002FFineTome-100k\"\n```\n\nAll SFT\u002FGRPO\u002FDPO\u002Fvision\u002FTTS workflows work identically on Colab. The plugin handles:\n- Unsloth installation on the Colab VM\n- Model loading, LoRA setup, dataset preparation\n- Training execution with streaming output\n- Model saving and optional HuggingFace Hub push\n\n### GPU Recommendations\n\n| Colab Tier | GPU | VRAM | Max Model (QLoRA) |\n|-----------|-----|------|-------------------|\n| Free | T4 | 15 GB | ~14B |\n| Pro | A100 | 40 GB | ~32B |\n| Pro+ | A100 80GB | 80 GB | ~72B |\n\n### Key Differences from Local Training\n- Files are ephemeral — save to HuggingFace Hub with `push_to_hub` parameter\n- Session may disconnect — use keep-alive cell in bridge notebook\n- Package installation happens on each new session\n\nSee the **colab-finetuning** skill for detailed Colab-specific guidance.\n\n---\n\n## Model Selection\n\n### Instruct vs Base Model\n\n| Dataset Size | Recommendation |\n|-------------|----------------|\n| 1,000+ rows | Base model (more customizable) |\n| 300-1,000 rows | Either base or instruct |\n| \u003C 300 rows | Instruct model (preserves built-in capabilities) |\n\n### Model Name Conventions\n\n| Suffix | Meaning |\n|--------|---------|\n| `unsloth-bnb-4bit` | Unsloth dynamic 4-bit quants (higher accuracy, slightly more VRAM) |\n| `bnb-4bit` | Standard BitsAndBytes 4-bit quantization |\n| No suffix | Original 16-bit or 8-bit format |\n\n### VRAM Requirements\n\n| Parameters | QLoRA (4-bit) | LoRA (16-bit) |\n|-----------|---------------|---------------|\n| 3B | 3.5 GB | 8 GB |\n| 7-8B | 5-6 GB | 19-22 GB |\n| 14B | 8.5 GB | 33 GB |\n| 27B | 22 GB | 64 GB |\n| 32B | 26 GB | 76 GB |\n| 70B | 41 GB | 164 GB |\n| 90B | 53 GB | 212 GB |\n\nCommon OOM fix: reduce `per_device_train_batch_size` to 1 or 2.\n\n**Sources:** [docs\u002Fmodel-selection.md](docs\u002Fmodel-selection.md), [docs\u002Frequirements.md](docs\u002Frequirements.md)\n\n---\n\n## Key Hyperparameters\n\n| Parameter | Default | Range | Notes |\n|-----------|---------|-------|-------|\n| `r` (rank) | 16 | 8-128 | Higher = more capacity, more VRAM. Start with 16-32 |\n| `lora_alpha` | r | r to 2*r | Scaling factor. `W_hat = W + (alpha\u002Fr) * AB` |\n| `lora_dropout` | 0 | 0-0.1 | Regularization. 0 is recommended default |\n| `target_modules` | attention | `\"all-linear\"` or list | QLoRA-All gives best quality |\n| `use_gradient_checkpointing` | — | `\"unsloth\"` | 30% less memory than standard checkpointing |\n| `use_rslora` | False | True\u002FFalse | Rank-stabilized LoRA: scales by `sqrt(r)` instead of `r` |\n| `learning_rate` | 2e-4 | 1e-4 to 5e-4 | For LoRA\u002FQLoRA SFT. Use 5e-6 for RL |\n| `num_train_epochs` | 3 | 1-5 | More than 5 risks overfitting |\n| `per_device_train_batch_size` | 2 | 1-8 | Reduce to 1 if OOM |\n| `gradient_accumulation_steps` | 4 | 1-16 | Effective batch = batch_size * accumulation |\n\n### Batch Size Equivalence\n\nUnsloth's gradient accumulation fix makes all configurations equivalent:\n\n```\nEffective Batch Size = per_device_train_batch_size × gradient_accumulation_steps\n# batch_size=2, accum=4 ≡ batch_size=1, accum=8 ≡ batch_size=8, accum=1\n```\n\n**Sources:** [docs\u002Flora-hyperparameters.md](docs\u002Flora-hyperparameters.md)\n\n---\n\n## Saving and Deployment\n\n### Save Methods\n\n```python\n# LoRA adapter only (~6MB)\nmodel.save_pretrained(\"lora_adapter\")\n\n# Merged 16-bit (for vLLM deployment)\nmodel.save_pretrained_merged(\"model_16bit\", tokenizer, save_method=\"merged_16bit\")\n\n# GGUF (for Ollama, llama.cpp, LM Studio)\nmodel.save_pretrained_gguf(\"model_gguf\", tokenizer, quantization_method=\"q4_k_m\")\n\n# Push to Hugging Face Hub\nmodel.push_to_hub_merged(\"username\u002Fmodel\", tokenizer, save_method=\"merged_16bit\", token=\"...\")\nmodel.push_to_hub_gguf(\"username\u002Fmodel\", tokenizer, quantization_method=\"q4_k_m\", token=\"...\")\n```\n\n### GGUF Quantization Options\n\n| Method | Bits | Quality | Speed | Size | Notes |\n|--------|------|---------|-------|------|-------|\n| `f16` | 16 | Best | Slow | Large | 100% accuracy, no quantization |\n| `q8_0` | 8 | Very High | Good | Medium | Generally acceptable |\n| `q5_k_m` | 5 | High | Fast | Small | Good balance |\n| `q4_k_m` | 4 | Good | Fast | Small | **Recommended** for most use cases |\n| `q3_k_m` | 3 | OK | Fastest | Smallest | For very limited VRAM |\n| `q2_k` | 2 | Lower | Fastest | Tiny | Maximum compression |\n\n### Deployment Targets\n\n| Platform | Save Method | Command |\n|----------|-------------|---------|\n| Ollama | `save_pretrained_gguf` | Auto-creates Modelfile, then `ollama create` |\n| vLLM | `save_pretrained_merged(\"...\", save_method=\"merged_16bit\")` | `vllm serve .\u002Fmodel` |\n| llama.cpp | `save_pretrained_gguf` or manual GGUF | `.\u002Fllama-cli -m model.gguf` |\n| LM Studio | `save_pretrained_gguf` | Import GGUF file |\n| Hugging Face | `push_to_hub_merged` or `push_to_hub_gguf` | Online inference |\n\n### Inference with Unsloth (2x faster)\n\n```python\nfrom unsloth import FastLanguageModel\nmodel, tokenizer = FastLanguageModel.from_pretrained(\"lora_adapter\", max_seq_length=2048, load_in_4bit=True)\nFastLanguageModel.for_inference(model)  # Enable 2x faster inference\n\ninputs = tokenizer(\"What is machine learning?\", return_tensors=\"pt\").to(\"cuda\")\noutput = model.generate(**inputs, max_new_tokens=256)\nprint(tokenizer.decode(output[0], skip_special_tokens=True))\n```\n\n**Sources:** [docs\u002Fsaving-to-gguf.md](docs\u002Fsaving-to-gguf.md), [docs\u002Fsaving-to-ollama.md](docs\u002Fsaving-to-ollama.md), [docs\u002Fvllm-guide.md](docs\u002Fvllm-guide.md), [docs\u002Finference.md](docs\u002Finference.md)\n\n---\n\n## Common Issues\n\n| Problem | Solution |\n|---------|----------|\n| CUDA OOM during training | Reduce `per_device_train_batch_size` to 1. Enable `use_gradient_checkpointing=\"unsloth\"`. Use QLoRA (`load_in_4bit=True`). |\n| Poor results after GGUF\u002FOllama export | Use the SAME chat template for training and inference. Check `eos_token`. Use conversational notebooks to force template. |\n| GGUF\u002FvLLM 16-bit save crashes | Reduce `maximum_memory_usage` to 0.5: `model.save_pretrained(..., maximum_memory_usage=0.5)` |\n| Overfitting (val loss increases) | Reduce epochs\u002FLR, increase weight_decay\u002Flora_dropout, add more data, use early stopping |\n| Underfitting (loss stays high) | Increase rank, alpha, epochs, or LR. Decrease batch size to 1. Use domain-relevant data. |\n| All labels are -100 | `train_on_responses_only` has wrong instruction\u002Fresponse parts for your model. Check template. |\n| RL OOM with vLLM | Enable Standby: `os.environ[\"UNSLOTH_VLLM_STANDBY\"] = \"1\"`. Reduce `gpu_memory_utilization`. |\n| `add_new_tokens` breaks LoRA | Must call `add_new_tokens(model, tokenizer, ...)` BEFORE `get_peft_model()` |\n| CUDA device-side assert | Set `os.environ[\"UNSLOTH_COMPILE_DISABLE\"] = \"1\"` and `os.environ[\"UNSLOTH_DISABLE_FAST_GENERATION\"] = \"1\"` |\n| New model not supported | Set `trust_remote_code=True` and `unsloth_force_compile=True` — works with any `transformers`-compatible model |\n| Downloads stuck at 90-95% | Set `os.environ[\"UNSLOTH_STABLE_DOWNLOADS\"] = \"1\"` before imports |\n| torch.compile slow startup | Normal — takes ~5 minutes to warm up. Measure throughput after warmup. Disable with `UNSLOTH_COMPILE_DISABLE=1`. |\n\n**Sources:** [docs\u002Ftroubleshooting-faq.md](docs\u002Ftroubleshooting-faq.md), [docs\u002Ftroubleshooting-inference.md](docs\u002Ftroubleshooting-inference.md)\n\n---\n\n## Best Practices\n\n1. **Start with QLoRA 4-bit** (`load_in_4bit=True`) — fits most models on consumer GPUs with minimal accuracy loss\n2. **Use `unsloth-bnb-4bit` model variants** for higher accuracy than standard 4-bit quants\n3. **Set `use_gradient_checkpointing=\"unsloth\"`** — 30% less VRAM than standard gradient checkpointing\n4. **Use `target_modules=\"all-linear\"`** for best quality, or specify attention+MLP modules\n5. **Start with rank 16-32**, increase only if quality is insufficient\n6. **Set `lora_alpha = r` or `2*r`** — higher alpha increases effective learning rate\n7. **Enable packing** (`packing=True` in SFTConfig) for 2-5x faster training with proper attention masking\n8. **Use `train_on_responses_only`** to avoid training on user prompts\n9. **For RL, enable Standby** (`UNSLOTH_VLLM_STANDBY=1`) and `fast_inference=True`\n10. **Use DAPO loss** (`loss_type=\"dapo\"`) as the default RL algorithm — most stable\n11. **Always use the same chat template** for training and inference to avoid gibberish output\n12. **Consider FP8** (`load_in_fp8=True`) on Ampere+ GPUs for 60% less VRAM with ~equal accuracy\n13. **Split dataset** into train\u002Ftest and enable `eval_strategy=\"steps\"` for monitoring\n14. **Save adapters frequently** — they're tiny (~6MB) and easy to rollback\n\n## References\n\n### Core Training\n- [docs\u002Foverview.md](docs\u002Foverview.md) — Features and capabilities overview\n- [docs\u002Fdatasets.md](docs\u002Fdatasets.md) — Dataset formatting and preparation\n- [docs\u002Fchat-templates.md](docs\u002Fchat-templates.md) — Chat template configuration\n- [docs\u002Flora-hyperparameters.md](docs\u002Flora-hyperparameters.md) — LoRA parameter tuning guide\n- [docs\u002Fkernels-packing.md](docs\u002Fkernels-packing.md) — Custom kernels and packing optimizations\n\n### Reinforcement Learning\n- [docs\u002Ftutorial-grpo.md](docs\u002Ftutorial-grpo.md) — Step-by-step GRPO tutorial\n- [docs\u002Fadvanced-rl.md](docs\u002Fadvanced-rl.md) — Advanced RL parameters and batching\n- [docs\u002Fmemory-efficient-rl.md](docs\u002Fmemory-efficient-rl.md) — Standby and memory optimizations\n- [docs\u002Ffp8-rl.md](docs\u002Ffp8-rl.md) — FP8 precision RL training\n- [docs\u002Ffp16-vs-bf16.md](docs\u002Ffp16-vs-bf16.md) — Precision comparison for RL stability\n- [docs\u002Freward-hacking.md](docs\u002Freward-hacking.md) — Counter-measures for reward hacking\n\n### Specialized Models\n- [docs\u002Fvision-fine-tuning.md](docs\u002Fvision-fine-tuning.md) — Vision-language model training\n- [docs\u002Fvision-rl.md](docs\u002Fvision-rl.md) — VLM RL with GRPO\u002FGSPO\n- [docs\u002Ftts-fine-tuning.md](docs\u002Ftts-fine-tuning.md) — Text-to-speech fine-tuning\n- [docs\u002Ftool-calling.md](docs\u002Ftool-calling.md) — Tool\u002Ffunction calling training\n\n### Deployment & Inference\n- [docs\u002Fsaving-to-gguf.md](docs\u002Fsaving-to-gguf.md) — GGUF export and quantization\n- [docs\u002Fsaving-to-ollama.md](docs\u002Fsaving-to-ollama.md) — Ollama integration\n- [docs\u002Fvllm-guide.md](docs\u002Fvllm-guide.md) — vLLM deployment\n- [docs\u002Finference.md](docs\u002Finference.md) — 2x faster native inference\n- [docs\u002Flora-hot-swapping.md](docs\u002Flora-hot-swapping.md) — Runtime adapter switching\n\n### Infrastructure\n- [docs\u002Frequirements.md](docs\u002Frequirements.md) — System and VRAM requirements\n- [docs\u002Fmodel-selection.md](docs\u002Fmodel-selection.md) — Choosing the right model\n- [docs\u002Fmodels.md](docs\u002Fmodels.md) — Full model catalog (300+ models)\n- [docs\u002Fmulti-gpu-ddp.md](docs\u002Fmulti-gpu-ddp.md) — Multi-GPU distributed training\n- [docs\u002Finstallation-pip.md](docs\u002Finstallation-pip.md) — pip installation guide\n- [docs\u002Finstallation-docker.md](docs\u002Finstallation-docker.md) — Docker setup\n\n\n## Known Conflicts\n\n- **Do not install alongside `flash-attention`** in the same environment. Unsloth bundles xformers which may conflict with flash-attn on attention kernels. Use separate environments.\n\n## Resources\n\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Funslothai\u002Funsloth\n- **Documentation**: https:\u002F\u002Fdocs.unsloth.ai\n- **Hugging Face**: https:\u002F\u002Fhuggingface.co\u002Funsloth\n- **Docker Hub**: https:\u002F\u002Fhub.docker.com\u002Fr\u002Funsloth\u002Funsloth\n- **Notebooks**: https:\u002F\u002Fgithub.com\u002Funslothai\u002Fnotebooks\n- **Discord**: https:\u002F\u002Fdiscord.gg\u002Funsloth\n",{"name":5,"tags":44,"author":56,"license":15,"version":57,"category":58,"description":7,"dependencies":59},[45,20,46,47,48,49,50,51,29,52,53,54,55],"Fine-Tuning","LoRA","QLoRA","GRPO","RL","Vision","TTS","Ollama","vLLM","Fast Training","Memory-Efficient","Synthetic Sciences","1.0.0","ml-training",[60,61,62,63,64,65,66],"unsloth","torch>=2.1.0","transformers>=4.45.0","trl>=0.15.0","datasets","peft","xformers","main","4aa39efd1cdab0b4657ecee16c92a92011a5b10f","openscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub","https:\u002F\u002Fgithub.com\u002Ffadrienne","2026-10-28 00:43:09",{"source":8,"skillName":5,"commands":74,"prompt":84,"zipAvailable":85},[75,78,81],{"tool":76,"command":77},"npx","npx skills add fadrienne\u002FMyGitHub --skill unsloth-fine-tuning",{"tool":79,"command":80},"bunx","bunx skills add fadrienne\u002FMyGitHub --skill unsloth-fine-tuning",{"tool":82,"command":83},"pnpm","pnpm dlx skills add fadrienne\u002FMyGitHub --skill unsloth-fine-tuning","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002FSKILL.md",true,[87,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256],{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"docs\u002Fadvanced-rl.md","REFERENCE","参考文档",10834,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fadvanced-rl.md",{"path":94,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":95,"sourceHtmlUrl":96},"docs\u002Fchat-templates.md",5300,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fchat-templates.md",{"path":98,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":99,"sourceHtmlUrl":100},"docs\u002Fdatasets.md",28506,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fdatasets.md",{"path":102,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":103,"sourceHtmlUrl":104},"docs\u002Fdocker-extended.md",3208,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fdocker-extended.md",{"path":106,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":107,"sourceHtmlUrl":108},"docs\u002Fdynamic-ggufs-2.0.md",6242,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fdynamic-ggufs-2.0.md",{"path":110,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":111,"sourceHtmlUrl":112},"docs\u002Fdynamic-ggufs-aider.md",4395,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fdynamic-ggufs-aider.md",{"path":114,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":115,"sourceHtmlUrl":116},"docs\u002Ffaq.md",8689,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Ffaq.md",{"path":118,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":119,"sourceHtmlUrl":120},"docs\u002Ffp16-vs-bf16.md",4083,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Ffp16-vs-bf16.md",{"path":122,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":123,"sourceHtmlUrl":124},"docs\u002Ffp8-rl.md",26625,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Ffp8-rl.md",{"path":126,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":127,"sourceHtmlUrl":128},"docs\u002Fglm-4.7-flash.md",34516,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fglm-4.7-flash.md",{"path":130,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":131,"sourceHtmlUrl":132},"docs\u002Finference-deployment-overview.md",683,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Finference-deployment-overview.md",{"path":134,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":135,"sourceHtmlUrl":136},"docs\u002Finference.md",1074,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Finference.md",{"path":138,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":139,"sourceHtmlUrl":140},"docs\u002Finstallation-docker.md",6335,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Finstallation-docker.md",{"path":142,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":143,"sourceHtmlUrl":144},"docs\u002Finstallation-pip.md",5306,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Finstallation-pip.md",{"path":146,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":147,"sourceHtmlUrl":148},"docs\u002Fkernels-packing.md",15601,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fkernels-packing.md",{"path":150,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":151,"sourceHtmlUrl":152},"docs\u002Fkimi-k2.5.md",28833,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fkimi-k2.5.md",{"path":154,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":155,"sourceHtmlUrl":156},"docs\u002Flm-studio.md",6633,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Flm-studio.md",{"path":158,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":159,"sourceHtmlUrl":160},"docs\u002Flora-hot-swapping.md",1739,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Flora-hot-swapping.md",{"path":162,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":163,"sourceHtmlUrl":164},"docs\u002Flora-hyperparameters.md",26227,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Flora-hyperparameters.md",{"path":166,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":167,"sourceHtmlUrl":168},"docs\u002Fmemory-efficient-rl.md",23861,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fmemory-efficient-rl.md",{"path":170,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":171,"sourceHtmlUrl":172},"docs\u002Fmodel-selection.md",4896,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fmodel-selection.md",{"path":174,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":175,"sourceHtmlUrl":176},"docs\u002Fmodels.md",111155,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fmodels.md",{"path":178,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":179,"sourceHtmlUrl":180},"docs\u002Fmulti-gpu-ddp.md",5262,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fmulti-gpu-ddp.md",{"path":182,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":183,"sourceHtmlUrl":184},"docs\u002Fnotebooks.md",24936,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fnotebooks.md",{"path":186,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":187,"sourceHtmlUrl":188},"docs\u002Foverview.md",3500,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Foverview.md",{"path":190,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":191,"sourceHtmlUrl":192},"docs\u002Fqwen3-coder-next-extended.md",37031,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fqwen3-coder-next-extended.md",{"path":194,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":191,"sourceHtmlUrl":195},"docs\u002Fqwen3-coder-next.md","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fqwen3-coder-next.md",{"path":197,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":198,"sourceHtmlUrl":199},"docs\u002Frequirements.md",3213,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Frequirements.md",{"path":201,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":202,"sourceHtmlUrl":203},"docs\u002Freward-hacking.md",1897,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Freward-hacking.md",{"path":205,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":206,"sourceHtmlUrl":207},"docs\u002Fsaving-to-gguf.md",6872,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fsaving-to-gguf.md",{"path":209,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":210,"sourceHtmlUrl":211},"docs\u002Fsaving-to-ollama.md",4064,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fsaving-to-ollama.md",{"path":213,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":214,"sourceHtmlUrl":215},"docs\u002Fsglang-guide.md",8861,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fsglang-guide.md",{"path":217,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":218,"sourceHtmlUrl":219},"docs\u002Fspeculative-decoding.md",1963,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fspeculative-decoding.md",{"path":221,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":222,"sourceHtmlUrl":223},"docs\u002Ftool-calling.md",11171,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Ftool-calling.md",{"path":225,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":226,"sourceHtmlUrl":227},"docs\u002Ftroubleshooting-faq.md",5960,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Ftroubleshooting-faq.md",{"path":229,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":230,"sourceHtmlUrl":231},"docs\u002Ftroubleshooting-inference.md",2614,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Ftroubleshooting-inference.md",{"path":233,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":234,"sourceHtmlUrl":235},"docs\u002Ftts-fine-tuning.md",6349,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Ftts-fine-tuning.md",{"path":237,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":238,"sourceHtmlUrl":239},"docs\u002Ftutorial-grpo.md",14244,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Ftutorial-grpo.md",{"path":241,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":242,"sourceHtmlUrl":243},"docs\u002Ftutorial-llama3-ollama.md",30567,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Ftutorial-llama3-ollama.md",{"path":245,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":246,"sourceHtmlUrl":247},"docs\u002Fvision-fine-tuning.md",4460,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fvision-fine-tuning.md",{"path":249,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":250,"sourceHtmlUrl":251},"docs\u002Fvision-rl.md",11774,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fvision-rl.md",{"path":253,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":254,"sourceHtmlUrl":255},"docs\u002Fvllm-engine-arguments.md",3102,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fvllm-engine-arguments.md",{"path":257,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":258,"sourceHtmlUrl":259},"docs\u002Fvllm-guide.md",2843,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fml-training\u002Funsloth\u002Fdocs\u002Fvllm-guide.md",[261,293,319,353,380,406],{"skillNo":262,"name":263,"nameZh":6,"description":264,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":265,"categories":266,"keywords":272,"publishedAt":39},"01M7167B28PK20HP7R7ZED2DY0","statistical-power","Sample size calculation, power analysis, and effect size conversion for scientific studies. Use BEFORE data collection (a priori) to determine required N, or after (post-hoc) to compute achieved power. Covers parametric tests (t-test, ANOVA, chi-square, proportions, correlation, regression), simulation-based power for complex\u002Fclustered\u002Fnested designs, and power curves. Use this skill when someone asks 'how many samples do I need', 'what is my power', 'what effect size can I detect', or any variant. Pairs with \u002Fexperimental-design (choose design first, then compute power) and \u002Fstatistical-analysis (analyze data after collection).","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fstatistical-power\u002FSKILL.md",[267],{"categoryNo":268,"categoryName":269,"taxonomyType":270,"taxonomyTypeDesc":271},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292],"power","statistical power","effect","scipy","regression","choose","design","uv","when","Bash","collection","analysis","calculation","ANOVA","conversion","analyze","t-test","chi-square","simulation","sample",{"skillNo":294,"name":295,"nameZh":6,"description":296,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":297,"categories":298,"keywords":302,"publishedAt":39},"01M71677EBCM8EPCE9BZCK8505","statistical-analysis","Guided statistical analysis with test selection and reporting. Use when you need help choosing appropriate tests for your data, assumption checking, power analysis, and APA-formatted results. Best for academic research reporting, test selection guidance. For implementing specific models programmatically use statsmodels.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fstatistical-analysis\u002FSKILL.md",[299],{"categoryNo":300,"categoryName":301,"taxonomyType":270,"taxonomyTypeDesc":271},"01JBSEEDCAT000000000000008","测试与质量",[284,303,273,304,305,306,281,307,308,309,25,310,311,312,313,314,315,316,317,318],"statistical analysis","academic research","implementing","selection","you","reporting","data","tests","use","with","test","research","results","statsmodels","models","help",{"skillNo":320,"name":321,"nameZh":6,"description":322,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":323,"categories":324,"keywords":334,"publishedAt":39},"01M71673R93XAHFH81DBNVNG7H","scientific-writing","Core skill for the deep research and writing tool. Write scientific manuscripts in full paragraphs (never bullet points). Use two-stage process with (1) section outlines with key points using research-lookup then (2) convert to flowing prose. IMRAD structure, citations (APA\u002FAMA\u002FVancouver), figures\u002Ftables, reporting guidelines (CONSORT\u002FSTROBE\u002FPRISMA), for research papers and journal submissions.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fscientific-writing\u002FSKILL.md",[325,328,329],{"categoryNo":326,"categoryName":327,"taxonomyType":270,"taxonomyTypeDesc":271},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":268,"categoryName":269,"taxonomyType":270,"taxonomyTypeDesc":271},{"categoryNo":330,"categoryName":331,"taxonomyType":332,"taxonomyTypeDesc":333},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[335,336,337,338,339,340,341,342,343,344,282,345,346,347,348,349,350,351,308,352],"writing","scientific","scientific writing","Citations","deep","deep research","never","papers","journal","false","api","prisma","structure","openrouter","Outlines","core skill","read","features",{"skillNo":354,"name":355,"nameZh":6,"description":356,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":357,"categories":358,"keywords":363,"publishedAt":39},"01M7166ZPKXBF4EBPHVTJPQBB1","scientific-visualization","Meta-skill for publication-ready figures. Use when creating journal submission figures requiring multi-panel layouts, significance annotations, error bars, colorblind-safe palettes, and specific journal formatting (Nature, Science, Cell). Orchestrates matplotlib\u002Fseaborn\u002Fplotly with publication styles. For quick exploration use seaborn or plotly directly.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fscientific-visualization\u002FSKILL.md",[359,362],{"categoryNo":360,"categoryName":361,"taxonomyType":270,"taxonomyTypeDesc":271},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":268,"categoryName":269,"taxonomyType":270,"taxonomyTypeDesc":271},[364,336,365,366,367,368,369,370,371,343,281,372,373,374,375,376,377,378,25,379],"visualization","scientific visualization","error","ready","quick","exploration","meta-skill","Meta","safe","plotly","annotations","formatting","Publication","figures","panel","submission",{"skillNo":381,"name":382,"nameZh":6,"description":383,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":384,"categories":385,"keywords":392,"publishedAt":39},"01M7166VXJWQSSC3RQZP60WBGR","research-code","Debug, profile, review, and restructure Python research and analysis code. Use when analysis scripts crash, produce wrong results, run too slowly, or need a correctness review. Covers: reading tracebacks and diagnosing root causes, hypothesis-driven debugging, reviewing code for common statistical\u002Fnumerical errors, profiling data pipelines, improving reproducibility (seeds, environments, determinism), and structuring analysis scripts for sharing. Distinct from \u002Fexploratory-data-analysis (which understands data) and \u002Fstatistical-analysis (which chooses and runs tests) — this skill focuses on the code itself.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fresearch-code\u002FSKILL.md",[386,389],{"categoryNo":387,"categoryName":388,"taxonomyType":270,"taxonomyTypeDesc":271},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":390,"categoryName":391,"taxonomyType":332,"taxonomyTypeDesc":333},"01JBSEEDCAT000000000000030","开发工程师",[393,394,314,395,32,396,397,280,398,281,282,284,399,400,401,402,403,404,351,405],"code","research code","which","data-analysis","errors","debugging","common","review","data pipelines","run","scripts","line","write",{"skillNo":407,"name":408,"nameZh":6,"description":409,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":410,"licenseFileUrl":6,"sourceHtmlUrl":411,"categories":412,"keywords":419,"publishedAt":39},"01M7166CF5HSR7SVZYZFWTDX55","markdown-mermaid-writing","Comprehensive markdown and Mermaid diagram writing skill. Use when creating any scientific document, report, analysis, or visualization. Establishes text-based diagrams as the default documentation standard with full style guides (markdown + mermaid), 24 diagram type references, and 9 document templates.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fmarkdown-mermaid-writing\u002FSKILL.md",[413,416,417,418],{"categoryNo":414,"categoryName":415,"taxonomyType":270,"taxonomyTypeDesc":271},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":326,"categoryName":327,"taxonomyType":270,"taxonomyTypeDesc":271},{"categoryNo":268,"categoryName":269,"taxonomyType":270,"taxonomyTypeDesc":271},{"categoryNo":330,"categoryName":331,"taxonomyType":332,"taxonomyTypeDesc":333},[335,420,421,422,423,424,364,425,426,281,282,284,427,428,429,430,431,432,336,351],"markdown mermaid writing","mermaid","markdown","community","diagrams","project","default","team","guides","text","documentation","references","diagram"]