> 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 000 звёзд на GitHub, это набор инструментов для инженеров, которым нужен чистый, легко модифицируемый код обучения LLM без дополнительных уровней абстракции, как в HuggingFace Transformers.

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

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

***

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

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

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

***

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

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

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

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

***

## Порты

| Порт | Сервис                  | Примечания                           |
| ---- | ----------------------- | ------------------------------------ |
| 22   | SSH                     | Доступ к терминалу и передача файлов |
| 8000 | LitGPT Inference Server | 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 Marketplace](https://clore.ai/marketplace)
2. Отфильтруйте по **VRAM ≥ 24 ГБ** (RTX 3090 или лучше)
3. Выберите **PyTorch** или **CUDA 12.1** базовый образ
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-токен для моделей с доступом по запросу)
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 your-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 на 10K примерах занимает \~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
# Запустить inference-сервер
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

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.25/ч за две 3090.

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

***

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

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

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

# Включите gradient checkpointing
--train.gradient_checkpointing true

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

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

### Скачивание не удалось / HuggingFace 401

```bash
# Установите HF-токен
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('All lines valid')
"

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

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

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

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

# Откройте брандмауэр
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 Models**: <https://huggingface.co/models>
* **Discord**: <https://discord.gg/lightning-ai>
* **Clore.ai Marketplace**: <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.
