78ec5d9290
ci-cd-base / build-base-uv (130, 13.0.0, , Dockerfile-uv-base, linux/amd64,linux/arm64, 3.12, 2.11.0, 9.0 10.0 10.3 12.0+PTX) (push) Waiting to run
ci-cd-base / build-base-uv (130, 13.0.0, , Dockerfile-uv-base, linux/amd64,linux/arm64, 3.12, 2.12.0, 9.0 10.0 10.3 12.0+PTX) (push) Waiting to run
ci-cd-base / build-base-uv (130, 13.0.0, , Dockerfile-uv-base, linux/amd64,linux/arm64, 3.12, 2.12.1, 9.0 10.0 10.3 12.0+PTX) (push) Waiting to run
ci-cd-base / build-base-uv (130, 13.0.0, , Dockerfile-uv-base, linux/amd64,linux/arm64, 3.12, 2.13.0, 9.0 10.0 10.3 12.0+PTX) (push) Waiting to run
ci-cd-base / build-base-uv (132, 13.2.1, , Dockerfile-uv-base, linux/amd64,linux/arm64, 3.12, 2.13.0, 9.0 10.0 10.3 12.0+PTX, https://download.pytorch.org/whl/cu132) (push) Waiting to run
docker-e2e-tests / gate-skip-e2e (push) Waiting to run
docker-e2e-tests / docker-e2e-tests-1st (<nil>, 130, 13.0.0, 1, 3.12, 2.12.1) (push) Blocked by required conditions
docker-e2e-tests / docker-e2e-tests (<nil>, 130, 13.0.0, 1, 3.12, 2.11.0) (push) Blocked by required conditions
docker-e2e-tests / docker-e2e-kernel-tests (<nil>, 130, 13.0.0, 1, 3.12, 2.11.0) (push) Blocked by required conditions
docker-e2e-tests / docker-e2e-kernel-tests (<nil>, 130, 13.0.0, 1, 3.12, 2.12.1) (push) Blocked by required conditions
docker-e2e-tests / docker-e2e-cleanup (<nil>, 130, 13.0.0, 1, 3.12, 2.12.1) (push) Blocked by required conditions
Publish Docs / build-deploy (push) Waiting to run
ci-cd / build-axolotl-uv (<nil>, 130, 13.0.0, linux/amd64,linux/arm64, 3.12, 2.11.0) (push) Waiting to run
ci-cd / build-axolotl-uv (<nil>, 130, 13.0.0, true, linux/amd64,linux/arm64, 3.12, 2.12.0) (push) Waiting to run
ci-cd / build-axolotl-cloud-uv (<nil>, 130, 13.0.0, linux/amd64,linux/arm64, 3.12, 2.11.0) (push) Blocked by required conditions
ci-cd / build-axolotl-cloud-uv (<nil>, 130, 13.0.0, true, linux/amd64,linux/arm64, 3.12, 2.12.0) (push) Blocked by required conditions
ci-cd / build-axolotl-cloud-no-tmux-uv (<nil>, 130, 13.0.0, linux/amd64,linux/arm64, 3.12, 2.11.0) (push) Blocked by required conditions
ci-cd / build-axolotl-cloud-no-tmux-uv (<nil>, 130, 13.0.0, true, linux/amd64,linux/arm64, 3.12, 2.12.0) (push) Blocked by required conditions
Tests / PyTest from Source Dist (3.12, 2.11.0) (push) Blocked by required conditions
Tests / PyTest from Source Dist (3.12, 2.12.1) (push) Blocked by required conditions
Tests / PyTest from Source Dist (3.12, 2.13.0) (push) Blocked by required conditions
Tests / pre-commit (push) Waiting to run
Tests / Prefetch S3 once to prime the CDN cache (push) Waiting to run
Tests / PyTest (3.12, 2.11.0) (push) Blocked by required conditions
Tests / PyTest (3.12, 2.12.1) (push) Blocked by required conditions
Tests / PyTest (3.12, 2.13.0) (push) Blocked by required conditions
283 lines
6.0 KiB
TOML
283 lines
6.0 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=64", "wheel", "setuptools_scm>=8"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "axolotl"
|
|
dynamic = ["version"]
|
|
description = "LLM Trainer"
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
# license = "Apache-2.0"
|
|
|
|
dependencies = [
|
|
# Core ML stack
|
|
"torch>=2.11.0,<=2.12.1",
|
|
"packaging==26.0",
|
|
"huggingface_hub==1.17.0",
|
|
"peft==0.19.1",
|
|
"tokenizers==0.22.2",
|
|
"transformers==5.12.1",
|
|
"accelerate==1.13.0",
|
|
"datasets==4.8.4",
|
|
"trl==1.7.0",
|
|
"hf_xet==1.4.3",
|
|
"kernels==0.13.0",
|
|
"trackio==0.19.0",
|
|
"typing-extensions==4.15.0",
|
|
"optimum==1.16.2",
|
|
"hf_transfer",
|
|
"sentencepiece",
|
|
"gradio==6.10.0",
|
|
"modal==1.3.0.post1",
|
|
"pydantic==2.12.5",
|
|
"addict",
|
|
"fire",
|
|
"PyYAML==6.0.3",
|
|
"requests",
|
|
"wandb",
|
|
"einops",
|
|
"colorama",
|
|
"numba==0.63.1",
|
|
"numpy==2.3.5",
|
|
"typer==0.25.1",
|
|
|
|
# Evaluation & metrics
|
|
"evaluate==0.4.1",
|
|
"scipy",
|
|
"nvidia-ml-py==12.560.30",
|
|
"art",
|
|
"tensorboard",
|
|
"python-dotenv==1.0.1",
|
|
|
|
# Remote filesystems
|
|
"s3fs==2025.10.0",
|
|
"gcsfs==2025.10.0",
|
|
"adlfs==2026.2.0",
|
|
"ocifs==1.3.2",
|
|
|
|
"zstandard==0.22.0",
|
|
"fastcore",
|
|
|
|
# lm eval harness
|
|
"lm_eval==0.4.11",
|
|
"langdetect==1.0.9",
|
|
"immutabledict==4.2.0",
|
|
"antlr4-python3-runtime==4.13.2",
|
|
|
|
"schedulefree==1.4.1",
|
|
"openenv-core==0.1.0",
|
|
|
|
# Axolotl contribs
|
|
"axolotl-contribs-lgpl==0.0.7",
|
|
"axolotl-contribs-mit==0.0.6",
|
|
|
|
# Telemetry
|
|
"posthog==6.7.11",
|
|
|
|
"mistral-common==1.11.5",
|
|
|
|
# Platform-specific (Linux only)
|
|
"bitsandbytes==0.49.1 ; sys_platform != 'darwin'",
|
|
"triton>=3.4.0 ; sys_platform != 'darwin'",
|
|
"xformers>=0.0.33.post2 ; sys_platform != 'darwin' and platform_machine != 'aarch64'",
|
|
"liger-kernel==0.8.0 ; sys_platform != 'darwin'",
|
|
"torchao==0.17.0 ; sys_platform != 'darwin' and platform_machine != 'aarch64'",
|
|
|
|
# Architecture-specific
|
|
"fla-core==0.4.1 ; platform_machine != 'aarch64'",
|
|
"flash-linear-attention==0.4.1 ; platform_machine != 'aarch64'",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
flash-attn = ["flash-attn==2.8.3"]
|
|
ring-flash-attn = [
|
|
"flash-attn==2.8.3",
|
|
"ring-flash-attn>=0.1.7",
|
|
]
|
|
deepspeed = [
|
|
"deepspeed>=0.18.6,<0.19.0",
|
|
"deepspeed-kernels",
|
|
]
|
|
mamba-ssm = [
|
|
"mamba-ssm==1.2.0.post1",
|
|
"causal_conv1d",
|
|
]
|
|
auto-gptq = [
|
|
"auto-gptq==0.5.1",
|
|
]
|
|
mlflow = [
|
|
"mlflow",
|
|
]
|
|
galore = [
|
|
"galore_torch",
|
|
]
|
|
apollo = [
|
|
"apollo-torch",
|
|
]
|
|
optimizers = [
|
|
"galore_torch",
|
|
"apollo-torch",
|
|
"lomo-optim==0.1.1",
|
|
"torch-optimi==0.2.1",
|
|
"came_pytorch==0.1.3",
|
|
"q-galore-torch==1.0",
|
|
]
|
|
ray = [
|
|
"ray[train]>=2.52.1",
|
|
]
|
|
vllm = [
|
|
"vllm>=0.15.0",
|
|
]
|
|
llmcompressor = [
|
|
"llmcompressor>=0.10.0",
|
|
]
|
|
fbgemm-gpu = ["fbgemm-gpu-genai>=1.3.0"]
|
|
opentelemetry = [
|
|
"opentelemetry-api",
|
|
"opentelemetry-sdk",
|
|
"opentelemetry-exporter-prometheus",
|
|
"prometheus-client",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"black",
|
|
"mypy",
|
|
"pre-commit",
|
|
"types-requests",
|
|
"quartodoc",
|
|
"jupyter",
|
|
"blobfile",
|
|
"tiktoken",
|
|
]
|
|
test = [
|
|
"codecov",
|
|
"codecov-cli",
|
|
"pytest",
|
|
"pytest-cov",
|
|
"pytest-retry",
|
|
"pytest-sugar",
|
|
"pytest-xdist",
|
|
"tbparse",
|
|
]
|
|
|
|
[project.scripts]
|
|
axolotl = "axolotl.cli.main:main"
|
|
|
|
[project.urls]
|
|
Homepage = "https://axolotl.ai/"
|
|
Documentation = "https://docs.axolotl.ai/"
|
|
Repository = "https://github.com/axolotl-ai-cloud/axolotl.git"
|
|
|
|
[tool.setuptools]
|
|
include-package-data = true
|
|
|
|
[tool.setuptools.package-data]
|
|
axolotl = [
|
|
"**/*.yaml",
|
|
"**/*.jinja",
|
|
"integrations/kernels/libs/scattermoe_lora/metadata.json",
|
|
]
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
[tool.setuptools.dynamic]
|
|
version = { file = "VERSION" }
|
|
|
|
[tool.ruff]
|
|
line-length = 88
|
|
target-version = "py310"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "W", "C90", "B", "I"]
|
|
ignore = [
|
|
"E203", # Whitespace before ':'
|
|
"E501", # Line too long
|
|
"C901", # Too complex
|
|
"B019", # Use of functools.cache on methods
|
|
"E722", # Bare except
|
|
"F821", # Undefined name (for dynamic exec)
|
|
"E731", # Lambda assignment (idiomatic for the kernel recipe/heuristic closures)
|
|
"E741", # Ambiguous variable name (single-letter math/kernel vars: I, O, l)
|
|
]
|
|
|
|
[tool.ruff.lint.isort]
|
|
known-third-party = ["wandb", "comet_ml"]
|
|
known-local-folder = ["src", "tests"]
|
|
# Black-compatible isort settings
|
|
force-single-line = false
|
|
combine-as-imports = true
|
|
split-on-trailing-comma = true
|
|
|
|
[tool.ruff.format]
|
|
# Use black's formatting style exactly
|
|
quote-style = "double"
|
|
indent-style = "space"
|
|
skip-magic-trailing-comma = false
|
|
line-ending = "auto"
|
|
docstring-code-format = false
|
|
|
|
[tool.pytest.ini_options]
|
|
addopts = "-m 'not slow'"
|
|
norecursedirs = [
|
|
".claude",
|
|
".git",
|
|
".mypy_cache",
|
|
".nox",
|
|
".pytest_cache",
|
|
".ruff_cache",
|
|
".scratch_fp4",
|
|
".tox",
|
|
".venv",
|
|
"build",
|
|
"dist",
|
|
"outputs",
|
|
"unsloth_compiled_cache",
|
|
]
|
|
markers = [
|
|
"slow: marks tests as slow",
|
|
"perf: marks tests as performance/memory regression guards (Blackwell only, large E)",
|
|
]
|
|
|
|
# UV specific configuration
|
|
[tool.uv]
|
|
conflicts = [
|
|
[
|
|
{ package = "axolotl" },
|
|
{ extra = "vllm" },
|
|
],
|
|
[
|
|
{ package = "axolotl" },
|
|
{ extra = "flash-attn" },
|
|
],
|
|
[
|
|
{ package = "axolotl" },
|
|
{ extra = "ring-flash-attn" },
|
|
],
|
|
[
|
|
{ package = "axolotl" },
|
|
{ extra = "mamba-ssm" },
|
|
],
|
|
[
|
|
{ package = "axolotl" },
|
|
{ extra = "auto-gptq" },
|
|
],
|
|
[
|
|
{ package = "axolotl" },
|
|
{ extra = "fbgemm-gpu" },
|
|
],
|
|
[
|
|
{ package = "axolotl" },
|
|
{ extra = "llmcompressor" },
|
|
],
|
|
]
|
|
|
|
[tool.uv.extra-build-dependencies]
|
|
mamba-ssm = [{ requirement = "torch", match-runtime = true }]
|
|
causal-conv1d = [{ requirement = "torch", match-runtime = true }]
|
|
flash-attn = [{ requirement = "torch", match-runtime = true }]
|
|
deepspeed = [{ requirement = "torch", match-runtime = true }]
|
|
auto-gptq = [{ requirement = "torch", match-runtime = true }]
|