Обновление README: добавлена информация о MultiHeadAttention

- Добавлен пример использования MultiHeadAttention
- Обновлена схема архитектуры
- Добавлены новые команды разработки
- Улучшена структура документации
This commit is contained in:
Sergey Penkovsky
2025-07-19 22:20:12 +03:00
parent 2f390145cf
commit 3c1fd4c80c

View File

@@ -6,31 +6,31 @@
Унифицированный фреймворк для NLP, включающий: Унифицированный фреймворк для NLP, включающий:
- 🎯 Токенизацию на основе BPE - 🎯 Токенизацию на основе BPE
- 📊 Векторные представления - 📊 Векторные представления
- 🧠 Механизмы внимания - 🧠 Механизмы внимания (Single/Multi-Head)
## Оглавление ## Оглавление
- [Быстрый старт](#быстрый-старт) - [Быстрый старт](#быстрый-старт)
- [Архитектура](#архитектура) - [Архитектура](#архитектура)
- [Модули](#модули) - [Модули](#модули)
- [Примеры](#примеры) - [Примеры](#примеры)
- [Документация](#документация)
- [Установка](#установка) - [Установка](#установка)
- [Разработка](#разработка)
## Быстрый старт ## Быстрый старт
```python ```python
from simple_llm import SimpleBPE, TokenEmbeddings, HeadAttention from simple_llm import SimpleBPE, MultiHeadAttention
# 1. Токенизация # 1. Токенизация
bpe = SimpleBPE().fit(text) bpe = SimpleBPE().fit(text_corpus)
tokens = bpe.encode("Привет мир") tokens = bpe.encode("Пример текста")
# 2. Эмбеддинги # 2. Многоголовое внимание
emb_layer = TokenEmbeddings(10000, 256) mha = MultiHeadAttention(
embeddings = emb_layer(tokens) num_heads=8,
emb_size=256,
# 3. Внимание head_size=32
attention = HeadAttention(256, 64) )
output = attention(embeddings) output = mha(torch.randn(1, 10, 256)) # [batch, seq_len, emb_size]
``` ```
## Архитектура ## Архитектура
@@ -39,7 +39,7 @@ graph TD
A[Текст] --> B(Tokenizer) A[Текст] --> B(Tokenizer)
B --> C[Токены] B --> C[Токены]
C --> D[TokenEmbeddings] C --> D[TokenEmbeddings]
D --> E[HeadAttention] D --> E[MultiHeadAttention]
E --> F[Выход модели] E --> F[Выход модели]
``` ```
@@ -53,13 +53,19 @@ graph TD
- `PositionalEmbeddings` - позиционное кодирование - `PositionalEmbeddings` - позиционное кодирование
### Transformer ### Transformer
- `HeadAttention` - механизм внимания одной головы - `HeadAttention` - одно-головое внимание
- `MultiHeadAttention` - многоголовое внимание (4-16 голов)
## Примеры ## Примеры
| Файл | Описание | ```bash
|-------|----------| # Запуск примеров
| [example_bpe.py](/example/example_bpe.py) | Базовая токенизация | python -m example.multi_head_attention_example
| [head_attention_example.py](/example/head_attention_example.py) | Визуализация внимания | ```
## Документация
- [Токенизация](/doc/bpe_algorithm.md)
- [Эмбеддинги](/doc/token_embeddings_ru.md)
- [MultiHeadAttention](/doc/multi_head_attention_ru.md)
## Установка ## Установка
```bash ```bash
@@ -73,6 +79,9 @@ pip install -e .
# Запуск тестов # Запуск тестов
pytest tests/ -v pytest tests/ -v
# Форматирование кода # Проверка стиля кода
flake8 .
# Форматирование
black . black .
``` ```