Бесплатно · код открыт · 153 скачивания
Локальная LLM в 1С: модель отвечает и учится внутри обработки
Локальная LLM в 1С здесь буквально локальная: языковая модель на 21 920 параметров лежит во внешней обработке и считает ответ на вашем компьютере, без интернета, внешних компонент, ONNX и Native API. С версии 2.0 она ещё и учится прямо в форме, на встроенном языке: нажимаете "Обучить" и смотрите, как падает потеря и как из каши букв проступают слова. Это учебный стенд с открытым кодом: в прод его не ставят, по нему разбираются, как модель устроена и как учится.
Обработка бесплатная, исходники открыты. В карточке два файла: версия 2.0 с обучением и оба набора весов, и прежняя версия 1.0 с моделью на 76 608 параметров, которая только отвечает. Нужна платформа 8.3.27.1606 и выше, управляемые формы.
Если вам нужна рабочая локальная нейросеть рядом с базой, чтобы данные не уходили в облако, её ставят отдельным сервисом: llama.cpp или Ollama на своём сервере, а 1С обращается к ней по HTTP, как к OpenAI-совместимому адресу. Модель при этом остаётся чёрным ящиком: текст ушёл, ответ пришёл, что было между ними, не видно.
Эта обработка закрывает вторую половину вопроса. Трансформер целиком написан на языке, который знает любой 1С-ник: Массив, БуферДвоичныхДанных, Соответствие и циклы, ни одного условия, которое разбирало бы язык. Модуль можно открыть и пройти отладчиком от вопроса до последнего символа ответа.
В версии 2.0 в том же модуле живёт и обучение: потеря, обратный проход, шаг AdamW и скорость обучения, всё процедурами встроенного языка. Веса, обученные так на сервере 1С за 2,96 часа, лежат в обработке вторым набором рядом с августовскими из Python. Платного варианта нет: это всё, что есть, целиком и с исходниками.
Что видно на форме
Полный ответ и цена ответа
Модель предсказывает символ, подставляет его обратно на вход и предсказывает следующий, пока ответ не закончится. Под ответом отчёт: сколько символов вышло, сколько выполнено умножений, сколько заняло секунд. Живой прогон: "что такое регистр сведений?" - 49 символов, 1 490 560 умножений, 13,2 секунды.
Один символ по шагам
Один проход модели с показом вероятностей всех 36 символов алфавита сразу, столбиком, с процентами. Здесь видно главное: модель не выбирает букву, она считает распределение по всему алфавиту, а выбор делает код снаружи. Температура управляет этим выбором: при 0 ответ повторяется слово в слово, при 5 текст распадается.
Закладка "Обучение"
Обучить заданное число шагов, остановить, продолжить с того же шага или начать заново. Между шагами обновляются индикатор, строка "шаг, потеря, осталось" и кривая потерь. Первые шаги дают ровно те потери, что записаны в журнале ночного прогона на сервере.
Два набора весов
Обученные в 1С в октябре и обученные на Python в августе. Оба знают 38 фраз из 40 и ошибаются на разных вопросах: веса 1С путаются на "где хранятся права", веса Python на "как ограничить доступ". Один вопрос двум моделям подряд показывает это сразу.
Обучение на своём тексте
Свои пары "вопрос? ответ." построчно вместо сорока фраз обработки, алфавит берётся из вашего текста. Веса сохраняются в файл около 25 КБ и загружаются обратно.
Чего она не умеет, до кнопки скачивания
Знает сорок фраз про объекты 1С, знаний о мире у неё нет. На своём тексте тоже только запоминает: свои пары повторит дословно, на вопрос не из текста ответит кашей. Ставить её в прод некуда, и это написано в описании до кнопки, а не после.
Как попробовать
- 01
Скачиваете и открываете
Файл → Открыть → .epf в любой своей базе. Подключать ничего не надо: ни компонент, ни интернета.
- 02
Задаёте вопрос про метаданные
Модель обучена на них, поэтому осмысленный ответ она даст именно здесь. Спросите про регистр сведений или про обработку, переключите веса и спросите ещё раз.
- 03
Обучаете 20 шагов
На закладке "Обучение" кнопка "Обучить": около четырёх минут, шаг считается на сервере около 12 секунд, окно в это время не отвечает. Потеря падает с 3,75 до 2,66, модель выучила частые буквы. Слова появляются к 200-му шагу, полные ответы к 800-му, весь корпус это около трёх часов, его лучше оставить на ночь.
- 04
Читаете код
Модель и обучение живут в модуле объекта, форма только зовёт его методы. Справка "Как это учится" внизу закладки объясняет веса, шаг, потерю и градиент словами 1С-ника.
O'zingiz hal qila olmayapsizmi? Yozing, birga ko'ramiz
WhatsApp orqali nima chiqmayotganini yozing: ko'rib chiqamiz va qanday yordam bera olishimizni aytamiz.
Mavzu boyicha tahlillar
Как учится нейросеть, объяснённое кодом 1С: потеря, градиент и шаг на модели, обученной прямо на сервере
Обучение нейросети обычно объясняют формулами. Здесь оно разложено на процедуры модуля 1С: что такое вес, потеря, градиент, шаг AdamW и скорость обучения, с куском кода и числом из настоящего прогона на каждый термин. Модель на 21 920 параметров выучила сорок фраз за 2,96 часа счёта на встроенном языке, а второй прогон на заголовках наших статей занял 3,2 часа. Плюс рецепт, который сократил работу в 349 раз, проверка производных без чужих библиотек и граница, где встроенный язык заканчивается.
Почему нейросеть повторяет одно и то же: карта внимания модели, снятая на встроенном языке 1С
Модель смотрит в вопрос, пока пишет первые три символа ответа, а дальше почти только на себя. Если выключить у неё одну голову внимания из четырёх, верных ответов не остаётся, а больше трети ответов уходят в повтор вроде "стстстст". Разбираем, как снять карту внимания функцией на сорок строк, что она показала на сорока вопросах и что из этого следует для тех, кто работает с большими моделями.
Как дать нейросети доступ к 1С, чтобы она видела только разрешённое пользователю
Коннектор нейросети к 1С обычно работает под одной учёткой с полными правами, и роли с ограничениями на уровне записей для модели пропадают. Разбираем, как это проверить у себя, какие пять приёмов прав не возвращают и как отправить запрос модели в сеанс спросившего. Код, замер на демо-базе УТ 11.5 и требования к шлюзу.
Как проверить запрос 1С, который написала нейросеть: ловушки типовой и сверка с эталоном
Упавший запрос нейросети безопасен: платформа покажет строку с ошибкой. Опасен тот, что выполнился и вернул правдоподобное число. Разбираем три уровня проверки, карту ловушек УТ 11.5 с запросами до и после и правила построчной сверки с эталоном. Числа из прогона 90 запросов трёх моделей.
Рядом по теме
Как учится нейросеть, объяснённое кодом 1С
Потеря, градиент, шаг AdamW и скорость обучения на коде этой обработки, рецепт трёх часов вместо 51 суток и проверка производных.
Пять вещей, которые ломаются при подключении нейросети к 1С
Как эта модель устроена внутри: токены, веса, внимание и почему она уверенно отвечает на то, чего не знает.
Стадии обучения локальной модели
Двенадцать снимков одной модели по ходу обучения: на каком шаге появляются слова и рождается выдуманный метод.
Ko'p so'raladigan savollar
Почему модель уверенно отвечает на вопрос, которого не знает?
Сказать "не знаю" она не умеет: модель обязана продолжить последовательность и продолжает её всегда. На вопрос про котлеты она ответит "документ права документ?" тем же ровным тоном, что и про регистр накопления. Уверенность в этой конструкции просто результат softmax, со знанием она не связана.
Можно обучить модель прямо в 1С?
С версии 2.0 да, на закладке "Обучение", на сорока фразах обработки или на своём тексте. Шаг идёт около 12 секунд, 20 шагов около четырёх минут, полный корпус в 800 шагов около трёх часов. Ночной прогон на сервере 1С, из которого взяты веса 1С, занял 2,96 часа счёта и совпал с PyTorch в двойной точности: итоговые веса разошлись на 1,4e-12.
Почему ответ считается секундами и можно ли быстрее?
Во встроенном языке каждое число - объект, а векторных инструкций процессора и видеокарты нет, отсюда секунды. Если меряете сами, выключите отладку на сервере: на этом коде она одна замедляла счёт почти вдвое. Читатель переписал счёт на JavaScript внутри поля HTML-документа, и тот же вопрос у него считался 0,024 секунды против 7,2 на встроенном языке, разница в 300 раз. Но это уже не чистый встроенный язык.
Есть версия с моделью крупнее?
Да, вторым файлом в карточке лежит версия 1.0 с моделью на 76 608 параметров. Устройство то же, но крупная делает почти вчетверо больше умножений на каждый символ, поэтому тот же ответ считает заметно дольше. Закладки обучения в ней нет.
Что нужно для запуска и пишет ли она что-то в базу?
Платформа 8.3.27.1606 и выше, управляемые формы, конфигурация любая. Обработка не обращается ни к базе, ни к объектам конфигурации: весь счёт идёт в памяти, в базу она ничего не пишет. Вопрос пишите строчными русскими буквами: цифр, латиницы, заглавных, "э" и "ё" в её алфавите нет.
Можно приспособить её под рабочую задачу?
Нет, это стенд для объяснения механики. Обучение на своём тексте показывает, как модель запоминает, но обобщать на 22 тысячах параметров ей нечем. Для классификации обращений или поиска похожей номенклатуры путь другой: готовая модель вроде ru-e5-small через ONNX Runtime во внешней компоненте.
1C tizimingiz uchun bepul ekspress-audit
1-2 kun ichida bazangizni ko'rib chiqamiz, unumdorlik qayerda yo'qolayotganini topamiz va nima qilish kerakligini aytamiz. Majburiyatsiz.
Vazifani muhokama qilamiz
Eng tezi WhatsApp: vazifa haqida bir-ikki qator yozing, ish kuni davomida javob beramiz.