# Llama 3.3 70B

{% hint style="info" %}
**Доступна более новая версия!** Meta выпустила [**Llama 4**](https://docs.clore.ai/guides/guides_v2-ru/yazykovye-modeli/llama4) в апреле 2025 года с архитектурой MoE — Scout (17B активных, помещается на RTX 4090) обеспечивает сопоставимое качество при доле VRAM. Рассмотрите возможность обновления.
{% endhint %}

Последняя и самая эффективная модель Meta 70B на GPU CLORE.AI.

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

## Почему Llama 3.3?

* **Лучшая модель 70B** - Соответствует производительности Llama 3.1 405B при небольшой стоимости
* **Мультиязычность** - Поддерживает 8 языков нативно
* **Контекст 128K** - Обработка длинных документов
* **Открытые веса** - Бесплатно для коммерческого использования

## Обзор модели

| Характеристики      | Значение                       |
| ------------------- | ------------------------------ |
| Параметры           | 70B                            |
| Длина контекста     | 128K токенов                   |
| Данные для обучения | 15T+ токенов                   |
| Языки               | EN, DE, FR, IT, PT, HI, ES, TH |
| Лицензия            | Лицензия Llama 3.3 Community   |

### Производительность по сравнению с другими моделями

| Бенчмарк        | Llama 3.3 70B | Llama 3.1 405B | GPT-4o |
| --------------- | ------------- | -------------- | ------ |
| MMLU            | 86.0          | 87.3           | 88.7   |
| HumanEval       | 88.4          | 89.0           | 90.2   |
| MATH            | 77.0          | 73.8           | 76.6   |
| Мультиязычность | 91.1          | 91.6           | -      |

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

| Настройка          | VRAM   | Производительность | Стоимость                |
| ------------------ | ------ | ------------------ | ------------------------ |
| Квантизировано Q4  | 40GB   | Хорошо             | A100 40GB (\~$0.17/ч)    |
| Квантизировано Q8  | 70GB   | Лучше              | A100 80GB (\~$0.25/ч)    |
| FP16 полноформатно | 140 ГБ | Лучшее             | 2x A100 80GB (\~$0.50/ч) |

**Рекомендуется:** A100 40GB с квантизацией Q4 для лучшего соотношения цена/производительность.

## Быстрое развертывание на CLORE.AI

### Использование Ollama (Проще всего)

**Docker-образ:**

```
ollama/ollama
```

**Порты:**

```
22/tcp
11434/http
```

**После развертывания:**

```bash
ollama pull llama3.3
ollama run llama3.3
```

### Использование vLLM (Продакшн)

**Docker-образ:**

```
vllm/vllm-openai:latest
```

**Порты:**

```
22/tcp
8000/http
```

**Команда:**

```bash
python -m vllm.entrypoints.openai.api_server \
    --model meta-llama/Llama-3.3-70B-Instruct \
    --tensor-parallel-size 1 \
    --max-model-len 32768 \
    --host 0.0.0.0
```

## Доступ к вашему сервису

После развертывания найдите ваш `http_pub` URL в **Моих заказах**:

1. Перейдите на **Моих заказах** страницу
2. Нажмите на ваш заказ
3. Найдите `http_pub` URL (например, `abc123.clorecloud.net`)

Используйте `https://YOUR_HTTP_PUB_URL` вместо `localhost` в примерах ниже.

## Методы установки

### Метод 1: Ollama (Рекомендуется для тестирования)

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

# Загрузить Llama 3.3 (автозагрузка версии Q4)
ollama pull llama3.3

# Запустить интерактивно
ollama run llama3.3

# Или запустить API
ollama serve
```

**Использование API:**

```bash
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.3",
  "prompt": "Объясните квантовые вычисления простыми словами"
}'
```

### Метод 2: vLLM (Продакшн)

```bash
pip install vllm

# Одна GPU (A100 40GB с квантизацией AWQ)
python -m vllm.entrypoints.openai.api_server \
    --model casperhansen/llama-3.3-70b-instruct-awq \
    --quantization awq \
    --max-model-len 16384 \
    --host 0.0.0.0

# Мульти-GPU (2x A100 для полной точности)
python -m vllm.entrypoints.openai.api_server \
    --model meta-llama/Llama-3.3-70B-Instruct \
    --tensor-parallel-size 2 \
    --max-model-len 32768 \
    --host 0.0.0.0
```

**Использование API (совместимо с OpenAI):**

```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-3.3-70B-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)
```

### Метод 3: Transformers + bitsandbytes

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

# Конфигурация квантизации 4-бит
bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16
)

model_id = "meta-llama/Llama-3.3-70B-Instruct"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    quantization_config=bnb_config,
    device_map="auto"
)

# Генерация
messages = [
    {"role": "system", "content": "Вы — полезный помощник по программированию."},
    {"role": "user", "content": "Напишите веб-скрейпер на Python с использованием BeautifulSoup"}
]

input_ids = tokenizer.apply_chat_template(
    messages,
    return_tensors="pt"
).to("cuda")

outputs = model.generate(
    input_ids,
    max_new_tokens=512,
    temperature=0.7,
    do_sample=True
)

print(tokenizer.decode(outputs[0], skip_special_tokens=True))
```

### Метод 4: llama.cpp (гибрид CPU+GPU)

```bash
# Клонировать и собрать
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make LLAMA_CUDA=1

# Скачать GGUF модель
wget https://huggingface.co/bartowski/Llama-3.3-70B-Instruct-GGUF/resolve/main/Llama-3.3-70B-Instruct-Q4_K_M.gguf

# Запустить сервер
./llama-server \
    -m Llama-3.3-70B-Instruct-Q4_K_M.gguf \
    -c 8192 \
    -ngl 80 \
    --host 0.0.0.0 \
    --port 8080
```

## Бенчмарки

### Пропускная способность (токенов/секунда)

| GPU          | Q4    | Q8    | FP16  |
| ------------ | ----- | ----- | ----- |
| A100 40GB    | 25-30 | -     | -     |
| A100 80GB    | 35-40 | 25-30 | -     |
| 2x A100 80GB | 50-60 | 40-45 | 30-35 |
| H100 80GB    | 60-70 | 45-50 | 35-40 |

### Время до первого токена (TTFT)

| GPU          | Q4       | FP16     |
| ------------ | -------- | -------- |
| A100 40GB    | 0.8-1.2с | -        |
| A100 80GB    | 0.6-0.9с | -        |
| 2x A100 80GB | 0.4-0.6с | 0.8-1.0с |

### Длина контекста vs VRAM

| Контекст | Q4 VRAM | Q8 VRAM |
| -------- | ------- | ------- |
| 4K       | 38GB    | 72GB    |
| 8K       | 40GB    | 75GB    |
| 16K      | 44GB    | 80GB    |
| 32K      | 52GB    | 90GB    |
| 64K      | 68 ГБ   | 110GB   |
| 128K     | 100GB   | 150GB   |

## Сценарии использования

### Генерация кода

```python
messages = [
    {"role": "system", "content": "Вы — эксперт-программист. Пишите чистый, эффективный, хорошо документированный код."},
    {"role": "user", "content": "Создайте REST API на FastAPI с аутентификацией пользователей с помощью JWT токенов"}
]
```

### Анализ документов (длинный контекст)

```python
# Загрузить длинный документ
with open("large_document.txt") as f:
    document = f.read()

messages = [
    {"role": "system", "content": "Вы — аналитик документов. Предоставляйте подробный, точный анализ."},
    {"role": "user", "content": f"Проанализируйте этот документ и представьте краткое содержание с ключевыми моментами:\n\n{document}"}
]
```

### Многоязычные задачи

```python
messages = [
    {"role": "system", "content": "Вы — многоязычный помощник."},
    {"role": "user", "content": "Переведите на немецкий, французский и испанский: 'The quick brown fox jumps over the lazy dog'"}
]
```

### Рассуждение и анализ

```python
messages = [
    {"role": "system", "content": "Думайте шаг за шагом. Покажите ваше рассуждение."},
    {"role": "user", "content": "Поезд отправляется со станции A в 9:00 со скоростью 60 миль/ч. Другой поезд отправляется со станции B (в 300 милях) в 10:00 в направлении станции A со скоростью 90 миль/ч. Когда и где они встретятся?"}
]
```

## Советы по оптимизации

### Оптимизация памяти

```python
# vLLM с оптимизацией памяти
python -m vllm.entrypoints.openai.api_server \
    --model casperhansen/llama-3.3-70b-instruct-awq \
    --quantization awq \
    --gpu-memory-utilization 0.95 \
    --max-model-len 8192
```

### Оптимизация скорости

```python
# Включить Flash Attention
python -m vllm.entrypoints.openai.api_server \
    --model meta-llama/Llama-3.3-70B-Instruct \
    --tensor-parallel-size 2 \
    --enable-prefix-caching
```

### Пакетная обработка

```python
# Эффективно обрабатывать несколько запросов
responses = client.chat.completions.create(
    model="meta-llama/Llama-3.3-70B-Instruct",
    messages=messages,
    n=4,  # Сгенерировать 4 ответа
    temperature=0.8
)
```

## Сравнение с другими моделями

| Функция     | Llama 3.3 70B | Llama 3.1 70B | Qwen 2.5 72B | Mixtral 8x22B |
| ----------- | ------------- | ------------- | ------------ | ------------- |
| MMLU        | 86.0          | 83.6          | 85.3         | 77.8          |
| Кодирование | 88.4          | 80.5          | 85.4         | 75.5          |
| Математика  | 77.0          | 68.0          | 80.0         | 60.0          |
| Контекст    | 128K          | 128K          | 128K         | 64K           |
| Языки       | 8             | 8             | 29           | 8             |
| Лицензия    | Откройте      | Откройте      | Откройте     | Откройте      |

**Вердикт:** Llama 3.3 70B предлагает лучшее общее качество в своем классе, особенно для задач кодирования и рассуждений.

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

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

```bash
# Используйте квантизацию AWQ (наиболее экономна по памяти)
--model casperhansen/llama-3.3-70b-instruct-awq --quantization awq

# Уменьшите длину контекста
--max-model-len 8192

# Используйте тензорный параллелизм
--tensor-parallel-size 2
```

### Медленный первый отклик

* Первый запрос загружает модель на GPU — подождите 30–60 секунд
* Используйте `--enable-prefix-caching` для более быстрых последующих запросов
* Предварительный прогрев с помощью тестового запроса

### Доступ Hugging Face

```bash
# Войти в HF (требуется для модели с ограниченным доступом)
huggingface-cli login

# Или установить переменную окружения
export HUGGING_FACE_HUB_TOKEN=hf_xxxxx
```

## Оценка стоимости

| Настройка          | GPU            | $/час   | токенов/$ |
| ------------------ | -------------- | ------- | --------- |
| Бюджетная          | A100 40GB (Q4) | \~$0.17 | \~530K    |
| Сбалансировано     | A100 80GB (Q4) | \~$0.25 | \~500K    |
| Производительность | 2x A100 80GB   | \~$0.50 | \~360K    |
| Максимум           | H100 80GB      | \~$0.50 | \~500K    |

## Дальнейшие шаги

* [Руководство по vLLM](https://docs.clore.ai/guides/guides_v2-ru/yazykovye-modeli/vllm) - Производственное развертывание
* [Руководство по Ollama](https://docs.clore.ai/guides/guides_v2-ru/yazykovye-modeli/ollama) - Простая локальная настройка
* [Настройка Multi-GPU](https://docs.clore.ai/guides/guides_v2-ru/prodvinutoe/multi-gpu-setup) - Масштабироваться до более крупных моделей
* [Интеграция API](https://docs.clore.ai/guides/guides_v2-ru/prodvinutoe/api-integration) - Создавайте приложения
