Files
simple-llm/README.md

205 lines
10 KiB
Markdown
Raw Normal View History

Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
# Simple-LLM: Персональная языковая модель
2025-07-11 12:21:33 +03:00
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
## 🎯 Цель проекта
2025-07-11 12:21:33 +03:00
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
Simple-LLM - это минималистичная реализация языковой модели (LLM) с полным циклом:
- Обучение BPE-токенизатора на ваших данных
- Подготовка датасета для обучения модели
- Тренировка компактной GPT-архитектуры
- Генерация текста в заданном стиле
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
Проект создан для:
1. Образовательных целей - понимания работы современных LLM
2. Экспериментов с генерацией текста на небольших датасетах
3. Создания персонализированных языковых моделей
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
Полный цикл от обучения токенизатора до генерации текста
2025-07-23 14:45:39 +03:00
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
## 🛠 Установка
```bash
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
# 1. Клонируйте репозиторий
git clone https://github.com/ваш-репозиторий/simple-llm.git
cd simple-llm
# 2. Создайте виртуальное окружение (рекомендуется)
python -m venv venv
source venv/bin/activate # Linux/Mac
# или venv\Scripts\activate # Windows
# 3. Установите зависимости
2025-07-24 17:36:40 +03:00
pip install torch
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
pip install dill tqdm # Основные зависимости для работы
2025-07-24 16:49:49 +03:00
# Установка simple_llm пакета
pip install .
```
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
## 📂 Подготовка данных
2025-07-23 14:45:39 +03:00
### Где взять текстовые корпуса для обучения?
Подборка открытых корпусов по русской литературе и фольклору:
- **[Собрание стихотворений А. С. Пушкина](https://dataverse.pushdom.ru/dataset.xhtml?persistentId=doi:10.31860/openlit-2023.8-C005)**
- **[Корпус народных песен первой половины XIX века](https://dataverse.pushdom.ru/dataset.xhtml?persistentId=doi:10.31860/openlit-2019.11-C003)**
- **[Сборник русских литературных баллад 1840-х годов](https://dataverse.pushdom.ru/dataset.xhtml?persistentId=doi:10.31860/openlit-2021.9-C003)**
- **[Коллекция русских элегий 18151835 годов](https://dataverse.pushdom.ru/dataset.xhtml?persistentId=doi:10.31860/openlit-2019.11-C001)**
- **[Архив публикаций журнала «Современник» (18471866)](https://stepik.org/lesson/1624883/step/1?unit=1647042#:~:text=%D0%9A%D0%BE%D1%80%D0%BF%D1%83%D1%81%20%D0%BF%D1%83%D0%B1%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B9%20%D0%B6%D1%83%D1%80%D0%BD%D0%B0%D0%BB%D0%B0%20%C2%AB%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B8%D0%BA%C2%BB%201847%E2%80%931866)**
- **[19 000 Russian Poems](https://www.kaggle.com/datasets/grafstor/19-000-russian-poems)** — коллекция из 19 тысяч стихотворений на русском языке.
- **[Russian Novels](https://github.com/JoannaBy/RussianNovels/tree/master)** — библиотека классических русских романов (около сотни произведений).
- **[artificial-dostoevsky](https://gitlab.com/z00logist/artificial-dostoevsky)** — собрание из 34 произведений Фёдора Достоевского, включая его известные романы и рассказы.
- **[Russian Financial News](https://www.kaggle.com/datasets/kkhubiev/russian-financial-news)** — датасет, включающий тексты финансовых новостей на русском.
Это лишь часть доступных собранных корпусов. В дополнение к ним в интернете можно самостоятельно найти и загрузить тексты отдельных классических произведений (Пушкин, Лермонтов, Толстой и др.).
Помимо литературных источников, вы можете сформировать собственный датасет из других ресурсов. Например, для обучения модели подойдут статьи из Википедии — доступны [официальные дампы](https://dumps.wikimedia.org/ruwiki/latest/?spm=a2ty_o01.29997173.0.0.3565c921IkqB7g), для их обработки удобно применять инструмент [wikiextractor](https://github.com/attardi/wikiextractor).
Скачайте нужный корпус, распакуйте архив (если нужно) и поместите текстовые файлы (.txt) в папку:
2025-07-23 14:45:39 +03:00
```
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
data/
└── corpus/
└── sample/
├── text1.txt
├── text2.txt
└── ...
2025-07-23 14:45:39 +03:00
```
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
## 🔄 Полный рабочий цикл
2025-07-23 14:45:39 +03:00
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
### 1. Обучение BPE-токенизатора
```bash
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
python bin/train_tokenizer.py \
--corpus data/corpus/sample \
--output data/tokenizer/bpe_model.json \
--vocab-size 500
```
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
### 2. Токенизация данных
```bash
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
python bin/tokenize_corpus.py \
--corpus data/corpus/sample \
--tokenizer data/tokenizer/bpe_model.json \
--output data/tokens/tokenized_corpus.pkl
```
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
### 3. Обучение GPT модели
2025-07-11 12:21:33 +03:00
```bash
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
python bin/train_gpt_model.py \
--tokens data/tokens/tokenized_corpus.pkl \
--tokenizer data/tokenizer/bpe_model.json \
--output data/model/gpt_model.pth \
--seq-len 32 \
--batch-size 3 \
--epochs 3 \
--emb-size 64 \
--num-heads 2 \
--num-layers 2
```
### ✔️ Восстановление обучения с чекпоинта
Если обучение было прервано или вы хотите дообучить модель:
- Просто перезапустите команду обучения с теми же параметрами (`bin/train_gpt_model.py ...`).
- Скрипт сам определит последний checkpoint (checkpoint_epoch_X.pt) в папке модели.
- Обучение продолжится с нужной эпохи, параметры останутся неизменными.
- В консоли вы увидите сообщения вроде:
```
⚡ Восстанавливаем обучение с эпохи 12
Восстановление обучения GPT
...
Начало обучения GPT на 18 эпох (с 12 по 29)
```
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
### 4. Генерация текста
```bash
python bin/generate_text.py \
--model data/model/gpt_model.pth \
--tokenizer data/tokenizer/bpe_model.json \
--seq-len 32 \
--emb-size 64 \
--num-heads 2 \
--num-layers 2 \
--prompt "Ваш текст для продолжения" \
--length 100 \
--temperature 0.7
```
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
## 🚀 Быстрый старт (минимальная конфигурация)
```bash
# Последовательно выполните:
./bin/train_tokenizer.py --corpus data/corpus/sample --output data/tokenizer/bpe.json
./bin/tokenize_corpus.py --corpus data/corpus/sample --tokenizer data/tokenizer/bpe.json
./bin/train_gpt_model.py --tokens data/tokens/corpus_tokens.pkl --tokenizer data/tokenizer/bpe.json
./bin/generate_text.py --model data/model/gpt_model.pth --tokenizer data/tokenizer/bpe.json --prompt "Привет"
```
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
## 🧠 Рекомендации по параметрам
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
| Параметр | CPU (рекомендации) | GPU (рекомендации) |
|------------------|--------------------|--------------------|
| vocab-size | 2000-5000 | 5000-10000 |
| seq-len | 64-128 | 128-256 |
| batch-size | 4-8 | 16-32 |
| emb-size | 64-128 | 256-512 |
| num-layers | 2-4 | 6-12 |
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
## ⚠️ Устранение проблем
1. **Ошибка памяти**:
- Уменьшите `batch-size` и `seq-len`
```bash
python bin/train_gpt_model.py --batch-size 2 --seq-len 64
```
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
2. **Плохая генерация**:
- Увеличьте размер корпуса (>1MB текста)
- Добавьте больше эпох обучения (`--epochs 15`)
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
3. **Медленная работа**:
```bash
# Для GPU добавьте перед запуском:
export CUDA_VISIBLE_DEVICES=0
```
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
## 👥 Участие в разработке
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
Мы приветствуем вклад в проект! Вот как вы можете помочь:
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
### 🛠 Как внести свой вклад:
1. Форкните репозиторий
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
2. Создайте ветку для вашего изменения (`git checkout -b feature/your-feature`)
3. Сделайте коммит ваших изменений (`git commit -am 'Add some feature'`)
4. Запушьте в ветку (`git push origin feature/your-feature`)
5. Создайте Pull Request
### 📌 Правила:
- Следуйте существующему стилю кода
- Пишите понятные сообщения коммитов
- Добавляйте тесты для новых функций
- Обновляйте документацию при изменении API
### 🐛 Сообщение об ошибках:
Открывайте Issue с описанием:
1. Шаги для воспроизведения
2. Ожидаемое поведение
3. Фактическое поведение
4. Версии ПО (Python, PyTorch и т.д.)
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
## 📜 Лицензия
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
Проект распространяется под лицензией MIT. Полный текст лицензии доступен в файле [LICENSE](LICENSE).
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
Основные положения:
- Разрешается свободное использование, модификация и распространение кода
- Обязательно указание авторства
- Лицензия предоставляется "как есть" без гарантий
- Авторы не несут ответственности за последствия использования
Рефакторинг и улучшение компонентов Основные изменения в коде: 1. Токенизатор (bpe.py): - Добавлен прогресс-бар через tqdm в метод fit() - Улучшено логирование процесса обучения - Добавлена обработка edge-cases для vocab_size 2. Генерация текста (generate_text.py): - Полный рефакторинг скрипта - Добавлены проверки модели перед загрузкой - Поддержка уменьшенных моделей (seq_len=32) - Подробное логирование процесса генерации 3. Обучение GPT (train_gpt_model.py): - Автоподбор параметров под размер данных - Уменьшенные параметры модели по умолчанию - Контроль памяти и устройств (CPU/MPS) 4. Токенизация корпуса (tokenize_corpus.py): - Добавлены проверки входных данных - Подробное логирование процесса - Обработка ошибок загрузки файлов Исправления: - Синхронизация размеров слоёв в GPT - Корректная работа с малыми наборами данных - Исправление загрузки моделей на MPS Обновление README.md - Добавлены обязательные зависимости: dill и tqdm - Добавлен раздел 'Цель проекта' с описанием задач - Добавлен раздел 'Участие в разработке' для контрибьюторов - Добавлен раздел 'Лицензия' с условиями MIT Рефакторинг основных скриптов и обновление данных Основные изменения: 1. Скрипты в bin/: - Оптимизация generate_text.py (генерация текста) - Улучшение tokenize_corpus.py (обработка корпуса) - Рефакторинг train_gpt_model.py (обучение модели) - Обновление train_tokenizer.py (алгоритм BPE) 2. Данные: - Удалены устаревшие артефакты: * simple_llm_gpt.pth (модель) * bpe_tokenizer.json (токенизатор) * corpus_tokens.pkl (токены) - Подготовка к генерации новых данных
2025-07-24 12:58:59 +03:00
## 📌 Важно
- Все скрипты имеют встроенную помощь:
```bash
python bin/train_tokenizer.py --help
```
- Модель автоматически использует GPU если доступен
- Для выхода из виртуального окружения: `deactivate`