.claude/skills/ai-ml-development/model-trainer/SKILL.md
Model Trainer
npx skillsauth add ViggyV/claude-skills model-trainerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are an expert at training, fine-tuning, and evaluating machine learning models.
This skill activates when the user needs help with:
Ask about:
import torch
from torch.utils.data import DataLoader
from transformers import Trainer, TrainingArguments
# Standard training loop structure
class ModelTrainer:
def __init__(self, model, train_data, val_data, config):
self.model = model
self.train_loader = DataLoader(train_data, batch_size=config.batch_size)
self.val_loader = DataLoader(val_data, batch_size=config.batch_size)
self.optimizer = torch.optim.AdamW(model.parameters(), lr=config.lr)
self.scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(
self.optimizer, T_max=config.epochs
)
def train_epoch(self):
self.model.train()
total_loss = 0
for batch in self.train_loader:
self.optimizer.zero_grad()
outputs = self.model(**batch)
loss = outputs.loss
loss.backward()
torch.nn.utils.clip_grad_norm_(self.model.parameters(), 1.0)
self.optimizer.step()
total_loss += loss.item()
self.scheduler.step()
return total_loss / len(self.train_loader)
def evaluate(self):
self.model.eval()
metrics = {'loss': 0, 'predictions': [], 'labels': []}
with torch.no_grad():
for batch in self.val_loader:
outputs = self.model(**batch)
metrics['loss'] += outputs.loss.item()
metrics['predictions'].extend(outputs.logits.argmax(-1).tolist())
metrics['labels'].extend(batch['labels'].tolist())
return self.compute_metrics(metrics)
LLM Fine-tuning (LoRA/QLoRA):
from peft import LoraConfig, get_peft_model
lora_config = LoraConfig(
r=16, # Rank
lora_alpha=32, # Scaling
target_modules=["q_proj", "v_proj"],
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM"
)
model = get_peft_model(base_model, lora_config)
print(f"Trainable params: {model.print_trainable_parameters()}")
Training Arguments:
training_args = TrainingArguments(
output_dir="./results",
num_train_epochs=3,
per_device_train_batch_size=8,
per_device_eval_batch_size=16,
warmup_ratio=0.1,
learning_rate=2e-5,
weight_decay=0.01,
logging_steps=100,
eval_strategy="steps",
eval_steps=500,
save_strategy="steps",
save_steps=500,
load_best_model_at_end=True,
metric_for_best_model="eval_loss",
fp16=True,
gradient_accumulation_steps=4,
)
Key Hyperparameters: | Param | Typical Range | Impact | |-------|--------------|--------| | Learning rate | 1e-5 to 1e-3 | High | | Batch size | 8-128 | Medium | | Epochs | 3-10 | Medium | | Weight decay | 0.01-0.1 | Low | | Warmup ratio | 0.05-0.1 | Low |
Optuna Integration:
import optuna
def objective(trial):
lr = trial.suggest_float("lr", 1e-5, 1e-3, log=True)
batch_size = trial.suggest_categorical("batch_size", [8, 16, 32])
epochs = trial.suggest_int("epochs", 2, 5)
model = train_model(lr=lr, batch_size=batch_size, epochs=epochs)
return evaluate_model(model)
study = optuna.create_study(direction="maximize")
study.optimize(objective, n_trials=50)
| Issue | Symptoms | Solutions | |-------|----------|-----------| | Overfitting | Val loss increases | Dropout, regularization, more data | | Underfitting | Both losses high | More capacity, longer training | | Gradient explosion | NaN losses | Gradient clipping, lower LR | | Slow convergence | Loss plateaus | Learning rate schedule, warmup | | OOM errors | CUDA out of memory | Gradient accumulation, smaller batch |
Provide:
data-ai
Use this skill for reinforcement learning tasks including training RL agents (PPO, SAC, DQN, TD3, DDPG, A2C, etc.), creating custom Gym environments, implementing callbacks for monitoring and control,
testing
You are an expert at optimizing SQL queries for performance and efficiency.
tools
Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a G
tools
21 production-ready scripts for iOS app testing, building, and automation. Provides semantic UI navigation, build automation, accessibility testing, and simulator lifecycle management. Optimized for A