Production-ready meta-learning algorithms with research-accurate implementations of MAML, Prototypical Networks, and test-time compute scaling
Project description
๐ฐ Meta-Learning Toolkit - PLEASE DONATE! ๐ฐ
๐จ 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
๐ง What is Meta-Learning?
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
๐ 60-Second Quickstart
Installation
pip install meta-learning-toolkit
High-Level API: MetaLearningToolkit (Recommended)
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
Low-Level API: Test-Time Compute Scaling (2024 Breakthrough)
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}")
Prototypical Networks: Temperature Scaling & Distance Metrics
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}")
MAML with Toolkit API (Recommended)
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}")
MAML: Low-Level Research-Accurate Implementation
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}")
Research Patches and Evaluation
# 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.
๐ป CLI Tool
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
๐ Supported Datasets
| 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.
๐งช Algorithms Implemented
| 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 |
๐ฌ Research Accuracy
All implementations follow exact mathematical formulations from original papers:
MAML (Research-Accurate)
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
Test-Time Compute Scaling
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.
๐ข Installation Options
Option 1: PyPI (Recommended)
pip install meta-learning-toolkit
Option 2: Development Install
git clone https://github.com/benedictchen/meta-learning-toolkit
cd meta-learning-toolkit
pip install -e .[dev,test,datasets,visualization]
๐งโ๐ป Requirements
- 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
๐ Documentation
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
๐งช Testing
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
๐ License
Custom Non-Commercial License - See LICENSE for details.
TL;DR: Free for research and educational use. Commercial use requires permission.
๐ Citation
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}
}
๐ฐ URGENT: Support This Research - We Need Cash! ๐ฐ
๐จ 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!
๐ฐ Donation Tiers - Help Keep This Research Alive!
- โ $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
๐ฅ Why Donate? This Toolkit Has Given You:
- ๐ฏ 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+)
๐ธ Payment Options - Choose Your Method:
- ๐ณ 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)
๐ฏ Be Honest - How Much Has This Saved You?
- ๐ 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file meta_learning_toolkit-2.5.0.tar.gz.
File metadata
- Download URL: meta_learning_toolkit-2.5.0.tar.gz
- Upload date:
- Size: 129.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3+
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abb134c4e3bd1ca491ccd34840b2a757d6f08fafde1299bba48922f609b6f2b3
|
|
| MD5 |
7fa17cb7e383bf38e188173f967a7624
|
|
| BLAKE2b-256 |
0d94e5521b12794656b60a1aeee10541b4941f3efb0040336c434ed36472ebc6
|
File details
Details for the file meta_learning_toolkit-2.5.0-py3-none-any.whl.
File metadata
- Download URL: meta_learning_toolkit-2.5.0-py3-none-any.whl
- Upload date:
- Size: 97.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3+
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
462656884f9f1893c7c5474bc9c5b1d996d2d944b6c727f1a3ca00fd5213f493
|
|
| MD5 |
e7b1ac65e17370d9dedf3f520680a18c
|
|
| BLAKE2b-256 |
4d4bf9a0a40c88db7624aaf40a29945b9ce16da2b7453273de681f65691d0e36
|