mirror of
https://github.com/pese-git/simple-llm.git
synced 2026-01-24 05:26:02 +00:00
Документация и примеры: унификация путей, стабильная работа на CPU, расширенный корпус для токенизатора, end-to-end пайплайн обучения и генерации. Исправлены все ошибки с устройствами и индексами, добавлены проверки и диагностика prompt.
This commit is contained in:
@@ -1,5 +1,24 @@
|
||||
# PositionalEmbeddings - Позиционные эмбеддинги
|
||||
|
||||
> **Документ актуален для Simple-LLM v1.0 (июль 2025)**
|
||||
|
||||
---
|
||||
|
||||
**Краткое summary:**
|
||||
Документ описывает работу слоя позиционных эмбеддингов в трансформерах. Включает алгоритм, пример использования, сравнение подходов и типовые ошибки.
|
||||
|
||||
---
|
||||
|
||||
**Структура документа:**
|
||||
- Назначение
|
||||
- Алгоритм работы
|
||||
- Пример использования
|
||||
- Сравнение подходов
|
||||
- Оптимальные практики
|
||||
- Типовые ошибки и их решения
|
||||
|
||||
---
|
||||
|
||||
## Назначение
|
||||
Позиционные эмбеддинги добавляют информацию о порядке элементов в последовательности. Критически важны для:
|
||||
- Transformer-архитектур
|
||||
@@ -50,7 +69,35 @@ class TransformerBlock(nn.Module):
|
||||
| Обучаемые | Да | Гибкость | Требует данных |
|
||||
| Синусоидальные | Нет | Хорошая обобщающая способность | Фиксированный паттерн |
|
||||
|
||||
## Оптимальные практики
|
||||
## Рекомендации
|
||||
- Для `max_seq_len` берите с запасом (+20%)
|
||||
- Размерность делайте равной размерности токенных эмбеддингов
|
||||
- Для длинных последовательностей комбинируйте с синусоидальными
|
||||
|
||||
---
|
||||
|
||||
## Типовые ошибки и их решения
|
||||
|
||||
### Ошибка: IndexError при запросе эмбеддингов
|
||||
**Возможные причины:**
|
||||
- seq_len превышает max_seq_len, заданный при инициализации слоя
|
||||
|
||||
**Решение:**
|
||||
- Увеличьте max_seq_len при создании слоя
|
||||
- Проверяйте длину входных данных заранее
|
||||
|
||||
### Ошибка: Размерности не совпадают при сложении с токенными эмбеддингами
|
||||
**Возможные причины:**
|
||||
- Размерность позиционных и токенных эмбеддингов не совпадает
|
||||
|
||||
**Решение:**
|
||||
- Убедитесь, что emb_size одинаков для обоих слоев
|
||||
|
||||
### Ошибка: Модель не обучается (позиционные эмбеддинги не обновляются)
|
||||
**Возможные причины:**
|
||||
- Параметры слоя не добавлены в оптимизатор
|
||||
|
||||
**Решение:**
|
||||
- Проверьте, что слой PositionalEmbeddings включён в модель и его параметры передаются в оптимизатор
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user