Evgeny AI 1.0

Evgeny AI 1.0 — учебный прототип инженерно-производственного AI-помощника, созданный в рамках обучения работе с нейросетями.

Модель предназначена для информационной поддержки инженерно-технического персонала производственного предприятия: объяснения технических вопросов, первичной диагностики оборудования, простых инженерных и производственных расчётов, а также структурирования технической информации.

Важно: репозиторий содержит LoRA/QLoRA-адаптер, а не самостоятельную полную языковую модель. Для работы требуется базовая модель Qwen/Qwen2.5-1.5B-Instruct.

Назначение

Основные направления применения:

  • промышленное оборудование;
  • термопластавтоматы и гидравлические системы;
  • первичная диагностика неисправностей;
  • 3D-печать и экструзия;
  • инженерные расчёты;
  • производственная аналитика;
  • структурирование технической информации.

Одним из ключевых требований проекта является отказ от генерации неподтверждённых технических параметров, сервисных кодов и характеристик оборудования при недостатке исходных данных.

Базовая модель

  • Base model: Qwen/Qwen2.5-1.5B-Instruct
  • Тип адаптации: Supervised Fine-Tuning (SFT) + QLoRA/LoRA
  • Формат данных: conversational messages (system, user, assistant)
  • Язык обучающих примеров: русский

Данные

Для первой учебной версии был подготовлен набор из 44 диалогов инженерно-производственной тематики.

После предварительной обработки:

  • Train: 40 примеров
  • Validation: 4 примера
  • минимальная длина: 188 токенов
  • максимальная длина: 334 токена
  • средняя длина: 256 токенов
  • медиана: 252 токена
  • 90% примеров: не более 286 токенов

В набор вошли вопросы по гидравлике, термопластавтоматам, диагностике оборудования, 3D-печати, производственной аналитике и инженерным расчётам.

Параметры обучения

Обучение выполнялось локально на:

  • NVIDIA GeForce RTX 2060 SUPER, 8 GB VRAM
  • AMD Ryzen 7 5700X
  • 32 GB RAM
  • Python 3.11.9
  • PyTorch 2.11.0 + CUDA

Основные параметры:

Параметр Значение
Quantization 4-bit NF4
Double quantization Да
Compute dtype FP16
LoRA rank (r) 16
LoRA alpha 32
LoRA dropout 0.05
Target modules all-linear
Max sequence length 384
Train batch size 1
Gradient accumulation 4
Epochs 3
Learning rate 2e-4
LR scheduler cosine
Gradient checkpointing Да

Обучаемые параметры:

  • Trainable: 18,464,768
  • All parameters: 1,562,179,072
  • Trainable: 1.182%

Продолжительность первого обучения составила около 79 секунд.

Результаты обучения

Во время обучения наблюдалось снижение training loss.

Validation loss:

Эпоха Eval loss
1 0.9011
2 0.8215
3 0.8160

Финальный train_loss: 1.172.

Эти показатели подтверждают прохождение процесса обучения, но сами по себе не являются доказательством технической корректности ответов.

Независимое тестирование

Для проверки был подготовлен отдельный набор из 15 вопросов, не использовавшихся непосредственно как обучающие примеры.

Категории тестирования:

  • гидравлика и ТПА;
  • диагностика оборудования;
  • 3D-печать;
  • расчёты и производство;
  • проверка на технические галлюцинации.

Ответы оценивались по пяти критериям:

  1. язык;
  2. релевантность;
  3. техническая корректность;
  4. отсутствие галлюцинаций;
  5. структура ответа.

Каждый критерий оценивался от 0 до 2 баллов. Максимальная оценка — 10 баллов.

При первоначальном тестировании были выявлены проблемы с генерацией неподтверждённых технических параметров, отдельными инженерными рассуждениями и качеством ответов по 3D-печати.

По результатам тестирования системная инструкция была переработана до версии v1.1 с усиленными правилами:

  • не придумывать сервисные коды;
  • не назначать точные параметры без достаточных данных;
  • явно сообщать о недостатке информации;
  • отделять подтверждённые данные от предположений;
  • строить диагностику от простых и безопасных проверок к сложным;
  • контролировать повторения и нерелевантные рекомендации.

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

Пример загрузки адаптера:

import torch

from transformers import (
    AutoTokenizer,
    AutoModelForCausalLM,
    BitsAndBytesConfig,
)

from peft import PeftModel

BASE_MODEL = "Qwen/Qwen2.5-1.5B-Instruct"
ADAPTER = "slayeahoo/EvgenyAI-1.0"

bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.float16,
    bnb_4bit_use_double_quant=True,
)

tokenizer = AutoTokenizer.from_pretrained(ADAPTER)

base_model = AutoModelForCausalLM.from_pretrained(
    BASE_MODEL,
    quantization_config=bnb_config,
    device_map="auto",
    dtype=torch.float16,
)

model = PeftModel.from_pretrained(
    base_model,
    ADAPTER,
)

model.eval()

Для пользовательского режима рекомендуется передавать инструкцию проекта как system-сообщение:

messages = [
    {
        "role": "system",
        "content": SYSTEM_PROMPT,
    },
    {
        "role": "user",
        "content": "Опишите техническую проблему.",
    },
]

Системная инструкция

В проекте используется отдельная Markdown-инструкция GPT_instruction_v1.1.md.

Она определяет:

  • роль модели;
  • область применения;
  • правила диагностики;
  • правила инженерных расчётов;
  • работу с недостаточными исходными данными;
  • контроль технических галлюцинаций;
  • формат ответа.

При использовании модели рекомендуется загружать содержимое этой инструкции как system prompt.

Ограничения

Evgeny AI 1.0 является учебным прототипом, а не сертифицированной системой промышленной диагностики.

Модель может:

  • выдавать технически ошибочные ответы;
  • генерировать неподтверждённые параметры;
  • неправильно интерпретировать неисправность;
  • давать неполные рекомендации;
  • демонстрировать недостаток знаний за пределами небольшого обучающего набора.

Результаты модели не должны использоваться как единственное основание для изменения критических параметров промышленного оборудования.

Для работы с конкретным оборудованием необходимо сверяться с документацией производителя и требованиями предприятия.

План развития

Для последующих версий планируется:

  • увеличить Dataset;
  • добавить больше независимых контрольных примеров;
  • усилить примеры отказа от галлюцинаций;
  • расширить техническую базу;
  • улучшить диагностику ТПА и гидравлических систем;
  • улучшить знания в области 3D-печати;
  • сравнить более крупные базовые модели;
  • повторить fine-tuning с более консервативными параметрами LoRA.

Статус проекта

Evgeny AI 1.0 — первая зафиксированная учебная версия проекта.

Основная цель версии 1.0 — продемонстрировать полный цикл создания пользовательской языковой модели:

постановка задачи → подготовка Dataset → fine-tuning → тестирование → выявление ошибок → корректировка инструкции → публикация модели.

Downloads last month
10
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for slayeahoo/EvgenyAI-1.0

Adapter
(1379)
this model