BIGJUTT/5556 / pyproject.toml
BIGJUTT's picture
download
raw
3.64 kB
[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.