Vexion-LM 🧠

Vexion-LM — это семейство открытых языковых моделей, созданных с нуля. Проект включает в себя полный пайплайн: от написания кастомной архитектуры на PyTorch до претрейна базовых моделей и их последующего дообучения под диалоговый формат с использованием LoRA-адаптеров.

⚠️ ВАЖНО: Модели версии Base предназначены исключительно для дальнейшего дообучения (fine-tuning) под ваши задачи. Модели с пометкой LoRA уже дообучены на диалоговом датасете и готовы к общению (их дообучать не рекомендуется!).

🚀 Особенности модели

  • Кастомная архитектура: Оптимизированный трансформер с поддержкой градиентного чекпоинтинга для экономии VRAM.
  • Эффективное обучение: Использование 8-битного оптимизатора (AdamW8bit) от библиотеки bitsandbytes, что позволяет тренировать модели локально на потребительских GPU.
  • Гибкая система LoRA: Встроенный механизм заморозки базовых весов и тренировки компактных адаптеров для диалогового формата без риска катастрофического забывания.
  • Умная генерация: Кастомный скрипт инференса с поддержкой штрафов за повторения, управления температурой и раннего останова по спецтокенам.
  • Эффективный RoPE: Написанный вручную RoPE - позволяет модели лучше понимать, где находится каждый токен.
  • MoE (Mixture of Experts): Встроенная система из 4 независимых экспертов с механизмом маршрутизации. Позволяет модели обладать «умом», активируя лишь часть из них при генерации для экономии ресурсов.
  • GQA (Grouped-Query Attention): Радикально снижает потребление видеопамяти при генерации длинного контекста (до 2048+ токенов), делая рост VRAM линейным, а не квадратичным.
  • SwiGLU & RMSNorm: Использование самых современных функций активации и нормализации (стандарт индустрии a-la Llama 3) для максимальной логики и скорости сходимости.
  • Кастомный BPE Токенизатор: Словарь строго на 40,960 токенов — идеальное число, кратное 64, что обеспечивает 100% эффективность работы тензорных ядер (Tensor Cores) видеокарты.
  • FlashAttention-2 & Memory Management: Встроенная поддержка sdpa_kernel и работа с динамическим аллокатором памяти (expandable_segments) для предотвращения OOM и фрагментации VRAM.

📊 Семейство моделей Vexion

Развитие проекта разбито на несколько этапов, от компактных тестовых версий до полноценных миллиардников.

Модель Параметры Контекст Статус Train_Loss Val_Loss Vocab_Size Total_Steps Sliding window
Vexion-LM Mini 317M 1024 base model 2.89 2.69 40960 40000 no
Vexion-LM V1 ~441M 2048 В планах - - 40960 - 1024
Vexion-LM V2 ~750M 3072 В планах (Q1/Q2) - - 40960 - 1536
Vexion-LM XL ~1.2B 4096 В планах (Q2/Q3) - - 40960 - 2048

⚠️ Важное предупреждение о совместимости

Эта модель построена на полностью кастомной архитектуре, написанной на чистом PyTorch. Она НЕ поддерживает библиотеку transformers от Hugging Face (Transformer API). Вы не сможете загрузить её через стандартные классы вроде AutoModelForCausalLM. Для инференса и дообучения используйте исключительно скрипты, приложенные в этом репозитории (model.py, generate.py, генерация.py).

⚙️ Формат весов и точность (Precision)

  • Формат файлов: .safetensors (безопасный и быстрый формат загрузки).
  • Базовая точность параметров: FP32.
  • При запуске генерации через generate.py код автоматически использует автоматическую смешанную точность (AMP via torch.amp.autocast), переходя на FP16 или BF16 на поддерживаемых видеокартах для экономии видеопамяти и ускорения работы. Вручную конвертировать веса не требуется.

🛠 Как использовать модель - 2 варианта

  1. LoRA: Так как модель построена на кастомной архитектуре, в репозитории прилагается файл generate.py, через который осуществляется запуск. Запуск происходит через терминал/командную строку (CMD, PowerShell, терминал VSCode). Модель LoRA (дообученная на диалогах) - может запускаться только с generate.py

  2. PreTrained: В случае с предварительно обученной, generate.py - НЕ ПОДОЙДЕТ. Используйте генерация.py для общения с моделью. Учитывайте, что предварительно обученная модель не умеет общаться - а работает как "дополнитель текста".

1. Подготовка

Создайте папку checkpoints в директории с проектом и поместите туда скачанный файл модели (например, model.safetensors). Откройте терминал и перейдите в папку с проектом:

cd C:\Users\YourName\Desktop\FileName

### 2. Запуск
Для обычного текста: python генерация.py --checkpoint checkpoints/model.safetensors --prompt "опасен ли искуственный интеллект?" --temperature 0.7 --rep_penalty 1.2 --max_new_tokens 400 --device cuda

Для диалогового текста: python generate.py --checkpoint checkpoints/Vexion-LM_mini_lora.safetensors --prompt "[CLS] Что такое человек [SEP] " --temperature 0.7 --device cuda --use_lora

📝 Правила написания промпта (prompt):
[CLS] — спецтокен начала вашего запроса. После него пишите свой вопрос.

[SEP] — спецтокен начала ответа ИИ. После этого токена нельзя писать никакой текст, иначе модель сломает логику ответа!

Флаг --use_lora обязателен при запуске диалоговых версий модели, чтобы скрипт подключил дополнительные веса адаптеров.
Downloads last month
2,260
Safetensors
Model size
0.3B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Collection including DZER-Studios/Vexion-LM