Files
simple-llm/doc/gpt_documentation_ru.md
Sergey Penkovsky ae87faddc2 feat: добавление реализации модели GPT
Основные изменения:
- Реализован основной класс GPT в simple_llm/transformer/gpt.py:
  * Токенные и позиционные эмбеддинги
  * Многоголовое внимание
  * Полносвязные слои
  * Нормализация слоев
  * Поддержка dropout

- Добавлен пример использования в example/example_gpt.py:
  * Инициализация модели
  * Генерация текста
  * Сохранение/загрузка модели

- Написаны тесты:
  * Базовый функционал модели
  * Операции сохранения/загрузки
  * Проверка размерностей ввода/вывода

- Добавлена документация на русском:
  * Обзор архитектуры
  * Процесс обучения
  * Примеры использования

- Обновлен README.md с информацией о GPT
2025-07-22 06:26:23 +03:00

80 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Документация по 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. Ограничения
- Требует больших вычислительных ресурсов
- Ограничена максимальной длиной последовательности
- Может генерировать некорректный текст