Metadata-Version: 2.4
Name: langtrain-ai
Version: 1.0.2
Summary: The unified Python SDK for training, aligning, and deploying LLMs — text and vision.
Author-email: Pritesh Raj <priteshraj41@gmail.com>
Maintainer-email: Langtrain AI <contact@langtrain.ai>
License-Expression: MIT
Project-URL: Homepage, https://langtrain.xyz
Project-URL: Documentation, https://langtrain.xyz/docs
Project-URL: Repository, https://github.com/langtrain-ai/langtrain-py
Project-URL: Issues, https://github.com/langtrain-ai/langtrain-py/issues
Project-URL: PyPI, https://pypi.org/project/langtrain-ai
Keywords: llm,fine-tuning,LoRA,QLoRA,AdaptiveRank,RLHF,DPO,GRPO,PPO,vision-language-model,VLM,dataset-intelligence,TurboQuant,langtrain,langtune,langvision,transformers,peft,mlops
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
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: requests>=2.28.0
Requires-Dist: tqdm>=4.62.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0.0
Requires-Dist: click>=8.0.0
Requires-Dist: numpy>=1.21.0
Provides-Extra: train
Requires-Dist: torch>=2.0.0; extra == "train"
Requires-Dist: transformers>=4.40.0; extra == "train"
Requires-Dist: peft>=0.10.0; extra == "train"
Requires-Dist: datasets>=2.14.0; extra == "train"
Requires-Dist: accelerate>=0.28.0; extra == "train"
Requires-Dist: bitsandbytes>=0.43.0; extra == "train"
Requires-Dist: trl>=0.8.0; extra == "train"
Requires-Dist: scipy>=1.10.0; extra == "train"
Requires-Dist: scikit-learn>=1.3.0; extra == "train"
Requires-Dist: pandas>=2.0.0; extra == "train"
Requires-Dist: pyarrow>=12.0.0; extra == "train"
Requires-Dist: openpyxl>=3.1.0; extra == "train"
Provides-Extra: vision
Requires-Dist: torchvision>=0.15.0; extra == "vision"
Requires-Dist: Pillow>=10.0.0; extra == "vision"
Requires-Dist: langvision>=0.1.57; extra == "vision"
Provides-Extra: kernels
Requires-Dist: triton>=2.1.0; extra == "kernels"
Requires-Dist: flash-attn>=2.3.0; extra == "kernels"
Provides-Extra: all
Requires-Dist: langtrain[kernels,train,vision]; extra == "all"
Requires-Dist: langtune>=0.1.41; extra == "all"
Requires-Dist: langvision>=0.1.57; extra == "all"
Dynamic: license-file

<div align="center">

<img src="https://raw.githubusercontent.com/langtrain-ai/langtrain-py/main/assets/logo.svg" alt="Langtrain" width="420" />

<h3>The unified Python SDK for training, aligning, and deploying LLMs</h3>

<p>
  <a href="https://pypi.org/project/langtrain-ai/"><img src="https://img.shields.io/pypi/v/langtrain-ai.svg?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI" /></a>
  <a href="https://github.com/langtrain-ai/langtrain-py/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue?style=for-the-badge" alt="License" /></a>
  <a href="https://langtrain.xyz/docs"><img src="https://img.shields.io/badge/docs-langtrain.xyz-green?style=for-the-badge" alt="Docs" /></a>
</p>

</div>

---

```bash
pip install langtrain-ai              # cloud API + dataset intelligence
pip install langtrain-ai[train]       # + local GPU training (text LLMs)
pip install langtrain-ai[vision]      # + vision LLMs (LLaVA, Qwen-VL, …)
pip install langtrain-ai[all]         # everything
```

## What's inside

| Module | What it does |
|---|---|
| `FastLanguageModel` | Unsloth-style API for text LLMs — local or cloud |
| `FastVisionModel` | Same API for vision LLMs (LLaVA, Qwen-VL, InternVL, …) |
| `AdaptiveRankTrainer` | Novel algorithm: SpectralLoRA + dynamic rank + TurboQuant |
| `DatasetIntelligence` | Drop any file → auto model + training config |
| `LangtrainClient` | Cloud API: fine-tune, deploy, chat, GPU, models |
| `lt` CLI | `lt login`, `lt fine-tune`, `lt analyze`, `lt gpu` |

## Quick start

### Drop any dataset — get a training config

```python
from langtrain import DatasetIntelligence

report = DatasetIntelligence.analyze("my_data.jsonl")
report.print_summary()
# ┌─────────────────────────────────────────────┐
# │  Task type    instruction  (87% confidence) │
# │  Domain       medical                       │
# │  Samples      2,400                         │
# │  Model        meta-llama/Llama-3.1-8B       │
# │  Method       adaptive_rank  rank=16        │
# │  TurboQuant   ✓ polar_quant+qjl             │
# └─────────────────────────────────────────────┘
```

### Local training with AdaptiveRank

```python
from langtrain import FastLanguageModel, AdaptiveRankConfig

config = AdaptiveRankConfig(
    initial_rank=16,
    max_rank=64,           # grows/shrinks based on gradient variance
    use_turboquant_kv=True # PolarQuant 3-bit KV cache
)

model, tokenizer = FastLanguageModel.from_pretrained(
    "meta-llama/Llama-3.1-8B",
    load_in_4bit=True,
)
model = FastLanguageModel.get_peft_model(model, method="adaptive_rank", config=config)
FastLanguageModel.train(model, tokenizer, dataset, output_dir="./output")
```

### Cloud API

```python
from langtrain import LangtrainClient

client = LangtrainClient(api_key="lt_...")

# Check account + GPU options
print(client.me())
print(client.gpu.available())

# Fine-tune
job = client.fine_tune(
    model="meta-llama/Llama-3.1-8B",
    dataset_id="ds_xyz",
    method="adaptive_rank",
)
for step in job.stream():
    print(step)
```

### CLI

```bash
lt login                              # authenticate
lt whoami                             # account + GPU availability
lt gpu                                # list GPU options
lt analyze my_data.jsonl              # dataset intelligence
lt fine-tune llama-3.1-8b data.jsonl  # launch training
lt jobs                               # list jobs
lt models                             # list models
```

## Why Langtrain vs Unsloth?

| | Unsloth | **Langtrain** |
|---|---|---|
| Text LLMs | ✓ | ✓ FastLanguageModel |
| Vision LLMs | ✗ | ✓ FastVisionModel |
| Training algorithm | vanilla QLoRA | **AdaptiveRank** (SpectralLoRA + dynamic rank) |
| Dataset analysis | ✗ | ✓ **DatasetIntelligence** (7-pass, auto model pick) |
| KV cache compression | ✗ | ✓ **TurboQuant** (6× memory, 8× speed) |
| Cloud training | ✗ | ✓ langtrain-server (A100/H100) |
| RL alignment | ✗ | ✓ DPO / GRPO / PPO / Constitutional AI |
| CLI | ✗ | ✓ `lt fine-tune`, `lt analyze`, `lt gpu` |

---

Made by [Langtrain AI](https://langtrain.xyz) · [Docs](https://langtrain.xyz/docs) · [Discord](https://discord.gg/langtrain)
