How lingyi0110/mai2bert works
mai2bert is a self-supervised pretraining and supervised chart-difficulty prediction framework for structured maimai event sequences. Its main lifecycle is to discover and parse chart files, build augmented event representations and splits, store processed data, train or fine-tune sequence models, then load a checkpoint to predict difficulty and uncertainty for chart inputs. The graph preserves both training and inference branches. The README is empty, and several modules were not sampled; their paths identify subsystems, but uncertain internal call links are omitted.
Main entry points: prepare.py Preparation pipeline · regression.py Difficulty regressor · batch.py Batch prediction · train.py Training command
Components 27
Chart preparation
- Prepare command
prepare.py - Chart discovery
src/preprocessing/discovery.py - Simai parser
src/lib/parser/simai.py - MA2 parser
src/lib/parser/ma2.py - Event representation
src/preprocessing/representation.py - Chart augmentation
src/lib/augmentation - Dataset splits
src/preprocessing/split.py - Preparation pipeline
src/preprocessing/prepare.py
Dataset pipeline
- Processed HDF5
src/preprocessing/store.py - Event dataset
src/data/dataset.py - Batch collation
src/data/batching.py - Pretraining masking
src/data/masking.py
Sequence models
- Event embedding
src/models/embedding.py - Sequence encoder
src/models/encoder.py - Pretraining model
src/models/pretraining.py - Difficulty regressor
src/models/regression.py
Training
- Training command
train.py - Pretraining loop
src/training/pretrain.py - Regression training
src/training/regression.py - Transfer training
src/training/transfer.py
Prediction
- Inference command
infer.py - Batch prediction
src/inference/batch.py - Checkpoint loader
src/inference/loader.py - Prediction runtime
src/inference/predict.py - Prediction files
Other components
- Chart files
- Model checkpoint
Connections 33
- Chart files → Prepare command: supplies charts
- Prepare command → Preparation pipeline: runs preparation
- Preparation pipeline → Chart discovery: discovers charts
- Preparation pipeline → Simai parser: parses charts
- Preparation pipeline → Event representation: builds events
- Preparation pipeline → Chart augmentation: creates variants
- Preparation pipeline → Dataset splits: assigns splits
- Preparation pipeline → Processed HDF5: writes arrays
- Chart files → Inference command: supplies charts
- Inference command → Batch prediction: dispatches batch
- Batch prediction → Simai parser: parses Simai
- Batch prediction → MA2 parser: parses MA2
- Batch prediction → Prediction runtime: submits items
- Inference command → Checkpoint loader: loads model
- Model checkpoint → Checkpoint loader: provides weights
- Checkpoint loader → Difficulty regressor: restores model
- Prediction runtime → Difficulty regressor: predicts difficulty
- Batch prediction → Prediction files: writes CSV and JSON
- Training command → Pretraining loop: starts pretraining
- Training command → Regression training: starts regression
- Training command → Transfer training: starts transfer
- Processed HDF5 → Event dataset: supplies events
- Event dataset → Batch collation: provides samples
- Batch collation → Pretraining masking: collates for masking
- Pretraining masking → Pretraining model: provides masked batches
- Batch collation → Difficulty regressor: provides batches
- Pretraining model → Event embedding: encodes events
- Difficulty regressor → Event embedding: encodes events
- Event embedding → Sequence encoder: builds representations
- Pretraining loop → Pretraining model: trains model
- Regression training → Difficulty regressor: trains regressor
- Transfer training → Difficulty regressor: adapts model
- Regression training → Model checkpoint: saves weights