typer
pydantic
pyyaml
nest-asyncio

[amd]
unsloth[huggingfacenotorch]

[amd:"linux" in sys_platform and (platform_machine == "AMD64" or platform_machine == "x86_64" or platform_machine == "aarch64")]
bitsandbytes>=0.49.1

[amd:sys_platform == "win32" and (platform_machine == "AMD64" or platform_machine == "x86_64")]
bitsandbytes>=0.49.1

[base]
unsloth[huggingface]

[colab]
unsloth[cu121]

[colab-ampere]
unsloth[colab-ampere-torch220]
unsloth[flashattention]

[colab-ampere-torch211]
unsloth[huggingface]
bitsandbytes==0.45.5
unsloth[cu121onlytorch211]
packaging
ninja

[colab-ampere-torch211:"linux" in sys_platform]
flash-attn>=2.6.3

[colab-ampere-torch220]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu121onlytorch220]
packaging
ninja

[colab-ampere-torch220:"linux" in sys_platform]
flash-attn>=2.6.3

[colab-new]
unsloth_zoo>=2026.3.2
packaging
tyro
transformers!=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.2.0,>=4.51.3
datasets!=4.0.*,!=4.1.0,<4.4.0,>=3.4.1
sentencepiece>=0.2.0
tqdm
psutil
wheel>=0.42.0
numpy
protobuf
huggingface_hub>=0.34.0
hf_transfer
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[triton]
sentence-transformers

[colab-no-deps]
accelerate>=0.34.1
trl!=0.19.0,<=0.24.0,>=0.18.2
peft>=0.18.0
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
protobuf

[colab-no-deps:("linux" in sys_platform or sys_platform == "win32") and (platform_machine == "AMD64" or platform_machine == "x86_64")]
xformers

[colab-torch211]
unsloth[huggingface]
bitsandbytes==0.45.5
unsloth[cu121onlytorch211]

[colab-torch220]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu121onlytorch220]

[conda]
unsloth[huggingface]

[cu118]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118only]

[cu118-ampere]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118only]
unsloth[flashattention]

[cu118-ampere-torch211]
unsloth[huggingface]
bitsandbytes==0.45.5
unsloth[cu118onlytorch211]
unsloth[flashattention]

[cu118-ampere-torch220]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch220]
unsloth[flashattention]

[cu118-ampere-torch230]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch230]
unsloth[flashattention]

[cu118-ampere-torch240]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch240]
unsloth[flashattention]

[cu118-ampere-torch250]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch250]
unsloth[flashattention]

[cu118-ampere-torch251]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch251]
unsloth[flashattention]

[cu118-ampere-torch260]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch260]
unsloth[flashattention]

[cu118-ampere-torch270]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch270]
unsloth[flashattention]

[cu118-ampere-torch271]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch271]
unsloth[flashattention]

[cu118-ampere-torch280]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch280]
unsloth[flashattention]

[cu118-torch211]
unsloth[huggingface]
bitsandbytes==0.45.5
unsloth[cu118onlytorch211]

[cu118-torch212]
unsloth[huggingface]
bitsandbytes==0.45.5
unsloth[cu118onlytorch212]

[cu118-torch220]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch220]

[cu118-torch230]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch230]

[cu118-torch240]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch240]

[cu118-torch250]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch250]

[cu118-torch251]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch251]

[cu118-torch260]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch260]

[cu118-torch270]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch270]

[cu118-torch271]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch271]

[cu118-torch280]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu118onlytorch280]

[cu121]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu121only]

[cu121-ampere]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu121only]
unsloth[flashattention]

[cu121-ampere-torch211]
unsloth[huggingface]
bitsandbytes==0.45.5
unsloth[cu121onlytorch211]
unsloth[flashattention]

[cu121-ampere-torch220]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu121onlytorch220]
unsloth[flashattention]

[cu121-ampere-torch230]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu121onlytorch230]
unsloth[flashattention]

[cu121-ampere-torch240]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu121onlytorch240]
unsloth[flashattention]

[cu121-ampere-torch250]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu121onlytorch250]
unsloth[flashattention]

[cu121-ampere-torch251]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu121onlytorch251]
unsloth[flashattention]

[cu121-torch211]
unsloth[huggingface]
bitsandbytes==0.45.5
unsloth[cu121onlytorch211]

[cu121-torch212]
unsloth[huggingface]
bitsandbytes==0.45.5
unsloth[cu121onlytorch212]

[cu121-torch220]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu121onlytorch220]

[cu121-torch230]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu121onlytorch230]

[cu121-torch240]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu121onlytorch240]

[cu121-torch250]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu121onlytorch250]

[cu121-torch251]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu121onlytorch251]

[cu124-ampere-torch240]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu124onlytorch240]
unsloth[flashattention]

[cu124-ampere-torch250]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu124onlytorch250]
unsloth[flashattention]

[cu124-ampere-torch251]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu124onlytorch251]
unsloth[flashattention]

[cu124-ampere-torch260]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu124onlytorch260]
unsloth[flashattention]

[cu124-torch240]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu124onlytorch240]

[cu124-torch250]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu124onlytorch250]

[cu124-torch251]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu124onlytorch251]

[cu124-torch260]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu124onlytorch260]

[cu126-ampere-torch2100]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu126onlytorch2100]

[cu126-ampere-torch260]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu126onlytorch260]
unsloth[flashattention]

[cu126-ampere-torch270]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu126onlytorch270]
unsloth[flashattention]

[cu126-ampere-torch271]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu126onlytorch271]
unsloth[flashattention]

[cu126-ampere-torch280]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu126onlytorch280]
unsloth[flashattention]

[cu126-ampere-torch290]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu126onlytorch290]

[cu126-ampere-torch291]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu126onlytorch291]

[cu126-torch2100]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu126onlytorch2100]

[cu126-torch260]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu126onlytorch260]

[cu126-torch270]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu126onlytorch270]

[cu126-torch271]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu126onlytorch271]

[cu126-torch280]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu126onlytorch280]

[cu126-torch290]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu126onlytorch290]

[cu126-torch291]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu126onlytorch291]

[cu128-ampere-torch2100]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu128onlytorch2100]

[cu128-ampere-torch270]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu128onlytorch270]
unsloth[flashattention]

[cu128-ampere-torch271]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu128onlytorch271]
unsloth[flashattention]

[cu128-ampere-torch280]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu128onlytorch280]
unsloth[flashattention]

[cu128-ampere-torch290]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu128onlytorch290]

[cu128-ampere-torch291]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu128onlytorch291]

[cu128-torch2100]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu128onlytorch2100]

[cu128-torch270]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu128onlytorch270]

[cu128-torch271]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu128onlytorch271]

[cu128-torch280]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu128onlytorch280]

[cu128-torch290]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu128onlytorch290]

[cu128-torch291]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu128onlytorch291]

[cu130-ampere-torch2100]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu130onlytorch2100]

[cu130-ampere-torch280]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu130onlytorch280]
unsloth[flashattention]

[cu130-ampere-torch290]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu130onlytorch290]

[cu130-ampere-torch291]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu130onlytorch291]

[cu130-torch2100]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu130onlytorch2100]

[cu130-torch280]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu130onlytorch280]

[cu130-torch290]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu130onlytorch290]

[cu130-torch291]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
unsloth[cu130onlytorch291]

[flashattention]

[flashattention:"linux" in sys_platform]
packaging
ninja
flash-attn>=2.6.3

[huggingface]
unsloth[huggingfacenotorch]
unsloth_zoo>=2026.3.2
torchvision
unsloth[triton]

[huggingfacenotorch]
wheel>=0.42.0
packaging
numpy
tqdm
psutil
tyro
protobuf
sentencepiece>=0.2.0
datasets!=4.0.*,!=4.1.0,<4.4.0,>=3.4.1
accelerate>=0.34.1
peft!=0.11.0,>=0.18.0
huggingface_hub>=0.34.0
hf_transfer
diffusers
transformers!=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.2.0,>=4.51.3
trl!=0.19.0,<=0.24.0,>=0.18.2
sentence-transformers

[intel]
unsloth[intelgputorch280]

[intel-gpu-torch210]
unsloth[intelgputorch210]

[kaggle]
unsloth[huggingface]

[kaggle-new]
unsloth[huggingface]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5

[triton]

[triton:"linux" in sys_platform]
triton>=3.0.0

[triton:sys_platform == "win32" and (platform_machine == "AMD64" or platform_machine == "x86_64")]
triton-windows

[windows]
unsloth[huggingface]

[windows:sys_platform == "win32"]
bitsandbytes!=0.46.0,!=0.48.0,>=0.45.5
xformers>=0.0.22.post7
