feat: scaffold markovian-rsa-mlx package + CLI
Public release v0.1.0 in progress. MIT, Python 3.12+, depends on kyr0/mlx-lm fork (feat/zaya-support) for ZAYA model support until upstream PR #1261 merges.
This commit is contained in:
14
.gitignore
vendored
Normal file
14
.gitignore
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
.venv/
|
||||
.pytest_cache/
|
||||
.ruff_cache/
|
||||
dist/
|
||||
build/
|
||||
*.egg-info/
|
||||
.DS_Store
|
||||
.vscode/
|
||||
.idea/
|
||||
audit-*.jsonl
|
||||
bench-out/
|
||||
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Olivier Dupont
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
6
README.md
Normal file
6
README.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# markovian-rsa-mlx
|
||||
|
||||
First MLX implementation of Zyphra's Markovian RSA test-time compute
|
||||
methodology, targeting ZAYA1-8B on Apple Silicon.
|
||||
|
||||
Status : work in progress — see `pyproject.toml` for current version.
|
||||
44
pyproject.toml
Normal file
44
pyproject.toml
Normal file
@@ -0,0 +1,44 @@
|
||||
[project]
|
||||
name = "markovian-rsa-mlx"
|
||||
version = "0.1.0"
|
||||
description = "Markovian RSA test-time compute methodology on MLX for ZAYA1-8B and future co-trained models"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.12,<3.14"
|
||||
authors = [{ name = "Olivier Dupont", email = "olivier.dupont@taviramonaco.com" }]
|
||||
license = { text = "MIT" }
|
||||
keywords = ["mlx", "zaya", "markovian-rsa", "test-time-compute", "reasoning", "apple-silicon"]
|
||||
classifiers = [
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"License :: OSI Approved :: MIT License",
|
||||
"Operating System :: MacOS",
|
||||
]
|
||||
dependencies = [
|
||||
"mlx>=0.21",
|
||||
"mlx-lm @ git+https://github.com/kyr0/mlx-lm.git@feat/zaya-support",
|
||||
"huggingface_hub>=0.26",
|
||||
"typer>=0.13",
|
||||
"rich>=13.9",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
markovian-rsa-mlx = "markovian_rsa_mlx.cli:app"
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = ["pytest>=8.3", "pytest-mock>=3.14", "ruff>=0.7"]
|
||||
bench = ["datasets>=3", "psutil>=7"]
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[tool.hatch.metadata]
|
||||
allow-direct-references = true
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["src/markovian_rsa_mlx"]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
testpaths = ["tests"]
|
||||
python_files = ["test_*.py"]
|
||||
addopts = "-ra --strict-markers"
|
||||
markers = ["integration: tests that load the actual ZAYA model (slow, requires HF cache)"]
|
||||
2
src/markovian_rsa_mlx/__init__.py
Normal file
2
src/markovian_rsa_mlx/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
"""Markovian RSA test-time compute methodology on MLX."""
|
||||
__version__ = "0.1.0"
|
||||
20
src/markovian_rsa_mlx/cli.py
Normal file
20
src/markovian_rsa_mlx/cli.py
Normal file
@@ -0,0 +1,20 @@
|
||||
"""Typer CLI for markovian-rsa-mlx."""
|
||||
import typer
|
||||
|
||||
app = typer.Typer(help="Markovian RSA orchestrator for ZAYA1-8B on MLX.")
|
||||
|
||||
|
||||
@app.callback()
|
||||
def _root() -> None:
|
||||
"""Markovian RSA orchestrator for ZAYA1-8B on MLX."""
|
||||
|
||||
|
||||
@app.command()
|
||||
def version() -> None:
|
||||
"""Print version."""
|
||||
from markovian_rsa_mlx import __version__
|
||||
typer.echo(__version__)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app()
|
||||
8
tests/test_smoke.py
Normal file
8
tests/test_smoke.py
Normal file
@@ -0,0 +1,8 @@
|
||||
def test_package_imports():
|
||||
import markovian_rsa_mlx
|
||||
assert hasattr(markovian_rsa_mlx, "__version__")
|
||||
|
||||
|
||||
def test_cli_module_importable():
|
||||
from markovian_rsa_mlx import cli
|
||||
assert hasattr(cli, "app")
|
||||
Reference in New Issue
Block a user