Даем глаза локальной модели Qwen 3.6 27B. Обучаем под домен разработки 1С

14.08.26

Интеграция - Нейросети

SFT-адаптация Qwen/Qwen3.6-27B для разработки на платформе 1C:Enterprise: код на BSL, структура выгрузок BSL+XML, схемы XML и типовые практики конфигураций. Модель ориентирована на ассистента разработчика 1С: навигация по метаданным/XML-выгрузке, пояснение и правка BSL, следование внутренним стандартам кодирования, работа с открытыми кодовыми базами 1С.

Апдейт

на Hugging Face выложил свежую модель, в которой добавлены:

  • датасеты по осмысленному именованию процедур, функций, методов, параметров, переменных и доменных сущностей. Учит модель придумывать названия по роли, эффекту, результату и предметной области, а не хаотично.
  • датасеты понимания языка запросов 1С.
  • датасеты с поддержкой 40+ mcp серверов с полной трассой вызова инструментов и описанием. Включая mcp serena и его форк https://github.com/asweetand-a11y/serena.

 

Где складируется модель

Готовая модель опубликована на Hugging Face под названием sweetand/qwen3.6-27b-1C. В репозитории размещены варианты модели для локального запуска GGUF-квантизации. Основное назначение модели — работа с bsl, xml структурой объектов конфигураций и разработке на платформе 1С.

 

Для чего это нужно

Основная цель - приватность разработки. Побочная - поиграться и посмотреть что из этого получится, способна ли маленькая локальная модель быть на уровне с фронтир моделями в разработке на 1С.

 

Как проходило обучение и составление датасетов

Самый простой вариант подготовки данных — собрать тысячи процедур и функций и показать их модели. Но такой датасет учит в основном продолжать код. Он почти не учит решать задачу целиком.

В реальной работе запрос разработчика выглядит иначе:

Задача: Настроить в отчете Анализ субконто по Виду Субконто Контрагенты возможность массового отбора контрагентов из файла эксель по ИНН, по коду контрагента в 1С.

Функционал: На вкладке Отбор и выбранного поля Контрагенты + вид сравнения = в списке:

  1.  Сделать список выбора: подбор из файла, подбор по справочнику.
  2. Для подбора из файла вызывать форму загрузки данных из файла xls. Загрузку из xls осуществить типовыми методами БСП.
  3. Поиск контрагентов осуществлять по ИНН, по коду 1С.
  4. Для подбора из справочника оставить стандартную реализацию.

Чтобы ответить, модель должна выполнить несколько действий:

  1. Найти подходящие файлы.
  2. Отсеять нерелевантные совпадения.
  3. Прочитать модули и xml объекты.
  4. Сопоставить обработчики, подписки и движения регистров.
  5. Объяснить найденную причину.
  6. Подготовить изменение.
  7. Проверить, что исправление не затрагивает лишние объекты.

Поэтому значительная часть датасета была построена не как обычная пара «вопрос — ответ», а как последовательность действий с инструментами.

 

Устройство датасетов

Каждая запись хранится в формате диалога. В ней могут присутствовать следующие роли:

  • system — правила работы модели;
  • user — задача разработчика;
  • assistant — объяснение следующего действия или вызов инструмента;
  • tool — результат поиска, чтения файла, запуска команды или внесения изменений.

На скриншотах видны примеры таких цепочек. Сначала модель получает задачу, затем выполняет Glob для поиска файлов, использует Read для чтения содержимого, запускает проверки через Shell и при необходимости применяет изменение через ApplyPatch.

Например, учебный сценарий для CI/CD состоит примерно из такой последовательности:

  1. Найти файлы pipeline и журнал ошибки.
  2. Прочитать конфигурацию и нужный участок лога.
  3. Воспроизвести ошибку проверочной командой.
  4. Изменить только файлы, связанные с причиной.
  5. Проверить артефакт и возможность отката.
  6. Выполнить итоговый тест.
  7. Сформировать отчёт с доказательствами.

Тот же подход применяется к задачам 1С.

Примеры построения трассы sft датасетов.

 

 

Датасет для понимания структуры проекта 1С

Один из основных наборов содержит 48 тысяч SFT-примеров по работе с проектами в формате BSL и XML. В записях используются длинные трассы, состоящие из нескольких последовательных действий.

В датасет вошли задачи нескольких типов:

Навигация по конфигурации

Модель учится находить объекты по структуре XML-выгрузки:

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

Анализ BSL-кода

В примере модель должна не просто найти совпадение по тексту, а понять назначение кода:

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

Поиск примеров внутри проекта

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

Это важно для 1С. Внутри большой конфигурации обычно уже есть принятые шаблоны:

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

Модель должна ориентироваться на код конкретного проекта, а не создавать абстрактное решение, не совпадающее с его архитектурой.

Работа со справочными материалами

Помимо кода, в обучающую выборку включены записи по справочному описанию встроенного языка и объектов платформы.

На одном из скриншотов показан вопрос о практическом смысле свойства НаправлениеПорядкаСхемыЗапроса. Ответ объясняет назначение свойства нормальным языком и связывает его с сортировкой выражений языка запросов.

Такие примеры нужны, чтобы модель умела не только генерировать BSL, но и объяснять разработчику особенности платформы.


Датасет для имён в коде naming_1c

Имена процедур, функций и переменных должны отражать их назначение.

В отдельном наборе модель получает слишком общее или неточное имя и должна предложить более понятный вариант с учётом контекста.

Например, вместо условного имени Текст для функции, которая проверяет заполненность обязательных реквизитов, требуется имя, описывающее результат или выполняемое действие.

На скриншоте показан пример, где модель предлагает имя СинхронизироватьДанныеСВнешнейСистемой, потому что оно передаёт смысл побочного эффекта процедуры.

Этот датасет полезен для:

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

При подготовке таких примеров важно учитывать контекст объекта. Одно и то же действие в модуле формы, модуле объекта и общем модуле может требовать разных имён.

 

Что приходится контролировать особенно внимательно

У длинных инструментальных диалогов есть несколько типичных проблем.

Пустой content у вызовов инструментов

На скриншотах некоторые сообщения assistant не содержат текста, но имеют заполненное поле tool_calls. Это допустимая структура, если используемый шаблон чата поддерживает отдельные вызовы инструментов.

Нельзя удалять такие сообщения только потому, что визуально поле содержимого пустое. Иначе результат инструмента потеряет связанный с ним вызов.

Соответствие вызова и ответа инструмента

После Glob должен идти результат Glob, после Read — результат Read. Ошибки в именах инструментов или нарушение последовательности превращают пример в противоречивый.

Реалистичность результатов

Результат инструмента должен содержать информацию, которую он действительно мог вернуть. Например, Glob может вернуть список файлов, но не содержимое процедуры. Read может показать участок файла, но не должен самовольно сообщать результат тестов.

Отсутствие лишних шагов

Длинная трасса не обязательно является хорошей. Если задача решается одним чтением файла, нет смысла искусственно добавлять десять вызовов.

Модель должна учиться делать столько действий, сколько требуется для получения надёжного ответа.

Разнообразие финальных ответов

Если тысячи примеров заканчиваются одинаковой фразой вроде «задача выполнена успешно», модель быстро перенимает этот шаблон. Поэтому финалы должны зависеть от реального результата:

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

 

Как проходило обучение

На одном из скриншотов показан фрагмент журнала начала эпохи. Значение loss колеблется примерно от 0,11 до 0,19, а grad_norm находится в районе 0,12–0,16.

Такое поведение выглядит стабильным:

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

На более позднем участке графика loss продолжает колебаться около 0,08–0,15. Само по себе низкое значение ещё не доказывает качество модели. Оно может означать как хорошее усвоение данных, так и наличие слишком похожих примеров.

Поэтому после обучения необходима отдельная проверка на задачах, которых не было в train-наборе.

 

 

Загрузка оборудования

Обучение выполнялось на NVIDIA GB10.

На скриншоте панели мониторинга видны следующие показатели:

  • загрузка GPU — 96%;
  • температура — 84 °C;
  • используемая общая память CPU и GPU — около 97,5 ГБ;

 

 

Планы на развитие

SFT учит модель воспроизводить правильные примеры, но этого недостаточно для устойчивого поведения.

Следующие этапы развития:

Preference-обучение (DPO)

Для одной задачи создаются два ответа:

  • хороший;
  • ошибочный или менее предпочтительный.

Так модель учится выбирать:

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

 

Заключение

Бенчмарков нет, т.к. нормальных под домен 1С в сети не нашел. Если у Вас есть хорошие бенчмарки - поделитесь.

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

 

ПЫСЫ

Статья написана с использованием нейрослопа.

Вступайте в нашу телеграмм-группу Инфостарт

LLM Вайбкодинг

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

SALE! %

Банковские операции Обмен с интернет-банком Мастера заполнения Нейросети Программист Бухгалтер Пользователь 1С:Предприятие 8 1C:ERP 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:ERP. Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Корректируйте банковские документы быстро и легко! Создайте правило обработки — и оно автоматически применится при загрузке выписки (отбор по любому реквизиту или регулярному выражению). Решение заполняет расшифровку платежа, комиссию эквайринга, подбирает ведомости на выплату зарплаты, помечает дубли из банка на удаление и многое другое. Доплачивать за алгоритмы не нужно — они включены в решение. Обработка работает при загрузке из файлов клиент-банка и через DirectBank. Новое — искусственный интеллект: модель приводит нестандартные назначения платежа к виду, понятному алгоритмам, а ИИ-ассистент прямо в 1С консультирует по решению и разбирает код правил и алгоритмов. Поддерживаются локальные и облачные OpenAI-совместимые модели — данные могут не покидать ваш контур.

15250 руб.

20.12.2024    18019    90    29    

80

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    67325    134    38    

143

Нейросети Программист 1С:Предприятие 8 Бесплатно (free)

В этой статье расскажу, как реализовал с помощью LLM полноценную генерацию кода для 1С (BSL) в популярном Open Source API-клиенте Bruno.

21.08.2026    726    malikov_pro    9    

9

Нейросети Программист 1С 8.3 Бесплатно (free)

Один проход модели по вопросу из 28 знаков стоит 631 296 умножений и 4,8 секунды. Столько берёт языковая модель на 21 920 параметров, посчитанная прямо в 1С средствами самой платформы. На ней разбираю по шагам, что стоит за каждым словом из модного словаря: токен, словарь, вектор символа, вес, слой, голова внимания, контекст, softmax, температура, KV-кэш. Отдельно про температуру - она вообще не про креативность и управляет выбором буквы уже после того, как модель закончила работу. Отдельно про галлюцинацию - показываю в цикле генерации место, куда физически невозможно вставить "не знаю". Плюс расчёт потолка для встроенного языка, замер цены размера модели и история про метод платформы, которого не существует.

20.08.2026    4089    nedomolkov.ivan    8    

17

Инструментарий разработчика Нейросети Программист 1С 8.3 Бесплатно (free)

Стенд, на котором языковую модель видно изнутри: настоящий трансформер посчитан с нуля на встроенном языке, без внешних компонент, ONNX, Native API и обращений наружу. Три кнопки: полный ответ с отчётом о числе умножений и секундах, один проход модели с вероятностями всех 36 символов алфавита столбиком, и разбор устройства - алфавит, номера токенов, размерности. Поле температуры показывает, что выбор буквы делает не сама модель, а код снаружи: при нуле ответ повторяется слово в слово, при пятёрке текст рассыпается на слоги. В комплекте два файла: модель на 21 920 параметров отвечает за 7-13 секунд, вчетверо более крупная примерно за 28. Веса лежат макетом внутри, скачивать и настраивать нечего. Знаний о мире у модели нет: она помнит сорок фраз про объекты 1С, и на вопрос вне этого набора отвечает бессмыслицей с той же уверенностью.

20.08.2026    3110    63    nedomolkov.ivan    0    

13

Нейросети Программист Бесплатно (free)

Код от агента выглядит хорошо, но между «агент выдал код» и «код работает в боевой базе» лежит дистанция, которую никто не проходит за вас. Как я обвесил её конвейером из семи ролей на боевой 1С:БП КОРП с БИТ.ФИНАНС: устройство конвейера, почему «критично» у агента не значит «дефект», шесть промахов, прошедших конвейер насквозь, один дефект, доехавший до боевой базы, и честный список того, чего я не измерял.

19.08.2026    1569    VlaMax    34    

12

Нейросети Бесплатно (free)

Разбираем новые, более дешевые и эффективные паттерны работы внешнего 1С:Эксперта, а именно – прямое использование LLM-ассистентов и создание с их помощью инструментов для аудита производительности и нагрузочного тестирования. Показываем, как модели помогают анализировать таймауты и взаимные блокировки по технологическому журналу, проверять сложные запросы, а также находить неочевидные взаимосвязи между показателями загрузки оборудования. Рассказываем о создании скриптов для построения графиков по данным atopsar и для поиска и визуализации стеков горячих запросов, а также о создании неинвазивной оснастки для реалистичных нагрузочных и сценарных тестов без программирования на 1С. Отдельно разбираем антипаттерны и ограничения такого подхода. Делаем вывод, что LLM остается лишь помощником, не превращает джуна в сеньора, а ответственность за итоговый результат по-прежнему несет 1С:Эксперт.

10.08.2026    3374    jf2000    15    

17

Нейросети Программист Бесплатно (free)

Практический кейс автономной разработки для бизнес-платформы OneBase: ИИ-агент под управлением Claude Code и недорогой модели GLM за 37 минут с нуля создаёт полную конфигурацию с метаданными, формами, отчётами и дашбордами. Процесс проходит полностью без участия человека — агент сам нарезает задачи, генерирует демо-данные и исправляет ошибки до успешного прогона всех проверок.

07.08.2026    5552    Ibrogim    13    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 3301 03.08.26 20:50 Сейчас в теме
Статья написана с использованием нейрослопа.
Нейрослоп (от английского AI slop — «ИИ-помои») — это массовый поток низкокачественного, бессмысленного или фальшивого контента, который создается нейросетями с минимальным участием человека ради просмотров и кликов.
Andrey_Timofeev; SP2000; Robbi; maslyann; solomaxadmitry; EvgeniyOlxovskiy; andrew.ab; +7 Ответить
2. andrew.ab 267 04.08.26 07:11 Сейчас в теме
(1) плюсанул коммент)
3. andrew.ab 267 04.08.26 07:20 Сейчас в теме
(1) если серьёзно, в статье воды нет, максимально расписал чем обучал, на что стоит обратить внимание при сборке датасетов, чего не хватает и какие планы на развитие.
11. starik-2005 3301 04.08.26 11:46 Сейчас в теме
(3)
в статье воды нет
Статья неплохая - я ей поставил честный плюс, т.к. она в общем и целом "инженерная", хотя подход SFT в данной задаче условно полезный.
С моделью такого уровня классический SFT на стандартных датасетах (вроде CodeAlpaca) не просто бесполезен — он гарантированно ухудшит результат, разрушив ее сложную встроенную логику рассуждений (Thinking Mode).
Разработчики, воспроизводившие результаты Qwen 3.6, доказали, что замена стандартного интерфейса на продвинутые CLI (например, интеграция с инструментами из Claude Code или специфическим str_replace_editor) поднимает точность модели на десятки процентов без изменения единого веса сети. Напишите для нее идеальные системные промпты и инструменты для работы с вашей кодовой базой.
Qwen 3.6 35B A3B будет лучше, т.к. скорость генерации на vLLM в оптимизированных весах для тех же blackwell (RTX 50ХХ++) до 180 т/с без МТР, что позволяет реализовывать сложные циклы сборки кода с дополнительным исследованием кода. В итоге на 2x5070ti в хорошо собранном цикле модель соберет код куда быстрее и куда качественнее даже на gptq4.
13. andrew.ab 267 04.08.26 12:09 Сейчас в теме
(11) Qwen 3.6 35B A3B - дообучать слишком жирно, и модель больше заточена как раз на агентские циклы (под openclaw, prometeus и.т.п.). "дополнительным исследованием кода" - это прекрасно регулируется и в Qwen 3.6 27B максимальным размером контекстного окна, температурой, снижением штрафа на зацикливание.

Мое мнение, брать Qwen 3.6 35B и дообучать под узкий домен 1С не имеет смысла.

С моделью такого уровня классический SFT на стандартных датасетах (вроде CodeAlpaca)
- ей уже в базе скормили все датасеты которые есть в сети. Согласен это приведет только к переобучению. Поэтому в статье и описал что качество дообучение напрямую зависит от качества датасета.

Напишите для нее идеальные системные промпты и инструменты для работы с вашей кодовой базой.
- с этим не поспоришь, так и есть что дашь на входе голой модели которая плохо понимает 1С, то и получишь.
16. starik-2005 3301 04.08.26 13:14 Сейчас в теме
(13)
брать Qwen 3.6 35B и дообучать
Вот вообще смысла нет. Язык 1С - это редуцированный паскаль с большим количеством встроенных прикладных объектов, о которых сети в принципе-то в курсе - нужен фокус. Тут даже RAG не нужен - достаточно сделать простой список функций и просить модель перед написанием кода вызывать инфу по сразу всем ключевым словам, которые она планирует использовать. Если делать это через отдельного агента, то он сможет очистить весь тот инфошум синтаксис-помощника, оставив только нужное. При 170-180 т/с на 2х5070 ti это вот прям убертеч.
21. andrew.ab 267 04.08.26 13:45 Сейчас в теме
(16) ну да и контекстное окно в 64к токенов (окно в 256к 2х5070 ti не потянет) сразу забьется одними только правилами, инфой и.т.п + потом цепочка рассуждений добьет контекст - итог тут выдали, там забыли, тут словили галюны. Это все проходили на маленьких локальных моделях. Единственное спасает разбивка на субагентов, и то иногда даже на Asus GX10 KV-кеш улетает в ООМ (out of memory).
4. nedomolkov.ivan 152 04.08.26 08:48 Сейчас в теме
По бенчмаркам делюсь тем, что работает у нас — задача ровно ваша.

Генерацию кода мерить тяжело: «выглядит правдоподобно» не проверяется автоматом. Мы мерили диагностику на боевой базе: одно задание, четыре агента, доступ только на чтение (метаданные, планы запросов, замеры), критерий успеха воспроизводимый — время до и после правки. Диагнозы разошлись полностью, и разошлись именно по признаку «проверил ли агент свою гипотезу контрольным опытом». Один своей же проверкой гипотезу опроверг (50 000 итераций при 215 различных ссылках — нулевой выигрыш) и пошёл искать дальше; другой потерял доступ (401), отработал вслепую и выдал гладкий текст мимо. Это и есть главный различающий признак, а не качество BSL — и он ложится ровно в ваш пункт DPO «проверка результата вместо неподтверждённого вывода».

Дешёвый воспроизводимый набор без боевой базы собирается на самой выгрузке: брать вопросы, ответ на которые механически выводится парсером XML и BSL. Где формируются движения регистра X, какой обработчик отработает при записи, в каких модулях используется метод Y, какие подписки ловят событие Z. Эталон считает парсер, ответ модели сверяется автоматически, разметка руками не нужна вовсе, и набор масштабируется на любую конфигурацию. Навигацию и понимание структуры такое мерит честно — то есть ровно то, на что вы учили 48 тысяч примеров; генерацию — нет, её мерить надо отдельно.

Если соберёте такой набор на открытой конфигурации — прогоню его на фронтир-моделях и отдам цифры, будет с чем сравнить вашу 27B.
6. andrew.ab 267 04.08.26 10:45 Сейчас в теме
(4) в статье перечислены не все датасеты обучения. В частности датасеты генерации кода по открытым кодовым базам также присутствуют в модели.

Но есть одно НО! Модель пока плохо понимает язык запросов 1С, теряется в структурировании виртуальных таблиц, временных таблиц и.т.п. Датасет языка запросов 1С собрать оказалось сложно, т.к. даже синтетические данные генерируемые фронтир моделями низкого качества. Сейчас приходится проверять и делать разметку датасета вручную, это длительный процесс.

Соглашусь что сейчас не хватает дообучения на DPO (пары плохой-хороший ответ) датасетах. Работаю над этим.
5. Vladislav_Nghtingl 5 04.08.26 09:50 Сейчас в теме
Полезный опыт, закроют нам доступы к облачным моделям будет чем заменить. Сравнивали ли Вы разработку через обученную локальную модель с ведущими моделями, насколько в качестве проигрывает.? По поводу бенчмарков рекомендую глянуть https://vibecoding1c.ru/bench, Олег там сравнивает модели в двух режимах с обвязкой и без. Было бы любопытно глянуть какое место займет обученный локальный qwen.
7. andrew.ab 267 04.08.26 10:54 Сейчас в теме
(5) спасибо за бенчмарк, посмотрю!

Плюсы:

- Навигация по проекту работает хорошо, модель ищет похожие паттерны, выявляет нужные ей куски кода.
- Меньше галлюцинаций по встроенному языку 1С, перестала путать свойства, методы.
- Начала понимать структуру объектов метаданных, например понимает что за объект Справочник, Документ, ПланСчетов и какие у них есть примитивные конструкции.

Минусы:
- Выше ответил что пока модель плохо ориентируется в языке запросов 1С. Работа ведется.
- Иногда любит выдумывать свои конструкторы, например СрезРегистра = Новый Регистры.ТоварыНаСкладах.СрезОстатков. По телеметрии, логам и цепочке рассуждений выяснил что базовая модель qwen была обучена уже на плохих данных по домену 1С. Здесь как раз поможет дообучение на датасетах DPO.
8. nedomolkov.ivan 152 04.08.26 11:17 Сейчас в теме
(6) По языку запросов ручная разметка почти вся снимается: эталон тут даёт сама платформа.

Валидатор синтетики — объект СхемаЗапроса. УстановитьТекстЗапроса разбирает текст, ПолучитьТекстЗапроса собирает обратно в нормализованном виде; на кривом запросе разбор просто падает. Прогон всего сгенерированного корпуса через это отсеивает мусор до всякой разметки, а второй уровень — Запрос.Выполнить() на демо-базе: не выполнилось, значит в датасет не идёт.

Виртуальные таблицы выводятся из метаданных механически и заодно бесплатно дают пары для DPO. Набор допустимых таблиц жёстко определён видом регистра: накопления остаточный — Остатки, Обороты, ОстаткиИОбороты; оборотный — только Обороты; сведений периодический — СрезПоследних и СрезПервых; бухгалтерии — ОборотыДтКт и ДвиженияССубконто; расчёта — ДанныеГрафика, ПериодыДействия и базовые таблицы. Идёте по XML-выгрузке всех регистров конфигурации: допустимая комбинация — «хороший» ответ, любая недопустимая для этого вида — «плохой». Ваш пример с Новый Регистры.ТоварыНаСкладах.СрезОстатков ровно из этого класса и генерируется сам, тысячами, без единого клика разметчика.

Туда же параметры виртуальных таблиц: имена измерений и ресурсов лежат в той же выгрузке, значит «обратился к несуществующему измерению» или «дал условие по ресурсу как по измерению» — тоже готовые пары.

Руками после этого размечается только смысл: правильно ли выбрана виртуальная таблица под задачу и не подменён ли срез оборотами. Это уже сотни примеров, а не десятки тысяч.
9. andrew.ab 267 04.08.26 11:38 Сейчас в теме
(8) это на словах просто, на деле куда сложнее. Я пробовал разные варианты генерации датасетов, включая вышеописанный через платформу 1С, после обучения получал провал - модель жестко галлюционирует.
10. nedomolkov.ivan 152 04.08.26 11:43 Сейчас в теме
(9) Верю, и это ожидаемый исход, если синтетику класть в SFT. Корпус, сгенерированный по правилу, почти не имеет разброса в формулировках: модель выучивает шаблон, а за его границей начинает фантазировать - ровно то, что вы описываете.

Я предлагал другое употребление той же механики: не обучать на ней, а судить ею.

1. СхемаЗапроса и Запрос.Выполнить() - фильтр и метрика, а не источник примеров. На выходе воспроизводимый бенчмарк (доля синтаксически разобравшихся, доля выполнившихся на демо-базе, доля с корректной виртуальной таблицей под вид регистра), считается автоматически на любой конфигурации. Он показывает, двинулось ли дообучение вообще - сейчас такого измерителя нет, и провал виден только глазами.

2. Для DPO отвергнутую ветку брать не из генератора, а из самой модели: тот же промпт, сэмплирование с температурой, ответы прогоняются через парсер, и в пару к принятому идёт её собственный неудачный ответ. Пары из искусственно испорченных примеров учат в основном отличать искусственную порчу, а не выбирать правильную конструкцию, и на инференс это не переносится.

3. Ручная разметка при таком раскладе остаётся только на "хорошей" стороне и в объёме на порядок меньше.

Если не секрет, два вопроса по вашему провалу: он случился на SFT или уже на preference-этапе, и чем вы его ловили - глазами на своих задачах или замером? Второе интересно даже безотносительно датасетов: общего измерителя по домену 1С в сети действительно нет.

P.S. Прошу прощения за предыдущую версию этого сообщения: редактор съел пробелы при отправке, текст пришлось пересобрать.
14. andrew.ab 267 04.08.26 12:30 Сейчас в теме
(10) в SFT только глубокие трассы для рассуждений, чтобы галлюцинации не ловила. Получаем сырой датасет. Далее парсером очищаем по критериям Task types, Покрытие taxonomy, Уникальные prompts, Уникальные targets, Train/val overlap. Потом этот датасет прогоняю самой Qwen 3.6 27B которая дает diff'ы изменений. Далее выборочная ручная проверка. Далее повторный парсер очистки.

для DPO синтетика генерируется также самой Qwen 3.6 27B, с оценкой каждой пары моделью судьей по методу SOUL (оценка от 1 до 10)/

провалы на SFT, т.к. DPO пока не вшиты. Ловлю телеметрией, логами, замерами train датасетов.
12. skyadmin 105 04.08.26 12:04 Сейчас в теме
ИИ говорит что если дообучить "Qwen3.6-27B-Claude-Opus-Reasoning",то результат будет лучше.

Вы берете за основу модель, в которой уже **исправили избыточную «болтливость» (verbose thinking)** и успешно **интегрировали полезный стиль рассуждений в духе Claude**.

Дальнейшее дообучение (Fine-tune) на вашем собственном датасете (например, по 1С) ложится на такую базу гораздо лучше и чище по следующим причинам:

1. **Фундамент уже готов:** У модели изначально есть развитая способность к структурированному цепочечному мышлению (_Chain of Thought / CoT_). Вам не нужно учить её «думать с нуля» — вы лишь направляете её мышление в нужную предметную область.

2. **Меньше риск «забывания» (Catastrophic Forgetting):** Если ваши обучающие данные по 1С тоже оформлены в формате «_сначала поразмысли над архитектурой $\rightarrow$ затем напиши код_», модель не потеряет базовую логику и эрудицию, в отличие от файн-тюна «сырого» базового Qwen3.6.


### Почему этот подход действительно выигрывает:

- **«Сырой» Qwen** при дообучении на узком коде (BSL 1С) часто превращается в простой синтаксический автокомплит: он быстро заучивает ключевые слова `Процедура`, `Запрос`, `КонецПроцедуры`, но теряет глубину понимания _зачем_ и _как_ строить сложную логику.

- **База с дистилляцией от Claude** сохраняет паттерн аналитика: перед тем как выдать BSL-код, она в блоке размышлений сначала проанализирует блокировки, проверит типы данных и продумает структуру виртуальных таблиц, а уже потом сформирует идеальный модуль.
15. andrew.ab 267 04.08.26 12:33 Сейчас в теме
(12) скоро новая Qwen3.8 выходит там это в базе)
skyadmin; +1 Ответить
17. starik-2005 3301 04.08.26 13:16 Сейчас в теме
(15)
новая Qwen3.8
Там 2.4Т параметров - на чем будете гонять?
18. skyadmin 105 04.08.26 13:18 Сейчас в теме
19. starik-2005 3301 04.08.26 13:29 Сейчас в теме
(18)
там выйдет Qwen3.8-27B
Ну поглядим, что у нее в swe pro...
20. andrew.ab 267 04.08.26 13:37 Сейчас в теме
(17) веса 27B также будут выложены.
22. nedomolkov.ivan 152 04.08.26 14:41 Сейчас в теме
(14) Спасибо за развёртку, теперь видно, где именно рвётся.

Первое место — судья. Пары генерирует та же Qwen 3.6 27B, которая их и оценивает: модель систематически завышает собственные формулировки, и по шкале 1-10 это незаметно — оценки остаются гладкими, а разделяющей силы у них нет. В 1С есть редкая роскошь, объективный оракул: код либо разбирается СхемойЗапроса и компилируется, либо нет; запрос либо выполняется на демо-базе, либо падает. Я бы поставил исполнение первым признаком, а SOUL оставил вторым, и выбрасывал пары, где chosen и rejected отрабатывают одинаково — сигнала в них нет.

Второе — офф-полиси пары для DPO. Если rejected сгенерирован базовой моделью, а обучается уже дообученный чекпоинт, градиент учит отталкиваться от того, чего модель и так не порождает. Отвергнутую ветку надо сэмплить с текущего чекпоинта (температура 0.8-1.0, 4-8 сэмплов на промпт) — тогда DPO бьёт по своим ошибкам, а не по чужим.

И про train/val overlap: уникальность по промптам ловит только точные дубли. Запрос, отличающийся именами переменных и переносами строк, проходит как уникальный и оседает в валидации — метрика растёт, модель стоит. Нормализация (идентификаторы в плейсхолдеры, схлопывание пробелов) плюс шинглы по 5-граммам отсекают такое за один проход.

Что показывает замер на отложенной выборке из конфигурации, которой не было в обучении?
23. capitan 2596 04.08.26 16:06 Сейчас в теме
Очень круто.
Но наши пока друзья клепают модели со скоростью звука
Не думали копать в Harness вместо обучения?
Те же RAG которые здесь упоротоно называют MCP
?
Сделав хорошую обвязку ее можно с любой моделью использовать
и продавать ;)
Прикрепленные файлы:
25. andrew.ab 267 04.08.26 16:46 Сейчас в теме
(23) у меня есть обвязка упоротоного MCP с которой даже модели от Сбера вывозят неплохо)))
Прикрепленные файлы:
27. capitan 2596 04.08.26 17:31 Сейчас в теме
(25) Я так и знал что козыри в рукаве.
Здесь я конечно плюсану, а потом повешу свои уши на крючок внимания и подожду статью про это.
Может новоиспеченные казахи тоже расскажут как у них, небось джемини без квна смотрят
29. andrew.ab 267 04.08.26 18:03 Сейчас в теме
(27) статья уже давно написана как построить нормальный RAG под любой домен, в частности под 1с.

https://habr.com/ru/articles/1017498/
30. capitan 2596 04.08.26 19:04 Сейчас в теме
(29) Эту статью я видел конечно.
Но вы же сами и пишете в комментариях
из примеров видно что даже этот пайплайн не идеален. Сейчас, в свободное время, работаю на новым функционалом по оценке системных промтов и результата моделью судьей.

Есть более интересный вариант. Он не под 1С но прямо очень в тему
Посмотрите на запреттюбе конференция хайлоад доклад Т-Банка про гибридный поиск.
Если хватит железа то это рабочий вариант
24. capitan 2596 04.08.26 16:45 Сейчас в теме
И чтобы два раза не ходить.
NVIDIA GB10 для компании не самое дорогое оборудование, но если его покупать надо хоть какое то обоснование окупаемости, кроме общего повышения IQ
Есть у вас план, который бизнес если что?
26. andrew.ab 267 04.08.26 16:47 Сейчас в теме
(24) нету и не планирую. NVIDIA GB10 покупал для себя и использую только я.
capitan; TyurinArt; +2 Ответить
28. capitan 2596 04.08.26 17:34 Сейчас в теме
(26) Круто.
Прикрепленные файлы:
31. nedomolkov.ivan 152 04.08.26 19:43 Сейчас в теме
(23) (27) Про harness — если камешек в нашу сторону, то отвечу по существу: из Казахстана фронтир-модели действительно открываются напрямую, без VPN, но выигрыш не в этом, а как раз в обвязке.

Мы этот выбор проверяли замером, а не на вкус: три агента получили один и тот же тормозящий регламент на боевой базе MS SQL и одинаковый доступ к статистике СУБД. Диагнозы разошлись — три разных, подтвердился один. То есть модель без обвязки выдаёт правдоподобную гипотезу, а не проверенный факт, и различить их может только контур проверки.

Что в этом контуре оказалось важнее выбора модели:

1. Объективный оракул вместо оценки моделью. В 1С он неприлично щедрый: код разбирается СхемойЗапроса и компилируется или нет, запрос выполняется на базе или падает, результат сверяется с эталоном побайтово. Пока есть такой судья, дообучение под домен — далеко не первая по отдаче инвестиция.

2. Метрика сходимости: один и тот же вход прогонять несколько раз и смотреть, сходятся ли выводы между прогонами и между моделями. Расхождение — сигнал, что задача сформулирована плохо, а не что модель слабая.

Обвязка с таким судьёй переносится с модели на модель без переучивания — это ровно ваш тезис из (23), и наш замер его скорее подтверждает.
33. capitan 2596 05.08.26 09:56 Сейчас в теме
(31)
Про harness — если камешек в нашу сторону
Не хотел никого обидеть, просто оборот речи. Вы как раз красавчики и задачи у вас интересные. Забавно, что плюсов мало? Так здесь никто особенно не вгрызается в производительность. Потому что шерифа не волнуют проблемы индейцев. Но я не про это.
Я про то что у меня нет железа но есть мысли. По harness . Их озвучил выше.
Посмотрите конференция хайлоад доклад Т-Банка про гибридный поиск.
Если хватит железа то это рабочий вариант RAG как раз для 1С на мой взгляд
И чтобы два раза не ходить, насчет напрямую.
Я пробовал стать виртуальным казахом, номер +7 половине провайдеров не нравится, даже пайпалу, пришлось стать виртуальным молдаванином живущим в Стокгольме, это по деньгам оптимальнее и то пару раз забанили)
Andrey_Timofeev; +1 Ответить
32. Teplotrassamen 05.08.26 05:31 Сейчас в теме
34. nedomolkov.ivan 152 05.08.26 11:28 Сейчас в теме
(33) Про harness вопрос снят, спасибо, что уточнили.

Доклад посмотрю. И согласен, что гибрид под 1С выглядит уместнее чистой векторной схемы, причём по конкретной причине: половина полезного сигнала здесь — это точные идентификаторы. РегистрНакопления.ТоварыНаСкладах, ОбщийМодуль.РаботаСФайламиСлужебный, имя реквизита с опечаткой из чужой доработки. Эмбеддинг такие строки размывает, а лексическая часть находит их точно — и промахи, которые мы ловили на чистом retrieval, были в основном именно этого сорта: модель уверенно тащила «похожий» объект вместо нужного.

Второе, что в нашей практике дало больше, чем выбор ретривера: отдавать в контекст не куски текста конфигурации, а срез структуры — метаданные объекта, его реквизиты и связи. Такой чанк не рвётся посередине процедуры и не требует угадывать границы.

Про железо: у нас его тоже нет, и осознанно — считаем, что для 1С-задач дешевле арендовать вычисление, чем содержать. Ваша мысль про harness от этого не зависит, она про обвязку, а обвязку можно проверить и на маленькой модели.
35. andrey_snegovik 08.08.26 00:00 Сейчас в теме
Крутая проделана работа! Было бы ещё классно обучить всё таки какую-нибудь модель с MoE и поддержкой MTP!
Может когда Qwen 3.8 выложат попробовать что-то вроде Qwen3.8-35B-A3B-MTP-1C?
36. Shur1cIT 51 10.08.26 11:02 Сейчас в теме
(35) Qwen3.8-35B скорее всего не будет, объявили что планируют 16 августа Qwen3.8-27b выпустить плотную модель.
moe модели сложно обучать, так как роутер ломается, эксперты начинают сбоить итд, для узких задач плотные модели самое оно для до обучения. Как понял у автора 48 тысяч примеров это довольно круто, в свое время тоже проект для до обучения начинал (дора адаптер) для чисто для агентской работы в 1С (выяснения проблем в базе), а не кодинга у меня датасет около 5к планировался вопрос ответов с блоком think.
37. andrew.ab 267 10.08.26 14:26 Сейчас в теме
(36) Все верно, роутер можно сломать на ура, если датасет плохой. Уже с Qwen3.6 проблемы с файнтюнингом. Не могу собрать нормальный датасет языка запросов 1С, уже 30 вариаций перепробовал, по замерам качество выхожу максимум на 46% от обучающей выборке. У меня уже тут пакетом фронтир модели пашут, жгут токены на ура))).
39. andrey_snegovik 15.08.26 15:32 Сейчас в теме
(37) 3.8 27B вышла! Планируется ли на ней выпустить вашу модель? Очень хотелось бы попробовать
40. andrew.ab 267 15.08.26 22:56 Сейчас в теме
(39) видел, для начала надо базовую модель потестить чтобы понять имеет ли смысл обучать под домен 1с. Если будут мнения в коментах что новая модель этого стоит - начну обучение.
41. andrey_snegovik 16.08.26 09:23 Сейчас в теме
(40) думаю в любом случае стоит, многие говорят что 3.8 действительно стала лучше) буду ждать в общем!
38. andrew.ab 267 10.08.26 14:33 Сейчас в теме
(35) с mtp есть проблемы в кодинге. С включенным mtp ловил поведение, например, для таблицы значений нужно было сгруппировать результат и применить Свернуть("Колонки группировки", "Суммируемые колонки"), модель упорно перебирает в цикле. Выключаешь mtp и сразу использует типовой метод для ТЗ.

qwen из коробки с mtp также этим грешат не только под 1с.
Для отправки сообщения требуется регистрация/авторизация