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 viatorch.amp.autocast), переходя на FP16 или BF16 на поддерживаемых видеокартах для экономии видеопамяти и ускорения работы. Вручную конвертировать веса не требуется.
🛠 Как использовать модель - 2 варианта
LoRA: Так как модель построена на кастомной архитектуре, в репозитории прилагается файл
generate.py, через который осуществляется запуск. Запуск происходит через терминал/командную строку (CMD, PowerShell, терминал VSCode). Модель LoRA (дообученная на диалогах) - может запускаться только с generate.pyPreTrained: В случае с предварительно обученной,
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