Документация и примеры: унификация путей, стабильная работа на 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 @@
# Декодер Transformer
> **Документ актуален для Simple-LLM v1.0 (июль 2025)**
---
**Краткое summary:**
Документ описывает работу декодера Transformer: архитектуру, алгоритм, пример использования, параметры и типовые ошибки.
---
**Структура документа:**
- Назначение
- Алгоритм работы
- Использование
- Параметры
- Особенности
- Типовые ошибки и их решения
---
## Назначение
Декодер - ключевой компонент архитектуры Transformer, предназначенный для:
- Генерации последовательностей (текст, код и др.)
@@ -75,15 +94,40 @@ masked_output = decoder(x, mask)
- Генерация текста
- Кодогенерация
## Особенности реализации
## Рекомендации
- Используйте корректные маски для автопрегрессивного декодирования
- Следите за размерностью входа и маски
- Для сложных случаев используйте teacher forcing
1. **Масштабирование**:
- Поддержка длинных последовательностей
- Оптимизированные вычисления внимания
---
2. **Обучение**:
- Поддержка teacher forcing
- Автопрегрессивное декодирование
## Типовые ошибки и их решения
### Ошибка: Размерности не совпадают при подаче входа или маски
**Возможные причины:**
- Размерность входного тензора не совпадает с emb_size
- Форма маски не совпадает с [seq_len, seq_len]
**Решение:**
- Проверьте, что размерность входа и маски соответствует требованиям
### Ошибка: Модель не обучается (loss не уменьшается)
**Возможные причины:**
- Ошибка в подключении слоя к модели
- Ошибка в маскировании (утечка будущего)
**Решение:**
- Проверьте корректность маски
- Проверьте, что параметры декодера передаются в оптимизатор
### Ошибка: CUDA out of memory
**Возможные причины:**
- Слишком большой batch_size, seq_len или emb_size
**Решение:**
- Уменьшите batch_size, seq_len или emb_size
---
3. **Оптимизации**:
- Кэширование ключей/значений