From 3c1fd4c80c6d2ea3a90bc8179f8882bca529c5fb Mon Sep 17 00:00:00 2001 From: Sergey Penkovsky Date: Sat, 19 Jul 2025 22:20:12 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20README:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=B8=D0=BD=D1=84=D0=BE=D1=80=D0=BC?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BE=20MultiHeadAttention?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлен пример использования MultiHeadAttention - Обновлена схема архитектуры - Добавлены новые команды разработки - Улучшена структура документации --- README.md | 47 ++++++++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index b0d23fa..3e862f6 100644 --- a/README.md +++ b/README.md @@ -6,31 +6,31 @@ Унифицированный фреймворк для NLP, включающий: - 🎯 Токенизацию на основе BPE - 📊 Векторные представления -- 🧠 Механизмы внимания +- 🧠 Механизмы внимания (Single/Multi-Head) ## Оглавление - [Быстрый старт](#быстрый-старт) - [Архитектура](#архитектура) - [Модули](#модули) - [Примеры](#примеры) +- [Документация](#документация) - [Установка](#установка) -- [Разработка](#разработка) ## Быстрый старт ```python -from simple_llm import SimpleBPE, TokenEmbeddings, HeadAttention +from simple_llm import SimpleBPE, MultiHeadAttention # 1. Токенизация -bpe = SimpleBPE().fit(text) -tokens = bpe.encode("Привет мир") +bpe = SimpleBPE().fit(text_corpus) +tokens = bpe.encode("Пример текста") -# 2. Эмбеддинги -emb_layer = TokenEmbeddings(10000, 256) -embeddings = emb_layer(tokens) - -# 3. Внимание -attention = HeadAttention(256, 64) -output = attention(embeddings) +# 2. Многоголовое внимание +mha = MultiHeadAttention( + num_heads=8, + emb_size=256, + head_size=32 +) +output = mha(torch.randn(1, 10, 256)) # [batch, seq_len, emb_size] ``` ## Архитектура @@ -39,7 +39,7 @@ graph TD A[Текст] --> B(Tokenizer) B --> C[Токены] C --> D[TokenEmbeddings] - D --> E[HeadAttention] + D --> E[MultiHeadAttention] E --> F[Выход модели] ``` @@ -53,13 +53,19 @@ graph TD - `PositionalEmbeddings` - позиционное кодирование ### Transformer -- `HeadAttention` - механизм внимания одной головы +- `HeadAttention` - одно-головое внимание +- `MultiHeadAttention` - многоголовое внимание (4-16 голов) ## Примеры -| Файл | Описание | -|-------|----------| -| [example_bpe.py](/example/example_bpe.py) | Базовая токенизация | -| [head_attention_example.py](/example/head_attention_example.py) | Визуализация внимания | +```bash +# Запуск примеров +python -m example.multi_head_attention_example +``` + +## Документация +- [Токенизация](/doc/bpe_algorithm.md) +- [Эмбеддинги](/doc/token_embeddings_ru.md) +- [MultiHeadAttention](/doc/multi_head_attention_ru.md) ## Установка ```bash @@ -73,6 +79,9 @@ pip install -e . # Запуск тестов pytest tests/ -v -# Форматирование кода +# Проверка стиля кода +flake8 . + +# Форматирование black . ```