mirror of
https://github.com/pese-git/simple-llm.git
synced 2026-01-24 05:26:02 +00:00
- Добавлен класс GetData для работы с последовательными данными - Реализован функционал: * Создание датасета из последовательности * Автоматическое формирование пар (input, target) * Поддержка CPU/GPU * Проверка корректности параметров - Добавлены тесты для проверки функционала - Создан пример использования в example/ - Добавлена документация с блок-схемой в doc/ - Обновлен README.md с информацией о новом классе
88 lines
2.5 KiB
Markdown
88 lines
2.5 KiB
Markdown
# Simple-LLM Framework
|
||
|
||
[]()
|
||
[]()
|
||
|
||
Простая и понятная реализация языковой модели GPT-стиля с нуля на PyTorch
|
||
|
||
## 🔍 Обзор
|
||
|
||
Simple-LLM предоставляет:
|
||
- Полную реализацию архитектуры GPT
|
||
- Эффективный токенизатор BPE
|
||
- Модули трансформера (внимание, FFN, эмбеддинги)
|
||
- Гибкую систему генерации текста
|
||
- Примеры использования и документацию
|
||
|
||
## 🚀 Быстрый старт
|
||
|
||
1. Установите зависимости:
|
||
```bash
|
||
pip install torch numpy tqdm
|
||
```
|
||
|
||
2. Запустите пример генерации:
|
||
```bash
|
||
python example/example_gpt.py
|
||
```
|
||
|
||
## 🧠 Основные компоненты
|
||
|
||
### Обработка данных
|
||
```python
|
||
from simple_llm.data.get_data import GetData
|
||
|
||
dataset = GetData(
|
||
data=[1, 2, 3, 4, 5], # Входная последовательность
|
||
seq_len=3, # Длина окна
|
||
device="cuda" # Устройство (опционально)
|
||
)
|
||
```
|
||
|
||
### Модель GPT
|
||
```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
|
||
)
|
||
```
|
||
|
||
### Генерация текста
|
||
```python
|
||
output = model.generate(
|
||
input_ids,
|
||
max_new_tokens=100,
|
||
temperature=0.9,
|
||
top_k=50,
|
||
top_p=0.9
|
||
)
|
||
```
|
||
|
||
## 📚 Документация
|
||
|
||
Полная документация доступна в [doc/](./doc/):
|
||
- [Архитектура GPT](./doc/gpt_documentation_ru.md)
|
||
- [Алгоритм BPE](./doc/bpe_algorithm.md)
|
||
- [Обработка последовательностей](./doc/get_data_documentation_ru.md)
|
||
- [Примеры использования](./example/)
|
||
|
||
## 🛠 Тестирование
|
||
```bash
|
||
pytest tests/
|
||
```
|
||
|
||
## 🤝 Как внести вклад
|
||
1. Форкните репозиторий
|
||
2. Создайте ветку (`git checkout -b feature/AmazingFeature`)
|
||
3. Сделайте коммит (`git commit -m 'Add some AmazingFeature'`)
|
||
4. Запушьте ветку (`git push origin feature/AmazingFeature`)
|
||
5. Откройте Pull Request
|
||
|
||
## 📜 Лицензия
|
||
Распространяется под лицензией MIT. См. [LICENSE](./LICENSE)
|