Какие могут быть возможные причины изменения ответа LLM на один и тот же запрос?
К примеру, имеется LLM в виде двух чат-ботов от тех же Google и OpenAI. Они естественно уже обучены и выпущены для использования конечным потребителем, т.е. в данный момент с этими чат-ботами общаются сотни тысяч пользователей.
1. Так же имеется некий запрос, каждый раз он абсолютно одинаков, и каждый раз он вводиться в новом, чистом чате, что б исключить влияние контекста. В результате на этот запрос чат-бот выдает некий ответ, раз от раза, т.е. с каждым повтором запроса, в этом ответе меняются слова и их порядок, число вариаций ответа небольшое, но общий смысл ответа не меняется. Интересуют возможные причины, такого перефразирования ответа от LLM?
2. Допустим что запрос не меняется, и условия ввода запроса тоже остаются без изменений, это новый чат каждый раз для одного и того же запроса. При этом LLM теперь дает абсолютно новый !!ПО СМЫСЛУ!! ответ, нежели ранее. Возможны ли какие то иные причины такого СМЫСЛОВОГО изменения ответа, нежели в какой то момент проведенное вышеупомянутыми IT гигантами дообучение LLM?
Это основа работы алгоритма llm gpt.
При выборе следующего токена ответа, алгоритм выбирает не тот что с большей вероятностью , это параметр temp=0 (это стабилизирует ответы но значительно ухудшает из качество) а с некоторым разбросом, чем выше temp тем больше разброс выбора и 'креативность' ответа, чаще это вода в тексте, так как с ней проще разнообразить.
На сколько я помню если нужно и temp выше 0,и стабильность, то фиксируй seed генератора случайных чисел...
Для правильного вопроса надо знать половину ответа
Причина в самом принципе работы LLM - он ничего не знает, ни о чём не думает, а только циклически подбирает слово, вероятно продолжающее предыдущий контекст. При этом берётся не всегда одно и то же продолжение, а одно из наиболее вероятных.
В каком-то из вариантов добавленное слово может изменить контекст настолько, что дальнейшее продолжение будет ложью - LLM галюцинирует.
Дообучение - не происходит. Кроме новых релизов. Никакого лайф дообучения не существует.
LLM - должен имитировать интеллект, по этому он перефразирует один и тот же по смыслу ответ.
В тех случаях, когда LLM дает по смыслу другой ответ , то она это может делать по ряду причин:
1. Ранг источника на котором она формирует ответ, изменился понизился
2. Она может хранить историю этот пользователь уже задавал этот вопрос и потом задает его снова и снова, "значит ответ не устраивает".
3. LLM может получать лайф оценки на свои ответы, у каждого разработчика есть команды людей которые выставляют оценки ответам LLM, и она может получить низкую оценку и начать искать другой ответ, но это не имеет ничего общего с дообучением.
yMad, LLM осуществляет поиск информации в интернете, ранг источника это рейтинг. Релиз может в себя включать дообучение, а может и не включать. Просто новых фич добавили и новый релиз. Дообучение это новые тензоры весов в нейронной сети.
Максим Припадчев, понял тебя.
Однако, если исключить, дообучение, генератор СЧ, ранг источника, историю которая есть контекст, лайф оценки, возможно что то еще что может повлиять на смысловое изменение ответа LLM при тех же вводных что были до этого смыслового изменения ответа? Возможно ли что исключив всё очевидное останется что то неочевидное, вроде пересечения каким то образом внутри нейросети запросов от всех пользователей, так что они могут пусть и незначительно но оказывать влияние на ответы друг друга от LLM?
В каком-то из вариантов добавленное слово может изменить контекст настолько, что дальнейшее продолжение будет ложью - LLM галюцинирует.
он глубже чем может показаться, он приводит экстремум этого поведения то что называют "галлюцинациями", но это экстремум в обычных случаях это может вести в том числе к измененным вариациям ответа. Работа таких больших моделей имеет стохастическую природу на многих уровнях, они в принципе не гибки в своей настройке.
никаким боком тут этого нет, поверх llm есть несколько продуктов, которые с помощью RAG докидывают в контекстное окно потенциально полезную информацию (типа макрософтовский bing copilot в chatgpt и как самостоятельный продукт, или боты coze, плюс совсем отстойные реализации у других, типа сберовского гигачата) и все это делают очень отвратительно, скорее всего из-за экономии денег (качественная реализация получится дорогой)
При обучении использовалась информация из интернета, собственно это и есть то что сделано llm-ки такими хорошими - обучение на мусорных данных без их разметки. Дальше там идет генерация этих данных и конечно технологии типа RLHF, когда уже обученная сетка тюнится на серии вопрос-ответ (дает хороший буст в качестве но с кучей ограничений - информации этот способ не добавляет), в этом случае качество датасета вопросов кстати наиважнейшее, и его сбор становится очень дорогим, на столько что есть кому заплатить таким проектам как lmsys, или то что дало возможность openai продвинуться вперед с gpt35 до gpt4, за счет сотни миллионов пользователей и их вопросов.
Сам finetuning моделей не добавляет информации, точнее не так, добавление новой информации ломает модель и делает ее хуже. Правильное дообучение должно содержать очень строго выверенную часть изначального обучающего датасета (в идеале всю) и даже это не гарантирует качественного результата. У нейронок есть отвратительная способность сваливаться в ловушки медленного переобучения (любых - это особенность алгоритмов обучения), когда новая информация требует на порядки больше времени обучения чем если бы та же информация была добавлена с самого начала.
llm-ки не ищут информацию внутри себя, это абсурд, я столько людей видел пытающихся с пеной у рта отстаивать эту бессмысленную идею без каких либо шансов и логики типа llm это БД. llm-ки строят внутри модель знаний и закономерностей, которые присутствовали в обучающей выборке, примерно как человеческая память, на любую информацию идет попытка сохранить ее не как факты, а как алгоритм ее создания (через структуры на основе весов в нескольких рядом стоящих слоях). Собственно вопросом является, когда нейронка пытается принимать решения на основе запомненной информации, она для этого пользуется новыми структурами (грубо говоря дважды запомнила информацию, один раз как якобы факт а другой раз для принятия решения) или строит взаимные структуры... кажется mistral публиковали работу на тему поиска тех самых весов, отвечающих за конкретные знания.
Новые версии llm-ок это не только обновление обучающего датасета, но и алгоритм (pipeline) обучения. Там уже давно не упирается все в загрузил обучающие данные, нажал кнопку, получил готовую модель... нет там последовательный процесс, с пересозданием модели, с правкой алгоритмов, структуры, токенизера и кучи всего что нам на публично не известно.
Докину, у нейронок, любых, есть проблема - переобучаемость, когда вместо выявления закономерностей обучающего датасета, она тупо 'запоминает' фактические данные, собственно главный критерий остановки обучения нейронки - сравнение метрик на обучающей и тоестовых выборках, как только качество у первой растет без роста на второй, так пора останавливаться.
Так вот для llm-ок переобученность в локальном смысле (в пределах какого то одного 'признака'/'знания') модели может оказаться проще запомнить факт а не 'понять' его (т.е. не сможет сформулировать для себя применимость этого знания), и скорее всего это даже чаще всего и происходит, когда то это идет на пользу (когда нейронка умудряется цитаты из вики выдавать, особенно это полезно при паттерне запросов think step by step, тогда вываливаемые справочные данные работают как встроенный RAG, улучшая результат) но чаще просто занимает веса и отнимает ресурсы при обучении.
Такое запоминание можно наверное считать записью в базе данных, но с очень очень большими оговорками, больше как аналогия.
Взрослые люди умеют отвечать за свои слова, или извиняются. Аргументов я не увидел, одни эмоции.
Весь мир под LLM понимает полный набор сервисов, а не просто тензоры весов, которые выучены во время обучения.
1. Все большие LLM (конечный продукт )осуществляют в том числе поиск информации в интернете (процессируют их и формируют ответ).
2. Они берут информацию внутри себя. Конечно не ответы, их она генерирует. Оценки на ответы. Первым делом любая LLM формирует не ответ, а отвечает на вопрос на сколько чувствительная информация в вопросе, имеет ли право она в принципе отвечать и т.д.
3. Оценки доступны им лайф, у разработчиков есть возможность поставить красный флаг на тот или иной ответ, без переобучения.