Files
llm-arch-research/experiments/README.md
Sergey Penkovsky ec07546ea8 feat: initial project setup with LLM architecture and HF integration
- Add LLM library with GPT model implementation
- Add hf-proxy for HuggingFace integration
- Add experiments for training and generation
- Add comprehensive documentation and examples
- Configure uv workspace with proper dependencies
2025-10-04 22:40:21 +03:00

132 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Эксперименты с LLM архитектурами
Унифицированная структура экспериментов для обучения и генерации текста моделями LLM.
## 📁 Структура экспериментов
```
experiments/
├── llm_only/ # Эксперименты только с библиотекой llm
│ ├── train_gpt_bpe.py # Обучение GPT с BPE токенизатором
│ └── generate_gpt_bpe.py # Генерация с GPT + BPE
├── hf_integration/ # Эксперименты с hf-proxy
│ ├── train_with_hf_trainer.py # Обучение через HF Trainer
│ └── generate_with_hf_tools.py # Генерация через HF инструменты
├── shared/ # Общие утилиты
│ ├── data.py # Загрузка и подготовка данных
│ └── configs.py # Конфигурации моделей
└── README.md # Этот файл
```
## 🚀 Быстрый старт
### 1. Только библиотека llm (автономный режим)
```bash
# Обучение GPT модели с собственным BPE токенизатором
uv run python experiments/llm_only/train_gpt_bpe.py
# Генерация текста обученной моделью
uv run python experiments/llm_only/generate_gpt_bpe.py
```
### 2. Интеграция с HuggingFace через hf-proxy
```bash
# Обучение через HuggingFace Trainer
uv run python experiments/hf_integration/train_with_hf_trainer.py
# Генерация через HF инструменты
uv run python experiments/hf_integration/generate_with_hf_tools.py
```
## 📊 Сравнение подходов
| Аспект | Только llm | С hf-proxy |
|--------|------------|------------|
| **Зависимости** | Только PyTorch | + HuggingFace Transformers |
| **Обучение** | Собственный Trainer | HF Trainer |
| **Генерация** | Прямой вызов модели | HF pipeline & интерфейсы |
| **Гибкость** | Полный контроль | Совместимость с HF экосистемой |
| **Сложность** | Проще | Более сложная настройка |
## 🔧 Конфигурация
Все эксперименты используют общие конфигурации из `shared/configs.py`:
- **Модели**: базовые, маленькие и большие конфигурации GPT
- **Токенизаторы**: параметры BPE обучения
- **Обучение**: гиперпараметры обучения
- **Генерация**: параметры генерации текста
## 📈 Результаты
Эксперименты сохраняют:
- Обученные модели в `checkpoints/`
- Токенизаторы в формате JSON
- Логи обучения и генерации
- Конфигурации моделей
## 🎯 Примеры использования
### Автономное использование (только llm)
```python
from llm.models.gpt import GPT
from llm.tokenizers import BPETokenizer
# Загрузка обученной модели
model = GPT(config)
model.load_state_dict(torch.load("checkpoints/gpt-bpe/model.pt"))
# Загрузка токенизатора
tokenizer = BPETokenizer.load("checkpoints/bpe_tokenizer.json")
# Генерация текста
input_ids = tokenizer.encode("промпт")
generated = model.generate(input_ids)
```
### Интеграция с HF (через hf-proxy)
```python
from hf_proxy import HFAdapter, HFTokenizerAdapter
# Загрузка через адаптеры
hf_model = HFAdapter.from_pretrained("checkpoints/hf-trained/pytorch_model.bin")
hf_tokenizer = HFTokenizerAdapter.from_pretrained("checkpoints/hf-bpe-tokenizer")
# Использование с HF инструментами
from transformers import pipeline
pipe = pipeline("text-generation", model=hf_model, tokenizer=hf_tokenizer)
```
## 🔍 Мониторинг
- **Логи обучения**: автоматически сохраняются в JSON
- **Метрики**: loss, длина генерации, эффективность токенизации
- **Визуализация**: можно интегрировать с TensorBoard через HF Trainer
## 🛠️ Разработка
### Добавление нового эксперимента
1. Создайте файл в соответствующей директории (`llm_only/` или `hf_integration/`)
2. Используйте общие утилиты из `shared/`
3. Сохраняйте результаты в стандартизированные пути
4. Документируйте конфигурации и результаты
### Модификация конфигураций
Измените соответствующие секции в `shared/configs.py`:
- `BASE_GPT_CONFIG` - параметры модели
- `BPE_CONFIG` - параметры токенизатора
- `TRAINING_CONFIG` - параметры обучения
- `GENERATION_CONFIG` - параметры генерации
## 📚 Дополнительные ресурсы
- [Документация llm библиотеки](../llm/README.md)
- [Документация hf-proxy](../hf-proxy/README.md)
- [Примеры использования](../notebooks/)