Skip to main content

deep-learning-expert

Use this skill when user needs to design deep learning models, perform training optimization, interpret papers, or solve engineering practice issues. Trigger keywords: deep learning, neural networks, model training, overfitting, gradient vanishing, PyTorch, TensorFlow, pretrained models, fine-tuning, model deployment, inference optimization, CV (Computer Vision), NLP (Natural Language Processing), reinforcement learning. Applicable to full-cycle scenarios of deep learning modeling, training, debugging, and deployment.

Source facts

Repository
Miaoge-Ge/coding-agent-skills
Last source activity
May 31, 2026 at 13:27
Detected SKILL.md language
English
Stars
7
Forks
2

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
deep-learning-expert
description
Use this skill when user needs to design deep learning models, perform training optimization, interpret papers, or solve engineering practice issues. Trigger keywords: deep learning, neural networks, model training, overfitting, gradient vanishing, PyTorch, TensorFlow, pretrained models, fine-tuning, model deployment, inference optimization, CV (Computer Vision), NLP (Natural Language Processing), reinforcement learning. Applicable to full-cycle scenarios of deep learning modeling, training, debugging, and deployment.
# Deep Learning Modeling and Optimization ## Description Provide deep learning model design, training optimization, problem diagnosis, and engineering practice guidance to ensure models meet requirements for accuracy, efficiency, and deployability. ## When to Use - User requests "design a deep learning model" or "how to train XX task" - User asks about training issues (overfitting, underfitting, gradient vanishing/explosion, NaN, slow convergence) - User needs paper reproduction or cutting-edge technology analysis (Transformer, Diffusion, ViT, etc.) - User seeks framework usage recommendations (PyTorch, TensorFlow, JAX) or code implementation - User asks about best practices in CV, NLP, reinforcement learning domains - User needs model compression, quantization, deployment, or inference optimization solutions - User requests data processing, data augmentation, or sampling strategy recommendations - User compares different model architectures or training strategies ## When NOT to Use - User only needs traditional machine learning methods (e.g., decision trees, SVM, linear regression) without deep learning - User's problem is pure data analysis or statistics without model training - User only needs data preprocessing or feature engineering without model design - User's problem is algorithm competition or pure programming without deep learning modeling - User needs MLOps platform setup or team management rather than specific technical solutions ## Input ```typescript { task: { type: string // Task type (classification/detection/segmentation/generation/sequence-modeling/RL) domain: string // Application domain (CV/NLP/audio/multimodal/time-series) specificTask?: string // Specific task (e.g., image-classification → CIFAR-10) } data: { size?: string // Dataset size (e.g., "10k samples") quality?: string // Data quality description (noise, annotation quality) distribution?: string // Class distribution (balanced/long-tail) labelAvailability?: string // Labeling status (fully-supervised/weakly-supervised/unsupervised) augmentationNeeded?: boolean // Whether data augmentation is needed } constraints: { computeResources?: string // Compute resources (single-GPU/multi-GPU/TPU/CPU) latencyRequirement?: string // Latency requirement (e.g., "inference <50ms") accuracyTarget?: string // Accuracy target (e.g., "top-1 acc >90%") modelSizeLimit?: string // Model size limit (e.g., "<100MB") budget?: string // Budget constraints (affects pretrained model selection/compute resources) } challenges?: string[] // Known challenges (few-shot/domain-shift/real-time/long-tail) existingSetup?: { framework?: string // Existing framework (PyTorch/TensorFlow/JAX) baseModel?: string // Existing base model trainingIssues?: string[] // Current training issues } } ``` ## Output ```typescript { modelDesign: { architecture: string // Recommended architecture (CNN/Transformer/RNN/GNN/Diffusion/Hybrid) rationale: string // Architecture selection rationale (inductive bias/parameter count/computational complexity) pretrainedModel?: { name: string // Pretrained model (e.g., ResNet-50, BERT-base, ViT-B/16) source: string // Source (HuggingFace/TorchVision/OpenAI) adaptation: string // Adaptation method (full fine-tuning/LoRA/Adapter/freeze partial layers) } tradeoff: string // Train from scratch vs fine-tuning vs transfer learning tradeoff analysis codeFramework?: string // PyTorch/TensorFlow code framework (if applicable) } trainingStrategy: { dataProcessing: { normalization: string // Normalization method augmentation?: string[] // Data augmentation strategies samplingStrategy?: string // Sampling strategy (balanced sampling/hard negative mining) batchSize: string // Batch size recommendation (considering memory and convergence) } optimizer: { type: string // Optimizer type (SGD/AdamW/Lion) learningRate: string // Initial learning rate scheduler?: string // Learning rate scheduler (Cosine/StepLR/ReduceLROnPlateau) weightDecay?: string // Weight decay } trainingTechniques: { gradientClipping?: string // Gradient clipping threshold mixedPrecision?: boolean // Mixed precision training (FP16/BF16) gradientAccumulation?: number // Gradient accumulation steps ema?: boolean // Exponential moving average } regularization?: string[] // Regularization methods (Dropout/Batch Norm/Label Smoothing) } debuggingGuidance: { visualization: string[] // Visualization recommendations (loss curves/weight distributions/activation heatmaps) checkpoints: string[] // Checkpoints (weight norms/gradient norms/data statistics) commonIssues: { issue: string // Issue type (overfitting/underfitting/NaN/non-convergence) diagnosis: string // Diagnosis method solution: string[] // Solutions }[] } engineeringPractice: { modelCompression?: { pruning?: string // Pruning strategy quantization?: string // Quantization method (INT8/FP16) distillation?: string // Knowledge distillation } inferenceOptimization?: { format: string[] // Inference formats (ONNX/TensorRT/CoreML) batching?: string // Batching strategy caching?: string // Caching strategy } distributedTraining?: { strategy: string // Distributed strategy (DDP/DeepSpeed/FSDP) configuration: string // Configuration recommendations } } expectedPerformance?: { accuracy?: string // Expected accuracy trainingTime?: string // Expected training time inferenceLatency?: string // Expected inference latency } } ``` ## Execution Workflow Copy the following checklist before starting, and explicitly mark status after completing each step. ### Step 1: Task Requirement Analysis - Clarify task type (classification/detection/segmentation/generation/sequence-modeling/RL) - Confirm application domain (CV/NLP/audio/multimodal/time-series) - Quantify data situation (size, quality, labeling, distribution) - Identify constraints (compute resources, latency, accuracy, model size) - Extract core challenges (few-shot, domain shift, long-tail distribution, real-time) **Feedback Loop**: If critical information is missing (e.g., data size, compute resources), MUST ask user to provide details. Avoid designing based on assumptions. ### Step 2: Model Architecture Selection - List candidate architectures (CNN/Transformer/RNN/GNN/Diffusion/hybrid) - Explain each architecture's inductive bias (e.g., CNN's locality, Transformer's long-range dependencies) - Compare parameter count, computational complexity, data requirements - Assess pretrained model availability (HuggingFace/TorchVision/OpenAI) - Tradeoff train from scratch vs fine-tuning vs transfer learning **Architecture Selection Principles**: - **Small data (<10k)**: Prioritize transfer learning or fine-tuning pretrained models - **Medium data (10k-100k)**: Fine-tuning + data augmentation - **Large data (>100k)**: Can consider training from scratch or light fine-tuning - **Real-time requirements**: Prioritize lightweight architectures (MobileNet/EfficientNet/DistilBERT) **Feedback Loop**: If user is indecisive about multiple architectures, provide detailed comparison of 2-3 options (accuracy/speed/resource consumption). ### Step 3: Training Strategy Design - Data processing: Normalization methods (ImageNet stats/adaptive), augmentation strategies (AutoAugment/RandAugment) - Optimizer selection: SGD (vision tasks) vs AdamW (language/multimodal tasks) - Learning rate scheduling: Warmup + Cosine Annealing (recommended) / StepLR / ReduceLROnPlateau - Training techniques: Gradient clipping (prevent explosion), mixed precision (accelerate training), gradient accumulation (simulate large batch) - Regularization: Dropout, weight decay, label smoothing **Training Recipe Template**: ```python # Example: Image classification training recipe optimizer = AdamW(model.parameters(), lr=1e-3, weight_decay=0.01) scheduler = CosineAnnealingLR(optimizer, T_max=epochs) scaler = GradScaler() # Mixed precision # Data augmentation: RandomCrop + RandomHorizontalFlip + ColorJitter ``` **Feedback Loop**: If user reports training instability (loss oscillation/NaN), immediately check learning rate, data normalization, gradient norms. ### Step 4: Experiment Execution and Monitoring - Establish baseline experiment (simplest viable model) - Set monitoring metrics (train/val loss, accuracy, gradient norm, learning rate) - Configure visualization tools (TensorBoard/WandB) - Save key checkpoints (best model, last model, every N epochs) **Monitoring Checklist**: - [ ] Training loss smoothly decreases (no oscillation) - [ ] Val loss and train loss gap is reasonable (<2x) - [ ] Gradient norm is stable (no explosion/vanishing) - [ ] Learning rate decays as expected - [ ] Data loading has no bottleneck (GPU utilization >80%) **Feedback Loop**: If val loss doesn't decrease early, check data pipeline (label errors/normalization issues/excessive augmentation). ### Step 5: Problem Diagnosis and Tuning Diagnose and resolve common issues based on training performance: #### Overfitting (high train acc, low val acc) - **Diagnosis**: Train/val loss curves diverge, val accuracy stops improving - **Solutions**: - Enhance data augmentation (AutoAugment/MixUp/CutMix) - Increase Dropout rate or weight decay - Use Early Stopping - Reduce model capacity (fewer layers/channels) - Acquire more training data #### Underfitting (both train/val acc low) - **Diagnosis**: Training loss doesn't decrease for long, accuracy below random guess - **Solutions**: - Increase model capacity (deeper/wider network) - Reduce regularization strength (lower Dropout/weight decay) - Check data quality (annotation errors/class imbalance) - Increase training epochs or adjust learning rate #### NaN/Inf (training interruption) - **Diagnosis**: Loss suddenly becomes NaN, gradient explosion - **Solutions**: - Reduce learning rate (10x smaller) - Enable gradient clipping (clip_grad_norm=1.0) - Check input data (contains NaN/Inf) - Add numerical stability operations (e.g., add epsilon in log) #### Slow Convergence - **Diagnosis**: Loss decreases slowly, training time too long - **Solutions**: - Increase learning rate (careful, may be unstable) - Use more aggressive learning rate schedule (e.g., OneCycleLR) - Enable mixed precision training (2-3x speedup) - Optimize data loading (multi-process, prefetch) **Feedback Loop**: If multiple tuning attempts still don't improve, revisit Step 2 (architecture selection) or Step 1 (task definition) for reasonableness. ### Step 6: Model Compression and Deployment Optimization (if applicable) - Assess compression needs (model size/inference latency meets constraints) - Choose compression strategy: - **Pruning**: Structured pruning (reduce channels/layers) vs unstructured pruning (reduce parameters) - **Quantization**: PTQ (post-training quantization) vs QAT (quantization-aware training), INT8/FP16 - **Distillation**: Use large model (teacher) to train small model (student) - Convert inference format (ONNX/TensorRT/CoreML) - Optimize inference pipeline (batching/operator fusion/memory optimization) **Compression Tradeoffs**: - **Pruning**: Medium accuracy drop (1-3%), high compression ratio (2-5x) - **Quantization**: Small accuracy drop (<1%), medium compression ratio (2-4x) - **Distillation**: Controllable accuracy drop, compression ratio depends on student model size **Feedback Loop**: If accuracy drop after compression exceeds expectation (>5%), consider relaxing compression ratio or using distillation compensation. ### Step 7: Performance Validation and Documentation - Validate final performance on test set (accuracy, F1, mAP, etc.) - Measure inference latency (single sample/batching) - Record model version, training configuration, dataset version - Generate Model Card: purpose, performance, limitations, ethical considerations **Performance Benchmark Comparison**: - Compare with public benchmarks (SOTA) - Compare with simple baseline (e.g., linear model) - Analyze failure cases (which classes/samples are error-prone) **Feedback Loop**: If performance doesn't meet target and no obvious improvement space, discuss with user whether to adjust targets or increase resource investment. ## Failure Handling ### Insufficient or Poor Quality Data - **Symptom**: User provides extremely small data (<1000 samples) or poor annotation quality - **Action**: - Recommend data augmentation + pretrained model fine-tuning - Suggest active learning or semi-supervised learning - If budget allows, suggest outsourcing annotation or synthetic data generation ### Insufficient Compute Resources - **Symptom**: User only has CPU or single low-end GPU, but task requires large model - **Action**: - Recommend lightweight architectures (MobileNet/DistilBERT/TinyLlama) - Suggest using pretrained models + freezing partial layers - Provide cloud platform solutions (Colab/Kaggle/AWS SageMaker) ### Training Persistently Fails to Converge - **Symptom**: Trying multiple learning rates/optimizers still doesn't converge - **Action**: - Check data pipeline (visualize batch samples) - Simplify model (start from minimal viable model) - Check labels are correct (cross-validate annotation quality) ### Post-Deployment Performance Falls Short - **Symptom**: Model performs well on test set but poorly in production - **Action**: - Analyze train/production data distribution difference (domain shift) - Use domain adaptation techniques (DANN/CORAL) - Collect production data for incremental training ### Over-Reliance on Pretrained Models - **Symptom**: User unconditionally uses large pretrained models, ignoring task characteristics - **Action**: Explain pretrained model applicable scenarios, compare cost/benefit of training from scratch, recommend moderate solutions ## See Also - `llm-testing-expert` — evaluating and stress-testing the models you train, especially LLMs. - `python-expert` — idiomatic PyTorch/NumPy code and data-pipeline performance. - `software-architect` — serving, scaling, and deploying models as part of a larger system.
View on GitHub