Hyperbox | Open-Source AutoML Toolbox

A clean and scalable AutoML framework built on PyTorch + PyTorch Lightning. Supports NAS, HPO, and Auto Data Augmentation with a unified, modular API.

English

GitHub: marsggbo/hyperbox · Docs: hyperbox-doc.readthedocs.io

Hyperbox is an open-source AutoML framework I developed during my PhD, built on top of PyTorch and PyTorch Lightning. It provides a clean, modular API covering Neural Architecture Search (NAS), Hyperparameter Optimization (HPO), and Auto Data Augmentation (ADA).


Core Modules

hyperbox.mutables — Searchable building blocks

Three types of searchable modules cover the vast majority of NAS search spaces:

Module Purpose
OperationSpace Select one operation from a candidate list (e.g. conv 3×3 vs 5×5 vs 7×7)
InputSpace Select which previous layer outputs to use as skip connections
ValueSpace Search fine-grained parameters (kernel size, channel width, etc.) inside a single op
from hyperbox.mutables.spaces import OperationSpace, InputSpace, ValueSpace
from hyperbox.mutables.ops import Conv2d

# Choose one conv kernel size
ks = ValueSpace([3, 5, 7], key='kernelSize')
cout = ValueSpace([16, 32, 64], key='channelOut')
conv = Conv2d(3, cout, ks, stride=1, padding=2, bias=False)

hyperbox.mutator — Search algorithms

Plug-and-play search algorithms that work with any mutables-based search space:

Algorithm File
Random Search random_mutator.py
DARTS (gradient-based) darts_mutator.py
ENAS (RL-based) enas_mutator.py
Evolution evolution_mutator.py
FairNAS fairnas_mutator.py
Few-shot NAS fewshot_mutator.py
ProxylessNAS proxyless_mutator.py
RepNAS repnas_mutator.py
from hyperbox.mutator import RandomMutator
from hyperbox.networks.ofa import OFAMobileNetV3

net = OFAMobileNetV3()          # supernet (mask=None → searchable)
mutator = RandomMutator(net)
mutator.reset()                 # sample one subnet
arch = mutator._cache           # arch as dict

subnet = net.build_subnet(arch) # inherit supernet weights

hyperbox.networks — Pre-built search spaces

Implementations of 15+ published NAS search spaces, including: DARTS, ENAS, OFA (MobileNetV3), ProxylessNAS, SPOS, NAS-Bench-201, NAS-Bench-301, ViT, GPT, ResNet, RepNAS, …


Applications

Hyperbox is the experimental backbone of several published papers:

Paper Venue Description
NAS-LID AAAI 2023 NAS via local intrinsic dimension
EMARS MICCAI 2022 Multi-objective evolutionary NAS for medical imaging
MedPipe IEEE MedAI 2023 Joint search of augmentation policy and architecture

Install

pip install hyperbox
# or from source
git clone https://github.com/marsggbo/hyperbox && cd hyperbox
pip install -r requirements.txt && python setup.py develop

中文版本

GitHub: marsggbo/hyperbox · 文档: hyperbox-doc.readthedocs.io

Hyperbox 是我在读博期间开发的开源 AutoML 框架,基于 PyTorch 和 PyTorch Lightning 构建,提供一套模块化、可扩展的 API,覆盖神经架构搜索(NAS)、超参优化(HPO)和自动数据增强(ADA)三大方向。


核心模块

hyperbox.mutables — 可搜索模块

三种可搜索模块基本覆盖了现有 NAS 搜索空间的所有主流设计:

模块 用途
OperationSpace 从候选操作列表中选一个(如 3×3 / 5×5 / 7×7 卷积)
InputSpace 从前面若干层输出中选一个或多个作为当前层输入(跳跃连接)
ValueSpace 在单个操作内部搜索细粒度参数(卷积核大小、通道数等)

每个模块都有 keymask 两个关键参数:key 是唯一标识符,mask 指定当前选择(None 表示待搜索)。

hyperbox.mutator — 搜索算法

Mutator 与搜索空间完全解耦,可以自由替换搜索算法而无需改动模型定义。已内置 Random、DARTS、ENAS、进化算法、FairNAS、Few-shot NAS、ProxylessNAS、RepNAS 等多种经典算法。

hyperbox.networks — 内置搜索空间

重新实现了 15+ 篇经典 NAS 论文的搜索空间,包括 DARTS、ENAS、OFA(MobileNetV3)、ProxylessNAS、SPOS、NAS-Bench-201/301、ViT、GPT 等。


应用论文

论文 会议 说明
NAS-LID AAAI 2023 基于局部本征维度的神经架构搜索
EMARS MICCAI 2022 多目标进化 NAS 用于医疗图像分类
MedPipe IEEE MedAI 2023 联合搜索数据增强策略与网络结构