Документация и примеры: унификация путей, стабильная работа на CPU, расширенный корпус для токенизатора, end-to-end пайплайн обучения и генерации. Исправлены все ошибки с устройствами и индексами, добавлены проверки и диагностика prompt.

This commit is contained in:
Sergey Penkovsky
2025-07-23 14:34:10 +03:00
parent a895c59bfe
commit e0813fedc6
22 changed files with 768 additions and 93 deletions

View File

@@ -1,5 +1,24 @@
# FeedForward - Прямая полносвязная сеть трансформера
> **Документ актуален для Simple-LLM v1.0 (июль 2025)**
---
**Краткое summary:**
Документ описывает модуль двухслойной прямой полносвязной сети (Feed Forward) в трансформерах. Включает алгоритм, пример использования, параметры и типовые ошибки.
---
**Структура документа:**
- Назначение
- Алгоритм работы
- Пример использования
- Параметры
- Особенности
- Типовые ошибки и их решения
---
## Назначение
Модуль реализует двухслойную нейронную сеть, которая:
- Добавляет нелинейность в трансформер
@@ -55,9 +74,40 @@ output = ff(x) # [1, 10, 512]
| `emb_size` | int | Размерность входных/выходных векторов |
| `dropout` | float | Вероятность dropout (0.0-1.0)|
## Особенности
- Сохраняет размерность входа/выхода
- Автоматически обрабатывает batch и последовательности
## Рекомендации
- Dropout обычно выбирают 0.10.3
- Следите, чтобы emb_size совпадал с размерностью входа/выхода
- Используйте режимы train/eval корректно
- Для визуализации используйте [пример](/example/feed_forward_example.py)
---
## Типовые ошибки и их решения
### Ошибка: Размерности не совпадают при прямом проходе
**Возможные причины:**
- emb_size не совпадает с размерностью входных данных
**Решение:**
- Проверьте, что emb_size слоя FeedForward совпадает с размерностью последнего слоя перед ним
### Ошибка: Модель не обучается (loss не уменьшается)
**Возможные причины:**
- Dropout слишком высокий
- Ошибка в подключении слоя к модели
**Решение:**
- Попробуйте уменьшить dropout
- Проверьте, что слой FeedForward включён в модель и его параметры передаются в оптимизатор
### Ошибка: CUDA out of memory
**Возможные причины:**
- Слишком большой batch_size или размерность emb_size
**Решение:**
- Уменьшите batch_size или emb_size
---
- Поддерживает режимы train/eval
[Пример визуализации](/example/feed_forward_example.py)