- BrainTools - https://www.braintools.ru -
Представьте, что вам дают 10 терабайт текста и говорят запихнуть это в файл на 70 гигабайт. Да так, чтобы потом по любому вопросу можно было восстановить нужный кусок. Не точно, но близко, и не побайтово, но чтобы по смыслу билось.
Вы бы сказали: «так это же lossy-компрессия, часть данных неизбежно потеряется».
И были бы правы, потому что именно это делает LLM.
Тут нужно кое-что объяснить, и это самое важное в статье.
Клод Шеннон доказал в 1948 году: предсказание следующего символа и сжатие данных — математически [1] одно и то же. Иными словами, если вы умеете хорошо предсказывать следующую букву, вы умеете хорошо сжимать текст. И наоборот.
И это теорема, где арифметическое кодирование буквально превращает хороший предсказатель в хороший компрессор.
# Что делает LLM на самом фундаментальном уровне:
def predict_next_token(context: str) -> Distribution:
"""Это одновременно и предсказание, и декомпрессия"""
pass
# Чем лучше предсказание — тем меньше бит нужно на кодирование.
# Чем меньше бит — тем лучше сжатие.
GPT обучена предсказывать следующий токен. Значит, GPT — это алгоритм сжатия. Веса модели — это и есть сжатый файл.
И вот теперь многое становится очень понятным.
Все знают, что бывает, когда пережимаешь 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 = 0, вы говорите декодеру: «бери самый вероятный вариант на каждом шаге». Это как sharpening на пережатом JPEG — вы получите чёткую картинку, но артефакты станут жёстче.
Когда temperature = 1.0+, вы говорите: «добавь шума». Это как dithering — артефакты размываются, но и чёткость падает. Появляется «креативность», которая на самом деле — семплирование из распределения менее вероятных реконструкций.
# temperature = 0.0 → argmax, чёткие артефакты
# temperature = 0.7 → мягкий семплинг, баланс
# temperature = 1.5 → много шума, "креативность"
# temperature → ∞ → random, каша
# Точно как ползунок quality в фотошопе, только наоборот.
То есть «креативность» LLM — это не мышление [2], а, своего рода, интерполяция между вариантами реконструкции в латентном пространстве.
Когда JPEG на качестве 20% рисует несуществующий цвет между двумя блоками, то он тоже «креативен». Просто мы не пишем об этом постов)
Если принять компрессионную рамку, то все современные техники работы с 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 — потери будут. Вы не можете сжать данные ниже их энтропии без потерь.
Каждый, кто говорит «мы решим проблему галлюцинаций» и не уточняет «за счёт кратного увеличения модели или внешней памяти», — либо лукавит, либо не понимает информационную теорию.
Вы помните, что ели на обед в прошлый четверг? А что было на слайде 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
Нажмите здесь для печати.