Metadata-Version: 2.4
Name: aitraining
Version: 0.0.4
Summary: Advanced Machine Learning Training Platform
Author-email: Andrew Correa <andrew@monostate.ai>
License: Apache 2.0
Project-URL: Homepage, https://github.com/monostate/aitraining
Project-URL: Repository, https://github.com/monostate/aitraining
Project-URL: Documentation, https://github.com/monostate/aitraining#readme
Project-URL: Issues, https://github.com/monostate/aitraining/issues
Keywords: automl,autonlp,autotrain,huggingface,machine learning,deep learning,fine-tuning,llm
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: torch>=1.10.0
Requires-Dist: transformers==4.57.1
Requires-Dist: accelerate==1.11.0
Requires-Dist: peft==0.14.0
Requires-Dist: trl==0.13.0
Requires-Dist: datasets[vision]~=3.2.0
Requires-Dist: tensorboard==2.18.0
Requires-Dist: scikit-learn==1.6.0
Requires-Dist: evaluate==0.4.3
Requires-Dist: sentence-transformers==3.3.1
Requires-Dist: albumentations==1.4.23
Requires-Dist: Pillow==11.0.0
Requires-Dist: pandas==2.2.3
Requires-Dist: numpy
Requires-Dist: sentencepiece>=0.1.99
Requires-Dist: tiktoken==0.8.0
Requires-Dist: nltk==3.9.1
Requires-Dist: sacremoses==0.1.1
Requires-Dist: seqeval==1.2.2
Requires-Dist: ipadic==1.0.0
Requires-Dist: timm==1.0.12
Requires-Dist: torchmetrics==1.6.0
Requires-Dist: faster-coco-eval==1.7.0
Requires-Dist: pycocotools==2.0.8
Requires-Dist: optuna==4.1.0
Requires-Dist: xgboost==2.1.3
Requires-Dist: huggingface_hub==0.34.4
Requires-Dist: hf-transfer
Requires-Dist: fastapi==0.115.6
Requires-Dist: starlette
Requires-Dist: uvicorn==0.34.0
Requires-Dist: python-multipart==0.0.20
Requires-Dist: werkzeug==3.1.3
Requires-Dist: pyngrok==7.2.1
Requires-Dist: authlib==1.4.0
Requires-Dist: itsdangerous==2.2.0
Requires-Dist: httpx==0.28.1
Requires-Dist: loguru==0.7.3
Requires-Dist: requests==2.32.3
Requires-Dist: pydantic==2.10.4
Requires-Dist: pyyaml==6.0.2
Requires-Dist: tqdm==4.67.1
Requires-Dist: joblib==1.4.2
Requires-Dist: einops==0.8.0
Requires-Dist: packaging==24.2
Requires-Dist: cryptography==44.0.0
Requires-Dist: nvitop==1.3.2
Requires-Dist: py7zr==0.22.0
Requires-Dist: safetensors
Requires-Dist: psutil
Requires-Dist: diffusers
Requires-Dist: ipywidgets
Requires-Dist: wandb>=0.23.0
Requires-Dist: textual==0.86.1
Requires-Dist: rich==13.9.4
Requires-Dist: rouge_score==0.1.2
Requires-Dist: jiwer==3.0.5
Requires-Dist: bitsandbytes==0.42.0; sys_platform == "linux"
Provides-Extra: dev
Requires-Dist: black; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest>=7.0.0; extra == "test"
Requires-Dist: pytest-asyncio; extra == "test"
Requires-Dist: playwright>=1.40.0; extra == "test"
Requires-Dist: httpx>=0.25.0; extra == "test"
Provides-Extra: quality
Requires-Dist: black; extra == "quality"
Requires-Dist: isort; extra == "quality"
Requires-Dist: flake8; extra == "quality"
Provides-Extra: docs
Requires-Dist: recommonmark; extra == "docs"
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-markdown-tables; extra == "docs"
Requires-Dist: sphinx-rtd-theme; extra == "docs"
Requires-Dist: sphinx-copybutton; extra == "docs"
Dynamic: license-file

<p align="center">
  <img src="docs/images/terminal-wizard.png" alt="AITraining" width="700">
</p>

<p align="center">
  <a href="https://pypi.org/project/aitraining/"><img src="https://img.shields.io/pypi/v/aitraining.svg" alt="PyPI version"></a>
  <a href="https://pypi.org/project/aitraining/"><img src="https://img.shields.io/pypi/pyversions/aitraining.svg" alt="Python versions"></a>
  <a href="https://github.com/monostate/aitraining/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="License"></a>
</p>

<p align="center">
  <b>Train state-of-the-art ML models with minimal code</b>
</p>

---

AITraining is an advanced machine learning training platform built on top of [AutoTrain Advanced](https://github.com/huggingface/autotrain-advanced). It provides a streamlined interface for fine-tuning LLMs, vision models, and more.

## Features

- **LLM Fine-tuning**: SFT, DPO, ORPO, PPO, Reward modeling, Knowledge distillation
- **Vision**: Image classification, regression, object detection, VLM training
- **NLP**: Text classification, token classification, sequence-to-sequence, QA
- **Tabular**: Classification and regression on structured data
- **Interactive CLI**: Step-by-step wizard and TUI for configuration
- **Hyperparameter Sweeps**: Automated optimization with Optuna

## Installation

```bash
pip install aitraining
```

Requirements: Python >= 3.10, PyTorch

## Quick Start

### Interactive Wizard

```bash
aitraining wizard
```

### Config File

```bash
aitraining --config config.yaml
```

### Python API

```python
from autotrain.trainers.clm import train
from autotrain.trainers.clm.params import LLMTrainingParams

config = LLMTrainingParams(
    model="meta-llama/Llama-3.2-1B",
    data_path="your-dataset",
    trainer="sft",
    epochs=3,
    batch_size=4,
    lr=2e-5,
    peft=True,
)

train(config)
```

## Supported Tasks

| Task | Trainers | Status |
|------|----------|--------|
| LLM Fine-tuning | SFT, DPO, ORPO, PPO, Reward, Distillation | Stable |
| Text Classification | Single/Multi-label | Stable |
| Token Classification | NER, POS tagging | Stable |
| Sequence-to-Sequence | Translation, Summarization | Stable |
| Image Classification | Single/Multi-label | Stable |
| Object Detection | YOLO, DETR | Stable |
| VLM Training | Vision-Language Models | Beta |
| Tabular | XGBoost, sklearn | Stable |

## Comparison

| Feature | AutoTrain | AITraining | Tinker |
|---------|-----------|------------|--------|
| SFT/DPO/ORPO | Yes | Yes | Yes |
| PPO Training | Basic | Enhanced | Advanced |
| Reward Modeling | Yes | Yes | No |
| Knowledge Distillation | No | Yes | Yes |
| Hyperparameter Sweeps | No | Yes (Optuna) | Manual |
| Interactive CLI | No | Yes | No |
| TUI Interface | No | Yes | No |
| Vision Tasks | Yes | Yes | No |
| Tabular Tasks | Yes | Yes | No |
| Apple Silicon | Limited | Yes | No |
| Quantization (int4/int8) | Yes | Yes | No |

## Configuration Example

```yaml
task: llm-sft
base_model: meta-llama/Llama-3.2-1B
project_name: my-finetune

data:
  path: your-dataset
  train_split: train
  chat_template: tokenizer
  column_mapping:
    text_column: messages

params:
  epochs: 3
  batch_size: 4
  lr: 2e-5
  peft: true
  quantization: int4
  mixed_precision: bf16
```

## Documentation

- [Dataset Formats](docs/dataset_formats.md)
- [Trainer Reference](docs/trainers/README.md)
- [CLI Guide](docs/cli/README.md)
- [Python API](docs/api/PYTHON_API.md)

## License

Apache 2.0 - See [LICENSE](LICENSE) for details.

Based on [AutoTrain Advanced](https://github.com/huggingface/autotrain-advanced) by Hugging Face.

---

<p align="center">
  <a href="https://monostate.ai">Monostate AI</a>
</p>
