Обновление README: добавлена полная архитектура Transformer

- Добавлен пример полного пайплайна
- Структурированы компоненты (токенизация, эмбеддинги, слои)
- Обновлены команды для примеров
This commit is contained in:
Sergey Penkovsky
2025-07-20 14:34:17 +03:00
parent e5fc85f336
commit 8c5baa0e33

View File

@@ -3,69 +3,50 @@
[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)]() [![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)]()
[![PyTorch 2.0+](https://img.shields.io/badge/PyTorch-2.0+-red.svg)]() [![PyTorch 2.0+](https://img.shields.io/badge/PyTorch-2.0+-red.svg)]()
Унифицированный фреймворк для NLP, включающий: ## Основные компоненты
- 🎯 Токенизацию на основе BPE
- 📊 Векторные представления
- 🧠 Механизмы внимания (Single/Multi-Head)
## Оглавление ### Токенизация
- [Быстрый старт](#быстрый-старт) - `SimpleBPE` - алгоритм Byte Pair Encoding
- [Архитектура](#архитектура) - `OptimizeBPE` - оптимизированная версия
- [Модули](#модули)
- [Примеры](#примеры) ### Эмбеддинги
- [Документация](#документация) - `TokenEmbeddings` - векторные представления токенов
- [Установка](#установка) - `PositionalEmbeddings` - позиционное кодирование
### Transformer Layers
- `HeadAttention` - механизм внимания одной головы
- `MultiHeadAttention` - многоголовое внимание (4-16 голов)
- `FeedForward` - двухслойная FFN сеть (расширение → сжатие)
## Быстрый старт ## Быстрый старт
```python ```python
from simple_llm import SimpleBPE, MultiHeadAttention from simple_llm import SimpleBPE, MultiHeadAttention, FeedForward
# 1. Токенизация # 1. Токенизация
bpe = SimpleBPE().fit(text_corpus) bpe = SimpleBPE().fit(text_corpus)
tokens = bpe.encode("Пример текста") tokens = bpe.encode("Пример текста")
# 2. Многоголовое внимание # 2. Полный пайплайн
mha = MultiHeadAttention( model = nn.Sequential(
num_heads=8, TokenEmbeddings(10000, 256),
emb_size=256, PositionalEmbeddings(256, 512),
head_size=32 MultiHeadAttention(8, 256, 32),
FeedForward(256)
) )
output = mha(torch.randn(1, 10, 256)) # [batch, seq_len, emb_size]
```
## Архитектура
```mermaid
graph TD
A[Текст] --> B(Tokenizer)
B --> C[Токены]
C --> D[TokenEmbeddings]
D --> E[MultiHeadAttention]
E --> F[Выход модели]
```
## Модули
### Токенизация
- `SimpleBPE` - базовая реализация BPE
- `OptimizeBPE` - оптимизированная версия
### Эмбеддинги
- `TokenEmbeddings` - обучаемые векторные представления
- `PositionalEmbeddings` - позиционное кодирование
### Transformer
- `HeadAttention` - одно-головое внимание
- `MultiHeadAttention` - многоголовое внимание (4-16 голов)
## Примеры
```bash
# Запуск примеров
python -m example.multi_head_attention_example
``` ```
## Документация ## Документация
- [Токенизация](/doc/bpe_algorithm.md) - [Токенизация](/doc/bpe_algorithm.md)
- [Эмбеддинги](/doc/token_embeddings_ru.md)
- [MultiHeadAttention](/doc/multi_head_attention_ru.md) - [MultiHeadAttention](/doc/multi_head_attention_ru.md)
- [FeedForward](/doc/feed_forward_ru.md)
## Примеры
```bash
# Запуск примеров
python -m example.multi_head_attention_example # Визуализация внимания
python -m example.feed_forward_example # Анализ FFN слоя
```
## Установка ## Установка
```bash ```bash
@@ -73,15 +54,3 @@ git clone https://github.com/pese-git/simple-llm.git
cd simple-llm cd simple-llm
pip install -e . pip install -e .
``` ```
## Разработка
```bash
# Запуск тестов
pytest tests/ -v
# Проверка стиля кода
flake8 .
# Форматирование
black .
```