microsoft/Semi-supervised-learning
A Unified Semi-Supervised Learning Codebase (NeurIPS'22)
What it solves
USB (Unified Semi-supervised Learning Benchmark) provides a standardized way to develop, train, and evaluate semi-supervised learning (SSL) algorithms across different data modalities. It addresses the difficulty of comparing SSL methods consistently across computer vision, natural language processing, and audio classification tasks.
How it works
USB is a PyTorch-based Python package (distributed as semilearn) that implements a wide range of SSL algorithms based on Consistency Regularization. It provides a unified framework where users can specify training configurations via YAML files to run existing algorithms on various datasets.
Who it’s for
It is designed for AI researchers and developers who need to benchmark SSL algorithms or develop new ones in a comprehensive, easy-to-extend environment.
Highlights
- Multi-modal Support: Covers CV, NLP, and Audio classification tasks.
- Algorithm Library: Includes implementations of 14 SSL algorithms (such as FixMatch, FreeMatch, and SoftMatch).
- Extensive Benchmarking: Provides 15 evaluation tasks to ensure robust performance testing.
- Developer Friendly: Offers a Python package for quick start, Docker support for environment consistency, and a clear structure for extending the library with new algorithms.