mirror of
https://github.com/pese-git/llm-arch-research.git
synced 2026-01-23 21:10:54 +00:00
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
This commit is contained in:
131
experiments/README.md
Normal file
131
experiments/README.md
Normal file
@@ -0,0 +1,131 @@
|
||||
# Эксперименты с 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/)
|
||||
Reference in New Issue
Block a user