Pull to refresh

Comments 6

Т.е. сначала мы генерируем текст а затем пытаемся разобраться с тем что намудрили...

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

Собственно это и есть одна из причин галлюцинаций, да, конечно, сама сеть не идеально строит модель знаний внутри себя, она тоже шумит, и этот шум вылезает в разбросе между полученными вероятностями для следующего токена и фактическими, теми что предполагает запрос в действительности. Простой пример - мы просим (llm обученную только складывать цифры) сложить два числа '2+3=' и фактические вероятности должны быть '5' - 100%, остальные цифры 0%, но сеть выдаст что то типа '5' - 85% и каждая цифра тоже какой то процент +-1%, и алгоритмы рандомизации токена с некоторой не нулевой вероятностью могут выбрать не максимально верное значение а рядом стоящее....

И да, если отключить рандомизацию temp=0 то проблема шумящей области знаний внутри вылезет другим боком (например зацикливание - повторение символов).

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

p.s. Если задача может быть валидирована после (например генерация кода, который можно проверить, запустив его после) то можно решать задачу перебором всех ветвей дерева выбора токенов (и соответственно оптимизацию вести в этом направлении, зайдя внутрь нейронки).

Недавно мне порекомендовали вот этот ролик посмотреть о создании бота через какой-то китайский сервис. Бот получился неожиданно полезный, например может находить промокоды :-) Но я не об этом. Я использовал его, в основном как кодер и иногда спрашивал про ошибки в логах linux. И вот этот бот явно под капотом что-то подобное имеет. По тому что иногда он вместо ответа выдает что-то типа:


команда завершилась ошибкой, тогда попробуем по другому: ... далее идет "другое" решение.

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

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

С этим ботом такого не происходит: он стоит на своём, иногда приводит ссылки на научные работы, уверенно отстаивает устоявшиеся научные представления, не давая себя стаскивать путем многократного построения ложных утверждений.

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

Как обнаружить галлюцинации в LLM?

Современные нейросети еще не могут галлюцинировать) По определению галлюцинации возникают без внешнего стимула, т.е. в случае ИНС без внешнего ввода. Пока они не активные, а статические решения, вопрос - ответные. Галлюцинации больше соответствуют зрительным образам, т.е. генераторам изображений, с их многопальцами) Это больше похоже на фантазирование на заданную тему. А фантазирование одна из основ творчества, особенно литературного. Бороться нужно с избыточным фантазированием, ложью. Это достигается введение аналога логического уровня мышления, а также критического уровня, вообще типов мышления много. ЯМ реализуют в основном один уровень ассоциативного мышления (Система 1, быстрое мышление в двухуровневой модели мышления Каннемана; логический, медленный уровень мышления соответствует Системе 2). В этих публикациях 1, 2 предлагаются некоторые решения на эту тему. Галлюцинации, бред без внешней причины могут возникнуть возможно в нейроморфных сетях, которые больше соответствуют по своим свойствам биологическим прототипам, т.к. могут содержать некотрые аналоги генераторов спонтанной активности в НС, и активироваться от неспецифических воздействий в условиях соответствующих депривации. Хотя термин, введенный без должного анализа уже устоялся, но вызывает некоторое недоумение у знакомых с терминологией принятой в психофизиологии, и может влиять на адекватность выбора средств борьбы с ним.

Противопоставить галлюцинациям можно только коллективную нейросеть всех умов человечества. Для взаимной проверки и самосовершенствования LLM и человека нужна возможность сопоставления знаний искусственного интеллекта с коллективным интеллектом реальных людей, обладающих настоящими, а не заученными знаниями и опытом. Реализация такой системы описана здесь https://habr.com/ru/articles/802419

Спасибо за статью, это интересно, попробую поиграться с этим

Sign up to leave a comment.