2025-07-22 10:53:57 +03:00
|
|
|
|
# Simple-LLM Framework
|
2025-07-11 12:21:33 +03:00
|
|
|
|
|
2025-07-22 10:53:57 +03:00
|
|
|
|
[]()
|
|
|
|
|
|
[]()
|
2025-07-11 12:21:33 +03:00
|
|
|
|
|
2025-07-22 10:53:57 +03:00
|
|
|
|
Простая и понятная реализация языковой модели GPT-стиля с нуля на PyTorch
|
2025-07-11 12:21:33 +03:00
|
|
|
|
|
2025-07-22 10:53:57 +03:00
|
|
|
|
## 🔍 Обзор
|
2025-07-20 14:34:17 +03:00
|
|
|
|
|
2025-07-22 10:53:57 +03:00
|
|
|
|
Simple-LLM предоставляет:
|
|
|
|
|
|
- Полную реализацию архитектуры GPT
|
|
|
|
|
|
- Эффективный токенизатор BPE
|
|
|
|
|
|
- Модули трансформера (внимание, FFN, эмбеддинги)
|
|
|
|
|
|
- Гибкую систему генерации текста
|
|
|
|
|
|
- Примеры использования и документацию
|
2025-07-20 14:34:17 +03:00
|
|
|
|
|
2025-07-22 10:53:57 +03:00
|
|
|
|
## 🚀 Быстрый старт
|
2025-07-11 12:21:33 +03:00
|
|
|
|
|
2025-07-22 10:53:57 +03:00
|
|
|
|
1. Установите зависимости:
|
2025-07-19 22:20:12 +03:00
|
|
|
|
```bash
|
2025-07-22 10:53:57 +03:00
|
|
|
|
pip install torch numpy tqdm
|
2025-07-19 22:20:12 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-07-22 10:53:57 +03:00
|
|
|
|
2. Запустите пример генерации:
|
2025-07-11 12:21:33 +03:00
|
|
|
|
```bash
|
2025-07-22 10:53:57 +03:00
|
|
|
|
python example/example_gpt.py
|
2025-07-11 12:21:33 +03:00
|
|
|
|
```
|
2025-07-22 06:24:46 +03:00
|
|
|
|
|
2025-07-22 10:53:57 +03:00
|
|
|
|
## 🧠 Основные компоненты
|
|
|
|
|
|
|
|
|
|
|
|
### Модель GPT
|
2025-07-22 06:24:46 +03:00
|
|
|
|
```python
|
|
|
|
|
|
from simple_llm.transformer.gpt import GPT
|
|
|
|
|
|
|
|
|
|
|
|
model = GPT(
|
|
|
|
|
|
vocab_size=10000,
|
|
|
|
|
|
max_seq_len=512,
|
|
|
|
|
|
emb_size=768,
|
|
|
|
|
|
num_heads=12,
|
|
|
|
|
|
num_layers=6
|
|
|
|
|
|
)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-07-22 10:53:57 +03:00
|
|
|
|
### Генерация текста
|
2025-07-22 06:24:46 +03:00
|
|
|
|
```python
|
2025-07-22 10:53:57 +03:00
|
|
|
|
output = model.generate(
|
|
|
|
|
|
input_ids,
|
|
|
|
|
|
max_new_tokens=100,
|
|
|
|
|
|
temperature=0.9,
|
|
|
|
|
|
top_k=50,
|
|
|
|
|
|
top_p=0.9
|
|
|
|
|
|
)
|
2025-07-22 06:24:46 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 📚 Документация
|
|
|
|
|
|
|
2025-07-22 10:53:57 +03:00
|
|
|
|
Полная документация доступна в [doc/](./doc/):
|
|
|
|
|
|
- [Архитектура GPT](./doc/gpt_documentation_ru.md)
|
|
|
|
|
|
- [Алгоритм BPE](./doc/bpe_algorithm.md)
|
|
|
|
|
|
- [Примеры использования](./example/)
|
2025-07-22 06:24:46 +03:00
|
|
|
|
|
2025-07-22 10:53:57 +03:00
|
|
|
|
## 🛠 Тестирование
|
2025-07-22 06:24:46 +03:00
|
|
|
|
```bash
|
2025-07-22 10:53:57 +03:00
|
|
|
|
pytest tests/
|
2025-07-22 06:24:46 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-07-22 10:53:57 +03:00
|
|
|
|
## 🤝 Как внести вклад
|
|
|
|
|
|
1. Форкните репозиторий
|
|
|
|
|
|
2. Создайте ветку (`git checkout -b feature/AmazingFeature`)
|
|
|
|
|
|
3. Сделайте коммит (`git commit -m 'Add some AmazingFeature'`)
|
|
|
|
|
|
4. Запушьте ветку (`git push origin feature/AmazingFeature`)
|
|
|
|
|
|
5. Откройте Pull Request
|
2025-07-22 06:24:46 +03:00
|
|
|
|
|
|
|
|
|
|
## 📜 Лицензия
|
2025-07-22 10:53:57 +03:00
|
|
|
|
Распространяется под лицензией MIT. См. [LICENSE](./LICENSE)
|