diff --git a/README.md b/README.md index 3e862f6..272f4d0 100644 --- a/README.md +++ b/README.md @@ -3,69 +3,50 @@ [![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)]() -Унифицированный фреймворк для NLP, включающий: -- 🎯 Токенизацию на основе BPE -- 📊 Векторные представления -- 🧠 Механизмы внимания (Single/Multi-Head) +## Основные компоненты -## Оглавление -- [Быстрый старт](#быстрый-старт) -- [Архитектура](#архитектура) -- [Модули](#модули) -- [Примеры](#примеры) -- [Документация](#документация) -- [Установка](#установка) +### Токенизация +- `SimpleBPE` - алгоритм Byte Pair Encoding +- `OptimizeBPE` - оптимизированная версия + +### Эмбеддинги +- `TokenEmbeddings` - векторные представления токенов +- `PositionalEmbeddings` - позиционное кодирование + +### Transformer Layers +- `HeadAttention` - механизм внимания одной головы +- `MultiHeadAttention` - многоголовое внимание (4-16 голов) +- `FeedForward` - двухслойная FFN сеть (расширение → сжатие) ## Быстрый старт + ```python -from simple_llm import SimpleBPE, MultiHeadAttention +from simple_llm import SimpleBPE, MultiHeadAttention, FeedForward # 1. Токенизация bpe = SimpleBPE().fit(text_corpus) tokens = bpe.encode("Пример текста") -# 2. Многоголовое внимание -mha = MultiHeadAttention( - num_heads=8, - emb_size=256, - head_size=32 +# 2. Полный пайплайн +model = nn.Sequential( + TokenEmbeddings(10000, 256), + PositionalEmbeddings(256, 512), + 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/token_embeddings_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 @@ -73,15 +54,3 @@ git clone https://github.com/pese-git/simple-llm.git cd simple-llm pip install -e . ``` - -## Разработка -```bash -# Запуск тестов -pytest tests/ -v - -# Проверка стиля кода -flake8 . - -# Форматирование -black . -```