Почему в обучающих примерах неизбежно есть ошибки?
Модель учится на огромной куче текстов: сайты, книги, форумы, статьи. Их писали люди, а люди ошибаются, поэтому в куче всегда найдутся:
▫️обычные ошибки и опечатки: кто-то перепутал дату, имя, цифру;
устаревшие сведения: что было правдой в 2010 году, сегодня может быть неправдой;
▫️противоречия: на одном сайте одно, на другом другое;
▫️шутки, сарказм, художественные выдумки: текст из романа или анекдот выглядит как утверждение, но правдой не является;
▫️полуправда: упрощения, слухи, искажённые пересказы.
Проверить вручную миллиарды страниц невозможно. Поэтому и «неизбежно».
Даже если бы все тексты были стопроцентной правдой, модель всё равно ошибалась бы
Почему ошибки будут даже при идеальных данных?
Причин две.
1. У некоторых фактов нет закономерности
Есть два вида знаний.
Знания с закономерностью. Например, правила грамматики или правило «после точки — заглавная буква». Модель видит миллионы примеров, улавливает правило и дальше не ошибается.
Случайные факты без закономерности. Например, день рождения малоизвестного человека. Из других примеров его не вывести: дата могла быть любой. Если модель встретила этот факт в текстах всего один раз или не встретила вовсе, запомнить его надёжно она не может.
Факт, упомянутый единожды, модель не отличит от правдоподобной выдумки.
2. Отличать правду от выдумки легче, чем самому выдавать правду
Здесь снова математика.
Когда модель сама пишет правильный ответ она ошибается в два раз а больше, чем если бы она просто выбирала между "это утверждение верно / это утверждение не верно, то есть раскладывала по кучкам.
Случайные и мелкие факты превращаются для модели в ошибки, соответственно они неизбежно попадают в кучку. И соответственно, если модель выбрала кучку с ошибкой, которую она не заметила , то и в написании правильного ответа тоже будет ошибка.
Тогда возникает вопрос, а как сделать так, чтоб эти ошибки и галлюцинации минимизировать?
Об этом в других постах, но не в следующем
Сейчас объясню простыми словами:
1. «Правдоподобные строки» (X) - просто кусок текста, правдоподобный ответ, который модель может выдать.
📦 то есть X — это большая коробка со всеми ответами, которые выглядят прилично.
свои ответы (в коробке Х) модель распределяет на две кучки: E и V
📚 V (valid, допустимые): правильные, хорошие ответы. «В 1799 году» лежит здесь.
📚 E (errors, ошибки): ответы, которые выглядят прилично, но на самом деле неверны. «В 1805 году» лежит здесь.
Запись X = E ∪ V означает лишь «вся коробка = кучка ошибок + кучка правильных». Значок ∪ читается как «объединение», то есть «сложить вместе». (это математика из 6 класса, которую я забыла)
почему и как часто модель вытаскивает ответ из кучки E ?
Модель учится на огромном количестве текстов и угадывает, какой ответ вероятнее. Если о чём-то в текстах было мало информации (скажем, день рождения малоизвестного человека упоминался один раз), модель не может знать ответ наверняка, так как он редкий. Тогда она выдаёт что-то, что звучит правильно, и нередко попадает в ошибки.
Например, называет несуществующую книгу с реалистичным названием или выдумывает цитату.
Опасность в том, что такая ошибка не выглядит как ошибка. Она гладкая и убедительная.
Возникает вопрос, а если моделе дать только безошибочные данные то почему там тоже будут ошибки?
это в следующем посте
Нейросеть бредит, и делает это уверенно!
Она не скажет "я не знаю". По крайней мере по доброй своей воле! (Которой у неё нет)
Неправильный ответ, который звучит правдоподобно называется галлюцинацией.
Это похоже на галлюцинации у человека, но отличается тем, что
🔹У человека ложное ощущение, у нейросети ложное утверждение.
🔹Человек может страдать от галлюцинации, нейросеть ничего не переживает.
🔹Человеческая галлюцинация чаще говорит о сбое в норме работы мозга. Для нейросети это побочный эффект самого принципа её работы: правдоподобие не равно истине.
При обучении у модели нет цели «говори только правду». Её цель — хорошо подражать тому, как выглядят тексты: угадывать, какое слово или ответ вероятнее всего идёт дальше.
Если в запросе "Когда родился А. С. Пушкин? " модель не уверена, какая из дат «в 1799 году» и «в 1805 году» верна, такое обучение подталкивает её «разложить ставки» по нескольким правдоподобным вариантам, а не сказать «не знаю». Ответ «не знаю» в обычных текстах встречается редко, и обучение его почти не поощряет.
В результате модель иногда уверенно выдаёт одну из правдоподобных, но неверных дат.
Почему такая проблема вообще существует?
Ответ на этот вопрос приведет нас в математику.
Специалисты, которые обучают и настраивают ChatGPT анализируют ошибки модели с помощью вычислительной теории обучения. 😢
вот отрывок из их научной статьи:
"Мы рассматриваем общие множества ошибок E — произвольное подмножество правдоподобных строк X = E ∪ V; остальные правдоподобные строки V называются допустимыми (valid). Затем мы анализируем статистическую природу этих ошибок и применяем результаты к интересующему нас типу ошибок — правдоподобным ложным утверждениям, называемым галлюцинациями.
Распределение языка изначально выучивается по корпусу обучающих примеров, который неизбежно содержит ошибки и полуправду. Однако мы показываем, что даже если бы обучающие данные были безошибочны, оптимизируемые при обучении целевые функции всё равно приводили бы к генерации ошибок."
😭Не спешите плакать, если вы такие же гуманитарии как и я.