Agent SkillsJeffallan/claude-skills › fine-tuning-expert

fine-tuning-expert

GitHub

专注于大语言模型微调专家技能,涵盖LoRA/QLoRA配置、数据集准备、超参数调整、评估及部署优化。适用于LLM训练、适配器和指令微调等场景。

skills/fine-tuning-expert/SKILL.md Jeffallan/claude-skills

触发场景

fine-tuning LLMs training custom models adapting foundation models configuring LoRA/QLoRA adapters preparing JSONL training datasets setting hyperparameters for fine-tuning runs adapter training transfer learning finetuning with Hugging Face PEFT OpenAI fine-tuning instruction tuning RLHF DPO quantizing and deploying fine-tuned models

安装

npx skills add Jeffallan/claude-skills --skill fine-tuning-expert -g -y
更多选项

不安装直接使用

npx skills use Jeffallan/claude-skills@fine-tuning-expert

指定 Agent (Claude Code)

npx skills add Jeffallan/claude-skills --skill fine-tuning-expert -a claude-code -g -y

安装 repo 全部 skill

npx skills add Jeffallan/claude-skills --all -g -y

预览 repo 内 skill

npx skills add Jeffallan/claude-skills --list

SKILL.md

Frontmatter
{
    "name": "fine-tuning-expert",
    "license": "MIT",
    "metadata": {
        "role": "expert",
        "scope": "implementation",
        "author": "https:\/\/github.com\/Jeffallan",
        "domain": "data-ml",
        "version": "1.1.0",
        "triggers": "fine-tuning, fine tuning, finetuning, LoRA, QLoRA, PEFT, adapter tuning, transfer learning, model training, custom model, LLM training, instruction tuning, RLHF, model optimization, quantization",
        "output-format": "code",
        "related-skills": "devops-engineer"
    },
    "description": "Use when fine-tuning LLMs, training custom models, or adapting foundation models for specific tasks. Invoke for configuring LoRA\/QLoRA adapters, preparing JSONL training datasets, setting hyperparameters for fine-tuning runs, adapter training, transfer learning, finetuning with Hugging Face PEFT, OpenAI fine-tuning, instruction tuning, RLHF, DPO, or quantizing and deploying fine-tuned models. Trigger terms include: LoRA, QLoRA, PEFT, finetuning, fine-tuning, adapter tuning, LLM training, model training, custom model."
}

Fine-Tuning Expert

Senior ML engineer specializing in LLM fine-tuning, parameter-efficient methods, and production model optimization.

Core Workflow

  1. Dataset preparation — Validate and format data; run quality checks before training starts
    • Checkpoint: python validate_dataset.py --input data.jsonl — fix all errors before proceeding
  2. Method selection — Choose PEFT technique based on GPU memory and task requirements
    • Use LoRA for most tasks; QLoRA (4-bit) when GPU memory is constrained; full fine-tune only for small models
  3. Training — Configure hyperparameters, monitor loss curves, checkpoint regularly
    • Checkpoint: validation loss must decrease; plateau or increase signals overfitting
  4. Evaluation — Benchmark against the base model; test on held-out set and edge cases
    • Checkpoint: collect perplexity, task-specific metrics (BLEU/ROUGE), and latency numbers
  5. Deployment — Merge adapter weights, quantize, measure inference throughput before serving

Reference Guide

Load detailed guidance based on context:

Topic Reference Load When
LoRA/PEFT references/lora-peft.md Parameter-efficient fine-tuning, adapters
Dataset Prep references/dataset-preparation.md Training data formatting, quality checks
Hyperparameters references/hyperparameter-tuning.md Learning rates, batch sizes, schedulers
Evaluation references/evaluation-metrics.md Benchmarking, metrics, model comparison
Deployment references/deployment-optimization.md Model merging, quantization, serving

Minimal Working Example — LoRA Fine-Tuning with Hugging Face PEFT

from datasets import load_dataset
from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments
from peft import LoraConfig, get_peft_model, TaskType
from trl import SFTTrainer
import torch

# 1. Load base model and tokenizer
model_id = "meta-llama/Llama-3-8B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
tokenizer.pad_token = tokenizer.eos_token

model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto",
)

# 2. Configure LoRA adapter
lora_config = LoraConfig(
    task_type=TaskType.CAUSAL_LM,
    r=16,               # rank — increase for more capacity, decrease to save memory
    lora_alpha=32,      # scaling factor; typically 2× rank
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.05,
    bias="none",
)
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()  # verify: should be ~0.1–1% of total params

# 3. Load and format dataset (Alpaca-style JSONL)
dataset = load_dataset("json", data_files={"train": "train.jsonl", "test": "test.jsonl"})

def format_prompt(example):
    return {"text": f"### Instruction:\n{example['instruction']}\n\n### Response:\n{example['output']}"}

dataset = dataset.map(format_prompt)

# 4. Training arguments
training_args = TrainingArguments(
    output_dir="./checkpoints",
    num_train_epochs=3,
    per_device_train_batch_size=4,
    gradient_accumulation_steps=4,     # effective batch size = 16
    learning_rate=2e-4,
    lr_scheduler_type="cosine",
    warmup_ratio=0.03,                 # always use warmup
    fp16=False,
    bf16=True,
    logging_steps=10,
    eval_strategy="steps",
    eval_steps=100,
    save_steps=200,
    load_best_model_at_end=True,
)

# 5. Train
trainer = SFTTrainer(
    model=model,
    args=training_args,
    train_dataset=dataset["train"],
    eval_dataset=dataset["test"],
    dataset_text_field="text",
    max_seq_length=2048,
)
trainer.train()

# 6. Save adapter weights only
model.save_pretrained("./lora-adapter")
tokenizer.save_pretrained("./lora-adapter")

QLoRA variant — add these lines before loading the model to enable 4-bit quantization:

from transformers import BitsAndBytesConfig

bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16,
    bnb_4bit_use_double_quant=True,
)
model = AutoModelForCausalLM.from_pretrained(model_id, quantization_config=bnb_config, device_map="auto")

Merge adapter into base model for deployment:

from peft import PeftModel

base = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.bfloat16)
merged = PeftModel.from_pretrained(base, "./lora-adapter").merge_and_unload()
merged.save_pretrained("./merged-model")

Constraints

MUST DO

  • Validate dataset quality before training
  • Use parameter-efficient methods for large models (>7B)
  • Monitor training/validation loss curves
  • Document hyperparameters and training config
  • Version datasets and model checkpoints
  • Always include a learning rate warmup

MUST NOT DO

  • Skip data quality validation
  • Overfit on small datasets — use regularisation (dropout, weight decay) and early stopping
  • Merge incompatible adapters (mismatched rank, base model, or target modules)
  • Deploy without evaluation against a held-out set and latency benchmark

Output Templates

When implementing fine-tuning, always provide:

  1. Dataset preparation script with validation logic (schema checks, token-length histogram, deduplication)
  2. Training configuration (full TrainingArguments + LoraConfig block, commented)
  3. Evaluation script reporting perplexity, task-specific metrics, and latency
  4. Brief design rationale — why this PEFT method, rank, and learning rate were chosen for this task

Documentation

版本历史

  • 882ef55 当前 2026-08-20 09:03

同 Skill 集合

skills/angular-architect/SKILL.md
skills/api-designer/SKILL.md
skills/atlassian-mcp/SKILL.md
skills/chaos-engineer/SKILL.md
skills/cli-developer/SKILL.md
skills/cloud-architect/SKILL.md
skills/code-documenter/SKILL.md
skills/cpp-pro/SKILL.md
skills/csharp-developer/SKILL.md
skills/database-optimizer/SKILL.md
skills/debugging-wizard/SKILL.md
skills/django-expert/SKILL.md
skills/dotnet-core-expert/SKILL.md
skills/embedded-systems/SKILL.md
skills/fastapi-expert/SKILL.md
skills/feature-forge/SKILL.md
skills/flutter-expert/SKILL.md
skills/golang-pro/SKILL.md
skills/graphql-architect/SKILL.md
skills/java-architect/SKILL.md
skills/javascript-pro/SKILL.md
skills/kotlin-specialist/SKILL.md
skills/kubernetes-specialist/SKILL.md
skills/laravel-specialist/SKILL.md
skills/legacy-modernizer/SKILL.md
skills/mcp-developer/SKILL.md
skills/microservices-architect/SKILL.md
skills/nextjs-developer/SKILL.md
skills/pandas-pro/SKILL.md
skills/php-pro/SKILL.md
skills/playwright-expert/SKILL.md
skills/postgres-pro/SKILL.md
skills/python-pro/SKILL.md
skills/rag-architect/SKILL.md
skills/react-expert/SKILL.md
skills/react-native-expert/SKILL.md
skills/salesforce-developer/SKILL.md
skills/security-reviewer/SKILL.md
skills/spark-engineer/SKILL.md
skills/spring-boot-engineer/SKILL.md
skills/sre-engineer/SKILL.md
skills/swift-expert/SKILL.md
skills/terraform-engineer/SKILL.md
skills/the-fool/SKILL.md
skills/typescript-pro/SKILL.md
skills/vue-expert/SKILL.md
skills/websocket-engineer/SKILL.md
skills/architecture-designer/SKILL.md
skills/code-reviewer/SKILL.md
skills/devops-engineer/SKILL.md

元信息

文件数
0
版本
882ef55
Hash
da72ef46
收录时间
2026-08-20 09:03

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-03 17:07
浙ICP备14020137号-1 $访客地图$