Галлюцинации LLM — это артефакты сжатия. И это объясняет вообще всё. gpt.. gpt. llm.. gpt. llm. Алгоритмы.. gpt. llm. Алгоритмы. галлюцинации.. gpt. llm. Алгоритмы. галлюцинации. искусственный интеллект.. gpt. llm. Алгоритмы. галлюцинации. искусственный интеллект. математика.. gpt. llm. Алгоритмы. галлюцинации. искусственный интеллект. математика. Машинное обучение.. gpt. llm. Алгоритмы. галлюцинации. искусственный интеллект. математика. Машинное обучение. научно-популярное.. gpt. llm. Алгоритмы. галлюцинации. искусственный интеллект. математика. Машинное обучение. научно-популярное. научпоп.. gpt. llm. Алгоритмы. галлюцинации. искусственный интеллект. математика. Машинное обучение. научно-популярное. научпоп. Сжатие данных.. gpt. llm. Алгоритмы. галлюцинации. искусственный интеллект. математика. Машинное обучение. научно-популярное. научпоп. Сжатие данных. теория информации.. gpt. llm. Алгоритмы. галлюцинации. искусственный интеллект. математика. Машинное обучение. научно-популярное. научпоп. Сжатие данных. теория информации. шеннон.

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

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

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

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

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

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

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

# Что делает 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 — это не мышление, а, своего рода, интерполяция между вариантами реконструкции в латентном пространстве.

Когда 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 из вчерашней презентации?

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

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

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

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

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

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

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

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

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

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

Автор: inkedsymon

Источник

Rambler's Top100