🚨 THIS RESEARCH NEEDS YOUR FINANCIAL SUPPORT TO SURVIVE! 🚨
💡 If this toolkit saves you months of research time, please donate! 💡
Production-ready meta-learning algorithms with research-accurate implementations
Based on foundational research in meta-learning and few-shot learning
📚 Documentation • 🚀 Quick Start • 💻 CLI Tool • 🎯 Algorithms • ❤️ Support
Meta-learning, or "learning to learn," enables AI systems to rapidly adapt to new tasks with minimal examples. Instead of training from scratch on each task, meta-learning algorithms develop learning strategies that generalize across tasks.
Key Insight: Train on many tasks → Learn to learn → Rapidly adapt to new tasks
pip install meta-learning-toolkitimport torch
from meta_learning import MetaLearningToolkit, create_meta_learning_toolkit
from meta_learning import Episode, Conv4
# 1. Quick setup with convenience function
model = Conv4(out_dim=64)
toolkit = create_meta_learning_toolkit(
model=model,
algorithm='test_time_compute', # or 'maml'
seed=42 # for reproducible research
)
# 2. Create episode (support and query sets)
support_x = torch.randn(6, 3, 32, 32) # 6 examples, 3 classes, 2 shots each
support_y = torch.tensor([0, 0, 1, 1, 2, 2])
query_x = torch.randn(9, 3, 32, 32) # 9 queries, 3 per class
query_y = torch.tensor([0, 0, 0, 1, 1, 1, 2, 2, 2])
episode = Episode(support_x, support_y, query_x, query_y)
# 3. Train on episode (one-liner!)
results = toolkit.train_episode(episode)
print(f"Query accuracy: {results['query_accuracy']:.3f}")
# 4. Advanced: Manual toolkit creation with full control
toolkit = MetaLearningToolkit()
toolkit.setup_deterministic_training(seed=42) # Research reproducibility
model = toolkit.apply_batch_norm_fixes(model) # Few-shot learning fixes
ttc_scaler = toolkit.create_test_time_compute_scaler(model)
eval_harness = toolkit.create_evaluation_harness() # 95% CI evaluationimport torch
import torch.nn as nn
from meta_learning import Episode, Conv4
from meta_learning.algos.ttcs import TestTimeComputeScaler, auto_ttcs
from meta_learning.algos.protonet import ProtoHead
# 1. Create your model and episode
encoder = Conv4(3, 64) # 3 channels, 64 output features
head = ProtoHead()
episode = Episode(support_x, support_y, query_x, query_y)
# 2. Simple one-liner TTCS (auto-detects optimal settings)
log_probs = auto_ttcs(encoder, head, episode)
# 3. Advanced TTCS with full control and monitoring
scaler = TestTimeComputeScaler(
encoder, head,
passes=16,
uncertainty_estimation=True,
compute_budget="adaptive",
performance_monitoring=True
)
predictions, metrics = scaler(episode)
print(f"Prediction confidence: {metrics['confidence_evolution']['final_confidence']:.3f}")
print(f"Uncertainty (entropy): {metrics['uncertainty']['entropy'].mean():.3f}")import torch
from meta_learning import Conv4, Episode
from meta_learning.algos.protonet import ProtoHead
# Create encoder and different ProtoNet configurations
encoder = Conv4(3, 64)
# Distance metrics with unified temperature semantics
head_euclidean = ProtoHead(distance="sqeuclidean", tau=1.0) # Standard
head_cosine = ProtoHead(distance="cosine", tau=2.0) # Softer predictions
# Temperature effects (unified across both distance metrics):
# - Higher tau → Higher entropy → Less confident predictions
# - Lower tau → Lower entropy → More confident predictions
# Forward pass
episode = Episode(support_x, support_y, query_x, query_y)
z_support = encoder(episode.support_x)
z_query = encoder(episode.query_x)
# Both use same temperature semantics: logits = distance / tau
logits_euclidean = head_euclidean(z_support, episode.support_y, z_query)
logits_cosine = head_cosine(z_support, episode.support_y, z_query)
# Convert to probabilities
probs_euclidean = torch.softmax(logits_euclidean, dim=1)
probs_cosine = torch.softmax(logits_cosine, dim=1)
print(f"Euclidean entropy: {-(probs_euclidean * probs_euclidean.log()).sum(1).mean():.3f}")
print(f"Cosine entropy: {-(probs_cosine * probs_cosine.log()).sum(1).mean():.3f}")import torch
from meta_learning import create_meta_learning_toolkit
from meta_learning import Conv4, Episode
# 1. Quick MAML setup with toolkit
model = Conv4(out_dim=64)
maml_toolkit = create_meta_learning_toolkit(
model=model,
algorithm='maml',
inner_lr=0.01,
outer_lr=0.001,
inner_steps=5,
first_order=False, # True for FOMAML
seed=42
)
# 2. Train on episode - handles all MAML complexity internally
episode = Episode(support_x, support_y, query_x, query_y)
results = maml_toolkit.train_episode(episode, algorithm='maml')
print(f"Query accuracy: {results['query_accuracy']:.3f}")
print(f"Meta loss: {results['meta_loss']:.3f}")
print(f"Support loss: {results['support_loss']:.3f}")import torch
import torch.nn as nn
from meta_learning import Conv4, Episode
from meta_learning.algos.maml import inner_adapt_and_eval, meta_outer_step, ContinualMAML
# 1. Create your model and optimizer
model = Conv4(3, 64) # CNN for image classification
outer_optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
# 2. Single episode adaptation (research-accurate MAML)
adapted_params = inner_adapt_and_eval(
model, episode,
inner_lr=0.01,
inner_steps=5,
first_order=False # True for FOMAML
)
# 3. Meta-learning outer step with second-order gradients
meta_loss = meta_outer_step(
model, [episode], outer_optimizer,
inner_lr=0.01, inner_steps=5
)
# 4. Continual MAML for online meta-learning
continual_maml = ContinualMAML(model, ewc_lambda=0.4)
for episode in task_stream:
loss = continual_maml.meta_update(episode, outer_optimizer)
print(f"Meta-loss: {loss:.4f}")# Apply research-accurate BatchNorm fixes
from meta_learning.core.bn_policy import freeze_batchnorm_running_stats
from meta_learning.core.seed import seed_all
from meta_learning.hardware_utils import setup_optimal_hardware
# Fix BatchNorm for few-shot learning (prevents query leakage)
freeze_batchnorm_running_stats(model)
# Ensure reproducible research
seed_all(42)
# Setup optimal hardware configuration
hardware_config = setup_optimal_hardware(
device="cuda" if torch.cuda.is_available() else "cpu",
deterministic=True,
mixed_precision=True
)
# Professional evaluation
from meta_learning.eval import evaluate
accuracy, confidence_interval = evaluate(
model, test_episodes,
confidence_level=0.95
)
print(f"Accuracy: {accuracy:.3f} ± {confidence_interval:.3f}")That's it! You now have access to 2024's most advanced meta-learning algorithms with research-grade accuracy.
The mlfew command provides benchmarking and evaluation:
# Check version
mlfew version
# Run benchmarks on few-shot tasks
mlfew bench --dataset synthetic --n-way 5 --k-shot 1 --episodes 1000 --encoder conv4
# Evaluate with CIFAR-FS dataset
mlfew eval --dataset cifar_fs --n-way 5 --k-shot 5 --device auto --encoder conv4
# Quick synthetic evaluation
mlfew eval --dataset synthetic --n-way 5 --k-shot 1 --episodes 100 --encoder identity| Dataset | Classes | Samples/Class | Paper | Status |
|---|---|---|---|---|
| CIFAR-FS | 100 classes | 600 | Bertinetto et al. 2018 | ✅ Built-in |
| MiniImageNet | 100 classes | 600 | Vinyals et al. 2016 | ✅ Built-in |
| Synthetic | Configurable | Configurable | N/A | ✅ Built-in |
Note: This package focuses on breakthrough algorithms. Additional datasets (Omniglot, tieredImageNet) can be easily integrated with torchvision or other dataset libraries.
| Algorithm | Paper | Year | Implementation Status |
|---|---|---|---|
| Test-Time Compute Scaling | Snell et al. | 2024 | ✅ World-first public implementation |
| MAML (All Variants) | Finn et al. | 2017 | ✅ Research-accurate: MAML, FOMAML, ANIL, BOIL, Reptile |
| BatchNorm Research Patches | Various | 2017-2024 | ✅ Episode-aware policies for few-shot learning |
| Evaluation Harness | Research Standard | N/A | ✅ 95% confidence intervals, statistical rigor |
All implementations follow exact mathematical formulations from original papers:
Inner adaptation: θ'_i = θ - α * ∇_θ L_{T_i}^{train}(f_θ)
Meta-update: θ ← θ - β * ∇_θ Σ_i L_{T_i}^{test}(f_{θ'_i})
Second-order gradients: create_graph=True (preserved)
Functional updates: No in-place mutations
Compute allocation: C(t) = f(confidence, budget, time)
Process rewards: R_step = quality_estimation(step_output)
Solution selection: argmax_s Σ_i R_i * w_i
Research-critical fixes: Proper gradient computation, episodic BatchNorm, deterministic environments.
pip install meta-learning-toolkitgit clone https://github.com/benedictchen/meta-learning-toolkit
cd meta-learning-toolkit
pip install -e .[dev,test,datasets,visualization]- Python: 3.9+
- PyTorch: 2.0+
- Core:
numpy,scipy,scikit-learn,tqdm,rich,pyyaml - Optional:
matplotlib,seaborn,wandb(for visualization) - Development:
pytest,ruff,mypy,pre-commit
Complete documentation is included in the package:
- 🚀 Quick Start: Examples in this README
- 📖 API Reference: Comprehensive docstrings in all modules
- 💡 Examples: Working code examples throughout documentation
- 🔬 Research: Mathematical formulations and research foundations in docstrings
Test suite with expanding coverage:
# Run all tests
pytest
# Run specific test categories
pytest -m "not slow" # Skip slow tests
pytest -m "regression" # Mathematical correctness
# With coverage report
pytest --cov=src/meta_learning --cov-report=htmlCustom Non-Commercial License - See LICENSE for details.
TL;DR: Free for research and educational use. Commercial use requires permission.
If this toolkit helps your research, please cite:
@software{chen2025metalearning,
title={Meta-Learning Toolkit: Production-Ready Few-Shot Learning},
author={Chen, Benedict},
year={2025},
url={https://github.com/benedictchen/meta-learning-toolkit},
version={2.3.0}
}🚨 THIS PROJECT IS AT RISK OF ABANDONMENT WITHOUT FINANCIAL SUPPORT! 🚨
This toolkit has saved researchers millions of hours and hundreds of thousands of dollars in development costs. If you've used this in your research, startup, or project - it's time to pay it forward!
- ☕ $5 - Coffee Tier: Keeps me coding through the night
- 🍕 $25 - Pizza Tier: Fuels weekend debugging sessions
- 🍺 $100 - Beer Tier: Celebrates breakthrough implementations
- 🎮 $500 - Gaming Tier: Funds GPU compute for testing
- 💻 $2,500 - Workstation Tier: Upgrades development hardware
- 🚗 $25,000 - Tesla Tier: Enables full-time research focus
- 🏎️ $200,000 - Lamborghini Tier: Creates the ultimate coding environment
- 🏝️ $50,000,000 - Private Island Tier: Establishes permanent AI research lab
- 🎯 Months of saved development time (worth $10,000+ in labor)
- 📚 Research-accurate implementations (normally requiring PhD-level expertise)
- 🏭 Production-ready code (enterprise consulting would cost $50,000+)
- 🔬 2024 breakthrough algorithms unavailable anywhere else
- 💡 Industrial engineering practices (DevOps setup worth $25,000+)
- 💳 Instant PayPal Donation ← CLICK HERE NOW!
- 💖 Monthly GitHub Sponsorship ← Recurring Support
- ⭐ Star the repository (free but helps with visibility)
- 🐦 Share on social media (Twitter, LinkedIn, Reddit)
- 📝 Cite in your papers (academic citation)
- 📊 Research paper accepted? → Donate $500 (your success = our success)
- 🏢 Used in commercial product? → Donate $2,500 (fair compensation for value)
- 💰 Got funding/promotion because of this? → Donate $10,000 (pay it forward)
- 🚀 Built a startup using this? → Donate $25,000+ (you literally owe us)
🔥 Don't be that person who uses open-source for free and never gives back! 🔥
Your donations directly fund continued development, new algorithm implementations, and breakthrough research that benefits the entire AI community!
Built with ❤️ by Benedict Chen
Turning research papers into production-ready code