Добавлена документация для FeedForward слоя

- Полное описание алгоритма с блок-схемой
- Примеры использования
- Таблица параметров
- Ссылка на пример визуализации
This commit is contained in:
Sergey Penkovsky
2025-07-20 14:20:11 +03:00
parent 75f99d5def
commit 03b245a126

63
doc/feed_forward_ru.md Normal file
View File

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