> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-ru/obuchenie/litgpt.md).

# LitGPT

**LitGPT** — это высокопроизводительная библиотека для предварительного обучения, дообучения и развёртывания 20+ больших языковых моделей, построенная на PyTorch Lightning. С более чем 12 тыс. звёзд на GitHub это основной инструмент для инженеров, которым нужен чистый, удобный для модификации код обучения LLM без накладных расходов абстракций HuggingFace Transformers.

Каждая модель в LitGPT — это примерно 1000 строк чистого PyTorch — никаких цепочек наследования в 10 уровней, никакой магии. Вы можете за один вечер прочитать реализацию Llama 3 целиком и уверенно её модифицировать.

{% hint style="success" %}
Все примеры можно запускать на GPU-серверах, арендованных через [маркетплейс CLORE.AI](https://clore.ai/marketplace).
{% endhint %}

***

## Что такое LitGPT?

LitGPT предоставляет готовые к использованию в продакшене реализации передовых LLM с единым интерфейсом обучения:

* **20+ поддерживаемых моделей** — Llama 3, Gemma 2, Mistral, Phi-3, Falcon, StableLM и другие
* **Предварительное обучение с нуля** — полное предобучение с Flash Attention, FSDP и чекпоинтингом градиентов
* **Эффективное дообучение** — полное дообучение, LoRA, QLoRA и методы Adapter
* **Обслуживание с уверенностью** — встроенный сервер инференса с квантизацией
* **Поддержка нескольких GPU** — DDP, FSDP, тензорный параллелизм из коробки
* **Экономия памяти** — 4-битная квантизация, чекпоинтинг градиентов, чекпоинтинг активаций

***

## Требования к серверу

| Компонент | Минимум          | Рекомендуется     |
| --------- | ---------------- | ----------------- |
| GPU       | RTX 3090 (24 GB) | A100 80 GB / H100 |
| VRAM      | 16 ГБ (7B LoRA)  | 80 ГБ+ (70B full) |
| ОЗУ       | 32 ГБ            | 64 GB+            |
| CPU       | 8 ядер           | 16+ ядер          |
| Хранилище | 100 ГБ           | 500 ГБ+           |
| ОС        | Ubuntu 20.04+    | Ubuntu 22.04      |
| Python    | 3.10+            | 3.11              |
| CUDA      | 12.8+            | 12.8+             |

### Требования к VRAM по задачам

| Задача            | Модель      | VRAM              |
| ----------------- | ----------- | ----------------- |
| Инференс (4-бит)  | Llama-3 8B  | \~6 ГБ            |
| Дообучение LoRA   | Llama-3 8B  | \~16 ГБ           |
| Полное дообучение | Llama-3 8B  | \~80 GB           |
| Дообучение LoRA   | Llama-3 70B | \~48 ГБ (2×A100)  |
| Полное дообучение | Llama-3 70B | \~640 ГБ (8×A100) |
| Дообучение QLoRA  | Llama-3 8B  | \~8 ГБ            |

***

## Порты

| Порт | Сервис                  | Примечания                           |
| ---- | ----------------------- | ------------------------------------ |
| 22   | SSH                     | Доступ к терминалу и передача файлов |
| 8000 | Сервер инференса LitGPT | REST API для обслуживания модели     |

***

## Быстрый старт с Docker

```bash
# Получить официальный образ LitGPT
docker pull pytorchlightning/litgpt:latest

# Запустить интерактивный контейнер с GPU
docker run -it --gpus all \\
  -p 8000:8000 \\
  -v $(pwd)/checkpoints:/checkpoints \\
  -v $(pwd)/data:/data \\
  pytorchlightning/litgpt:latest \\
  bash

# Или выполнить конкретную команду напрямую
docker run --gpus all \\
  -v $(pwd)/checkpoints:/checkpoints \\
  pytorchlightning/litgpt:latest \\
  litgpt download --repo_id meta-llama/Llama-3.2-3B-Instruct
```

***

## Установка на Clore.ai

### Шаг 1 — Арендуйте сервер

1. Перейдите на [Маркетплейс Clore.ai](https://clore.ai/marketplace)
2. Фильтруйте по **VRAM ≥ 24 GB** (RTX 3090 или лучше)
3. Выберите **PyTorch** или **CUDA 12.8** базовый образ
4. Открыть порты **22** и **8000** в настройках вашего заказа
5. Выберите **хранилище ≥ 200 ГБ** для весов модели

### Шаг 2 — Подключитесь по SSH

```bash
ssh root@<server-ip> -p <ssh-port>
```

### Шаг 3 — Установите LitGPT

```bash
# Установить через pip (рекомендуется)
pip install litgpt

# Со всеми дополнениями (квантизация, сервер и т. д.)
pip install 'litgpt[all]'

# Или установить из исходников для получения последних возможностей
git clone https://github.com/Lightning-AI/litgpt.git
cd litgpt
pip install -e '.[all]'
```

### Шаг 4 — Проверка установки

```bash
litgpt --help
```

Ожидаемый вывод:

```
Использование: litgpt [OPTIONS] COMMAND [ARGS]...
  
Команды:
  chat       Общаться с моделью
  convert    Конвертировать веса модели
  download   Скачать веса модели
  evaluate   Оценить модель
  finetune   Дообучить модель
  generate   Генерировать текст
  pretrain   Предобучить модель
  serve      Обслуживать модель для инференса
```

***

## Загрузка моделей

LitGPT загружает модели с Hugging Face:

```bash
# Список доступных моделей
litgpt download --list

# Скачать Llama 3.2 3B (для закрытых моделей требуется HF token)
litgpt download \\
  --repo_id meta-llama/Llama-3.2-3B-Instruct \\
  --checkpoint_dir checkpoints/

# Скачать Mistral 7B (открытый доступ)
litgpt download \\
  --repo_id mistralai/Mistral-7B-Instruct-v0.3

# Скачать Gemma 2 2B
litgpt download \\
  --repo_id google/gemma-2-2b-it \\
  --access_token ваш-hf-token

# Скачать Phi-3 (маленькая, но мощная)
litgpt download \\
  --repo_id microsoft/Phi-3-mini-4k-instruct
```

### Установите токен HuggingFace

```bash
# Для закрытых моделей (Llama, Gemma)
export HF_TOKEN=hf_your-token-here

# Или авторизуйтесь через CLI
pip install huggingface_hub
huggingface-cli login
```

***

## Инференс (чат и генерация)

```bash
# Интерактивный чат
litgpt chat \\
  --checkpoint_dir checkpoints/meta-llama/Llama-3.2-3B-Instruct

# Одиночная генерация
litgpt generate \\
  --prompt "Объясните GPU-вычисления простыми словами" \\
  --checkpoint_dir checkpoints/meta-llama/Llama-3.2-3B-Instruct \\
  --max_new_tokens 200

# С температурой и сэмплированием
litgpt generate \\
  --prompt "Напиши функцию Python для сортировки списка" \\
  --checkpoint_dir checkpoints/mistralai/Mistral-7B-Instruct-v0.3 \\
  --temperature 0.7 \\
  --top_p 0.9 \\
  --max_new_tokens 500
```

***

## Дообучение

### Дообучение LoRA (рекомендуется)

LoRA обучает небольшой набор параметров адаптера (обычно 0,1–1% от всех весов), в то время как базовая модель остаётся замороженной. LoRA для Llama 3 8B на 10 тыс. примеров занимает примерно 2 часа на RTX 3090 с `r=16`.

```bash
# Подготовьте ваш датасет
# Формат: JSON lines с {"instruction": "...", "input": "...", "output": "..."}
cat > data/train.json << 'EOF'
{"instruction": "Что такое облачные вычисления на GPU?", "input": "", "output": "Облачные вычисления на GPU предоставляют доступ к аппаратному обеспечению GPU по запросу через интернет, позволяя обучать и выполнять инференс ИИ без владения физическим оборудованием."}
{"instruction": "Как арендовать GPU на Clore.ai?", "input": "", "output": "Перейдите на clore.ai/marketplace, отфильтруйте по характеристикам GPU, выберите сервер, настройте порты и нажмите аренда. Доступ по SSH предоставляется сразу."}
EOF

# Дообучение с LoRA
litgpt finetune lora \\
  --checkpoint_dir checkpoints/meta-llama/Llama-3.2-3B-Instruct \\
  --data JSON \\
  --data.json_path data/train.json \\
  --train.epochs 3 \\
  --train.micro_batch_size 4 \\
  --lora_r 8 \\
  --lora_alpha 16 \\
  --out_dir out/llama-lora-finetuned

# Следите за обучением
# LitGPT выводит логи с loss, learning rate и ETA
```

### QLoRA (4-бит + LoRA)

Используйте QLoRA для дообучения больших моделей при ограниченном VRAM. Llama 3 8B помещается на одной RTX 3090 с 24 ГБ:

```bash
litgpt finetune lora \\
  --checkpoint_dir checkpoints/meta-llama/Llama-3.2-8B-Instruct \\
  --quantize bnb.nf4 \\
  --train.epochs 3 \\
  --train.micro_batch_size 2 \\
  --lora_r 16 \
  --lora_alpha 32 \\
  --out_dir out/llama-qlora
```

### Полное дообучение

```bash
litgpt finetune full \\
  --checkpoint_dir checkpoints/meta-llama/Llama-3.2-3B-Instruct \\
  --data JSON \\
  --data.json_path data/train.json \\
  --train.epochs 2 \\
  --train.micro_batch_size 2 \\
  --train.accumulate_gradients 8 \\
  --out_dir out/llama-full-finetuned
```

### Многопроцессорное обучение на нескольких GPU

```bash
# Используйте FSDP на нескольких GPU
litgpt finetune full \\
  --checkpoint_dir checkpoints/meta-llama/Llama-3.2-8B-Instruct \\
  --devices 4 \\
  --strategy fsdp \\
  --train.epochs 3 \\
  --out_dir out/llama-multigpu
```

***

## Обслуживание моделей (REST API)

```bash
# Запустить сервер инференса
litgpt serve \\
  --checkpoint_dir checkpoints/meta-llama/Llama-3.2-3B-Instruct \\
  --host 0.0.0.0 \
  --port 8000

# Проверить API
curl -X POST http://localhost:8000/predict \\
  -H "Content-Type: application/json" \\
  -d '{
    "prompt": "Какова столица Франции?",
    "max_new_tokens": 100,
    "temperature": 0.7
  }'
```

### Клиент Python

```python
import requests

response = requests.post(
    "http://<server-ip>:8000/predict",
    json={
        "prompt": "Объясни обучение с подкреплением",
        "max_new_tokens": 500,
        "temperature": 0.8,
        "top_p": 0.9,
    }
)
print(response.json()["output"])
```

***

## Предварительное обучение с нуля

Для обучения собственной LLM с нуля на ваших данных:

```bash
# Подготовьте данные для предобучения (токенизированные и разбитые на фрагменты)
python scripts/prepare_redpajama.py \\
  --source_path /data/raw_text \\
  --checkpoint_dir checkpoints/meta-llama/Llama-3.2-3B-Instruct \\
  --destination_path /data/tokenized

# Начать предобучение
litgpt pretrain \\
  --model_name Llama-3.2 \\
  --data /data/tokenized \\
  --train.micro_batch_size 4 \\
  --train.max_tokens 10_000_000_000 \\
  --devices 8 \\
  --strategy fsdp \\
  --out_dir out/my-pretrained-llm
```

***

## Конвертация и экспорт моделей

```bash
# Объедините веса LoRA с базовой моделью
litgpt merge_lora \\
  --checkpoint_dir out/llama-lora-finetuned

# Конвертировать в формат HuggingFace для распространения
litgpt convert to_hf \\
  --checkpoint_dir out/llama-lora-finetuned/final \\
  --output_dir hf_model/

# Экспорт в формат GGUF (для Ollama/LlamaCpp)
# Используйте скрипт конвертации llama.cpp после экспорта HF
python llama.cpp/convert.py hf_model/ --outfile model.gguf
```

***

## Оценка моделей

```bash
# Запустить бенчмарк MMLU
litgpt evaluate \\
  --checkpoint_dir checkpoints/meta-llama/Llama-3.2-3B-Instruct \\
  --tasks mmlu \\
  --num_fewshot 5

# Запустить несколько бенчмарков
litgpt evaluate \\
  --checkpoint_dir out/llama-lora-finetuned/final \\
  --tasks "mmlu,hellaswag,truthfulqa_mc"
```

***

## Рекомендации по GPU для Clore.ai

{% hint style="warning" %}
**Многопроцессорные конфигурации с GPU класса 80GB не представлены на маркетплейсе Clore.ai.** Самые крупные доступные сейчас машины — это 4× RTX PRO 6000 Blackwell (по 96GB, всего 380GB) и 8–11× RTX 5090 (по 32GB). Ёмкость A100 / H200 / B200 продаётся как [голое железо](https://clore.ai/bare-metal) по запросу. Проверьте [Цены и доступность GPU](/guides/guides_v2-ru/nachalo-raboty/pricing.md) перед выбором размера развёртывания.
{% endhint %}

LitGPT охватывает три разные рабочие нагрузки — инференс, дообучение LoRA и полное предобучение — и для каждой требуются разные GPU-ресурсы.

| Задача                                            | GPU            | VRAM  | Примечания                                                           |
| ------------------------------------------------- | -------------- | ----- | -------------------------------------------------------------------- |
| Инференс / чат (модели 7–8B)                      | **RTX 3090**   | 24 ГБ | Вмещает Llama 3 8B в bf16; генерация \~95 ток/с                      |
| Дообучение LoRA (модели 7–8B)                     | **RTX 3090**   | 24 ГБ | Бюджетный вариант; QLoRA удерживает VRAM ниже 10 ГБ                  |
| Дообучение LoRA (7–8B), быстрая итерация          | **RTX 4090**   | 24 ГБ | \~35% быстрее, чем 3090; сокращает задачу на 2 часа до \~1,4 часа    |
| Полное дообучение (7B) или QLoRA (70B)            | **A100 40 ГБ** | 40 ГБ | 40 ГБ хватает для 7B в полной точности или 70B в 4-битном режиме     |
| Полное дообучение (13B+) или запуски предобучения | **A100 80 ГБ** | 80 ГБ | Максимальная пропускная способность; \~2800 ток/с при обучении на 8B |

**Рекомендуется большинству пользователей:** Пара RTX 3090 (2×24 ГБ = 48 ГБ эффективной памяти с FSDP). Подходит для QLoRA на моделях 70B или для полного дообучения на моделях 7B с тензорным параллелизмом. Стоимость на Clore.ai: $0,07–0,21/ч за две 3090.

**Для предобучения или дообучения моделей >70B:** Используйте 4×A100 80GB с FSDP. Интеграция FSDP в LitGPT прозрачно обрабатывает шардинг — просто передайте `--devices 4 --strategy fsdp`.

***

## Устранение неполадок

### Недостаточно памяти CUDA

```bash
# Уменьшите размер батча
--train.micro_batch_size 1

# Включите checkpointing градиентов
--train.gradient_checkpointing true

# Используйте QLoRA вместо LoRA
--quantize bnb.nf4

# Проверьте память GPU
nvidia-smi
```

### Загрузка не удалась / HuggingFace 401

```bash
# Установите HF token
export HF_TOKEN=hf_your-token-here
huggingface-cli login

# Или передайте напрямую
litgpt download \\
  --repo_id meta-llama/Llama-3.2-3B-Instruct \\
  --access_token hf_your-token
```

### Loss обучения не уменьшается

```bash
# Проверьте формат данных — должен быть корректный JSON Lines
python -c "
import json
with open('data/train.json') as f:
    for i, line in enumerate(f):
        json.loads(line)
        if i < 3: print(f'Line {i}: OK')
print('Все строки корректны')
"

# Уменьшите скорость обучения
--train.lr 1e-5  # По умолчанию для небольших датасетов часто слишком высокое значение

# Проверьте размер данных — для LoRA нужно как минимум 100-1000 примеров
wc -l data/train.json
```

### Порт сервера 8000 недоступен

```bash
# Проверьте, что сервер слушает порт
ss -tlnp | grep 8000

# Откройте firewall
ufw allow 8000/tcp

# Перезапустите сервер с явным указанием хоста
litgpt serve \\
  --checkpoint_dir checkpoints/... \\
  --host 0.0.0.0 \
  --port 8000
```

### Обучение на нескольких GPU зависает

```bash
# Проверьте подключение NCCL
python -c "import torch; print(torch.cuda.device_count())"

# Попробуйте DDP вместо FSDP для небольших моделей
--strategy ddp

# Установите переменные окружения NCCL
export NCCL_DEBUG=INFO
export NCCL_IB_DISABLE=1  # Если InfiniBand недоступен
```

***

## Полезные ссылки

* **GitHub**: <https://github.com/Lightning-AI/litgpt> ⭐ 12K+
* **Документация**: <https://lightning.ai/docs/litgpt>
* **PyTorch Lightning**: <https://lightning.ai>
* **Модели HuggingFace**: <https://huggingface.co/models>
* **Discord**: <https://discord.gg/lightning-ai>
* **Маркетплейс Clore.ai**: <https://clore.ai/marketplace>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-ru/obuchenie/litgpt.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
