diff --git a/README.md b/README.md index 106aaf0..6e150fa 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Проект организован как монорепозиторий с использованием **uv** workspace: -- **`llm`** — основная библиотека с реализацией архитектур LLM +- **`llm`** — основная библиотека с реализацией архитектур LLM (GPT, GPT-2) - **`hf-proxy`** — адаптер для интеграции с HuggingFace - **`experiments`** — скрипты обучения и экспериментов - **`notebooks`** — исследовательские ноутбуки @@ -30,8 +30,9 @@ llm-arch-research/ │ │ ├── feed_forward.py │ │ ├── token_embeddings.py │ │ └── positional_embeddings.py -│ ├── models/gpt/ # GPT реализация +│ ├── models/gpt/ # GPT и GPT-2 реализация │ │ ├── gpt.py +│ │ ├── gpt2.py │ │ └── __init__.py │ ├── training/ # утилиты обучения │ │ ├── dataset.py @@ -103,11 +104,11 @@ uv run python experiments/hf_integration/generate_with_hf_tools.py ### Использование в коде ```python -from llm.models.gpt import GPT +from llm.models.gpt import GPT, GPT2 from llm.tokenizers import BPETokenizer from hf_proxy import HFAdapter, HFTokenizerAdapter -# Создание модели +# Создание GPT модели config = { "vocab_size": 50257, "embed_dim": 256, @@ -118,6 +119,17 @@ config = { } model = GPT(config) +# Создание GPT-2 модели (пример) +gpt2_config = { + "vocab_size": 50257, + "embed_dim": 768, + "num_heads": 12, + "num_layers": 12, + "max_position_embeddings": 1024, + "dropout": 0.1 +} +gpt2_model = GPT2(gpt2_config) + # Генерация текста generated = model.generate( input_ids, @@ -190,12 +202,13 @@ dependencies = [ ## 🎯 Реализованные возможности -### Архитектура GPT +### Архитектуры GPT и GPT-2 - ✅ Токенные и позиционные эмбеддинги - ✅ Многоголовое внимание с causal mask - ✅ Декодерные блоки с residual connections - ✅ Layer normalization - ✅ Dropout регуляризация +- ✅ Отдельные реализации GPT и GPT-2 (различия в масштабе и деталях архитектуры) ### Генерация текста - ✅ Жадный поиск (greedy decoding)