Claude Skills Guide

Claude Code + Unsloth: Fast Fine-Tuning Workflow Guide

Fine-tuning large language models has become an essential skill for developers and data scientists looking to customize AI behavior for specific domains. Unsloth, an optimized fine-tuning library, makes this process dramatically faster and more memory-efficient. Combined with Claude Code’s powerful CLI capabilities, you can build production-ready fine-tuning pipelines with unprecedented speed and reliability.

What Makes Unsloth Different?

Unsloth is a drop-in replacement for Hugging Face’s Transformers training that offers 2x faster training and 60% less memory usage through several key innovations:

This guide shows you how to integrate Claude Code into your Unsloth fine-tuning workflow for better project management, automation, and reproducibility.

Setting Up Your Environment

Claude Code excels at environment setup and dependency management. Use it to scaffold your fine-tuning project with proper structure:

# Initialize your project structure with Claude Code
mkdir -p my-finetune-project/{data,models,scripts,configs,outputs}
cd my-finetune-project

Create a CLAUDE.md file to establish consistent behavior for your fine-tuning project:

# Fine-Tuning Project Guidelines

## Environment Requirements
- Python 3.10+
- CUDA 12.1+
- Minimum 24GB VRAM for fine-tuning

## Model Selection
- Default: meta-llama/Llama-3.1-8B-Instruct
- Alternative: mistralai/Mistral-7B-Instruct-v0.2

## Training Configuration
- Use LoRA with rank 16, alpha 32
- Maximum sequence length: 2048 tokens
- Learning rate: 2e-4 with cosine schedule

Data Preparation with Claude Code

Claude Code can help preprocess your training data into formats compatible with Unsloth’s training pipeline. Create a data preparation script:

from unsloth import standardize_sharegpt
import json

def prepare_training_data(input_file, output_file):
    """Convert raw conversations to Unsloth-compatible format."""
    with open(input_file, 'r') as f:
        raw_data = json.load(f)
    
    # Standardize to ShareGPT format
    standardized = standardize_sharegpt(raw_data)
    
    with open(output_file, 'w') as f:
        json.dump(standardized, f, indent=2)
    
    print(f"Processed {len(standardized)} conversations")
    return standardized

Claude Code can also help validate your dataset quality:

Building the Training Pipeline

Here’s a complete fine-tuning script using Unsloth’s capabilities:

from unsloth import FastLanguageModel
from unsloth.trainer import UnslothTrainer
from transformers import TrainingArguments
import torch

# Model and tokenizer setup
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="meta-llama/Llama-3.1-8B-Instruct",
    max_seq_length=2048,
    dtype=torch.float16,
    load_in_4bit=True,
)

# Configure LoRA
model = FastLanguageModel.get_peft_model(
    model,
    r=16,
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj"],
    lora_alpha=32,
    lora_dropout=0.05,
    bias="none",
    use_gradient_checkpointing="unsloth",
)

# Training arguments
training_args = TrainingArguments(
    per_device_train_batch_size=2,
    gradient_accumulation_steps=4,
    warmup_steps=100,
    num_train_epochs=3,
    learning_rate=2e-4,
    fp16=not torch.cuda.is_bf16_supported(),
    bf16=torch.cuda.is_bf16_supported(),
    logging_steps=10,
    optim="adamw_8bit",
    weight_decay=0.01,
    lr_scheduler_type="cosine",
    output_dir="outputs",
    save_strategy="epoch",
)

# Initialize trainer
trainer = UnslothTrainer(
    model=model,
    tokenizer=tokenizer,
    train_dataset=train_dataset,
    dataset_text_field="text",
    max_seq_length=2048,
    training_arguments=training_args,
)

# Start training
trainer.train()

Automating with Claude Code Skills

Create a Claude Code skill to automate repetitive fine-tuning tasks:

# .claude/skill.md
name: unsloth-finetune
description: Automate Unsloth fine-tuning workflows



Model Evaluation and Testing

After training, Claude Code can help you systematically evaluate your fine-tuned model:

from unsloth.inference import FastVisionModel
import torch

def evaluate_model(model_path, test_cases):
    """Run evaluation on test cases."""
    model = FastVisionModel.from_pretrained(model_path)
    tokenizer = model.tokenizer
    
    results = []
    for test in test_cases:
        inputs = tokenizer(test["prompt"], return_tensors="pt")
        
        with torch.no_grad():
            outputs = model.generate(
                **inputs,
                max_new_tokens=512,
                temperature=0.7,
                top_p=0.9,
            )
        
        response = tokenizer.decode(outputs[0], skip_special_tokens=True)
        results.append({
            "prompt": test["prompt"],
            "expected": test["expected"],
            "actual": response,
            "match": test["expected"].lower() in response.lower()
        })
    
    return results

Deployment and Export

Claude Code can orchestrate the export process to various deployment formats:

# Export to GGUF for local inference
python -m unsloth export --model outputs/final --format gguf --quantization q4_k_m

# Export to Hugging Face Hub
python -m unsloth export --model outputs/final --hub my-org/my-model

# Create an API server
python -m unsloth serve --model outputs/final --port 8000

Best Practices

When combining Claude Code with Unsloth:

  1. Use CLAUDE.md - Define your project’s conventions, preferred hyperparameters, and model choices
  2. Version your data - Keep training datasets in version control or use DVC
  3. Track experiments - Use MLflow or Weights & Biases to log training metrics
  4. Test incrementally - Run evaluation after each epoch to catch issues early
  5. Automate with skills - Create reusable Claude Code skills for common workflows

Common Issues and Solutions

Claude Code can help diagnose and resolve common fine-tuning problems:

Conclusion

The combination of Claude Code’s CLI automation and Unsloth’s optimized fine-tuning creates a powerful workflow for customizing language models. Claude Code handles project management, automation, and reproducibility while Unsloth delivers the speed and memory efficiency needed for production fine-tuning.

Start with small models and datasets, iterate quickly, and scale up as you validate your approach. The workflow automation provided by Claude Code ensures consistency across experiments and makes collaboration with team members straightforward.

Remember to document your experiments, version your data, and always validate your fine-tuned model on held-out test sets before deployment. With this workflow, you’re equipped to build production-quality fine-tuned models efficiently and reliably.

Built by theluckystrike — More at zovo.one