# 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)


---

# Agent Instructions: 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:

```
GET https://docs.clore.ai/guides/guides_v2-ru/yazykovye-modeli/llama4.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
