Galactic-2.5-Mini / START_HERE.md
openmodelai's picture
Upload 10 files
1440c49 verified
|
Raw History Blame Contribute Delete
9.76 kB
# Galactic 2.5 Mini — SpaceModel
**В архиве находятся реальные веса после короткого обучения с нуля, а не только код или случайная инициализация. Это технический эксперимент, не готовый русско-английский помощник.**
## Что это
- Название: **Galactic 2.5 Mini**.
- Разработчик / бренд по вашему указанию: **SpaceModel**.
- 49 999 872 уникальных обучаемых параметра (~50 млн).
- GPT-2-совместимый decoder-only Transformer: 12 слоёв, размерность 512, 8 голов, FFN 2048.
- Собственный byte-level BPE, 23 258 токенов; русский и английский входят в обучающие данные.
- Случайная инициализация: чужие предобученные веса не использовались.
- 300 шагов AdamW на CPU, batch 2 × 128 токенов: 76 800 предъявлений входных токенов, 76 200 целевых предсказаний. Фрагменты выбирались с возвращением, это не число уникальных токенов.
- Конфигурация контекста — 512 токенов; в этом запуске обучались последовательности только по 128. Длинный контекст не обучен и не проверен.
- Веса FP16, около 100 МБ (95,4 MiB); для работы на CPU пример загружает FP32.
## Важное ограничение
Такой объём обучения крайне мал. Не ожидайте связных ответов, следования инструкциям, достоверных знаний, устойчивой грамматики или полноценного владения обоими языками. Название «2.5» — заданное вами имя, а не указание на существовавшие предыдущие версии или уровень качества. Модель не проходила instruction tuning, safety tuning или внешние бенчмарки.
## Файлы
- `model/` — **готовое содержимое репозитория модели на Hugging Face**.
- `model/model.safetensors` — веса.
- `model/config.json`, `generation_config.json` — конфигурация.
- `model/tokenizer.json`, `tokenizer_config.json`, `special_tokens_map.json`, `vocab.json`, `merges.txt` — токенизатор.
- `model/README.md` — карточка модели с фактическими результатами.
- `model/training_report.json`, `training_log.jsonl` — отчёт и журнал реального запуска.
- `model/verification.json` — проверка загрузки и некорректированные примеры генерации.
- `data_sources.json` — источники, размеры и SHA-256 исходных текстов.
- `prepare_data.py`, `train.py`, `infer.py`, `upload.py`, `requirements.txt` — код; копия включена в `model/training/` для публикации.
- `SHA256SUMS.txt` — контрольные суммы остальных файлов архива.
## Запуск локально
Рекомендуется Python 3.11–3.13. После распаковки откройте терминал в папке `Galactic-2.5-Mini`:
```bash
python -m venv .venv
# Linux/macOS:
source .venv/bin/activate
# Windows PowerShell вместо предыдущей команды:
# .venv\Scripts\Activate.ps1
pip install -r requirements.txt
python infer.py --prompt "Однажды вечером" --max-new-tokens 64
python infer.py --prompt "Once upon a time" --max-new-tokens 64
```
Если нужен CPU-only PyTorch, установите его перед остальными зависимостями:
```bash
pip install torch==2.5.1 --index-url https://download.pytorch.org/whl/cpu
pip install -r requirements.txt
```
Не используйте `apply_chat_template`: эта модель предназначена для продолжения текста, шаблона чата нет.
## Загрузка на Hugging Face
Публикация автоматически **не выполнялась**. Доступ к аккаунту не запрашивался. Не отправляйте токены доступа в чат.
### Через сайт
1. Создайте репозиторий модели `Galactic-2.5-Mini` в вашем аккаунте или организации.
2. Если хотите адрес `SpaceModel/Galactic-2.5-Mini`, вам нужны права на организацию `SpaceModel`. Её существование и доступность имени не проверялись.
3. Загрузите **содержимое** папки `model/` в корень репозитория. Саму внешнюю папку `model` загружать как вложенную не нужно. ZIP не заменяет распакованные файлы модели.
4. Сохраните предупреждение о коротком пробном обучении в карточке.
### Через командную строку
```bash
hf auth login
python upload.py --repo YOUR_NAMESPACE/Galactic-2.5-Mini
```
Скрипт создаёт **приватный** репозиторий по умолчанию. Проверьте файлы, карточку и лицензию, затем измените видимость в Settings. Для создания сразу публичного репозитория:
```bash
python upload.py --repo YOUR_NAMESPACE/Galactic-2.5-Mini --public
```
У уже существующего репозитория скрипт не меняет видимость. В `YOUR_NAMESPACE` подставьте настоящий логин или организацию с правами записи.
## Воспроизведение и продолжение обучения
В исходные данные входят пять старых произведений Project Gutenberg. Исходные тексты не вложены в архив; загрузчик получает их по открытым URL. Источники помечены Gutenberg как public domain в США; перед повторным использованием проверяйте применимые правила вашей юрисдикции. Это маленький разнородный корпус: поэзия, задачи, исторический текст и английская проза; часть русских текстов имеет старую орфографию.
`prepare_data.py` удаляет внешнюю Gutenberg-шапку и лицензионный хвост; дополнительная очистка редакторских вставок/оглавлений не выполнялась. Последние 5% каждого произведения отложены для валидации и не участвуют в обучении токенизатора. Валидация оценивается на небольшом фиксированном наборе окон, а не на внешнем тесте.
```bash
# Загружает данные и заново обучает токенизатор в model/.
# Сначала сделайте копию model/: не перезаписывайте опубликованный токенизатор!
python prepare_data.py
# Полный повтор короткого запуска, со случайной инициализацией:
python train.py --steps 300 --batch-size 2 --seq-len 128 --device cpu --output reproduced
# Продолжить с экспортированных весов; оптимизатор будет НОВЫЙ:
python train.py --resume model --output continued --steps 1000 --batch-size 2 --seq-len 128
```
Изменение источников или версии токенизатора может изменить ID токенов. При продолжении обучения сохраняйте исходный токенизатор; если подготовили другой корпус, кодируйте его именно исходным токенизатором в `.cache/train_ru.npy`, `.cache/train_en.npy`, `.cache/valid_ru.npy`, `.cache/valid_en.npy` (одномерные массивы NumPy int32). **Нельзя заново обучить токенизатор на новых данных и использовать его со старыми весами.**
Состояния оптимизатора/RNG не включены ради размера: точное продолжение с того же шага невозможно. Для полезной модели нужны значительно больше подходящих данных и вычислений; простое повторение этих же текстов не заменит полноценное предобучение. При длительном обучении добавьте регулярное сохранение чекпойнтов — текущий минимальный скрипт экспортирует веса только после завершения всех шагов.