Как недетерминированная GPT может выдавать четкие ответы

13.02.23

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

У человека, не погруженного в тему, внезапно нахлынувший вал сообщений о GPT может оставить противоречивые чувства. Эксперты разделились на два, на первый взгляд, равновеликих лагеря. Одни авторитеты говорят, что это "вау!". Другие уверенно заявляют, что GPT это "генератор бреда". Чтобы вы могли разобраться самостоятельно, я расскажу, как это работает.

В предыдущих статьях я уже давал ссылку на научный источник. Повторю ее еще раз https://arxiv.org/abs/2005.14165. В принципе, внимательное чтение этого препринта вносит полную ясность в рассматриваемом вопросе. Но я понимаю, что далеко не у всех есть время и силы читать 75 страниц на английском. Я постараюсь изложить принципы работы языковой нейросети по возможности коротко и просто.

Итак, что делает языковая нейросеть? Говоря по простому, она ищет следующее слово.

 

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

 

Обычно все же интересует ответ на конкретный вопрос. Поэтому модель ищет первое слово, следующее за этим самым вопросом. Этот вопрос уже когда-то обсуждали в интернете и давали на него ответы. Каждый ответ начинался с какого-либо слова. Из этих слов и выбирается первое. После первого слова выбирается второе, но уже с учетом вопроса и ранее выбранного первого слова. Этот процесс повторяется до тех пор, пока языковая модель не решит, что пора остановиться. Говоря другими словами, в качестве очередного слова выберет "стоп". Как видите, простая механика и никакой магии. Все дело в объемах обучающей выборки (и количестве ресурсов, потраченных на обучение, заметим).

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

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

  

Какой вариант следует выбрать здесь? Первый, конечно, сумел обойти второй. Но ведь и второй ничем не хуже первого. Современные языковые модели решают вопрос выбора очень просто. Они используют генератор (псевдо)случайных чисел. И в данном случае с вероятностью 50.0234% будет выдан первый вариант, а с вероятностью 49.9766% второй.

 

Хорошо, с этим понятно. Но что делать в случае, когда распределение будет 80% на 20%? Что делать в случае с 90% на 10%? Наконец, что делать вот в этом случае?

А ничего особенного не делать, говорят разработчики современных языковых моделей. Все так же, брать в руки генератор случайных чисел, и вперед. В результате с вероятностью 0.8927% вы получите второй вариант выбора первого слова. А так, как процесс повторяется много раз, за первым словом вы получите все остальные. И эти остальные слова с высокой вероятностью будут излагать вам наиболее убедительную версию изначально странного утверждения. Именно поэтому часть экспертов и называет современные языковые модели "генераторами бреда". Некоторые еще и добавляют: бреда, опасного своей убедительностью. 

Почему же разработчики пошли по этому пути? По моему личному убеждению, именно недетерминированность больших языковых моделей, использование генератора случайных чисел и явилось причиной столь ошеломляющего успеха. Хотя объемы обучающей выборки тоже сыграли свою роль, но недетерминированность оказалась важнее. Она как бы придала описанному выше чисто механическому процессу человеческое лицо.

Каждый из нас в глубине души уверен, что в состоянии самостоятельно разобраться, что есть истина, а что есть ложь. Кроме того, современное информационное общество отодвигает устаревшую дихотомию истина-ложь на второй план. Сейчас все более и более важной становится другая дихотомия: ценная информация - ерунда. При этом ерунда вовсе не обязательно будет ложью. Чаще всего это будет привет от капитана очевидность. Информация вполне истинная и совершенно бесполезная.

С другой стороны, чем выше ценность информации, тем выше вероятность того, что она будет выглядеть, как фейк. Что он говорит? Что время может ускоряться и замедляться? Вот давайте не будем давать ход всякому околонаучному бреду. Что-то подобное раз за разом говорил нобелевский комитет, когда его призывали дать премию Эйнштейну. Что характерно, эту свою ошибку комитет так и не признал. Когда стало уже совсем неудобно, премию таки дали. Но не за теорию относительности, а за другую, менее значимую работу.

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

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

Тогда какие основания у тех (автор в их числе), кто говорит "вау!"? Очень простые. С большими языковыми моделями не стоит говорить о смысле жизни (это будет пустое времяпрепровождение, хотя если вас это развлекает, то почему нет). Им надо задавать сугубо практические задачи. И чем более конкретный результат ожидается на выходе, тем более полезна будет для вас языковая модель. Для тех, кто причисляет себя к лагерю скептиков, это может показаться парадоксальным, но если вдуматься, никакого парадокса здесь нет.

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

Допустим у нас есть несколько складов, на которых хранятся товары. И мы хотим получить ответ на вопрос:

Сколько чая на основном складе? 

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

Древняя мудрость гласит, что правильно заданный вопрос - это уже половина ответа. Но время не стоит на месте. И в нашем новом чудном мире правильно заданный вопрос это уже можно считать, что ответ целиком! В рассматриваемом случае, правильный вопрос будет звучать примерно так:

У меня в базе данных есть вот такие таблицы остатков, товаров, складов. Хочу получить ответ на вопрос "Сколько чая на основном складе". Каким должен быть текст запроса на SQL?

В ответ придет примерно следующее:

SELECT Остатки.количество, Товар.наименование, Склад.наименование
FROM Остатки
INNER JOIN Товар ON Остатки.товар_id = Товар.id
INNER JOIN Склад ON Остатки.склад_id = Склад.id
WHERE Товар.наименование = 'чай' AND Склад.наименование = 'основной'

Для того, чтобы этот запрос выполнился например в типовой конфигурации Управление торговлей редакция 11.5, его надо преобразовать к виду:

ВЫБРАТЬ РегистрТоварыНаСкладах.ВНаличииОстаток, СправочникНоменклатура.наименование, СправочникСклады.наименование
 ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки как РегистрТоварыНаСкладах
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура как СправочникНоменклатура
 ПО РегистрТоварыНаСкладах.Номенклатура = СправочникНоменклатура.ссылка
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады как СправочникСклады
 ПО РегистрТоварыНаСкладах.Склад = СправочникСклады.ссылка
 ГДЕ СправочникНоменклатура.наименование = "чай" И СправочникСклады.наименование = "основной"

Это задача по программированию для средней группы детского сада. Получить вопрос от пользователя, добавить к нему описание таблиц и волшебное слово SELECT, получить результат, преобразовать его к виду выполнимому в конкретной базе данных, выполнить запрос и показать результат пользователю. Ну никак не выше средней группы!

Если вы думаете, что это я просто нашел счастливое сочетание слов чай и основной, то это не так. Вместо этих двух слов можно подставить: холодильники и южный, утюги и северный, яблоки и резервный, груши и центральный и т.д. Языковая модель все эти и, наверное, все прочие варианты обработает правильно. Она ведь ищет слово за словом, но с учетом всего предыдущего. Поэтому если в вопросе был чай, то и в ответе будет чай.

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

Сколько осталось чая на основном складе?
Какое количество чая на основном складе?
Так! Сколько чая на основном складе?

Остатки чая на основном складе?
Cкажи-ка мне, пожалуйста, сколько чая на основном складе?

Еще один важный момент заключается в том, что когда я проводил эксперименты, у меня в описании таблиц была не одна лишь таблица остатков на складе. Были еще таблицы продаж и взаиморасчетов. И когда мой вопрос по смыслу подходил под остатки, языковая модель строила текст запроса по остаткам. А когда смысл вопроса подходил под продажи, строился запрос к таблице продаж, хотя и там и там встречаются одинаковые поля. Можно с полным правом сказать, что большая языковая модель вас понимает.

Может ли языковая модель "галлюцинировать", выдавая ответы на рассматриваемый нами вопрос? Исходя из того, что мы узнали, ответ должен быть "да". И действительно, в процессе проведения экспериментов с OpenAI GPT, мне случалось ловить определенного рода "глюки". Но что интересно, ни разу это не было заменой слова чай на какое-либо другое слово. Видимо все-таки вероятность того, что модель в процессе решения данной задачи после слова чай поставит снова чай слишком высока. "Глюки", которые я ловил были другого рода. Вместо ответа типа:

SELECT Остатки.количество, Товар.наименование, Склад.наименование
FROM Остатки
INNER JOIN Товар ON Остатки.товар_id = Товар.id
INNER JOIN Склад ON Остатки.склад_id = Склад.id
WHERE Товар.наименование = 'чай' AND Склад.наименование = 'основной'

Я получал ответ следующего вида:

SELECT Количество, Товар_id, Склад_id
FROM Остатки
WHERE Товар_id = 1 AND Склад_id = 1
  

Можно предположить, что наряду с правильной веткой ответа в интернете довольно часто встречалась побочная. Типа, вот тебе "скелет" запроса, сам подставь вместо единиц, что тебе надо. По ощущениям это встречалось менее, чем в 5% случаев. Как вы понимаете, такого рода "глюк" не представляет опасности. По крайней мере в среде 1С. Потому что этот запрос просто не выполнится. Т.е. мы не получим "фантазию" на тему остатка, не получим, например, значение 100 вместо 5. Мы просто не получим ничего. Если мы организуем для пользователя интерфейс на естественном языке, и будем изредка получать такие "промахи", не факт, что пользователи сочтут это значительным неудобством. Такие ситуации вполне укладываются в общую языковую практику. Если вас не расслышали, вы повторяете свой вопрос. Никто не делает из этого трагедию.

Все изложенное выше является результатом экспериментов автора. В конце февраля 2023 года автор открывает тестовую площадку. На этой тестовой площадке можно будет самостоятельно задавать вопросы и получать ответы в типовых конфигурациях УТ, КА и ERP. Также можно будет настроить свою схему, чтобы работать с любыми другими конфигурациями, в том числе нетиповыми. Вопросы по работе тестовой площадки задавайте здесь.

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

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

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

См. также

Нейросети Системный администратор Разработчик Аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Платные (руб)

Подключите ИИ к 1С и решайте рабочие задачи обычными словами. От работы с данными до доработки конфигурации через расширения, всё в привычном чате с ИИ-помощником. Теперь с поддержкой DeepSeek Harness, Kimi Code и Kimi Work, доступных в России без VPN.

15990 руб.

30.07.2026    19666    44    4    

38

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-совместимые модели — данные могут не покидать ваш контур.

17500 руб.

20.12.2024    21623    105    32    

90

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

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

15250 руб.

25.08.2025    77126    147    41    

154

SALE! 30%

Нейросети 1С 8.3 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение добавляет в 1С чат с ИИ-агентом. Пользователь пишет вопрос обычными словами: «какие УПД не подписаны?», «какой НДС к уплате за квартал?», «что висит на согласовании дольше недели?», а агент сам строит запросы к базе с правами этого пользователя и отвечает цифрами, таблицей, диаграммой или файлом Excel. Плитки «Аналитик», «Бухгалтер» и «Руководитель» дают сводку по базе одной кнопкой. Агент разбирает ошибки по скриншоту, сверяет прайсы поставщиков и проверяет коды маркировки. С версии 1.0.21 спрашивать можно и с телефона: QR-код в окне агента, без установки приложения. Работает в УТ 11, КА 2, ERP 2, БП 3.0, УНФ 3.0, Документооборот 3.0 и Альфа-Авто 6, ставится одним расширением.

18300 руб.

05.10.2026    3818    12    9    

13

Инструментарий разработчика Нейросети Системный администратор Разработчик Руководитель проекта 1С 8.3 Платные (руб)

Обработка заменяет ФИО, организации, ИНН, ИИН, БИН, ОГРН, КПП, БИК, счета и IBAN, паспорта, СНИЛС, адреса, телефоны, почту и суммы на правдоподобные выдуманные перед отправкой данных в ChatGPT, Claude или YandexGPT, а потом расшифровывает ответ модели обратно, подставляя настоящие имена и настоящие числа. Возвращаются и те итоги, которые модель посчитала сама: суммы масштабируются одним коэффициентом, поэтому пропорции и доли переживают обезличивание. Словарь замен хранится в самой базе и подхватывается автоматически, даже если обработку закрывали. Реквизиты России и Казахстана, любая конфигурация от 8.3.24, без единой зависимости.

14640 руб.

07.08.2026    2220    3    0    

3

Распознавание документов и образов Нейросети 1С:Предприятие 8 1С 8.3 1С 8.5 1C:Бухгалтерия 1С:Зарплата и Управление Персоналом 3.x Беларусь Россия Казахстан Армения Платные (руб)

ИИ-сканер документов с REST API для интеграции с 1С и корпоративными системами. Извлекайте данные из счетов, паспортов, дипломов, патентов и трудовых книжек за секунды. Точность человека - скорость машины. Приложение поддерживает восемь типов документов, четырех провайдеров ИИ (имеется возможность использования локальных ИИ), локальный REST API и экспорт в JSON. Важно! модель должна поддерживать функцию Vision (распознавание файлов и картинок). Запускайте используя локальные ИИ, без подписок и ограничений

6100 руб.

24.08.2026    1483    2    0    

2

Нейросети Разработчик Бесплатно (free)

Как автоматически создавать маркетинговые ролики для собственных IT-продуктов, используя ИИ? В предыдущей статье я рассказывал о Zapis — приложении для работы с речью и текстом. Теперь расширил его возможности: добавил конвейер создания видео, в котором ИИ-агент изучает материалы проекта, готовит сценарий, подбирает реальные скриншоты и пишет текст диктора. Zapis отвечает за озвучку, а Remotion — за анимацию и сборку. На примере обмена ПУТ на OneBase -> 1С:Бухгалтерия 3.0 покажу готовый 83-секундный ролик из восьми сцен. Разберём, как устроен процесс, зачем нужны настоящие скриншоты интерфейса, как синхронизируются речь и изображение и что сохраняется для повторной сборки после изменений в продукте. Исходный код и инструкции доступны в открытом репозитории Zapis.

06.11.2026    534    Ibrogim    2    

11

Нейросети Разработчик 1С 8.3 Бесплатно (free)

Как подключить ИИ-агента к разработке 1С на примере обработки «Почему не закрывается месяц»: одна папка, копия демобазы и несколько скриптов. Семь шагов: агент, выгрузка в файлы, правила, проверка кода, сборка, тесты YAxUnit и сценарии форм. На каждый: зачем он нужен, команда и где легко споткнуться. В конце: что выросло поверх, три ошибки с разных типовых и сколько это стоило.

05.11.2026    7508    Iliaelagin    8    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. laperuz 47 14.02.23 05:36 Сейчас в теме
Михаил, вы у себя используете GPT-3(davinci-002). В ChatGPT используется GPT3.5(davinci-003), но через API он на данный момент недоступен. При этом, насколько я знаю, GPT-3.5 гораздо продвинутее. Вы проверяли насколько отличаются результаты работы алгоритмов через API и на сайте в контексте вашей разработки?
nnn123; human_new; +2 – Ответить
2. mkalimulin 1651 14.02.23 08:44 Сейчас в теме
По моим ощущениям, особой разницы нет. Davinci-003 более многословна. Текст запроса предваряется вступительными разъяснениями, в конце еще одни разъяснения. Davinci-003 предназначена все-таки в первую очередь для диалога. Но вы важный вопрос поднимаете. Я сравнивал результаты Davinci-002 и Davinci-003 считанные разы. Этого, конечно, недостаточно, чтобы делать уверенные выводы. Было бы интересно посмотреть на Davinci-003 в тех ситуациях, когда Davinci-002 не справляется. Думаю, что в процессе работы тестовой площадки, удастся на это посмотреть. Тестовая площадка стартует в конце февраля. Присоединяйтесь!
3. splxgf 14.02.23 15:58 Сейчас в теме
4. mkalimulin 1651 14.02.23 18:02 Сейчас в теме
(3) От вас слышу. Спасибо за ссылку!
5. roman72 409 18.02.23 01:19 Сейчас в теме
Правильно я понимаю, что в вашем тесте вы вопрос на русском языке
- переводите на английский
- передаёте его в чатЖПТ
- получаете конструкцию запроса на английском языке
- переводите эту конструкцию на русский 1сный
- выдаёте в ответ пользователю
-- при этом вы каким-то образом передаёте чатЖПТ списки таблиц регистров 1С (как, если так?)

Насколько я знаю, чатЖПТ обучен в основном на кодах гитхаба и похожих ресурсах, где кода на языке 1С считай нет.
Но там полно кода на SQL.
Поэтому вам, для 1С, чатЖПТ строит ответы на языке SQL вполне приемлемо.
Но что вы собираетесь делать для получения ответов от чатЖПТ по коду 1С, который не является кодом запроса?
6. mkalimulin 1651 18.02.23 10:03 Сейчас в теме
(5)
- текст вопроса пользователя я не перевожу на английский, отправляю как есть
- передаю запрос по API к модели code-davinci-002
- получаю текст запроса SQL
- перевожу его на 1С так, чтобы он стал выполнимым, возвращаю его клиенту, на клиенте выполняю запрос, а пользователю вывожу результат выполнения запроса
- на сайте OpenAI дается пример запроса
### Postgres SQL tables, with their properties:
#
# Employee(id, name, department_id)
# Department(id, name, address)
# Salary_Payments(id, employee_id, amount, date)
#
### A query to list the names of the departments which employed more than 10 employees in the last 3 months
SELECT
В этом шаблоне меняете описание таблиц на свое, например:
Остатки(товар, склад, количество)
и т.п.
Вставляете запрос от пользователя как есть, слово SELECT не трогаете


Любой вопрос пользователя превращается в SQL запрос. Удачно или не удачно зависит от описания таблиц. Если у вас вопрос о приеме на работу, а в описании таблиц только остатки и продажи то...
7. roman72 409 18.02.23 15:50 Сейчас в теме
(6) А насчёт кода 1С, который не является запросом? С ним не работаете?


"перевожу его на 1С так, чтобы он стал выполнимым" - вручную? алгоритм какой-то?


И как таблицы 1С (имена) передаёте в чатЖПТ?
8. mkalimulin 1651 18.02.23 18:14 Сейчас в теме
(7) С кодом 1С пока сложно работать. Он почти в 100% будет невыполним.

Просто заменяю одно на другое

Таблицы я описываю своими словами, по человечески
9. roman72 409 19.02.23 00:25 Сейчас в теме
(8) С таблицами непонятно.
Вы список таблиц передаёте в чатЖПТ?
Или в ответ полученный от чатЖПТ вставляете таблицы из вашего списка перед передачей пользователю?
10. mkalimulin 1651 19.02.23 07:45 Сейчас в теме
(9) Без таблиц ответ от GPT не получишь. Посмотрите ещё раз на на мой пост 6. Видите, там таблицы, а потом вопрос
11. igrned 21.02.23 15:27 Сейчас в теме
А зачем переводить с англ. на русс. если GPT знает язык 1С и возвращает текст запроса на русс?
12. mkalimulin 1651 21.02.23 16:48 Сейчас в теме
(11) В общем случае GPT не возвращает текст запроса на русском
13. mkalimulin 1651 27.02.23 22:13 Сейчас в теме
Для всех желающих доступна тестовая площадка. На ней можно проверить самостоятельно все, что описано в статье
16. lordworld17 25 24.03.23 12:52 Сейчас в теме
(13)как попасть на тестовую площадку?
14. lada2011 09.03.23 13:20 Сейчас в теме
Хотелось бы посмотреть текст запроса на простой вопрос. Сколько неоплаченных счетов?
15. PetroD 1 15.03.23 11:54 Сейчас в теме
Автор не знает или не догадывается, что на вопрос земля круглая или плоская можно получить третий (и он будет првильным) ответ: Земля круглая, но плоская, как блюдечко.
Для отправки сообщения требуется регистрация/авторизация