Рефакторинг документации: новая структура README

- Добавлены badges Python/PyTorch
- Включена Mermaid-схема архитектуры
- Улучшена навигация с оглавлением
- Добавлена таблица примеров
- Унифицирован стиль документации
This commit is contained in:
Sergey Penkovsky
2025-07-19 12:05:20 +03:00
parent 6373b4e241
commit 2f390145cf

168
README.md
View File

@@ -1,120 +1,78 @@
# Simple LLM Tokenizer # Simple LLM Framework
Простой и эффективный токенизатор для языковых моделей на основе BPE (Byte Pair Encoding) [![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
- 📊 Векторные представления
- 🧠 Механизмы внимания
Проект предоставляет реализации алгоритма BPE (Byte Pair Encoding) для токенизации текста: ## Оглавление
- `SimpleBPE` - базовая версия - [Быстрый старт](#быстрый-старт)
- `OptimizeBPE` - оптимизированная версия с улучшенной производительностью - [Архитектура](#архитектура)
- [Модули](#модули)
- [Примеры](#примеры)
- [Установка](#установка)
- [Разработка](#разработка)
Основные возможности: ## Быстрый старт
- Обучение на любом тексте (поддержка кириллицы и других алфавитов) ```python
- Гибкая настройка размера словаря from simple_llm import SimpleBPE, TokenEmbeddings, HeadAttention
- Простота интеграции в существующие проекты
## Установка # 1. Токенизация
bpe = SimpleBPE().fit(text)
tokens = bpe.encode("Привет мир")
1. Склонируйте репозиторий: # 2. Эмбеддинги
```bash emb_layer = TokenEmbeddings(10000, 256)
git clone https://github.com/yourusername/simple-llm.git embeddings = emb_layer(tokens)
cd simple-llm
# 3. Внимание
attention = HeadAttention(256, 64)
output = attention(embeddings)
``` ```
2. Установите пакет: ## Архитектура
```mermaid
graph TD
A[Текст] --> B(Tokenizer)
B --> C[Токены]
C --> D[TokenEmbeddings]
D --> E[HeadAttention]
E --> F[Выход модели]
```
## Модули
### Токенизация
- `SimpleBPE` - базовая реализация BPE
- `OptimizeBPE` - оптимизированная версия
### Эмбеддинги
- `TokenEmbeddings` - обучаемые векторные представления
- `PositionalEmbeddings` - позиционное кодирование
### Transformer
- `HeadAttention` - механизм внимания одной головы
## Примеры
| Файл | Описание |
|-------|----------|
| [example_bpe.py](/example/example_bpe.py) | Базовая токенизация |
| [head_attention_example.py](/example/head_attention_example.py) | Визуализация внимания |
## Установка
```bash ```bash
git clone https://github.com/pese-git/simple-llm.git
cd simple-llm
pip install -e . pip install -e .
``` ```
## Быстрый старт
```python
from simple_llm.tokenizer import SimpleBPE
# Инициализация и обучение
text = "мама мыла раму, папа пил какао"
bpe = SimpleBPE(vocab_size=50)
bpe.fit(text)
# Кодирование/декодирование
encoded = bpe.encode(text)
print(f"Закодировано: {encoded}")
decoded = bpe.decode(encoded)
print(f"Декодировано: '{decoded}'")
print(f"Совпадение с оригиналом: {text == decoded}")
# Обработка неизвестных слов
unknown = bpe.encode(еизвестное_слово")
print(f"Неизвестное слово: {unknown}")
```
Пример вывода:
```
Закодировано: [12, 12, 0, 15, 8, 0, 17, 9, 1, 0, 16, 16, 0, 14, 7, 0, 10, 10, 3]
Декодировано: 'мама мыла раму, папа пил какао'
Совпадение с оригиналом: True
Неизвестное слово: [-1, -1, 3, -1, -1, -1, -1, -1, -1, 7, -1, -1, -1, 5, 7, -1, 7]
```
### Работа с эмбеддингами
```python
from simple_llm.embedding import TokenEmbeddings, PositionalEmbeddings
# Инициализация
token_emb = TokenEmbeddings(vocab_size=1000, emb_size=256)
pos_emb = PositionalEmbeddings(max_seq_len=512, emb_size=256)
# Пример использования
tokens = [1, 2, 3] # Индексы токенов
embeddings = token_emb(tokens) + pos_emb(len(tokens))
print(f"Объединенные эмбеддинги: {embeddings.shape}")
```
## Документация
- [Токенизация BPE](/doc/bpe_algorithm.md)
- [Токенные эмбеддинги](/doc/token_embeddings_ru.md)
- [Позиционные эмбеддинги](/doc/positional_embeddings_ru.md)
## Интеграция в проект
Добавьте в ваш `requirements.txt`:
```
git+https://github.com/yourusername/simple-llm.git
```
Или установите напрямую:
```bash
pip install git+https://github.com/yourusername/simple-llm.git
```
## Примеры использования
Дополнительные примеры:
- [Базовый BPE](/example/example_bpe.py)
- [Токенные эмбеддинги](/example/example_token_embeddings.py)
- [Механизм внимания](/example/head_attention_example.py)
Документация:
- [Токенизация](/doc/bpe_algorithm.md)
- [Эмбеддинги](/doc/token_embeddings_ru.md)
- [Внимание](/doc/head_attention_ru.md)
- Сравнение SimpleBPE и OptimizeBPE
- Работа с разными языками
- Настройка параметров токенизации
## Разработка ## Разработка
Для запуска тестов:
```bash ```bash
pytest tests/ # Запуск тестов
pytest tests/ -v
# Форматирование кода
black .
``` ```
Для внесения изменений установите зависимости разработки:
```bash
pip install -e ".[dev]"
```
## Лицензия
Проект распространяется под лицензией MIT. Подробнее см. [LICENSE](LICENSE).