diff --git a/doc/feed_forward_ru.md b/doc/feed_forward_ru.md new file mode 100644 index 0000000..3d7c87c --- /dev/null +++ b/doc/feed_forward_ru.md @@ -0,0 +1,63 @@ +# FeedForward - Прямая полносвязная сеть трансформера + +## Назначение +Модуль реализует двухслойную нейронную сеть, которая: +- Добавляет нелинейность в трансформер +- Расширяет и сжимает представление +- Применяет dropout для регуляризации + +## Алгоритм работы + +```mermaid +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. **Расширение признаков**: + ```python + h = W1 * x + b1 # W1: [emb_size, 4*emb_size] + ``` + +2. **Нелинейность**: + ```python + h = relu(h) + ``` + +3. **Сжатие признаков**: + ```python + out = W2 * h + b2 # W2: [4*emb_size, emb_size] + ``` + +4. **Регуляризация**: + ```python + out = dropout(out) + ``` + +## Пример использования +```python +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 + +[Пример визуализации](/example/feed_forward_example.py)