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

5.6 KiB
Raw Blame History

Эксперименты с 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 (автономный режим)

# Обучение 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

# Обучение через 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)

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)

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 - параметры генерации

📚 Дополнительные ресурсы