- BrainTools - https://www.braintools.ru -

Галлюцинации LLM — это артефакты сжатия. И это объясняет вообще всё

Представьте, что вам дают 10 терабайт текста и говорят запихнуть это в файл на 70 гигабайт. Да так, чтобы потом по любому вопросу можно было восстановить нужный кусок. Не точно, но близко, и не побайтово, но чтобы по смыслу билось.

Вы бы сказали: «так это же lossy-компрессия, часть данных неизбежно потеряется».

И были бы правы, потому что именно это делает LLM.

Предсказание = сжатие (и это не метафора)

Тут нужно кое-что объяснить, и это самое важное в статье.

Клод Шеннон доказал в 1948 году: предсказание следующего символа и сжатие данных — математически [1] одно и то же. Иными словами, если вы умеете хорошо предсказывать следующую букву, вы умеете хорошо сжимать текст. И наоборот.

И это теорема, где арифметическое кодирование буквально превращает хороший предсказатель в хороший компрессор.

# Что делает LLM на самом фундаментальном уровне:
def predict_next_token(context: str) -> Distribution:
    """Это одновременно и предсказание, и декомпрессия"""
    pass

# Чем лучше предсказание — тем меньше бит нужно на кодирование.
# Чем меньше бит — тем лучше сжатие.

GPT обучена предсказывать следующий токен. Значит, GPT — это алгоритм сжатия. Веса модели — это и есть сжатый файл.

И вот теперь многое становится очень понятным.

JPEG для текста

Все знают, что бывает, когда пережимаешь JPEG:

  • Крупные контрастные объекты сохраняются хорошо — лицо узнаваемо, небо голубое

  • Мелкие детали теряются первыми — текст на вывеске, ресницы, номер машины

  • На границах появляются артефакты — кубики, ореолы, цвета, которых не было на фото

  • Артефакты при этом выглядят правдоподобно. Непрофессионал может не заметить

Теперь замените «пиксели» на «знания»:

JPEG

LLM

Крупные контрастные объекты

Общие знания, частые паттерны

Мелкие детали

Редкие факты, точные цифры, конкретные даты

Артефакты на границах

Галлюцинации

Качество сжатия (1–100%)

Размер модели (7B → 70B → 405B → ???)

Оригинальный файл

Обучающая выборка

Галлюцинация — это артефакт сжатия. Модель «помнит», что в этом месте должно быть что-то определённого типа (ссылка, цитата, число), но точные биты потеряны. И она достраивает правдоподобный фрагмент. Точно так же, как JPEG достраивает пиксели, которых не было.

Это объясняет буквально всё

Возьмите любой глюк LLM и он укладывается в рамку lossy-компрессии.

Почему LLM хороша в коде?

Код — один из самых сжимаемых видов текста. Строгий синтаксис, повторяющиеся паттерны, ограниченный словарь. for i in range(n) встречается миллионы раз. При сжатии код страдает меньше всего как и крупные контрастные блоки на JPEG. Кодек «запомнил» паттерны почти без потерь.

Почему LLM плоха в математике?

Потому что точные числа — это именно те «мелкие детали», которые теряются первыми. 23 × 47 = 1081, но для кодека это просто три случайных числа без паттерна. Нельзя «сжать» таблицу умножения — её можно только запомнить целиком или вычислить алгоритмически. LLM не делает ни того, ни другого — она восстанавливает «что-то числовое, что выглядит правильным».

> Сколько будет 17 × 38?
> GPT: 646  ←  (правильный ответ)

> Сколько будет 1847 × 9283?  
> GPT: 17,143,301  ← (правильный: 17,143,501, ошибка в разряде)

Чем «реже» пример — тем больше артефактов.
Как на JPEG: лицо ОК, а номер машины на фоне — каша.

Почему увеличение модели помогает?

Потому что это буквально увеличение битрейта. JPEG на качестве 30% → 60% → 90%. Чем больше бит доступно, тем меньше потерь. GPT-175B галлюцинирует чаще, чем какой-нибудь GPT-1.8T. При бесконечном числе параметров потери стремятся к нулю. Но и файл стремится к размеру оригинала. Собственно, именно поэтому гонка за параметрами — это гонка за битрейтом.

Почему модель «уверенно врёт»?

А JPEG «уверенно рисует» несуществующие пиксели. Артефакты сжатия не помечены как артефакты. Они выглядят как настоящие данные. Кодек не знает, где он потерял информацию, потому что информация о потерях тоже потеряна. Это не не «ложь» в привычном нам смысле, а фундаментальное свойство lossy-кодека.

Temperature — это ползунок качества

Когда вы выставляете temperature = 0, вы говорите декодеру: «бери самый вероятный вариант на каждом шаге». Это как sharpening на пережатом JPEG — вы получите чёткую картинку, но артефакты станут жёстче.

Когда temperature = 1.0+, вы говорите: «добавь шума». Это как dithering — артефакты размываются, но и чёткость падает. Появляется «креативность», которая на самом деле — семплирование из распределения менее вероятных реконструкций.

# temperature = 0.0 → argmax, чёткие артефакты
# temperature = 0.7 → мягкий семплинг, баланс
# temperature = 1.5 → много шума, "креативность"
# temperature → ∞  → random, каша

# Точно как ползунок quality в фотошопе, только наоборот.

То есть «креативность» LLM — это не мышление [2], а, своего рода, интерполяция между вариантами реконструкции в латентном пространстве.

Когда JPEG на качестве 20% рисует несуществующий цвет между двумя блоками, то он тоже «креативен». Просто мы не пишем об этом постов)

RAG, fine-tuning и промпт-инжиниринг — переосмысленные

Если принять компрессионную рамку, то все современные техники работы с LLM обретают кристальную ясность:

RAG — вы подкладываете в контекст lossless-данные. Вместо того чтобы полагаться на то, как кодек «запомнил» факт, вы даёте ему оригинал. Это как вставить PNG-фрагмент в JPEG. Дорого по битам (контекстное окно не бесконечное), но без артефактов.

Fine-tuning — вы перекодируете файл с другими приоритетами. «Мне плевать на поэзию XIX века, зато юридические тексты сожми получше». Перераспределение битового бюджета.

Промпт-инжиниринг — вы говорите декодеру, из какого региона сжатого файла восстанавливать. «Ты — эксперт по Kubernetes» = «ищи в блоке, где хранятся паттерны DevOps-текстов».

System prompt — настройки декодера. Codec profile, если хотите.

Техника

В терминах компрессии

RAG

Lossless-вставка в lossy-поток

Fine-tuning

Перекодирование с новым профилем

Промпт

Seek + подсказка декодеру

RLHF

Перестройка кодека под субъективное качество (как psychoacoustic model в MP3)

Неудобный вопрос: можно ли убрать галлюцинации?

Если галлюцинации — артефакты сжатия, то ответ математически строгий: нет. Не полностью.

Можно увеличить битрейт (бо́льшая модель). Можно добавить lossless-данные (RAG). Можно улучшить кодек (лучшая архитектура). И всё это уменьшит артефакты.

Но пока вы сжимаете 10 TB в 70 GB — потери будут. Вы не можете сжать данные ниже их энтропии без потерь.

Каждый, кто говорит «мы решим проблему галлюцинаций» и не уточняет «за счёт кратного увеличения модели или внешней памяти», — либо лукавит, либо не понимает информационную теорию.

Сюжетный поворот: мы — тоже lossy-кодек

Вы помните, что ели на обед в прошлый четверг? А что было на слайде 14 из вчерашней презентации?

Человеческая память [3] — это тоже lossy-кодек. Мы сжимаем поток опыта [4] в нейронные паттерны, теряем детали, достраиваем правдоподобное. Психологи называют это конфабуляция — мозг [5] заполняет пробелы памяти выдуманными, но правдоподобными деталями.

Буквально — галлюцинации.

И мы делаем это по тем же причинам: объём входных данных несопоставим с объёмом хранилища. Сетчатка передаёт ~10 Мбит/с, а вы не помните лицо человека, с которым говорили час назад, потому что ваш биологический кодек решил, что эти биты не стоят хранения.

Разница в том, что у нас был миллион лет на тюнинг кодека, а у LLM — четыре года… (если считать с момента выхода первых более-менее работоспособных моделек)

Короткий вывод — брат длинной статьи

LLM — не искусственный интеллект [6] и не стохастический попугай.

Мне кажется, что это, скорее, искусственная память. Очень ёмкая, дорогая и неизбежно дырявая. Как и наша собственная.

И если принять эту рамку, пропадает половина хайпа и половина страхов. Не надо бояться, что GPT «осознает себя» — zip-архив не осознаёт, и не надо ждать, что она «перестанет ошибаться» — lossy-кодек не перестанет терять данные. Зато можно спокойно инженерить: подкладывать lossless-куски где критично, увеличивать битрейт где нужна точность, и не ждать от кодека того, что может дать только оригинал.

Может быть, когда-нибудь мы построим lossless-кодек для всех человеческих знаний. Но это будет не LLM, а что-то принципиально другое.

А пока — пользуйтесь JPEG.

Автор: inkedsymon

Источник [7]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/28071

URLs in this post:

[1] математически: http://www.braintools.ru/article/7620

[2] мышление: http://www.braintools.ru/thinking

[3] память: http://www.braintools.ru/article/4140

[4] опыта: http://www.braintools.ru/article/6952

[5] мозг: http://www.braintools.ru/parts-of-the-brain

[6] интеллект: http://www.braintools.ru/article/7605

[7] Источник: https://habr.com/ru/articles/1017612/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1017612

www.BrainTools.ru

Rambler's Top100