mirror of
https://github.com/pese-git/simple-llm.git
synced 2026-01-23 21:14:17 +00:00
Основные изменения: - Реализован основной класс GPT в simple_llm/transformer/gpt.py: * Токенные и позиционные эмбеддинги * Многоголовое внимание * Полносвязные слои * Нормализация слоев * Поддержка dropout - Добавлен пример использования в example/example_gpt.py: * Инициализация модели * Генерация текста * Сохранение/загрузка модели - Написаны тесты: * Базовый функционал модели * Операции сохранения/загрузки * Проверка размерностей ввода/вывода - Добавлена документация на русском: * Обзор архитектуры * Процесс обучения * Примеры использования - Обновлен README.md с информацией о GPT
2.8 KiB
2.8 KiB
Документация по GPT модели (рус)
1. Общее описание
GPT (Generative Pre-trained Transformer) - это архитектура трансформера для генерации текста, основанная на механизме внимания.
Основные характеристики:
- Авторегрессивная генерация
- Многослойный декодер
- Самовнимание с маской
2. Алгоритм работы
2.1 Архитектура
graph TD
A[Входные токены] --> B[Токенные эмбеддинги]
A --> C[Позиционные эмбеддинги]
B --> D[Сумма эмбеддингов]
C --> D
D --> E[Слой нормализации]
E --> F[Многоголовое внимание]
F --> G[Пропускная связь]
G --> H[FeedForward слой]
H --> I[Слой нормализации]
I --> J[Выходные логиты]
2.2 Процесс генерации
- Токенизация входного текста
- Вычисление эмбеддингов:
- Токенные + позиционные
- Прохождение через N декодеров:
- Самовнимание с маской
- Полносвязные слои
- Преобразование в вероятности
- Выбор следующего токена
3. Использование
3.1 Инициализация
from simple_llm.transformer.gpt import GPT
model = GPT(
vocab_size=10000,
max_seq_len=512,
emb_size=768,
num_heads=12,
head_size=64,
num_layers=6
)
3.2 Генерация текста
output = model.generate(input_ids, max_new_tokens=50)
4. Гиперпараметры
| Параметр | Описание |
|---|---|
| vocab_size | Размер словаря |
| max_seq_len | Макс. длина последовательности |
| emb_size | Размерность эмбеддингов |
| num_heads | Количество голов внимания |
| head_size | Размерность головы внимания |
| num_layers | Количество слоев декодера |
5. Примеры применения
- Генерация текста
- Дозаполнение форм
- Кодогенерация
- Чат-боты
6. Ограничения
- Требует больших вычислительных ресурсов
- Ограничена максимальной длиной последовательности
- Может генерировать некорректный текст