Проблема: Галлюцинации в инженерных расчетахЯ занимаюсь расчетами строительных конструкций в комплексе SOFiSTiK. Основной инструмент взаимодействия с ним — внутПроблема: Галлюцинации в инженерных расчетахЯ занимаюсь расчетами строительных конструкций в комплексе SOFiSTiK. Основной инструмент взаимодействия с ним — внут

Fine-tuning Qwen-8B под проприетарный синтаксис (CADINP) на одной RTX 3090: опыт инженера-конструктора

Проблема: Галлюцинации в инженерных расчетах

Я занимаюсь расчетами строительных конструкций в комплексе SOFiSTiK. Основной инструмент взаимодействия с ним — внутренний язык CADINP. Это мощный, но старый процедурный язык с жестким синтаксисом: строгая последовательность модулей (AQUA -> SOFIMSHC -> ASE), специфичные команды фиксации узлов и неявные зависимости.

SOTA-модели (ChatGPT-4o, Claude 3.5 Sonnet) справляются с CADINP посредственно. Основные проблемы при генерации кода general-purpose моделями:

  1. Синтаксический шум: Выдумывание несуществующих аргументов функций.

  2. Потеря контекста: Забывают объявить материалы перед их использованием.

  3. Ошибки физики: Игнорирование степеней свободы (например, отсутствие фиксации кручения для 3D-стержней), что приводит к сингулярности матрицы жесткости.

Имея на руках рабочую станцию с NVIDIA RTX 3090 (24 GB), я поставил задачу: дообучить (fine-tune) небольшую открытую LLM, которая понимала бы специфику инженерной логики лучше, чем гиганты от OpenAI.

Стек и железо

  • GPU: GeForce RTX 3090 (24 GB VRAM).

  • OS: Windows 11 + WSL2 (Ubuntu).

  • Фреймворк: Unsloth (для оптимизации памяти и скорости).

  • Базовая модель: Qwen 2.5 / Qwen 3 (экспериментировал с размерами 7B, 14B, 8B).

Подготовка данных: Chain of Thought

Просто "скармливать" модели мануалы оказалось неэффективным. Модель учила определения, но не логику построения скрипта.
Я собрал датасет из 3500+ пар «Инструкция — Решение», используя подход Chain of Thought (CoT).

Вместо прямой генерации кода я заставил модель сначала формировать блок рассуждений <think>. Это критически важно для инженерных задач.

Пример структуры jsonl (переведено на русский язык для наглядности):

{ "messages": [ {"role": "user", "content": "Смоделируй бетонную балку 6м..."}, {"role": "assistant", "content": "<think>Задача на статику. Нужно определить материал в AQUA, затем геометрию. Внимание: балка в пространстве, необходимо закрепить поворот вокруг оси X.</think>\n+PROG AQUA..."} ] }

Разметка и валидация датасета производилась полуавтоматически с помощью скриптов на Python.

Датасет, собственной персоной
Датасет, собственной персоной

Процесс обучения и борьба с VRAM

Основным вызовом стало ограничение памяти. 24 ГБ VRAM — это пограничное значение для полноценного файнтюнинга даже квантованных моделей, если требуется длинный контекст.

Попытка 1: 14B-модель.
При контексте max_seq_length = 4096 (необходимо для длинных скриптов) я столкнулся с OOM (Out Of Memory). Оверхед WSL и системы съедал около 2-3 ГБ, и батч даже в 1 единицу не влезал.

Попытка 2: 7B-модель (Overfitting).
Обучение на 6 эпох привело к деградации модели. Loss упал до 0.02, модель начала выдавать мусорные токены и перешла на китайский язык (особенность базы Qwen).

Финальная конфигурация:
Я остановился на архитектуре 8B (Qwen 3) с дистилляцией логики DeepSeek.

Гиперпараметры, которые дали стабильный результат:

  • LoRA Rank/Alpha: 32 / 64 (Агрессивное обучение для лучшего запоминания синтаксиса).

  • Epochs: 3 (Оптимум для предотвращения оверфиттинга на датасете в 3.5к записей).

  • Learning Rate: 2e-4 с косинусным планировщиком.

  • Gradient Accumulation: 8.

    • Важный нюанс: Так как физический Batch Size на карте был равен 2, накопление градиента (8 шагов) позволило эмулировать эффективный батч = 16. Это сгладило кривую обучения и сделало модель более "вдумчивой".

Результаты

Модель была квантована в GGUF (q8_0) для инференса через LM Studio.

На тестовых задачах модель демонстрирует способность к самокоррекции через блок <think>.
Пример (сокращенно):

Скрин из LM Studio
Скрин из LM Studio

Модель корректно расставляет FIX PPMX (фиксация кручения) и соблюдает иерархию модулей. Ошибки случаются (примерно в 10-15% случаев), чаще всего связаны с модулем SOFIMSHA и SOFIMSHC, ответственные за генерацию сетки конечных элементов.

Заключение и планы

На данный момент получился специализированный локальный Copilot, который в узкой доменной области CADINP работает точнее, чем универсальные модели. Проект полностью некоммерческий и открытый (Open Weights).

Где взять:
Модель опубликована на Hugging Face. Там же, в карточке модели (README), я собрал всю необходимую информацию:

  • Ссылку на скачивание GGUF (q8_0).

  • Инструкцию по запуску через LM Studio.

  • Контакты для обратной связи (Телеграм, Discussions) — для тех, кто готов помочь с тестированием.

Планы на v2:
Сейчас я собираю «Red Team» из инженеров для поиска edge-cases — сценариев, где модель ошибается. Если вам интересна тема применения локальных LLM в проектировании, буду рад вашим баг-репортам. Ссылки на каналы связи ищите в описании модели.

Репозиторий проекта:
ссылка

Источник

Возможности рынка
Логотип RateX
RateX Курс (RTX)
$2.424
$2.424$2.424
+1.16%
USD
График цены RateX (RTX) в реальном времени
Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу service@support.mexc.com для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.

Вам также может быть интересно

Выбор подходящих защитных колпаков для свечей разных размеров

Выбор подходящих защитных колпаков для свечей разных размеров

Введение Пылезащитные крышки для свечей могут показаться небольшой деталью упаковки, но они играют значительную роль в сохранении качества свечей, поддержании силы аромата
Поделиться
Techbullion2026/01/21 14:37
Акции Coca-Cola (KO) растут на фоне опасений по поводу тарифов, заставляющих инвесторов переходить в защитные потребительские товары

Акции Coca-Cola (KO) растут на фоне опасений по поводу тарифов, заставляющих инвесторов переходить в защитные потребительские товары

Вкратце: акции Coca-Cola выросли почти на 2%, поскольку опасения по поводу тарифов спровоцировали переход от рисковых активов к защитным товарам повседневного спроса. Акции показали результаты лучше падающего рынка
Поделиться
Coincentral2026/01/21 14:44
Криптовалюта распродается вместе с более широкими рынками, поскольку Трамп вновь разжигает опасения торговой войны

Криптовалюта распродается вместе с более широкими рынками, поскольку Трамп вновь разжигает опасения торговой войны

Bitcoin падает ниже $88 000, поскольку угрозы тарифов провоцируют ротацию в защитные активы — золото и серебро
Поделиться
Blockhead2026/01/21 14:30