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
80 lines
2.8 KiB
Markdown
80 lines
2.8 KiB
Markdown
# Документация по GPT модели (рус)
|
||
|
||
## 1. Общее описание
|
||
GPT (Generative Pre-trained Transformer) - это архитектура трансформера для генерации текста, основанная на механизме внимания.
|
||
|
||
**Основные характеристики:**
|
||
- Авторегрессивная генерация
|
||
- Многослойный декодер
|
||
- Самовнимание с маской
|
||
|
||
## 2. Алгоритм работы
|
||
|
||
### 2.1 Архитектура
|
||
```mermaid
|
||
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 Процесс генерации
|
||
1. Токенизация входного текста
|
||
2. Вычисление эмбеддингов:
|
||
- Токенные + позиционные
|
||
3. Прохождение через N декодеров:
|
||
- Самовнимание с маской
|
||
- Полносвязные слои
|
||
4. Преобразование в вероятности
|
||
5. Выбор следующего токена
|
||
|
||
## 3. Использование
|
||
|
||
### 3.1 Инициализация
|
||
```python
|
||
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 Генерация текста
|
||
```python
|
||
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. Ограничения
|
||
- Требует больших вычислительных ресурсов
|
||
- Ограничена максимальной длиной последовательности
|
||
- Может генерировать некорректный текст
|