The Query-based All-in-one Research Kit (QUARK) is a comprehensive toolkit designed to revolutionize how researchers, data scientists, and developers manage their experimental workflows. With a focus on PyTorch-based research projects, QUARK provides a unified platform that handles everything from experiment configuration to result summarization, ensuring reproducibility and efficiency throughout the research lifecycle.
- Query-based Configuration: Intuitive interfaces for setting up experiments
- Automated Environment Setup: Seamless configuration of dependencies and resources
- Experiment Versioning: Track and manage different versions of your experiments
- Result Summarization: Generate comprehensive reports of experimental outcomes
- Environment Isolation: Built-in support for virtual environments and Docker containers
- Plugin System: Extensible architecture for custom functionality
- Task Automation: Powered by Invoke for efficient task management
- Native Code Integration: CMake support for C++/native code components
- Data Processing: Efficient data handling with numpy and msgpack
- Validation: Robust data validation using Pydantic
- Documentation: Integrated MkDocs with Material theme for beautiful documentation
- Testing: Comprehensive testing infrastructure with PyTest
-
Python Environment:
# Ensure Python 3.9 or higher is installed python --version
-
System Requirements:
- Python 3.9+
- invoke (for task automation)
- venv (for environment management)
-
Using Poetry (Recommended):
# Install dependencies and set up the project poetry install
-
Verify Installation:
quark --help
quark/
βββ quark/ # Core package
β βββ coordinator/ # Coordination logic
β βββ tasks.py # Task definitions
βββ plugins/ # Plugin system
βββ utility/ # Utility functions
βββ tools/ # Development tools
βββ experiments/ # Experiment configurations
βββ environments/ # Environment settings
βββ tests/ # Test suite
βββ data/ # Data storage
βββ runtime/ # Runtime configurations
# View all available commands
quark --help
# Bootstrap the environment (sets up both PyTorch and TensorFlow)
quark bootstrap
# Install dependencies
quark install
# Build the project
quark build
# Run tests
quark test # Run all tests
quark unittest # Run unit tests for all frameworks
quark unittest-torch # Run PyTorch specific tests
quark unittest-tf # Run TensorFlow specific tests
# Format code (Python with black/isort, C++ with clang-format)
quark format
# Clean up virtual environments
quark clean
# Run benchmarks
quark bench <task-name> --task-dir=<directory>
# Run the QUARK engine tests
quark quark-engine-test
# Get available plugins
quark get-plugins
# Pull plugins from repositories
quark pull-plugins
# Build plugins
quark build-plugins
# Run plugin tests
quark catz-smoke-test # Test Catzilla plugins
quark serialisation-smoke-test # Test serialization plugins
-
Initial Setup:
# Bootstrap the environment quark bootstrap # Install dependencies quark install
-
Development Cycle:
# Format your code quark format # Run tests quark test # Build the project quark build
-
Plugin Development:
# Build and test plugins quark build-plugins quark catz-smoke-test
All commands are integrated into the quark
CLI - there's no need to manually run pytest
, poetry
, or other tools directly. The QUARK command-line interface handles all necessary tool interactions for you.
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Comprehensive documentation is available through MkDocs:
# Build documentation
mkdocs build
# Serve documentation locally
mkdocs serve
# Install development dependencies
poetry install --with dev
# Run tests
pytest tests/
# Build documentation
mkdocs build
- Follow PEP 8 guidelines
- Use type hints
- Write comprehensive docstrings
- Include unit tests for new features
This project is licensed under the MIT License - see the LICENSE file for details.
Albert Shi - [email protected]
Project Link: https://github.com/codes1gn/quark
Made with β€οΈ by the QUARK team
QUARK differentiates itself from other experiment tracking and MLOps tools in several key ways:
Feature | QUARK | MLflow | Weights & Biases | DVC |
---|---|---|---|---|
Query-based Configuration | β | β | β | β |
Automated Environment Management | β | Limited | Limited | Limited |
Integrated Data Version Control | β | β | Limited | β |
Framework Agnostic | β | β | β | β |
Built-in Reproducibility | β | Limited | Limited | β |
-
Query-First Approach
- Intuitive query-based interface for experiment configuration
- Natural language-like syntax for defining experiments
- Reduced cognitive load compared to traditional configuration files
-
Unified Research Environment
- Seamless integration of experiment tracking, data versioning, and model management
- Consistent workflow across different ML frameworks
- Built-in support for both PyTorch and TensorFlow ecosystems
-
Advanced Reproducibility
- Automatic environment snapshots
- Complete experiment lineage tracking
- Deterministic experiment reproduction
-
Scalable Architecture
- Designed for large-scale research projects
- Efficient handling of distributed training
- Cloud-native architecture with Kubernetes support
-
Research-Oriented Features
- First-class support for academic research workflows
- Built-in citation and paper tracking
- Easy experiment sharing and collaboration
QUARK is particularly well-suited for:
- Research Teams who need robust experiment tracking with academic workflow support
- Production ML Teams requiring seamless transition from research to deployment
- Organizations looking for a unified platform that scales with their ML initiatives
- Projects that require extensive experimentation and rigorous reproducibility
- Teams working across multiple ML frameworks and environments