| [project] | |
| name = "abliterix" | |
| version = "1.8.0" | |
| description = "Automated model steering and alignment adjustment via LoRA-based optimization" | |
| readme = "README.md" | |
| license = "AGPL-3.0-or-later" | |
| authors = [ | |
| { name = "Wangzhang Wu", email = "wangzhangwu1216@gmail.com" } | |
| ] | |
| requires-python = ">=3.10" | |
| keywords = ["llm", "model-steering", "alignment", "lora"] | |
| classifiers = [ | |
| "Development Status :: 4 - Beta", | |
| "Environment :: Console", | |
| "Environment :: GPU", | |
| "Intended Audience :: Science/Research", | |
| "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", | |
| "Topic :: Scientific/Engineering :: Artificial Intelligence", | |
| "Programming Language :: Python :: 3", | |
| "Programming Language :: Python :: 3.10", | |
| "Programming Language :: Python :: 3.11", | |
| "Programming Language :: Python :: 3.12", | |
| ] | |
| dependencies = [ | |
| "accelerate~=1.10", | |
| "bitsandbytes~=0.45", | |
| "datasets~=4.0", | |
| "hf-transfer~=0.1", | |
| "huggingface-hub~=1.6", | |
| "kernels~=0.11", | |
| "optuna~=4.5", | |
| "peft~=0.18", | |
| "psutil~=7.1", | |
| "pydantic-settings~=2.10", | |
| "questionary~=2.1", | |
| "rich~=14.1", | |
| "transformers~=5.3", | |
| ] | |
| [project.optional-dependencies] | |
| research = [ | |
| "geom-median~=0.1", | |
| "imageio>=2.36", | |
| "matplotlib~=3.10", | |
| "numpy~=2.2", | |
| "pacmap~=0.8", | |
| "scikit-learn~=1.7", | |
| ] | |
| ui = [ | |
| "gradio~=5.20", | |
| "plotly~=6.1", | |
| ] | |
| vllm = [ | |
| # Floor pinned to >=0.18 because abliterix's MoE/expert editors require | |
| # `VLLM_ALLOW_INSECURE_SERIALIZATION` (PR #35928, v0.18.0) for | |
| # `collective_rpc` callable pickling. Upper bound is the next minor we | |
| # have not yet smoke-tested; bump after a green CI run. | |
| "vllm>=0.18,<0.21", | |
| "speculators>=0.1.9", | |
| ] | |
| # sglang extra removed from pyproject.toml due to dependency conflict | |
| # (sglang pins imageio==2.36.0, research extra needs imageio>=2.36). | |
| # Install manually: pip install "sglang[all]>=0.5.10" speculators>=0.1.9 | |
| [dependency-groups] | |
| dev = [ | |
| "pytest>=8.0", | |
| "pytest-cov>=6.0", | |
| "ruff>=0.14.5", | |
| "ty>=0.0.5", | |
| ] | |
| [project.urls] | |
| Homepage = "https://github.com/wuwangzhang1216/abliterix" | |
| Documentation = "https://github.com/wuwangzhang1216/abliterix" | |
| Repository = "https://github.com/wuwangzhang1216/abliterix.git" | |
| Issues = "https://github.com/wuwangzhang1216/abliterix/issues" | |
| Changelog = "https://github.com/wuwangzhang1216/abliterix/releases" | |
| [project.scripts] | |
| abliterix = "abliterix.cli:main" | |
| abliterix-dequant-fp8 = "abliterix.scripts.dequant_fp8:main" | |
| [build-system] | |
| requires = ["uv_build>=0.8.11,<0.9.0"] | |
| build-backend = "uv_build" | |
| [tool.uv.build-backend] | |
| module-name = "abliterix" | |
| [tool.ruff.lint.per-file-ignores] | |
| "scripts/*.py" = ["E402"] | |
| "tests/*.py" = ["E402"] | |
| [tool.ty.rules] | |
| # GPU-only packages (vllm, sglang, speculators) are not installed in CI. | |
| # Dynamic attribute assignments on engine objects use runtime monkey-patching. | |
| unresolved-import = "ignore" | |
| invalid-argument-type = "ignore" | |
| invalid-assignment = "ignore" | |
| invalid-return-type = "ignore" | |
| unresolved-attribute = "ignore" | |
| # Many `# ty:ignore[unresolved-import]` markers shield optional GPU/research | |
| # extras from import errors; on a fresh CI install those ignores are reported | |
| # as unused even though they are load-bearing in production environments. | |
| unused-ignore-comment = "ignore" | |
| # Pydantic-settings BaseSettings fields are populated via env/CLI/TOML at | |
| # runtime; ty cannot see that and reports `missing-argument` on direct calls | |
| # in helper code. The same dynamic attribute population also confuses | |
| # `not-subscriptable` checks against engine objects. | |
| missing-argument = "ignore" | |
| not-subscriptable = "ignore" | |
Xet Storage Details
- Size:
- 3.64 kB
- Xet hash:
- 10b9f4b33da1e240734c1623424be0ebbf7b3425ad601923959ce891f4ac136c
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.