🧠 Vexion-GPT: Custom Dense LLM Architecture

Vexion-GPT — это написанный с нуля движок классической плотной (Dense) языковой модели на базе PyTorch. Проект создан с целью глубокого понимания архитектуры трансформеров, оптимизации памяти и процессов претрейна (Pre-training) без использования тяжелых сторонних фреймворков.

На данный момент репозиторий содержит исходный код архитектуры и графики базового обучения. Веса модели будут опубликованы после завершения расширенных этапов Pre-training на больших корпусах данных.

⚙️ Ключевые особенности движка (Under the Hood)

В отличие от многих "учебных" моделей, Vexion-GPT спроектирована для реальной работы с большими данными и максимальной утилизации GPU:

  • Pure Dense Architecture: Классическая, математически чистая GPT-архитектура без примесей (без MoE, без RoPE). Только проверенный временем Causal Attention и функции активации GELU/SiLU.
  • Flash Attention Integrated: Полная поддержка Fused Kernels для вычисления внимания на лету. Потребление VRAM снижено колоссально (модель свободно обучается на потребительских GPU с размером батча, который раньше вызывал OOM).
  • Сверхбыстрый Custom DataLoader: Даталоадер переписан для потокового чтения бинарных данных (.bin) в обход питоновского сборщика мусора и системного кэширования Windows. Скорость подачи токенов статична и не деградирует на длинных дистанциях.
  • HF-Compatible Config: Архитектура полностью отвязана от хардкода. Конфигурация модели реализована через config.json по стандартам Hugging Face (полная поддержка параметров hidden_size, num_hidden_layers и т.д.).

📉 Системные требования и потребление VRAM (Pre-training)

Поскольку Vexion-gpt — это классический плотный трансформер без перегруженных современных надстроек, он невероятно бережно относится к ресурсам. Интеграция Flash Attention и правильная работа с памятью позволяют обучать модель с нуля даже на бюджетных домашних видеокартах.

Главный секрет низкого потребления кроется в поддержке градиентного накопления. Обучение с настройками batch_size = 1 и accumulate_steps = 256 дает огромный эффективный размер батча (256), но физическое потребление памяти остается на уровне единичного прохода. Накопление градиентов расходует вычислительное время, но не раздувает VRAM.

Замеры памяти (при контексте 1024 токена) Ниже приведены реальные замеры потребления видеопамяти при обучении с нуля (включая веса, градиенты, состояния оптимизатора AdamW и кэш PyTorch):

Nano / 117M параметров (Hidden size: 768, Layers: 12, Heads: 12)

Потребление: 2.0 ГБ VRAM

Идеально для: RTX 3050 / RTX 4050 Laptop / Любых видеокарт от 6 ГБ.

Medium / 345M параметров (Hidden size: 1024, Layers: 24, Heads: 16)

При batch_size - 8, --accumulate_steps - 12. Общий батч = 96.

Потребление: 5.2 ГБ VRAM

Идеально для: RTX 3060 Ti / 4060 (8 ГБ).

Large / 762M параметров (Предел для 8 ГБ) (Hidden size: 1280, Layers: 36, Heads: 20)

Потребление: ~8.6 ГБ VRAM

Идеально для: Карт на 8 ГБ (с выключенными фоновыми приложениями) или 12 ГБ (RTX 3060 12GB / 4070).

💡 Примечание: Потребление указано для смешанной точности (bfloat16 / float16). Вывод изображения на монитор обычно забирает около 200–400 МБ вашей видеокарты, поэтому всегда оставляйте небольшой запас. А лучше переключайтесь на вывод из CPU если есть возможность, чтобы VRAM была полностью освобождена.

📊 Текущий статус обучения (Phase 1: Wikipedia)

На прикрепленных графиках представлен первый этап предварительного обучения (Pre-train) базовой модели.

  • Параметры текущей сборки: 117M параметров (Hidden size: 768, Layers: 12, Heads: 12, ctx: 1024).
  • Датасет: Чистый корпус русскоязычной Википедии (~331 МЛН токенов).
  • Цель этапа: Формирование базового синтаксиса, идеальной грамматики и пунктуации русского языка до перехода на "грязные" датасеты (CulturaX).

Снимок экрана (427)

  • График демонстрирует уверенное падение Loss без спайков, что подтверждает абсолютную математическую стабильность самописного трансформера и механизма градиентов. На контрольных чекпоинтах модель успешно генерирует грамматически верный энциклопедический текст.

🚀 Использование кода

Архитектура готова к экспериментам. Вы можете легко масштабировать модель от Nano до 1B+ параметров, просто изменив config.json.

Пример инициализации чистого графа модели:

import torch
from model import GPT, GPTConfig

# Загрузка стандартизированного HF конфига
config = GPTConfig.from_json("config.json")

# Инициализация чистой модели с поддержкой bfloat16
device = "cuda" if torch.cuda.is_available() else "cpu"
model = GPT(config).to(device)

print(f"Модель Vexion-GPT инициализирована. Параметров: {sum(p.numel() for p in model.parameters()) / 1e6:.2f} M")

Запуск обучения/дообучения модели:

  • Прежде чем начинать обучение модели, запустите командную строку (CMD) от имени администратора и вставьте след команду: cd C:\Users\Username\Desktop\папка с моделью
Обучение: python train.py --data_path train.bin --val_path  val.bin --total_steps 30000 --save_every 1000 --batch_size 1 --accumulate_steps 256 --lr 1e-4 --dropout 0.0 --warmup_steps 500

Дообучение: python train.py --data_path train.bin --val_path  val.bin --total_steps 30000 --save_every 1000 --batch_size 1 --accumulate_steps 256 --lr 1e-4 --dropout 0.0 --warmup_steps 500 --resume checkpoints/gpt_step_1000.safetensors

Общение: python generate_base.py --checkpoint checkpoints/gpt_step_180000.safetensors --prompt "Чем опасен искусственный интеллект?" --temperature 0.7 --rep_penalty 1.2 --max_new_tokens 400 --device cuda
Downloads last month
140
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support