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