๐จ 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-toolkit
import 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 evaluation
import 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-toolkit
git 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=html
Custom 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