Resolves 85 conflicted files, all of which trace to the branch's pre-commit.ci commit18673a5rather than to any change this PR authored. Why the code side takes 'pip': At the merge base the pip branch's [tool.ruff] table had no line-length, so ruff-format fell back to its 88 column default and the pre-commit.ci run reformatted 682 files to 88 columns. Since then3455b45("pip: track main's packaging and tooling config") added line-length = 100 to pip, matching main. The bot commit is therefore churn produced under a tooling config the base branch has since corrected, and re-running the hook on the merged tree reproduces pip's 100 column formatting, not the branch's. It also carries no behaviour: all 682 files it touches are .py, and every one of them is AST identical before and after, so dropping the reformat drops formatting only. The resolved tree is byte identical to pip everywhere except pyproject.toml. pyproject.toml (no textual conflict, but two semantic points): - torch>=2.4.0,<2.11.0 -> <2.12.0 was made independently on both sides, by this PR incd50f9eand on pip inb22b243, with the identical value. The merged file keeps <2.12.0, so neither side is undone. This also matches the exclusive _TORCH_CEILING="2.12.0" that #7256 introduces in install.sh, which expands to torch>=2.4,<2.12.0. - The huggingfacenotorch and amd extras are this PR's remaining novel content; pip has neither. They are re-applied on top of pip's file. The one deliberate rewrite is huggingfacenotorch's unsloth_zoo floor, from >=2026.7.4 to >=2026.7.6:b22b243raised every other unsloth_zoo pin on pip to 2026.7.6, and main's own huggingfacenotorch already says 2026.7.6, so keeping 2026.7.4 would have reintroduced a stale floor that the base branch had just retired. The amd extra is unchanged from main. Line level preservation was checked in both directions: all 90477 lines pip added since the merge base survive, and all 26 lines this branch added survive except the single unsloth_zoo floor noted above.
851 lines
26 KiB
TOML
851 lines
26 KiB
TOML
[build-system]
|
|
requires = ["setuptools==80.9.0", "setuptools-scm==9.2.0"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "unsloth"
|
|
dynamic = ["version"]
|
|
description = "2-5X faster training, reinforcement learning & finetuning"
|
|
readme = "README.md"
|
|
requires-python = ">=3.9,<3.15"
|
|
license = "Apache-2.0"
|
|
keywords = ["ai", "llm", "reinforcement learning", "machine learning", "artificial intelligence", "pytorch"]
|
|
authors = [
|
|
{email = "info@unsloth.ai"},
|
|
{name = "Unsloth AI team"},
|
|
]
|
|
maintainers = [
|
|
{name = "Daniel Han", email = "daniel@unsloth.ai"},
|
|
{name = "Michael Han", email = "info@unsloth.ai"},
|
|
]
|
|
classifiers = [
|
|
"Programming Language :: Python",
|
|
"Environment :: GPU",
|
|
"Environment :: GPU :: NVIDIA CUDA",
|
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
]
|
|
dependencies = [
|
|
"unsloth_zoo>=2026.7.6",
|
|
"wheel>=0.42.0",
|
|
"packaging",
|
|
"torch>=2.4.0,<2.12.0",
|
|
"torchvision",
|
|
"numpy",
|
|
"tqdm",
|
|
"psutil",
|
|
"tyro",
|
|
"protobuf",
|
|
"xformers>=0.0.27.post2 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"triton>=3.0.0 ; ('linux' in sys_platform)",
|
|
"triton-windows ; (sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
"sentencepiece>=0.2.0",
|
|
"datasets>=3.4.1,!=4.0.*,!=4.1.0,<4.4.0",
|
|
"accelerate>=0.34.1",
|
|
"peft>=0.18.0,!=0.11.0",
|
|
"huggingface_hub>=0.34.0",
|
|
"hf_transfer",
|
|
"diffusers",
|
|
"transformers>=4.51.3,!=4.52.0,!=4.52.1,!=4.52.2,!=4.52.3,!=4.53.0,!=4.54.0,!=4.55.0,!=4.55.1,!=4.57.0,!=4.57.4,!=4.57.5,!=5.0.0,!=5.1.0,<=5.5.0",
|
|
"trl>=0.18.2,!=0.19.0,<=0.24.0",
|
|
"typer>=0.12.0",
|
|
"pydantic",
|
|
"pyyaml",
|
|
"nest-asyncio",
|
|
# Every CLI command imports studio.backend.*, which reaches structlog at
|
|
# module level. The rest of the server stack lives in the studio extra.
|
|
"structlog>=24.1.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
unsloth = "unsloth_cli:app"
|
|
|
|
[tool.setuptools.dynamic]
|
|
version = {attr = "unsloth.models._utils.__version__"}
|
|
|
|
[tool.setuptools]
|
|
include-package-data = true
|
|
|
|
[tool.setuptools.package-data]
|
|
unsloth_cli = ["codex_fallback_prompt.md", "pi_subagent.ts"]
|
|
studio = [
|
|
"*.sh",
|
|
"*.ps1",
|
|
"*.bat",
|
|
"node_prebuilt_pins.json",
|
|
"frontend/dist/**/*",
|
|
"frontend/*.json",
|
|
"frontend/*.ts",
|
|
"frontend/*.js",
|
|
"frontend/*.html",
|
|
"frontend/*.yaml",
|
|
"frontend/.git*",
|
|
"backend/requirements/**/*",
|
|
"backend/plugins/**/*",
|
|
"backend/assets/**/*.jinja",
|
|
"backend/assets/**/*.html",
|
|
"backend/core/data_recipe/oxc-validator/*.json",
|
|
"backend/core/data_recipe/oxc-validator/*.mjs",
|
|
]
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["unsloth*", "unsloth_cli*", "studio", "studio.backend*"]
|
|
exclude = ["images*", "tests*", "*.node_modules", "*.node_modules.*"]
|
|
|
|
[project.optional-dependencies]
|
|
# Studio's server stack. Mirrors studio/backend/requirements/studio.txt;
|
|
# test_studio_extra_matches_requirements.py catches drift.
|
|
studio = [
|
|
"typer",
|
|
"fastapi",
|
|
"uvicorn",
|
|
"pydantic",
|
|
"packaging",
|
|
"matplotlib==3.10.9",
|
|
"pandas",
|
|
"nest_asyncio",
|
|
"datasets==4.3.0",
|
|
"pyjwt",
|
|
"huggingface-hub==0.36.2",
|
|
"structlog>=24.1.0",
|
|
"diceware",
|
|
"ddgs",
|
|
"cryptography>=42.0.0",
|
|
"boto3>=1.34.0",
|
|
"httpx>=0.27.0",
|
|
"fastmcp>=3.0.2",
|
|
"sqlite-vec==0.1.9",
|
|
"pymupdf==1.27.2.3",
|
|
"pymupdf4llm==0.3.4",
|
|
"python-docx==1.2.0",
|
|
]
|
|
|
|
triton = [
|
|
"triton>=3.0.0 ; ('linux' in sys_platform)",
|
|
"triton-windows ; (sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
huggingface = [
|
|
"unsloth_zoo>=2026.7.6",
|
|
"wheel>=0.42.0",
|
|
"packaging",
|
|
"torchvision",
|
|
"numpy",
|
|
"tqdm",
|
|
"psutil",
|
|
"tyro",
|
|
"protobuf",
|
|
"sentencepiece>=0.2.0",
|
|
"datasets>=3.4.1,!=4.0.*,!=4.1.0,<4.4.0",
|
|
"accelerate>=0.34.1",
|
|
"peft>=0.18.0,!=0.11.0",
|
|
"huggingface_hub>=0.34.0",
|
|
"hf_transfer",
|
|
"diffusers",
|
|
"transformers>=4.51.3,!=4.52.0,!=4.52.1,!=4.52.2,!=4.52.3,!=4.53.0,!=4.54.0,!=4.55.0,!=4.55.1,!=4.57.0,!=4.57.4,!=4.57.5,!=5.0.0,!=5.1.0,<=5.5.0",
|
|
"trl>=0.18.2,!=0.19.0,<=0.24.0",
|
|
"sentence-transformers",
|
|
"typer>=0.12.0",
|
|
"pydantic",
|
|
"pyyaml",
|
|
"nest-asyncio",
|
|
]
|
|
huggingfacenotorch = [
|
|
"unsloth_zoo>=2026.7.6",
|
|
"wheel>=0.42.0",
|
|
"packaging",
|
|
"numpy",
|
|
"tqdm",
|
|
"psutil",
|
|
"tyro",
|
|
"protobuf",
|
|
"sentencepiece>=0.2.0",
|
|
"datasets>=3.4.1,!=4.0.*,!=4.1.0,<4.4.0",
|
|
"accelerate>=0.34.1",
|
|
"peft>=0.18.0,!=0.11.0",
|
|
"huggingface_hub>=0.34.0",
|
|
"hf_transfer",
|
|
"diffusers",
|
|
"transformers>=4.51.3,!=4.52.0,!=4.52.1,!=4.52.2,!=4.52.3,!=4.53.0,!=4.54.0,!=4.55.0,!=4.55.1,!=4.57.0,!=4.57.4,!=4.57.5,!=5.0.0,!=5.1.0,<=5.5.0",
|
|
"trl>=0.18.2,!=0.19.0,<=0.24.0",
|
|
"sentence-transformers",
|
|
]
|
|
amd = [
|
|
"unsloth[huggingfacenotorch]",
|
|
"bitsandbytes>=0.49.1 ; ('linux' in sys_platform) and (platform_machine == 'AMD64' or platform_machine == 'x86_64' or platform_machine == 'aarch64')",
|
|
"bitsandbytes>=0.49.1 ; (sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
windows = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0 ; (sys_platform == 'win32')",
|
|
"xformers>=0.0.22.post7 ; (sys_platform == 'win32')",
|
|
]
|
|
base = [
|
|
"unsloth[huggingface]",
|
|
]
|
|
cu118only = [
|
|
"xformers==0.0.22.post7 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu121only = [
|
|
"xformers==0.0.22.post7 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu118onlytorch211 = [
|
|
"xformers==0.0.23 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu121onlytorch211 = [
|
|
"xformers==0.0.23 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu118onlytorch212 = [
|
|
"xformers==0.0.23.post1 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu121onlytorch212 = [
|
|
"xformers==0.0.23.post1 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu118onlytorch220 = [
|
|
"xformers==0.0.24 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu121onlytorch220 = [
|
|
"xformers==0.0.24 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu118onlytorch230 = [
|
|
"xformers==0.0.27 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu121onlytorch230 = [
|
|
"xformers==0.0.27 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu118onlytorch240 = [
|
|
"xformers==0.0.27.post2 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu121onlytorch240 = [
|
|
"xformers==0.0.27.post2 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu124onlytorch240 = [
|
|
"xformers==0.0.28.post1 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu118onlytorch250 = [
|
|
"xformers==0.0.28.post2 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu121onlytorch250 = [
|
|
"xformers==0.0.28.post2 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu124onlytorch250 = [
|
|
"xformers==0.0.28.post2 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu118onlytorch251 = [
|
|
"xformers==0.0.29.post1 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu121onlytorch251 = [
|
|
"xformers==0.0.29.post1 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu124onlytorch251 = [
|
|
"xformers==0.0.29.post1 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu118onlytorch260 = [
|
|
"xformers==0.0.29.post3 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu124onlytorch260 = [
|
|
"xformers==0.0.29.post3 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu126onlytorch260 = [
|
|
"xformers==0.0.29.post3 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu118onlytorch270 = [
|
|
"xformers==0.0.30 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu126onlytorch270 = [
|
|
"xformers==0.0.30 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu128onlytorch270 = [
|
|
"xformers==0.0.30 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu118onlytorch271 = [
|
|
"xformers==0.0.31.post1 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu126onlytorch271 = [
|
|
"xformers==0.0.31.post1 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu128onlytorch271 = [
|
|
"xformers==0.0.31.post1 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu118onlytorch280 = [
|
|
"xformers==0.0.32.post2 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu126onlytorch280 = [
|
|
"xformers==0.0.32.post2 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu128onlytorch280 = [
|
|
"xformers==0.0.32.post2 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu130onlytorch280 = [
|
|
]
|
|
cu126onlytorch290 = [
|
|
"xformers==0.0.33.post1 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu128onlytorch290 = [
|
|
"xformers==0.0.33.post1 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu130onlytorch290 = [
|
|
"xformers==0.0.33.post1 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu126onlytorch291 = [
|
|
"xformers==0.0.33.post2 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu128onlytorch291 = [
|
|
"xformers==0.0.33.post2 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu130onlytorch291 = [
|
|
"xformers==0.0.33.post2 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu126onlytorch2100 = [
|
|
"xformers==0.0.34 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu128onlytorch2100 = [
|
|
"xformers==0.0.34 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu130onlytorch2100 = [
|
|
"xformers==0.0.34 ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
]
|
|
cu118 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118only]",
|
|
]
|
|
cu121 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121only]",
|
|
]
|
|
cu118-torch211 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch211]",
|
|
]
|
|
cu121-torch211 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch211]",
|
|
]
|
|
cu118-torch212 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch212]",
|
|
]
|
|
cu121-torch212 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch212]",
|
|
]
|
|
cu118-torch220 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch220]",
|
|
]
|
|
cu121-torch220 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch220]",
|
|
]
|
|
cu118-torch230 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch230]",
|
|
]
|
|
cu121-torch230 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch230]",
|
|
]
|
|
cu118-torch240 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch240]",
|
|
]
|
|
cu121-torch240 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch240]",
|
|
]
|
|
cu124-torch240 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu124onlytorch240]",
|
|
]
|
|
cu118-torch250 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch250]",
|
|
]
|
|
cu121-torch250 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch250]",
|
|
]
|
|
cu124-torch250 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu124onlytorch250]",
|
|
]
|
|
cu118-torch251 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch251]",
|
|
]
|
|
cu121-torch251 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch251]",
|
|
]
|
|
cu124-torch251 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu124onlytorch251]",
|
|
]
|
|
cu118-torch260 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.1",
|
|
"unsloth[cu118onlytorch260]",
|
|
]
|
|
cu124-torch260 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.1",
|
|
"unsloth[cu124onlytorch260]",
|
|
]
|
|
cu126-torch260 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.1",
|
|
"unsloth[cu126onlytorch260]",
|
|
]
|
|
cu118-torch270 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch270]",
|
|
]
|
|
cu126-torch270 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu126onlytorch270]",
|
|
]
|
|
cu128-torch270 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu128onlytorch270]",
|
|
]
|
|
cu118-torch271 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch271]",
|
|
]
|
|
cu126-torch271 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu126onlytorch271]",
|
|
]
|
|
cu128-torch271 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu128onlytorch271]",
|
|
]
|
|
cu118-torch280 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch280]",
|
|
]
|
|
cu126-torch280 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu126onlytorch280]",
|
|
]
|
|
cu128-torch280 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu128onlytorch280]",
|
|
]
|
|
cu130-torch280 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu130onlytorch280]",
|
|
]
|
|
cu126-torch290 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu126onlytorch290]",
|
|
]
|
|
cu128-torch290 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu128onlytorch290]",
|
|
]
|
|
cu130-torch290 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu130onlytorch290]",
|
|
]
|
|
cu126-torch291 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu126onlytorch291]",
|
|
]
|
|
cu128-torch291 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu128onlytorch291]",
|
|
]
|
|
cu130-torch291 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu130onlytorch291]",
|
|
]
|
|
cu126-torch2100 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu126onlytorch2100]",
|
|
]
|
|
cu128-torch2100 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu128onlytorch2100]",
|
|
]
|
|
cu130-torch2100 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu130onlytorch2100]",
|
|
]
|
|
kaggle = [
|
|
"unsloth[huggingface]",
|
|
]
|
|
kaggle-new = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
]
|
|
conda = [
|
|
"unsloth[huggingface]",
|
|
]
|
|
colab-torch211 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch211]",
|
|
]
|
|
flashattention = [
|
|
"packaging ; ('linux' in sys_platform)",
|
|
"ninja ; ('linux' in sys_platform)",
|
|
"flash-attn>=2.6.3 ; ('linux' in sys_platform)",
|
|
]
|
|
colab-ampere-torch211 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch211]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
colab-torch220 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch220]",
|
|
]
|
|
colab-ampere-torch220 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch220]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
colab-new = [
|
|
"unsloth_zoo>=2026.7.6",
|
|
"packaging",
|
|
"tyro",
|
|
"transformers>=4.51.3,!=4.52.0,!=4.52.1,!=4.52.2,!=4.52.3,!=4.53.0,!=4.54.0,!=4.55.0,!=4.55.1,!=4.57.0,!=4.57.4,!=4.57.5,!=5.0.0,!=5.1.0,<=5.5.0",
|
|
"datasets>=3.4.1,!=4.0.*,!=4.1.0,<4.4.0",
|
|
"sentencepiece>=0.2.0",
|
|
"tqdm",
|
|
"psutil",
|
|
"wheel>=0.42.0",
|
|
"numpy",
|
|
"protobuf",
|
|
"huggingface_hub>=0.34.0",
|
|
"hf_transfer",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[triton]",
|
|
"sentence-transformers",
|
|
"typer>=0.12.0",
|
|
"pydantic",
|
|
"pyyaml",
|
|
"nest-asyncio",
|
|
]
|
|
colab-no-deps = [
|
|
"accelerate>=0.34.1",
|
|
"trl>=0.18.2,!=0.19.0,<=0.24.0",
|
|
"peft>=0.18.0",
|
|
"xformers ; ('linux' in sys_platform or sys_platform == 'win32') and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"protobuf",
|
|
]
|
|
colab = [
|
|
"unsloth[cu121]",
|
|
]
|
|
colab-ampere = [
|
|
"unsloth[colab-ampere-torch220]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu118-ampere = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118only]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu121-ampere = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121only]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu118-ampere-torch211 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch211]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu121-ampere-torch211 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch211]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu118-ampere-torch220 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch220]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu121-ampere-torch220 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch220]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu118-ampere-torch230 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch230]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu121-ampere-torch230 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch230]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu118-ampere-torch240 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch240]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu121-ampere-torch240 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch240]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu124-ampere-torch240 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu124onlytorch240]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu118-ampere-torch250 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch250]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu121-ampere-torch250 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch250]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu124-ampere-torch250 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu124onlytorch250]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu118-ampere-torch251 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch251]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu121-ampere-torch251 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu121onlytorch251]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu124-ampere-torch251 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu124onlytorch251]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu118-ampere-torch260 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.1",
|
|
"unsloth[cu118onlytorch260]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu124-ampere-torch260 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.1",
|
|
"unsloth[cu124onlytorch260]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu126-ampere-torch260 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.1",
|
|
"unsloth[cu126onlytorch260]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu118-ampere-torch270 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch270]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu126-ampere-torch270 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu126onlytorch270]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu128-ampere-torch270 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu128onlytorch270]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu118-ampere-torch271 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch271]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu126-ampere-torch271 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu126onlytorch271]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu128-ampere-torch271 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu128onlytorch271]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu118-ampere-torch280 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu118onlytorch280]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu126-ampere-torch280 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu126onlytorch280]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu128-ampere-torch280 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu128onlytorch280]",
|
|
"unsloth[flashattention]",
|
|
]
|
|
cu130-ampere-torch280 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu130onlytorch280]",
|
|
]
|
|
cu126-ampere-torch290 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu126onlytorch290]",
|
|
]
|
|
cu128-ampere-torch290 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu128onlytorch290]",
|
|
]
|
|
cu130-ampere-torch290 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu130onlytorch290]",
|
|
]
|
|
cu126-ampere-torch291 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu126onlytorch291]",
|
|
]
|
|
cu128-ampere-torch291 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu128onlytorch291]",
|
|
]
|
|
cu130-ampere-torch291 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu130onlytorch291]",
|
|
]
|
|
cu126-ampere-torch2100 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu126onlytorch2100]",
|
|
]
|
|
cu128-ampere-torch2100 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu128onlytorch2100]",
|
|
]
|
|
cu130-ampere-torch2100 = [
|
|
"unsloth[huggingface]",
|
|
"bitsandbytes>=0.45.5,!=0.46.0,!=0.48.0",
|
|
"unsloth[cu130onlytorch2100]",
|
|
]
|
|
|
|
[project.urls]
|
|
homepage = "https://unsloth.ai"
|
|
documentation = "https://unsloth.ai/docs"
|
|
repository = "https://github.com/unslothai/unsloth"
|
|
|
|
[tool.ruff]
|
|
target-version = "py311"
|
|
line-length = 100
|
|
force-exclude = true
|
|
extend-exclude = [
|
|
"*chat_templates.py",
|
|
"*ollama_template_mappers.py",
|
|
"*_auto_install.py",
|
|
"*mapper.py",
|
|
]
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E9", "F63", "F7", "F82"]
|
|
ignore = [
|
|
"E402",
|
|
"E722",
|
|
"F403",
|
|
"F405",
|
|
"F811",
|
|
"F821",
|
|
"F841",
|
|
"F401",
|
|
"E731",
|
|
"E741",
|
|
"F601",
|
|
"E712",
|
|
]
|
|
|
|
[tool.ruff.format]
|
|
|
|
[tool.pytest.ini_options]
|
|
# Narrow the default test discovery so `pytest` from the repo root
|
|
# does NOT pick up the GPU-heavy tests under tests/python, tests/qlora,
|
|
# etc. The CI security job runs `pytest tests/security` explicitly.
|
|
pythonpath = ["."]
|
|
testpaths = ["tests/security"]
|