Почему в трансформерах есть ограничения на количество токенов?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Ответ: Почему в трансформерах есть ограничения на количество токенов?
Основная проблема: квадратичная сложность внимания
Самая важная причина — механизм self-attention имеет квадратичную сложность O(n²) по длине последовательности. При вычислении attention weights необходимо вычислять матрицу произведений всех токенов со всеми, что приводит к огромным объёмам вычислений:
# Simplified attention calculation
Q = X @ W_q # (seq_len, d_model)
K = X @ W_k # (seq_len, d_model)
V = X @ W_v # (seq_len, d_model)
# Матрица внимания размером (seq_len, seq_len)
attention = softmax((Q @ K.T) / sqrt(d_k)) @ V
# Сложность: O(seq_len²) во времени и памяти!
Память (GPU VRAM)
Квадратичная сложность проявляется в объёме памяти:
- Для одного слоя трансформера нужно хранить матрицу attention размером (seq_len × seq_len)
- При seq_len = 2000 токенов это 4M элементов на батч
- При seq_len = 8000 — уже 64M элементов (это GB памяти!)
- Современные GPU (A100, H100) имеют ≤ 80 GB памяти
- Требуется также памятью для активаций, градиентов при обучении
Скорость вычисления
Инферение и обучение замедляются экспоненциально:
- GPT-3: контекст 2K токенов
- Claude: контекст 100K+ токенов (инженерные решения)
- Очень длинные последовательности → минуты вычисления вместо миллисекунд
Практические последствия
Из-за этих ограничений:
- Сессии обычно имеют максимум 2K-4K токенов (старые модели)
- Нужно обрезать или сжимать входные документы
- Длинные диалоги требуют стратегии управления контекстом (например, суммаризация старых сообщений)
- Для обработки очень больших текстов нужны специальные подходы
Решения проблемы (SOTA подходы)
1. Sparse attention — не вычисляем attention между всеми парами:
- Local attention: каждый токен видит только соседей
- Strided attention: пропускаем некоторые позиции
2. Efficient transformers:
- Linformer: линеаризует внимание O(n)
- Performer: использует random features approximation
- LSTM-like структуры вместо полного внимания
3. Context window expansion:
- RoPE (Rotary Position Embeddings) для экстраполяции
- Flash Attention — оптимизирует memory access patterns
- Sliding window (как в Mistral) — ограниченное окно внимания
4. Гибридные архитектуры:
- Mamba, State Space Models — O(n) сложность
- Hybrid models (transformer + RNN слои)
Заключение
Ограничение на длину контекста — фундаментальное ограничение архитектуры трансформера, обусловленное квадратичной сложностью self-attention. Это торговля между выразительностью (полный контекст) и эффективностью (практическая скорость и память). Современные исследования активно работают над преодолением этого барьера через эффективные варианты внимания и новые архитектуры.