# Llama 4 (Scout и Maverick)

Llama 4 от Meta, выпущенная в апреле 2025 года, обозначает фундаментальный сдвиг к **архитектуре Mixture of Experts (MoE)** вместо активации всех параметров для каждого токена Llama 4 направляет каждый токен к специализированным подсетям «экспертов» — обеспечивая передовую производительность при доле вычислительных затрат. Доступны две модели с открытыми весами: **Scout** (идеально для одного GPU) и **Maverick** (мощная многопроцессорная модель).

## Ключевые особенности

* **Архитектура MoE**: только 17B параметров активны на токен (из 109B/400B всего)
* **Огромные контекстные окна**: Scout поддерживает 10M токенов, Maverick поддерживает 1M токенов
* **Нативно мультимодальная**: понимает и текст, и изображения «из коробки»
* **Две модели**: Scout (16 экспертов, дружелюбна к одному GPU) и Maverick (128 экспертов, для нескольких GPU)
* **Конкурентная производительность**: Scout соответствует Gemma 3 27B; Maverick конкурирует с моделями класса GPT-4o
* **Открытые веса**: Лицензия Llama Community (бесплатно для большинства коммерческих применений)

## Варианты моделей

| Модель       | Всего параметров | Активные параметры | Эксперты | Контекст | Мин. VRAM (Q4) | Мин. VRAM (FP16) |
| ------------ | ---------------- | ------------------ | -------- | -------- | -------------- | ---------------- |
| **Scout**    | 109B             | 17B                | 16       | 10M      | 12GB           | 80GB             |
| **Maverick** | 400B             | 17B                | 128      | 1M       | 48GB (мульти)  | 320GB (мульти)   |

## Требования

| Компонент | Scout (Q4)  | Scout (FP16) | Maverick (Q4) |
| --------- | ----------- | ------------ | ------------- |
| GPU       | 1× RTX 4090 | 1× H100      | 4× RTX 4090   |
| VRAM      | 24 ГБ       | 80GB         | 4×24GB        |
| ОЗУ       | 32GB        | 64GB         | 128GB         |
| Диск      | 50GB        | 120GB        | 250GB         |
| CUDA      | 11.8+       | 12.0+        | 12.0+         |

**Рекомендуемый GPU на Clore.ai**: RTX 4090 24GB (\~$0.5–2/день) для Scout — лучшее соотношение цены и качества

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

Самый быстрый способ запустить Llama 4:

```bash
# Установите Ollama
curl -fsSL https://ollama.com/install.sh | sh

# Запустить Scout (квантизирован, ~12GB VRAM)
ollama run llama4-scout

# Для большего контекста (требует больше VRAM)
ollama run llama4-scout --ctx-size 32768
```

### Ollama как сервер API

```bash
# Запустить сервер в фоновом режиме
ollama serve &

# Загрузить модель
ollama pull llama4-scout

# Запрос через API, совместимое с OpenAI
curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama4-scout",
    "messages": [{"role": "user", "content": "Объясни архитектуру MoE в 3 предложениях"}]
  }'
```

## Настройка vLLM (Production)

Для производственных нагрузок с более высоким пропускным способностью:

```bash
# Установите vLLM
pip install vllm

# Запустить Scout на одном GPU (квантизирован)
vllm serve meta-llama/Llama-4-Scout-17B-16E-Instruct \
  --max-model-len 32768 \
  --gpu-memory-utilization 0.90

# Запустить Scout на 2 GPU (большой контекст)
vllm serve meta-llama/Llama-4-Scout-17B-16E-Instruct \
  --tensor-parallel-size 2 \
  --max-model-len 128000 \
  --gpu-memory-utilization 0.90

# Запустить Maverick на 4 GPU
vllm serve meta-llama/Llama-4-Maverick-17B-128E-Instruct \
  --tensor-parallel-size 4 \
  --max-model-len 65536
```

### Запрос к vLLM серверу

```python
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="dummy")

response = client.chat.completions.create(
    model="meta-llama/Llama-4-Scout-17B-16E-Instruct",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Напишите функцию на Python для расчёта чисел Фибоначчи"}
    ],
    temperature=0.7,
    max_tokens=1024
)
print(response.choices[0].message.content)
```

## HuggingFace Transformers

```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "meta-llama/Llama-4-Scout-17B-16E-Instruct"

tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.bfloat16,
    device_map="auto",
    load_in_4bit=True  # квантизация до 4 бит для 24GB GPU
)

messages = [
    {"role": "system", "content": "Вы — полезный помощник по программированию."},
    {"role": "user", "content": "Напишите REST API с FastAPI для управления списком задач (todo)"}
]

input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)
output = model.generate(input_ids, max_new_tokens=2048, temperature=0.7, do_sample=True)
print(tokenizer.decode(output[0][input_ids.shape[-1]:], skip_special_tokens=True))
```

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

```bash
# Используя Docker-образ vLLM
docker run --gpus all -p 8000:8000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  vllm/vllm-openai:latest \
  --model meta-llama/Llama-4-Scout-17B-16E-Instruct \
  --max-model-len 32768
```

## Почему MoE важна на Clore.ai

Традиционные плотные модели (например, Llama 3.3 70B) требуют огромного объёма VRAM, потому что все 70B параметров активны. У Llama 4 Scout всего 109B параметров, но активируется только 17B на токен — что означает:

* **Та же качество, что и у плотных моделей 70B+** при значительно меньших затратах VRAM
* **Вмещается на одном RTX 4090** в режиме квантизации
* **Контекст 10M токенов** — обрабатывайте целые кодовые базы, длинные документы, книги
* **Дешевле арендовать** — $0.5–2/день вместо $6–12/день для моделей 70B

## Советы для пользователей Clore.ai

* **Начните со Scout Q4**: Лучшее соотношение цены и качества на RTX 4090 — $0.5–2/день, покрывает 95% случаев использования
* **Используйте `--max-model-len` мудро**: Не устанавливайте контекст выше, чем нужно — это резервирует VRAM. Начните с 8192, увеличивайте по мере необходимости
* **Тензорный параллелизм для Maverick**: Арендуйте машины с 4× RTX 4090 для Maverick; используйте `--tensor-parallel-size 4`
* **Требуется вход в HuggingFace**: `huggingface-cli login` — сначала вам нужно принять лицензию Llama на HuggingFace
* **Ollama для быстрых тестов, vLLM для производства**: Ollama быстрее настраивается; vLLM обеспечивает большую пропускную способность при обслуживании API
* **Мониторинг памяти GPU**: `watch nvidia-smi` — MoE-модели могут резко повышать потребление VRAM на длинных последовательностях

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

| Проблема                              | Решение                                                                                  |
| ------------------------------------- | ---------------------------------------------------------------------------------------- |
| `OutOfMemoryError`                    | Уменьшите `--max-model-len`, используйте квантизацию Q4 или обновите GPU                 |
| Сбой загрузки модели                  | Запустите `huggingface-cli login` и примите лицензию Llama 4 на hf.co                    |
| Медленная генерация                   | Убедитесь, что используется GPU (`nvidia-smi`); проверьте `--gpu-memory-utilization`     |
| vLLM падает при запуске               | Уменьшите длину контекста; убедитесь, что установлен CUDA 11.8+                          |
| Ollama показывает неправильную модель | Запустите `ollama list` для проверки; `ollama rm` + `ollama pull` для повторной загрузки |

## Дополнительное чтение

* [Блог-пост Meta о Llama 4](https://llama.meta.com/)
* [Карточка модели на HuggingFace](https://huggingface.co/meta-llama/Llama-4-Scout-17B-16E-Instruct)
* [Документация vLLM](https://docs.vllm.ai/)
* [Библиотека моделей Ollama](https://ollama.com/library/llama4-scout)
