A modern versioning system for Artificial Intelligence projects.
ModelSync is a distributed version control tool inspired by Git, but entirely focused on the Artificial Intelligence ecosystem.
While Git is great for versioning code, it fails when dealing with:
- 🗂️ Large datasets
- 🧠 Trained models (binaries)
- 🧪 Experiments with multiple parameters
- 📈 Performance metrics and comparisons
The goal of ModelSync is to fill this gap, offering a data and experiment-oriented versioning environment.
Component | Technology |
---|---|
CLI | Typer |
API | FastAPI |
Server | Uvicorn |
Git | GitPython |
Data | Pandas |
Container | Docker |
modelsync init
→ Initializes a.modelsync/
repositorymodelsync commit -m "message"
→ Saves a snapshot with metadata- Simple versioning with file hashing
- Basic API for queries and external interactions
- Python 3.10+
- Linux, macOS or Windows (WSL recommended)
git clone https://github.com/your-username/modelsync.git
cd modelsync
pip install -r requirements.txt
# Initialize ModelSync repository
python modelsync/cli/main.py init
# Create a commit with message
python modelsync/cli/main.py commit -m "Model with 92% accuracy"
Command | Description |
---|---|
modelsync init |
Creates a new ModelSync repository |
modelsync status |
Shows the status of tracked files and changes |
modelsync add [file] |
Adds a file to the staging area |
modelsync add . |
Adds all files to the staging area |
modelsync commit -m "[message]" |
Saves changes with a descriptive message |
modelsync log |
Shows commit history |
modelsync log --oneline |
Shows commit history in one line per commit |
modelsync diff |
Shows differences between working directory and staging area |
Command | Description |
---|---|
modelsync dataset add ./data.csv --name "Training Data" |
Add dataset to version control |
modelsync model add model.pkl --framework sklearn --metrics '{"accuracy": 0.95}' |
Add model to version control |
modelsync experiment create feature_engineering |
Create experiment branch |
modelsync llm start |
Start vLLM API server |
modelsync llm generate --prompt "Hello world" |
Generate text with vLLM |
modelsync llm_status |
Check vLLM service status |
modelsync web |
Start web interface |
Command | Description |
---|---|
modelsync restore [file] |
Discards changes in a file |
modelsync reset [file] |
Unstages a file from the staging area |
modelsync branch [name] |
Creates a new branch for experiments |
modelsync checkout [branch] |
Switches to another branch |
modelsync merge [branch] |
Merges changes from a branch |
modelsync remote add [name] [url] |
Adds a remote repository |
modelsync push |
Uploads changes to remote repository |
modelsync pull |
Downloads updates from remote repository |
modelsync clone [url] |
Clones a remote ModelSync repository |