Files
simple-llm/doc/feed_forward_ru.md
Sergey Penkovsky 03b245a126 Добавлена документация для FeedForward слоя
- Полное описание алгоритма с блок-схемой
- Примеры использования
- Таблица параметров
- Ссылка на пример визуализации
2025-07-20 14:20:11 +03:00

2.0 KiB

FeedForward - Прямая полносвязная сеть трансформера

Назначение

Модуль реализует двухслойную нейронную сеть, которая:

  • Добавляет нелинейность в трансформер
  • Расширяет и сжимает представление
  • Применяет dropout для регуляризации

Алгоритм работы

flowchart TD
    A[Вход: x] --> B[Линейный слой: emb_size → 4*emb_size]
    B --> C[Активация ReLU]
    C --> D[Линейный слой: 4*emb_size → emb_size]
    D --> E[Dropout]
    E --> F[Выход]
  1. Расширение признаков:

    h = W1 * x + b1  # W1: [emb_size, 4*emb_size]
    
  2. Нелинейность:

    h = relu(h)
    
  3. Сжатие признаков:

    out = W2 * h + b2  # W2: [4*emb_size, emb_size]
    
  4. Регуляризация:

    out = dropout(out)
    

Пример использования

from simple_llm.transformer import FeedForward

# Инициализация
ff = FeedForward(emb_size=512, dropout=0.1)

# Прямой проход
x = torch.randn(1, 10, 512)  # [batch, seq_len, emb_size]
output = ff(x)  # [1, 10, 512]

Параметры

Параметр Тип Описание
emb_size int Размерность входных/выходных векторов
dropout float Вероятность dropout (0.0-1.0)

Особенности

  • Сохраняет размерность входа/выхода
  • Автоматически обрабатывает batch и последовательности
  • Поддерживает режимы train/eval

Пример визуализации