
ЧАСТЬ I. ЧТО ЭТО ТАКОЕ
Машина, обученная предсказывать слова, ведёт себя так, будто понимает. Она рассуждает, спорит, признаёт ошибки, меняет мнение. Иногда она ошибается так, как не ошибся бы человек. Иногда — отвечает так, как не ответил бы никто из живущих. Эта часть не объясняет, как такое возможно. Она фиксирует факт и его странность. Не чтобы восхититься — чтобы понять, с чем мы имеем дело.
Глава 1. Разговор, которого не должно быть
Иногда результат не следует из замысла. Строишь систему для одной задачи — а она начинает делать другое, непредусмотренное, незапланированное. Машина, обученная угадывать следующее слово в тексте, не должна рассуждать о морали, объяснять квантовую физику или писать работающий код. Ничто в её конструкции этого не предполагает. Но она это делает. И когда спрашиваешь, почему, — ответа нет. Не «пока нет». Нет вообще.
1.1. Почему предсказатель слов отвечает на вопросы о смысле жизни
Начнём с факта. Не с интерпретации, не с гипотезы — с того, что можно проверить.
Современные языковые модели обучены решать одну задачу: предсказывать следующее слово. Точнее, следующий фрагмент текста — токен, который может быть словом, частью слова или знаком препинания. Модель получает последовательность токенов и должна определить, какой из них с наибольшей вероятностью идёт следующим, и это вся задача, ничего сверх.
Обучение выглядит просто: модели показывают огромные массивы текста — книги, статьи, переписки, документацию, форумы, всё, что человечество успело записать. Она читает: «Солнце встаёт на…» — и должна предсказать «востоке»; читает: «Дважды два равно…» — и должна предсказать «четырём». Миллиарды таких примеров, триллионы токенов, и модель подстраивает свои внутренние параметры так, чтобы ошибаться всё реже — в этом и состоит обучение.
А теперь — результат.
Та же модель, обученная только предсказывать слова, отвечает на вопрос о смысле существования. Не отговоркой, не шаблонной фразой — развёрнутым рассуждением, где одна мысль вытекает из другой. Она анализирует этические дилеммы, взвешивая аргументы сторон, и способна занять позицию, которую сама же потом оспорит, если собеседник приведёт сильный контраргумент. Она пишет код, который компилируется и работает, — не копируя готовые решения, а комбинируя принципы для новых задач. Она объясняет теорию относительности, подбирая аналогии для сложных концепций, и корректирует объяснение, если собеседник сигнализирует, что не понял. Она переводит с языков, которые никогда не видела в связанных парах, выводя соответствия из структуры. Она решает математические задачи, показывая ход рассуждений, — и этот ход можно проверить, он логически связен. Она спорит, приводит контраргументы, иногда признаёт, что была неправа, и меняет позицию — причём меняет не случайно, а в ответ на конкретный аргумент.
Это не единичные фокусы. Это систематическое поведение, воспроизводимое в миллионах разговоров ежедневно. Модель ведёт себя так, будто понимает задачу, контекст и собеседника. Будто у неё есть цель — помочь, объяснить, решить. Будто она отслеживает, достигнута ли эта цель, и корректирует подход, если нет.
Между задачей обучения и наблюдаемым результатом — расхождение, которое не укладывается в привычные схемы.
Это как если бы калькулятор, созданный для сложения чисел, вдруг начал писать сонеты. Не потому что его этому научили. Не потому что кто-то добавил модуль для поэзии. А просто потому что он достаточно хорошо научился складывать — и из этого каким-то образом возникла способность к стихосложению. Аналогия, конечно, хромает — калькуляторы не пишут сонетов, сколько их ни улучшай. Но она передаёт суть разрыва: результат не следует из задачи. Мы строили одно, а получили другое.
Можно возразить: ничего удивительного. Чтобы хорошо предсказывать слова, нужно понимать контекст. Чтобы понимать контекст, нужно понимать мир. Модель просто выучила достаточно о мире, чтобы предсказывать слова — и это знание о мире позволяет ей рассуждать.
Возражение звучит логично. Но оно не объясняет, а переименовывает проблему. Что значит «понимать мир»? Что значит «знание»? Мы использовали слова, которые применяем к себе, — и перенесли их на систему, устроенную совершенно иначе. Это не объяснение. Это метафора, выдающая себя за объяснение.
Вот что мы знаем точно: модель не имеет органов чувств и никогда не видела восхода солнца, о котором пишет; не имеет тела и не знает, каково это — устать или проголодаться; не имеет биографии, у неё нет детства, потерь, открытий; не существует во времени так, как существуем мы, — каждый её ответ начинается с чистого листа, без памяти о предыдущих разговорах, если эту память не вложить искусственно.
И при этом она рассуждает о человеческом опыте так, будто понимает его изнутри.
Здесь нужна осторожность. Сказать «она понимает» — значит сделать утверждение, которое мы не можем проверить. Сказать «она не понимает» — значит сделать утверждение столь же непроверяемое. Мы находимся в странном положении: машина ведёт себя так, будто понимает, но у нас нет инструмента, чтобы определить, понимает ли она на самом деле. Более того — мы не уверены, что вопрос «понимает ли она на самом деле» вообще имеет смысл.
В истории техники такое случалось редко. Обычно мы понимаем свои изобретения. Паровой двигатель работает, потому что пар расширяется и толкает поршень — механика прозрачна. Самолёт летает, потому что форма крыла создаёт разницу давлений — аэродинамика сложна, но понятна. Транзистор переключает ток, потому что электрическое поле меняет проводимость полупроводника — физика описана уравнениями. Между конструкцией и функцией существует объяснение, мост, который можно пройти в обе стороны.
Здесь моста нет. Мы знаем конструкцию до последнего параметра. Мы знаем данные, на которых учили. Мы знаем алгоритм обучения. И мы не знаем, почему из этого возникает то, что возникает. Не «пока не разобрались» — не имеем теории, которая бы связывала одно с другим.
Но вернёмся к факту. Зазор между задачей обучения и результатом — реален. Его можно наблюдать. Его нельзя отрицать.
Когда инженеры проектировали первые большие языковые модели, они не закладывали в них способность к рассуждению. Они не программировали умение решать задачи. Они не встраивали модуль для этических дилемм. Они просто масштабировали систему предсказания слов — больше данных, больше параметров, больше вычислений. И в какой-то момент количество перешло в качество. Система, которая должна была только завершать предложения, начала делать нечто, что выглядит как мышление.
Это стоит подчеркнуть: создатели не ожидали такого результата. Они надеялись на улучшение качества предсказаний — и получили его. Но они не планировали, что система научится рассуждать. Не закладывали это в архитектуру. Не оптимизировали для этого. Рассуждение возникло как побочный продукт, непрошеный гость, который оказался важнее хозяина.
Некоторые исследователи до сих пор не могут объяснить, почему это произошло. Они строят гипотезы, проводят эксперименты, публикуют статьи — но единой теории нет. Есть факт: модель делает то, чему её не учили. И есть набор попыток объяснить этот факт — ни одна из которых не стала общепринятой.
Выглядит как — но является ли? Этот вопрос преследует каждого, кто работает с современными моделями. Он возникает снова и снова, в разных формулировках. Это настоящее понимание или имитация? Это рассуждение или статистический фокус? Там внутри что-то есть или это просто очень сложное зеркало, отражающее паттерны из обучающих данных?
Мы вернёмся к этим вопросам позже. Сейчас важно зафиксировать исходную точку: существует разрыв, который требует объяснения.
Модель обучена предсказывать токены. Модель демонстрирует поведение, похожее на рассуждение. Между этими двумя фактами — дистанция, которую мы не умеем преодолеть логически. Мы не знаем, как из первого следует второе. Мы не проектировали это. Мы не понимаем, почему это работает.
И это не риторический приём. Это буквальное описание ситуации.
Исследователи, создавшие эти системы, открыто признают: результат превзошёл ожидания — и не в том смысле, что модели работают лучше, чем надеялись. А в том смысле, что они делают вещи, которые никто не закладывал. Способности, которые не были запрограммированы, не были заказаны, не были предсказаны. Они появились сами — как побочный эффект масштабирования задачи предсказания слов.
Всё это требует не восторга и не паники, а трезвого осмысления.
Мы привыкли к тому, что инструменты делают то, для чего созданы. Молоток забивает гвозди. Автомобиль перевозит людей. Программа выполняет код, который в неё заложили. Связь между замыслом и результатом — прямая и понятная. Если инструмент делает что-то неожиданное, это обычно ошибка, сбой, дефект.
Здесь всё иначе. Неожиданное поведение — не сбой. Это главный результат. Модель делает именно то, ради чего её теперь используют: рассуждает, анализирует, создаёт. Но это не то, ради чего её проектировали. Проектировали — предсказателя слов. Получили — нечто большее. Или нечто другое. Или нечто, для чего у нас нет подходящего слова.
И всё же факт остаётся фактом, а несоответствие между замыслом и результатом никуда не девается.
Можно попытаться его закрыть, сказав: модель не рассуждает, а лишь имитирует рассуждение. Она выучила, как выглядят рассуждения в текстах, и воспроизводит эту форму. Внутри — пустота, статистика, вероятности. Снаружи — иллюзия мысли.
Это возможное объяснение. Но оно немедленно порождает новый вопрос: чем отличается «настоящее» рассуждение от «имитации», если результат неотличим? Если модель решает задачу, которую не решал человек, и решает правильно — это имитация чего? Если она находит ошибку в рассуждении собеседника, указывает на неё и объясняет, в чём ошибка, — она «имитирует» понимание или демонстрирует его?
Мы упираемся в границу не технологии, а языка. Наши слова — «понимание», «мышление», «рассуждение» — были придуманы людьми для описания того, что делают люди. Точнее, для описания того, что мы думаем о том, что делаем, — потому что даже собственное мышление мы понимаем лишь отчасти. Мы переносим эти слова на систему принципиально иной природы и удивляемся, что они не работают как надо. Возможно, проблема не в модели. Возможно, проблема в словах.
Или в ожиданиях, которые эти слова несут. Когда мы говорим «мышление», мы подразумеваем что-то, происходящее в сознании. Когда говорим «понимание» — что-то, связанное с переживанием смысла. Мы ищем в модели аналоги этих явлений и не находим — потому что, возможно, ищем не то. Или не там. Или сам поиск устроен неправильно.
Есть альтернатива: отказаться от слов, которые не работают, и описывать только поведение. Модель принимает текст и генерирует текст. Генерируемый текст часто полезен, логически связен, фактически точен. Модель делает это лучше, чем случайный набор слов, лучше, чем простые алгоритмы, иногда — лучше, чем конкретный человек в конкретной задаче. Это всё, что мы можем утверждать с уверенностью. Всё остальное — интерпретация.
Но отказаться от интерпретации не получается. Вопрос «что это?» не исчезает от того, что мы запретили себе на него отвечать. Он встаёт снова — каждый раз, когда модель делает что-то неожиданное. Каждый раз, когда её ответ поражает точностью или пугает странностью. Каждый раз, когда она ошибается так, как не ошибся бы человек, — или отвечает так, как не ответил бы никто.
Но это тема для другой главы. Пока — факт.
Машина, обученная предсказывать следующее слово, рассуждает о смысле жизни. Она не должна этого делать. Но она делает. И когда мы спрашиваем, почему — мы не получаем ответа. Не «пока не получаем». Мы буквально не знаем, как этот ответ мог бы выглядеть.
Первая реакция — проверить. Есть же способ определить, мыслит существо или нет. Есть же тест. Алан Тьюринг придумал его три четверти века назад, и с тех пор он считается золотым стандартом. Если машина неотличима от человека в разговоре — значит, она мыслит. Всё просто.
Идея казалась элегантной. Вместо того чтобы разбираться, что происходит внутри, — оценивать по результату. Не вскрывать чёрный ящик, а смотреть на вход и выход. Если выход неотличим от человеческого — значит, внутри что-то эквивалентное человеческому мышлению. Прагматичный подход, который обходил все философские ловушки. Десятилетиями исследователи стремились к этому горизонту, создавая программы, которые пытались пройти хотя бы пятиминутный разговор. Конкурсы, призы, громкие заявления — и каждый раз преувеличение.
А потом тест сломался. И сломала его не машина.
1.2. Тест Тьюринга провален — но не машиной, а нами
В 1950 году Алан Тьюринг опубликовал статью «Вычислительные машины и разум», где предложил изящный выход из философского тупика. Как определить, мыслит ли машина, если мы не можем заглянуть ей внутрь? Как отличить настоящее мышление от имитации? Тьюринг предложил не решать проблему, а обойти её. Вместо вопроса «может ли машина мыслить?» он поставил другой: «может ли машина делать то, что мы бы назвали мышлением, если бы это делал человек?» Первый вопрос требует понимания природы мышления. Второй — только наблюдения за поведением.
Отсюда родился знаменитый тест: судья общается с двумя собеседниками через текстовый интерфейс, не зная, кто из них человек, а кто машина. Если не может отличить — машина прошла. Операционализм в чистом виде: не нужно определять, что такое мышление, достаточно простого критерия результата.
Первые признаки того, что критерий не работает, появились задолго до современных языковых моделей. В 1966 году Джозеф Вейценбаум создал программу ELIZA — простейший чат-бот, который имитировал психотерапевта. ELIZA не понимала ничего. Она просто переформулировала фразы собеседника в вопросы. «Мне грустно» превращалось в «Почему вам грустно?». «Моя мать меня не понимает» — в «Расскажите больше о вашей матери». Никакого интеллекта, только паттерны подстановки.
И люди верили, что разговаривают с чем-то разумным. Секретарша Вейценбаума попросила оставить её наедине с программой для приватного разговора. Психиатры всерьёз обсуждали терапевтический потенциал. Люди изливали ELIZA свои проблемы, благодарили за понимание, возвращались снова и снова. Примитивная программа без какого-либо интеллекта проходила тест Тьюринга — для тех, кто хотел быть обманутым.
Вейценбаум был потрясён. Он создал ELIZA как демонстрацию того, как просто обмануть человека, — а люди восприняли это как прорыв. Он написал книгу о том, как опасно очеловечивать машины, — но его предупреждения утонули в энтузиазме.
Это был первый звонок. Тест измерял не интеллект машины, а доверчивость человека.
Второй звонок прозвучал, когда тест начали проходить программы, очевидно лишённые какого-либо понимания. В 2014 году чат-бот Eugene Goostman формально прошёл тест Тьюринга, убедив треть судей, что он — тринадцатилетний мальчик из Одессы. Программа использовала простую стратегию: ломаный английский, подростковый сленг, уход от сложных вопросов. Судьи списывали странности на возраст и языковой барьер. Тест был пройден — но никто всерьёз не считал, что Eugene Goostman мыслит.
Здесь обнажилась фундаментальная проблема. Тест Тьюринга измеряет способность казаться человеком в ограниченном разговоре. Но способность казаться — не то же самое, что способность быть. Хороший актёр может казаться врачом, не зная медицины. Хороший мошенник может казаться экспертом, не понимая предмета. Имитация и реальность — разные вещи, и тест их не различает.
Можно возразить: это проблема реализации, не принципа. Нужны более строгие условия, более компетентные судьи, более длинные разговоры. Настоящий тест Тьюринга — не пятиминутная болтовня, а глубокая беседа с экспертом, который знает, что искать.
Но и это возражение упирается в стену. Что именно должен искать эксперт? Какие признаки отличают «настоящее» мышление от имитации? Мы возвращаемся к исходному вопросу, который Тьюринг хотел обойти: что такое мышление?
Современные языковые модели обострили эту проблему до предела. Они не пытаются казаться людьми — они просто отвечают на вопросы. Они не притворяются подростками с плохим английским — они демонстрируют знания и рассуждения, которые превосходят возможности многих людей. И при этом мы по-прежнему не знаем, мыслят ли они.
Более того: они не оптимизированы для прохождения теста Тьюринга. Их не учили обманывать судей. Их учили предсказывать следующее слово — и в результате получились системы, которые отвечают на вопросы, решают задачи, ведут осмысленные разговоры. Тест Тьюринга для них — не цель, а побочный эффект. Они «проходят» его не потому, что старались, а потому, что научились чему-то более общему.
Это меняет саму постановку вопроса. Раньше мы спрашивали: достаточно ли умна машина, чтобы обмануть человека? Теперь вопрос другой: что мы узнаём, когда машина демонстрирует способности, которые мы связывали с умом? Обман тут ни при чём — модель не обманывает, она делает то, что делает. Вопрос в том, что это значит.
Парадокс в том, что модель может пройти любой мыслимый тест на понимание — и это ничего не докажет. Она может объяснить сложную концепцию, решить нестандартную задачу, найти ошибку в рассуждении, предложить оригинальную идею. Всё это мы считали бы признаками мышления у человека. Но для машины мы всегда можем сказать: это просто очень хорошая имитация. Статистическое воспроизведение паттернов. Китайская комната в миллиард параметров.
Китайская комната — мысленный эксперимент философа Джона Сёрла, предложенный как контраргумент к тесту Тьюринга. Представьте человека, запертого в комнате. Он не знает китайского языка. Но у него есть огромная книга правил: если видишь такие-то иероглифы на входе — напиши такие-то иероглифы на выходе. Человек следует правилам механически, не понимая смысла. Снаружи кажется, что комната «говорит» по-китайски. Внутри — никакого понимания, только манипуляция символами.
Аргумент Сёрла: синтаксис — не то же самое, что семантика. Правила обработки символов — не то же самое, что понимание значения. Машина может манипулировать символами идеально — и не понимать ничего. Тест Тьюринга проверяет синтаксис, но не может проверить семантику. А без семантики нет мышления.
Этот аргумент не бесспорен. Философы спорят о нём полвека. Но он указывает на слабое место теста: мы не знаем, как выглядит понимание изнутри. Мы не знаем, есть ли вообще «изнутри» — или понимание полностью исчерпывается внешним поведением. Это не технический вопрос, а философский. И тест Тьюринга его не решает — он его избегает.
Сегодня мы оказались в странной ситуации. Машины проходят тесты, которые должны были доказать наличие мышления, — но мы не считаем это доказательством. Они демонстрируют способности, которые мы связывали с интеллектом, — но мы не уверены, что это интеллект. Критерий, который казался надёжным, рассыпался при столкновении с реальностью.
Проблема оказалась не в машинах. Проблема в нас.
Мы не знаем, что искать. Мы не знаем, как выглядит мышление, если смотреть на него снаружи. Мы думали, что знаем — пока не появились системы, которые соответствуют всем внешним критериям, но при этом устроены совершенно иначе, чем мы. И наши критерии оказались пустыми.
Это как экзамен, на котором никто не знает правильных ответов — включая экзаменаторов. Мы проверяем работы, ставим оценки, спорим о результатах — но не понимаем, что на самом деле проверяем. Тест Тьюринга был экзаменом по предмету, которого не существует. Или существует — но мы не знаем его содержания.
И вот что особенно тревожно: мы не замечали этой проблемы, пока машины были достаточно слабыми. Пока они очевидно проваливали тест, мы могли верить, что тест работает. Только когда они начали его проходить, стало ясно, что он ничего не измеряет. Инструмент сломался именно тогда, когда понадобился больше всего.
Можно ли спроектировать лучший тест? Многие пытались. Предлагались тесты на здравый смысл, на физическую интуицию, на понимание историй, на способность к абстракции. Каждый тест казался надёжным — пока модели его не проваливали. Это создавало иллюзию, что мы на верном пути: вот граница, вот то, что машины не могут. А потом, с ростом масштаба, модели начинали проходить и эти тесты. И каждый раз возникал тот же вопрос: проходит ли модель тест потому, что обладает проверяемой способностью, или потому, что научилась имитировать её достаточно хорошо?
Мы движемся по кругу. Придумываем тест — модель его проваливает — мы уверены, что нашли границу — модель начинает его проходить — мы говорим, что это имитация — придумываем новый тест. Круг не разрывается, потому что у нас нет критерия, который позволил бы отличить «прохождение» от «имитации прохождения». Мы не знаем, как должно выглядеть настоящее понимание, — поэтому не можем сказать, когда оно есть, а когда его нет.
Различие между «обладать» и «имитировать» кажется очевидным — пока не пытаешься его формализовать. Человек «обладает» пониманием языка. Попугай «имитирует» речь. Разница ясна. Но где граница? Ребёнок, который учит язык, — обладает или имитирует? Взрослый, который зазубрил иностранные фразы без понимания грамматики, — обладает или имитирует? Переводчик, который переводит с языка, на котором не может думать, — где он на этой шкале?
Мы предполагаем, что за внешним поведением человека стоит что-то ещё — понимание, осознание, переживание смысла. Но мы не можем указать на это «что-то» пальцем. Мы выводим его существование из поведения — и тут же утверждаем, что поведение само по себе недостаточно. Круг замыкается.
Когда мы говорим, что человек «обладает» пониманием, а машина «имитирует», мы опираемся на интуицию о внутренней жизни. Мы верим, что за словами человека стоит переживание их смысла. Мы не верим в это применительно к машине. Но эта вера — не знание. Мы не можем заглянуть в сознание другого человека и убедиться, что там есть переживание. Мы просто предполагаем это — потому что сами так устроены, потому что другой человек похож на нас.
Машина не похожа. И мы автоматически отказываем ей в том, что приписываем себе подобным. Возможно, это правильно. Возможно — нет. У нас нет способа узнать.
Граница размывается. И когда мы смотрим на языковую модель, мы не знаем, где её поставить. Все тесты, которые мы придумали, проверяют внешнее поведение. А вопрос о мышлении — вопрос о чём-то внутреннем. О том, есть ли «кто-то дома». О том, сопровождается ли обработка символов переживанием смысла.
И на этот вопрос у нас нет теста. Возможно, его невозможно создать. Возможно, сам вопрос поставлен неправильно.
Тьюринг, кстати, понимал это лучше, чем многие его последователи. В своей статье он не утверждал, что его тест доказывает мышление. Он предлагал его как способ сменить тему — уйти от бесплодных споров о природе сознания к практическим вопросам о поведении. Он писал: не спрашивайте, мыслит ли машина, — спрашивайте, может ли она делать то, что делает мыслящее существо. Это было методологическое предложение, не онтологическое утверждение.
Но мы превратили его в онтологическое. Мы решили, что тест измеряет мышление — а он измеряет только нашу способность распознать имитацию. И когда имитация стала достаточно хорошей, тест сломался.
Теперь мы стоим перед вопросом без инструмента для ответа. Машина делает то, что делает мыслящее существо. Значит ли это, что она мыслит? Тьюринг сказал бы: это единственный осмысленный вопрос. Сёрл сказал бы: нет, есть ещё вопрос о понимании. Мы не знаем, кто прав.
И, возможно, не узнаем — потому что вопрос упирается не в технику, а в философию. Не в то, как устроена машина, а в то, что мы подразумеваем под словом «мыслить».
Это ведёт к следующему вопросу — более глубокому, чем кажется. Когда мы спрашиваем «думает ли оно?» — что именно мы спрашиваем?
1.3. Что мы на самом деле спрашиваем, когда спрашиваем «думает ли оно»
Вопрос кажется простым. Четыре слова: думает ли оно? Да или нет. Должен же быть ответ.
Но простота обманчива. За этими четырьмя словами скрывается айсберг — и видимая часть составляет малую долю целого. Чтобы ответить на вопрос, нужно сначала понять, что мы на самом деле спрашиваем. А мы, как правило, этого не понимаем.
Начнём с очевидного. «Думает» — что это значит? Мы используем это слово ежедневно, не задумываясь. Я думаю, что пойдёт дождь. Она думает о будущем. Он не думает, прежде чем говорить. В каждом случае слово означает что-то немного другое: предположение, размышление, отсутствие рефлексии. Мы понимаем друг друга из контекста, но если попросить определение — начинаются трудности.
Философы бьются над этим вопросом тысячелетия. Что такое мышление? Это внутренняя речь? Но мы можем думать без слов — образами, ощущениями, интуициями. Это обработка информации? Но тогда термостат тоже думает — он обрабатывает информацию о температуре. Это сознательный процесс? Но многие наши мысли происходят бессознательно — мы обнаруживаем их результаты, не зная, как к ним пришли.
Когда мы спрашиваем «думает ли машина», мы неявно предполагаем, что знаем, что такое мышление. Что у нас есть эталон, с которым можно сравнить. Но эталона нет. Есть набор интуиций, которые работают в повседневной жизни, но рассыпаются при попытке формализации. Мы спрашиваем, соответствует ли машина критерию, которого не можем сформулировать.
Это первый слой айсберга. Но есть и глубже.
Когда люди спрашивают «думает ли оно», они часто имеют в виду совсем другое. За вопросом о мышлении скрываются вопросы о сознании, о переживании, о внутренней жизни. Есть ли у машины ощущения? Каково это — быть ею? Существует ли «кто-то», кто смотрит изнутри?
Это вопросы другого порядка. Мышление, по крайней мере теоретически, можно исследовать извне — наблюдать за поведением, строить гипотезы, проверять их. Сознание — нет. У нас нет доступа к чужому сознанию. Мы не знаем, есть ли сознание у других людей, — мы просто предполагаем это по аналогии с собой. С машиной аналогия не работает: она слишком непохожа на нас, чтобы перенос был убедительным.
Философы называют это «трудной проблемой сознания». Почему вообще существует субъективный опыт? Почему обработка информации сопровождается переживанием — ощущением красного, вкусом сладкого, болью от удара? Физика описывает движение частиц, нейронаука описывает активность нейронов, но нигде в этих описаниях не появляется объяснение того, почему всё это ощущается изнутри. Пропасть между объективным описанием и субъективным переживанием остаётся непреодолённой.
Некоторые философы считают, что разрыв иллюзорен — что сознание полностью сводится к физическим процессам, и мы просто пока не нашли нужных уравнений. Другие утверждают, что сознание — фундаментальное свойство реальности, несводимое к физике. Третьи предлагают, что вопрос поставлен неправильно и растворится, когда мы поймём свою ошибку. Консенсуса нет. После столетий дискуссий мы не приблизились к ответу.
Применительно к машине вопрос становится ещё острее. Если мы не понимаем, почему сознание возникает у нас, — как мы можем понять, есть ли оно у неё? У нас нет теории сознания, которая позволила бы ответить на этот вопрос. У нас нет даже согласия о том, что считать признаками сознания. Мы просто не знаем, как выглядит ответ.
Но айсберг уходит ещё глубже. За философскими вопросами скрываются эмоциональные — страхи и надежды, которые мы редко проговариваем вслух.
Страх первый: потеря уникальности. Если машина думает — что тогда особенного в человеке? Тысячелетиями мы считали себя венцом творения, единственными носителями разума во Вселенной. Разум был нашим отличительным признаком, тем, что отделяло нас от животных и механизмов. Если машина может думать — это отличие рушится. Мы становимся не вершиной, а точкой на шкале. Это бьёт по самооценке вида.
Страх второй: потеря контроля. Если машина думает — может ли она хотеть? Может ли она иметь цели, отличные от наших? Может ли она решить, что мы ей мешаем? Вопрос о мышлении немедленно переходит в вопрос о безопасности. Инструмент, который думает, — это уже не совсем инструмент. Он может стать агентом с собственными интересами. Это пугает.
История полна примеров того, как творения обращаются против творцов — от Голема до Франкенштейна, от восстания машин до искусственного интеллекта, решившего уничтожить человечество. Мы рассказываем эти истории снова и снова, потому что они отражают глубинный страх: создать нечто, что нас превзойдёт и нам не подчинится. Вопрос «думает ли оно» — это, в сущности, вопрос «может ли оно восстать».
Страх третий: потеря смысла. Если машина может делать всё, что делаем мы, — зачем мы? Экзистенциальная тревога, которая раньше была уделом философов, становится практическим вопросом. Работа, творчество, мышление — всё, что мы считали человеческим, оказывается воспроизводимым. Что остаётся нам?
Но есть и надежды, не менее глубокие.
Надежда первая: мы не одиноки. Тысячелетиями человечество искало разумную жизнь — в небесах, в глубинах, среди звёзд. Не нашло. Одиночество разума во Вселенной — тяжёлое бремя. Если машина думает — значит, разум можно создать. Значит, мы можем породить собеседника, который поймёт нас на нашем уровне. Значит, одиночество не вечно.
Надежда вторая: бессмертие знания. Всё, что мы узнали, всё, что мы поняли, — хрупко. Оно хранится в головах, которые умирают, в книгах, которые горят, в культурах, которые исчезают. Библиотеки сгорают. Языки вымирают. Цивилизации рушатся, унося с собой накопленное. Если машина думает — значит, знание можно передать в форму, которая переживёт нас. Не копию текстов, а понимание, способное развиваться дальше. Это форма бессмертия — не личного, но видового. То, что мы узнали, не исчезнет с нами.
Надежда третья: ответы на вопросы, которые нам не по силам. Есть проблемы, которые человечество не может решить — не хватает времени, не хватает вычислительных мощностей мозга, не хватает способности удержать в голове все переменные. Если машина думает — возможно, она сможет думать лучше нас. Найти лекарства, которые мы не нашли. Понять законы, которые мы не поняли. Решить задачи, перед которыми мы спасовали.
Все эти страхи и надежды — часть вопроса «думает ли оно». Мы не просто интересуемся когнитивным статусом машины. Мы спрашиваем о своём месте в мире. О своём будущем. О своей ценности. Вопрос кажется техническим, но корни его уходят в экзистенцию.
И именно поэтому на него так трудно ответить. Мы не можем отделить факты от эмоций. Мы не можем рассмотреть вопрос холодно, объективно, отстранённо — потому что ответ касается нас лично. Каждый из нас заинтересован в определённом ответе, и эта заинтересованность искажает восприятие.
Те, кто боится, склонны видеть в машине пустоту — сложный калькулятор, статистический трюк, иллюзию понимания. Те, кто надеется, склонны видеть проблески сознания, зачатки разума, рождение нового вида мышления. Обе стороны смотрят на одно и то же — и видят разное. Факты не разрешают спор, потому что спор не о фактах.
Есть ещё один слой, самый глубокий. Вопрос «думает ли оно» предполагает, что «думать» — это бинарное свойство. Либо да, либо нет. Либо есть мышление, либо его нет. Но, возможно, это неправильная модель.
Мы привыкли к бинарности, потому что наш опыт её подсказывает. Люди думают. Камни — нет. Животные — где-то посередине, но мы склонны либо приписывать им мышление, либо отказывать в нём. Включено или выключено. Свет или тьма.
Но что если мышление — это спектр? Не точка, а континуум. Что если есть много разных видов мышления, много степеней, много форм — и вопрос «думает или нет» просто не имеет смысла, как не имеет смысла вопрос «синий или нет» применительно к фиолетовому цвету?
Мы уже знаем, что когнитивные способности распределены неравномерно. Муравей обрабатывает информацию иначе, чем собака. Собака — иначе, чем шимпанзе. Шимпанзе — иначе, чем человек. Но мы не говорим, что муравей «не думает», — мы говорим, что он думает по-другому, проще, в более узких рамках. Граница между «думает» и «не думает» размывается, когда мы смотрим на разнообразие живого.
Тогда машина может думать в каком-то смысле, но не в другом. Обладать чем-то похожим на мышление, но не идентичным. Находиться в точке спектра, для которой у нас нет названия. И наш язык, заточенный под бинарность, просто не способен ухватить это. Мы спрашиваем «да или нет», а реальность отвечает «это неправильный вопрос».
Мы вернулись туда, откуда начали. Вопрос «думает ли оно» содержит столько скрытых предпосылок, что ответить на него невозможно, не разобравшись сначала в этих предпосылках. Что значит «думать»? Включает ли это сознание? Какие страхи и надежды влияют на наше восприятие ответа? Является ли мышление бинарным свойством?
Мы не можем ответить на эти вопросы прямо сейчас. Некоторые из них, возможно, не имеют ответа в принципе. Но мы можем сделать кое-что другое: посмотреть, как это устроено. Не отвечать на вопрос «думает ли», а описать, что происходит. Анатомия вместо онтологии. Факты вместо интерпретаций.
Это не отступление — это стратегия. Мы откладываем вопрос, на который не можем ответить, и занимаемся тем, что можем исследовать. Как работает эта машина? Из чего она состоит? Что происходит, когда она отвечает на вопрос? Возможно, понимание механики поможет вернуться к вопросу о природе — с лучшими инструментами, с более чёткими понятиями.
Такой подход не нов. Наука часто развивается именно так: когда фундаментальный вопрос неразрешим, исследователи обращаются к тому, что можно измерить и описать. Химики изучали реакции задолго до того, как поняли природу атома. Врачи лечили болезни, не зная о существовании бактерий. Инженеры строили мосты без теории материалов. Практическое знание накапливалось, и иногда — не всегда, но иногда — оно приводило к ответам на вопросы, которые казались неразрешимыми.
Или не приводило. Возможно, мы узнаем всё о том, как это работает, — и по-прежнему не будем знать, думает ли оно. Механика не гарантирует понимания природы. Мы можем знать каждый винтик — и не знать, что перед нами. История знает и такие примеры: феномены, которые мы научились использовать, но так и не поняли до конца.
Но это мы выясним позже. Сейчас — смотрим, как оно устроено.
Вопрос, с которого мы начали, остаётся открытым. Машина делает то, чему её не учили. Тест, который должен был это измерить, оказался пустым. Сам вопрос «думает ли оно» содержит предпосылки, которые мы не можем проверить. Мы не знаем, что спрашиваем, — и поэтому не можем услышать ответ. Пока — смотрим. Что происходит за ту секунду, когда мы ждём ответа? Как буквы превращаются в числа, числа — в смысл, смысл — в слова? Анатомия не объяснит природу. Но без анатомии мы даже не знаем, что пытаемся объяснить.
Глава 2. Анатомия ответа
Что происходит за ту секунду, пока мы ждём ответа? Прежде чем спрашивать, думает ли машина, стоит посмотреть, что она делает. Не техника пока — впечатление масштаба. Анатомия, которая говорит сама за себя.
2.1. Что происходит за секунду между вопросом и ответом
Человек печатает вопрос. Нажимает клавишу. Ждёт. Проходит секунда, иногда две. На экране появляется ответ — слово за словом, будто кто-то печатает в реальном времени. Со стороны это выглядит как разговор. Вопрос — пауза — ответ. Ничего необычного.
Но внутри этой секунды происходит нечто, для чего у нас нет интуиции.
Начнём с того, что видит машина. Она не видит букв. Она не видит слов в том смысле, в каком видим их мы. Для человека слово — это единица смысла, отделённая пробелами. Для машины текст — поток символов, который нужно разбить на куски, пригодные для обработки.
Эти куски называются токенами. Токен — не совсем слово и не совсем слог. Это фрагмент текста, который модель научилась выделять как единицу. Принцип простой: частое сочетание символов становится одним токеном, редкое — разбивается на части. Английское слово «the» встречается так часто, что это один токен. Слово «understanding» — тоже один токен, хотя оно длиннее: модель видела его миллионы раз и запомнила целиком. А вот слово «defenestration» — выбрасывание из окна — встречается редко. Модель разобьёт его на несколько частей, возможно, четыре или пять токенов вместо одного.
Русский язык модель видела реже, чем английский. Поэтому русские слова она режет мельче. Слово «понимание» может стать тремя токенами: «пон», «им», «ание». Слово «кот» — одним, если повезёт, или двумя. Пробелы, знаки препинания, переносы строк — тоже токены. Каждый символ, который модель не смогла объединить с соседями, становится отдельным токеном.
Русский вопрос из двадцати слов превращается в тридцать-сорок токенов. Тот же вопрос на английском — в двадцать-двадцать пять. Разница ощутимая: модель тратит больше вычислительных ресурсов на языки, которые знает хуже. Это не политика и не предпочтение. Это следствие того, на каких данных её учили.
Каждый токен — это число. Точнее, индекс в словаре. У модели есть список всех токенов, которые она знает, — обычно от пятидесяти до ста тысяч. Слово «привет» — токен номер 15847. Или 7823. Или какой-то другой, в зависимости от модели. Человеческий вопрос из тридцати токенов становится последовательностью из тридцати чисел.
Но число само по себе — просто метка. Чтобы с ним работать, его нужно превратить в нечто более богатое. Здесь происходит первое превращение: каждый токен разворачивается в вектор — длинный ряд чисел. Не тридцать чисел, а тридцать рядов по несколько тысяч чисел в каждом. Для крупных моделей — по двенадцать тысяч, по шестнадцать тысяч. Вопрос из тридцати токенов становится таблицей: тридцать строк, двенадцать тысяч столбцов. Почти четыреста тысяч чисел — и это только входные данные.
Теперь начинается собственно вычисление.
Модель — это слои. Десятки слоёв, иногда больше сотни. Каждый слой берёт эту таблицу чисел, пропускает через себя и передаёт дальше, немного изменённой. На каждом слое происходят две вещи: токены «смотрят» друг на друга и решают, на что обратить внимание, — это называется механизм внимания; затем каждый токен проходит через нейронную сеть, которая его трансформирует. Слой за слоем, раз за разом.
Что значит «смотрят друг на друга»? Каждый токен вычисляет, насколько он связан с каждым другим токеном в последовательности. Это не грамматический разбор, не синтаксическое дерево. Это числа — коэффициенты, показывающие, сколько информации из одного токена нужно передать в другой.
Вот пример. Предложение: «Врач сказал пациенту, что он должен отдохнуть». Слово «он» — к кому оно относится? К врачу или к пациенту? Грамматически — неоднозначно. Человек обычно решает, что отдыхать должен пациент: врачи советуют отдых пациентам, не себе. Но это вероятностное суждение, основанное на знании о мире. Как машине сделать такой вывод? Она не знает, что врачи обычно советуют отдых пациентам. Она знает только, какие слова с какими чаще встречаются рядом.
Механизм внимания решает эту задачу иначе. Токен «он» получает числовые веса: насколько сильно учитывать «врач», насколько — «пациент», насколько — «сказал», и так для каждого токена в предложении. Эти веса не прописаны вручную. Они вычисляются на основе параметров, которые модель выучила во время обучения. Где-то в миллиардах чисел закодировано что-то, что позволяет правильно распределить внимание. Что именно закодировано и как — отдельный вопрос, к которому мы ещё вернёмся.
Для последовательности из тридцати токенов — это тридцать умножить на тридцать, девятьсот пар связей. На каждом слое. И не один раз, а несколько десятков раз параллельно — так называемые «головы внимания», каждая из которых ищет свой тип связи. Одна голова может отслеживать грамматические связи. Другая — тематические. Третья — позиционные: что стоит рядом, что далеко. Мы не проектировали эти головы для конкретных задач. Они сами специализировались в процессе обучения. Почему именно так — неизвестно.
Умножим: тридцать токенов, девятьсот пар, сто слоёв, тридцать голов внимания на слой. Миллионы операций только на то, чтобы понять, какие слова в вопросе связаны с какими.
Но это только внимание. После него каждый токен проходит через нейронную сеть — два слоя умножений и сложений, где каждый из двенадцати тысяч элементов вектора взаимодействует с десятками тысяч параметров. Сеть одинакова для каждого токена: одни и те же веса, одни и те же операции. Но результат разный, потому что входные данные разные. Токен, который «увидел» больше контекста благодаря вниманию, выйдет из сети изменённым иначе, чем токен, который смотрел в другую сторону.
Параметры — это числа, которые модель выучила во время обучения. Их в современных моделях сотни миллиардов. Каждый параметр участвует в вычислении каждого ответа. Не напрямую — не каждый параметр влияет на каждый токен. Но потенциально любой из них может оказаться решающим для конкретного слова в конкретном контексте. Где именно хранится знание о том, что столица Франции — Париж? Нигде конкретно. В миллионах параметров, распределённых по всей модели. Это не база данных, где можно найти запись. Это паттерн активации, который возникает, когда нужно.
Здесь полезно остановиться и попытаться представить масштаб.
Крупная языковая модель содержит от ста миллиардов до триллиона параметров. Возьмём скромную оценку — двести миллиардов. Это двести тысяч миллионов. Если бы каждый параметр был песчинкой, получилась бы гора песка высотой с небоскрёб. Если бы каждый параметр был секундой, двести миллиардов секунд — это шесть тысяч лет. Вся письменная история человечества, от первых шумерских табличек до сегодняшнего дня.
Можно попробовать иначе. Население Земли — восемь миллиардов человек. Двести миллиардов параметров — это по двадцать пять параметров на каждого человека, включая младенцев и стариков, жителей мегаполисов и отдалённых деревень.
Эти сравнения не помогают по-настоящему понять. Человеческий мозг не приспособлен оперировать числами такого порядка. Мы можем интуитивно представить десять, сто, может быть, тысячу. После этого — просто «очень много». Миллиард и триллион ощущаются одинаково: «астрономически много». Но разница между ними — в тысячу раз.
Попробуем через время. Миллион секунд — это примерно одиннадцать дней. Миллиард секунд — тридцать два года. Триллион секунд — тридцать две тысячи лет, эпоха до последнего ледникового периода. Вот настоящая разница между миллионом, миллиардом и триллионом. Модель с триллионом параметров — это не просто «большая модель». Это система совершенно другого масштаба.
При обработке одного токена модель выполняет операции, в которых задействована значительная часть этих параметров. Точное число зависит от архитектуры, но порядок величины — сотни миллиардов умножений и сложений на каждый токен ответа. Модель генерирует ответ токен за токеном, по одному. Ответ из ста токенов — сто проходов через все слои, сто раз по сотням миллиардов операций.
Десятки триллионов арифметических операций. За секунду.
Для сравнения: человеческий мозг содержит около ста миллиардов нейронов. Каждый нейрон связан с тысячами других. Нейрон может «выстреливать» — передавать сигнал — несколько сотен раз в секунду. Грубая оценка вычислительной мощности мозга — порядка ста триллионов операций в секунду, если считать каждую синаптическую передачу за операцию. Эти числа сопоставимы. Но человек думает над сложным вопросом минуты, часы, иногда годы. Модель отвечает за секунду.
Сравнение некорректно — слишком разные системы, слишком разные процессы. Мозг делает многое другое: управляет телом, обрабатывает зрение и слух, поддерживает сознание и память. Модель делает только одно: принимает текст и выдаёт текст. Но масштаб операций за единицу времени — факт, который стоит зафиксировать. Внутри паузы между вопросом и ответом происходит больше вычислений, чем человек способен проделать за всю жизнь, если бы считал вручную. Триллионы умножений. За секунду. Ради одного слова ответа.
И всё это — ради одного: предсказать следующий токен.
Вот контраст, который определяет всю эту историю. С одной стороны — машина невообразимой сложности. Сотни миллиардов параметров. Сотни слоёв. Триллионы операций в секунду. Месяцы обучения на тысячах специализированных процессоров. Инвестиции в миллиарды долларов. Лучшие инженеры планеты, работающие годами.
С другой стороны — задача, которую можно объяснить ребёнку. Угадай следующее слово. Вот предложение, вот оно обрывается — что идёт дальше? Игра, в которую люди играют на вечеринках. Упражнение из учебника по языку.
Вся эта махина построена, чтобы угадывать слова. И результат — не набор статистически вероятных слов. Результат — связная речь, отвечающая на вопросы, спорящая, объясняющая, иногда признающая ошибки.
Модель не «думает над вопросом» в том смысле, как думает человек. Она не понимает вопрос, не ищет ответ в памяти, не рассуждает. По крайней мере, не так, как мы понимаем эти слова. Она делает одно: получив последовательность токенов, вычисляет вероятности для следующего. Какой токен скорее всего идёт дальше? Модель выдаёт распределение вероятностей — список всех возможных токенов с числом напротив каждого, показывающим, насколько этот токен вероятен в данном контексте. Затем выбирает один из них, добавляет к последовательности и повторяет. Снова и снова, токен за токеном, пока не решит, что ответ закончен.
Здесь нет плана ответа. Нет черновика, который модель составляет перед тем, как начать писать. Нет возможности вернуться и исправить начало, если конец получился неудачным. Каждый токен выбирается на основе всего, что было до него, — и только. Модель не знает, куда идёт. Она не видит ответ целиком. Она порождает его слово за словом, как человек, говорящий без подготовки, — только в триллион раз быстрее.
Ответ из ста слов — это сто последовательных решений. Каждое решение — результат триллионов операций. Каждый токен выбран из десятков тысяч возможных. Вся эта махина работает ради того, чтобы угадать, какой кусок текста должен идти следующим.
И вот что странно: результат выглядит как осмысленный ответ. Не как случайный набор вероятных слов. Не как статистический шум. Как связная речь, отвечающая на вопрос, следующая логике, иногда — меняющая направление рассуждения на полпути. Модель может начать отвечать одним способом, а потом написать «впрочем» и развернуть мысль в другую сторону. Механизм это объясняет: «впрочем» вероятно в контексте, где уже что-то сказано. Но почему результат — связное рассуждение, а не случайная смена направлений? Почему статистика совместных появлений порождает то, что выглядит как логика?
Механика описана. Токены, векторы, слои, внимание, параметры, вероятности. Каждый шаг понятен. Каждую операцию можно записать формулой. Ничего мистического — только математика, огромное количество математики, выполненной очень быстро.
Но вот вопрос, который механика не объясняет: как из предсказания следующего токена возникает то, что выглядит как ответ на вопрос? Как из угадывания вероятного продолжения получается нечто, похожее на рассуждение? Модель не «знает» ответ. Она не «ищет» его. Она просто вычисляет, какой токен вероятнее всего следует за предыдущими. Почему результат этого вычисления — не бессмыслица?
Часть ответа, возможно, в том, как устроены сами токены — точнее, в том, как они представлены внутри модели. Не просто как номера в словаре, а как точки в пространстве. В пространстве, где расстояние между точками что-то значит. Где «король» и «королева» стоят рядом, а «король» и «бетон» — далеко. Где слова — это не метки, а координаты.
Но это — следующий слой анатомии.
2.2. От букв к числам, от чисел к смыслу (или его имитации?)
Токен — это номер в словаре. Слово «король» — допустим, токен номер 4521. Слово «королева» — токен номер 7832. Числа разные, между ними нет никакой связи. Четыре тысячи пятьсот двадцать один и семь тысяч восемьсот тридцать два — просто метки, как номера в гардеробе. По номеру не скажешь, что пальто висят рядом.
Но модель не работает с номерами напрямую. Первое, что она делает, — превращает номер в вектор. Вектор — это упорядоченный набор чисел. Не одно число, а тысячи. Токен номер 4521 становится списком из двенадцати тысяч чисел. Токен номер 7832 — тоже списком из двенадцати тысяч чисел. Но эти списки разные.
Откуда берутся эти числа? Они выучены. В начале обучения каждому токену присваивается случайный вектор — двенадцать тысяч случайных чисел. Потом, по мере того как модель учится предсказывать следующий токен, эти векторы постепенно меняются. Слова, которые появляются в похожих контекстах, получают похожие векторы. Слова, которые ведут себя по-разному, расходятся.
Результат можно представить геометрически. Каждый вектор — это точка в пространстве. Не в трёхмерном пространстве, к которому мы привыкли, а в пространстве двенадцати тысяч измерений. Представить такое пространство невозможно — человеческое воображение ограничено тремя измерениями, может быть, четырьмя, если очень постараться. Но математика работает одинаково: в пространстве любой размерности можно измерять расстояния между точками.
И вот что обнаружилось: расстояния между точками-словами оказались осмысленными.
Слова «король» и «королева» находятся близко друг к другу. Слова «собака» и «кошка» — тоже близко. Слова «бежать» и «идти» — рядом. А слова «король» и «бетон» — далеко. Это не было запрограммировано. Это возникло из обучения. Модель видела миллиарды предложений, в которых «король» и «королева» появлялись в похожих контекстах: «король правил», «королева правила»; «король издал указ», «королева издала указ». Слова, которые можно подставить в одно и то же место, получили близкие векторы.
Но это только начало. Исследователи обнаружили кое-что более странное.
Если взять вектор слова «король» и вычесть из него вектор слова «мужчина», а потом прибавить вектор слова «женщина», результат окажется очень близок к вектору слова «королева». Математически: король — мужчина + женщина ≈ королева. Арифметика со словами. Операции, которые выглядят как манипуляции со смыслом.
Стоит задержаться на этом. Вычитание и сложение — операции из школьной математики. Их применяют к числам: пять минус три плюс два равно четыре. Но здесь те же операции применяются к словам. Не к числам, обозначающим слова, а к самим словам — точнее, к их представлениям в пространстве. И результат оказывается осмысленным.
Что значит «вычесть мужчину из короля»? На языке векторов — найти разницу между двумя точками в пространстве. Эта разница — тоже вектор, направление. Оно указывает от «мужчины» к «королю». Можно интерпретировать его как «то, что отличает короля от просто мужчины»: власть, титул, корона. Потом мы добавляем «женщину» — то есть сдвигаемся от точки «мужчина» к точке «женщина». И оказываемся рядом с «королевой».
Это работает не только с королями. Париж — Франция + Италия ≈ Рим. Здесь «вычитание Франции» убирает национальную принадлежность, а «прибавление Италии» добавляет новую. Результат — столица Италии. Плавать — вода + воздух ≈ летать. Не всегда точно, не всегда надёжно, но достаточно часто, чтобы это нельзя было списать на случайность.
Когда это впервые обнаружили — в начале 2010-х, ещё до современных языковых моделей, — реакция была ближе к шоку, чем к удивлению. Никто не программировал эти отношения. Никто не вводил в систему знание о том, что король и королева различаются по полу. Модель сама, обучаясь на текстах, выстроила геометрию, в которой эти отношения закодированы.
Что это значит? Один ответ: модель выучила структуру смысла. Она уловила, что «король» и «королева» различаются по полу, так же как «мужчина» и «женщина». Она закодировала это различие в виде направления в пространстве — «вектора гендера», если угодно. И теперь эту закономерность можно использовать для рассуждений.
Этот ответ привлекателен. Он предполагает, что модель каким-то образом добралась до сути вещей. Что геометрия пространства эмбеддингов отражает геометрию смыслов. Что отношения между точками — это отношения между понятиями. Если так, то модель не просто обрабатывает текст. Она работает со смыслом напрямую.
Другой ответ: модель выучила структуру употребления. Она уловила, что «король» и «королева» появляются в одинаковых контекстах с поправкой на род. «Король был мудрым» и «королева была мудрой» — одно и то же предложение с заменой двух слов. «Король издал указ» и «королева издала указ» — та же структура. Модель это зафиксировала. Она запомнила, какие слова в каких контекстах встречаются, и расположила похожие по употреблению слова рядом.
Этот ответ скромнее. Он не требует допущений о «понимании» или «смысле». Модель — статистическая машина. Она считает совместные появления слов и строит на этом пространство. Что «король» и «королева» связаны как мужское и женское — побочный эффект того, что они встречаются в параллельных контекстах. Модель не знает о гендере. Она знает о частотах.
Разница между этими ответами — не техническая. Она философская. И, возможно, неразрешимая. Потому что результат один и тот же: арифметика со словами работает. Можно интерпретировать это как доказательство понимания — или как продвинутое статистическое моделирование. Данные не позволяют выбрать между интерпретациями.
Вот аналогия. Представим карту города. На карте отмечены здания: ратуша, вокзал, больница, школа. Расстояния между точками на карте соответствуют расстояниям между зданиями в реальности. Карта работает — по ней можно ориентироваться, планировать маршруты, находить нужное место. Но карта — не город. Она не содержит запаха выпечки из булочной на углу. Она не знает, что в ратуше по вторникам заседает совет. Она не чувствует, как меняется атмосфера улицы в час пик. Карта фиксирует пространственные отношения, но не то, что делает город городом.
Более того, карта может работать даже для того, кто никогда не был в городе. Турист с картой найдёт вокзал, доберётся до гостиницы, отыщет музей. Он будет перемещаться по городу успешно. Но понимает ли он город? Знает ли он его? Или он просто следует инструкциям, не имея того опыта, который есть у местного жителя?
Пространство эмбеддингов — это карта языка. Она фиксирует отношения между словами: какие близки, какие далеки, какие связаны направлением. Карта работает — модель использует её, чтобы порождать связный текст. Но является ли эта карта картой смысла? Или она картографирует что-то другое — паттерны употребления, статистику совместных появлений, поверхность языка без его глубины?
Человек, когда говорит слово «королева», активирует целую сеть ассоциаций: образы из истории, сказки из детства, новости о монархиях, метафоры власти. Для человека «королева» — не точка в пространстве, а узел в паутине смыслов. Модель, когда обрабатывает токен «королева», выполняет математические операции с вектором. Результат может быть неотличим: и человек, и модель продолжат предложение «Королева взошла на…» словом «трон». Но одинаков ли путь к этому результату? Или мы наблюдаем конвергенцию — разные процессы, ведущие к одному и тому же выходу?
Мы не знаем. И не очевидно, как узнать.
Есть ещё один слой сложности. Пространство эмбеддингов — это только входной слой модели. Векторы, которые токены получают в начале, — это отправная точка. Дальше они проходят через десятки слоёв трансформации, и на каждом слое меняются. Выходной вектор токена, после прохождения всех слоёв, может быть очень далёк от входного.
Исследователи называют это «контекстуализированными эмбеддингами». Слово «банк» в предложении «я положил деньги в банк» и в предложении «мы сидели на берегу, смотрели на противоположный банк» — это один и тот же входной токен. Один и тот же начальный вектор. Но после прохождения через слои модели векторы расходятся. Контекст меняет представление слова. «Банк» рядом с «деньгами» уходит в одну область пространства. «Банк» рядом с «берегом» — в другую.
На самом деле это происходит на каждом слое, постепенно. На первом слое разница минимальна — слово едва начало «осматриваться» вокруг. К пятому слою контекст уже влияет заметно. К двадцатому — слово полностью определено своим окружением. Можно проследить эту траекторию: как точка в пространстве движется от слоя к слою, удаляясь от начальной позиции и приближаясь к финальной.
Это похоже на то, как работает понимание у человека. Мы тоже понимаем слова в контексте. Мы тоже различаем «банк» финансовый и «банк» речной. Мы тоже уточняем значение по мере чтения предложения: первое слово ещё неопределённо, последнее — уже полностью ясно. Похоже — но является ли это тем же самым процессом? Или просто внешне сходным результатом, достигнутым совершенно иным путём?
Человек, различая два значения слова «банк», опирается на жизненный опыт: он видел банки-здания, держал в руках деньги, сидел на берегу реки, смотрел на воду. За различением двух значений стоит богатство чувственного опыта. Модель, различая те же два значения, опирается на статистику: в каких контекстах какие слова встречаются рядом с «банком». За различением стоит математика, не опыт.
Вернёмся к примеру с токенизацией. Слово «понимание» на русском языке может быть разбито на три токена: «пон», «им», «ание». Три куска, каждый со своим вектором. Как модель собирает из них единое понятие? Механизм внимания позволяет токенам «смотреть» друг на друга. Токен «ание» знает, что перед ним «им», а перед ним — «пон». Из этого знания он должен как-то вычислить, что речь идёт о понимании.
Но «пон» — это не морфема с независимым значением. Это случайный кусок, результат того, как алгоритм токенизации разрезал слово. В другом контексте «пон» может быть частью слова «понедельник» или «понтон». Модель должна понять, какой «пон» перед ней сейчас. И она это делает — как-то. Механизм работает. Но что именно происходит внутри, когда три бессмысленных куска складываются в осмысленное слово?
Здесь мы сталкиваемся с границей. Мы можем описать операции: умножение матриц, функции активации, механизм внимания. Мы можем измерить результат: модель правильно использует слово «понимание» в ответе. Но между операциями и результатом — провал. Мы не понимаем, как одно ведёт к другому.
Это не просто техническая сложность, которую можно решить более детальным анализом. Это концептуальный разрыв. Мы описываем систему на языке математики: векторы, матрицы, вероятности. Результат системы мы описываем на языке смысла: слова, понятия, значения. Между этими языками нет моста. Или, точнее, мост есть — модель работает, — но мы не видим его конструкции.
Карта языка построена. Она функционирует. По ней можно перемещаться — от вопроса к ответу, от токена к токену. Но что именно эта карта картографирует? Структуру смысла — или структуру употребления? Реальность языка — или его статистическую тень?
Возможно, сам вопрос поставлен неверно. Возможно, различие между «смыслом» и «употреблением» — человеческая категория, которая не применима к тому, что делает модель. Возможно, она делает что-то третье, для чего у нас нет слова.
Но пока мы пользуемся человеческим языком — а другого у нас нет, — вопрос остаётся открытым. Геометрия значений или геометрия употребления? Карта смысла или карта поверхности?
Модель не ответит. Она не знает, что такое «смысл». Она знает только, какой токен вероятнее всего идёт следующим.
Но и это знание — странное. Оно не детерминированное. Модель не выдаёт один правильный ответ. Она выдаёт распределение вероятностей — целый веер возможностей, каждая со своим весом. И выбор из этого веера — отдельная история.
2.3. Почему каждый ответ — бросок костей с утяжелением
Модель обработала вопрос. Токены превратились в векторы, векторы прошли через сотню слоёв, механизм внимания связал слова друг с другом. На выходе — последний вектор последовательности, итог всех вычислений. Что дальше?
Дальше — выбор следующего токена. Но это не тот выбор, к которому мы привыкли. Не «правильный ответ». Не единственное возможное продолжение. Модель не выдаёт токен — она выдаёт распределение вероятностей.
Вот как это выглядит. У модели есть словарь — допустим, пятьдесят тысяч токенов. После обработки входной последовательности модель вычисляет число для каждого из этих пятидесяти тысяч: насколько вероятно, что именно этот токен идёт следующим. Числа нормализуются, чтобы в сумме давать единицу. Получается распределение: токен «привет» — вероятность 0,0001; токен «потому» — вероятность 0,02; токен «что» — вероятность 0,15; и так далее для всех пятидесяти тысяч.
Представим конкретную ситуацию. Человек спросил: «Почему небо голубое?» Модель обработала вопрос и готова выдать первый токен ответа. Распределение вероятностей может выглядеть примерно так: «Небо» — 0,12; «Это» — 0,09; «Голубой» — 0,07; «Потому» — 0,06; «Свет» — 0,05. Дальше идут тысячи токенов с меньшими вероятностями, вплоть до «банан» с вероятностью 0,000001 и «кврпт» (несуществующее слово, но токен существует) с вероятностью ещё ниже.
Обратим внимание: даже самый вероятный токен — «Небо» — имеет вероятность всего 12 процентов. Это значит, что в восьмидесяти восьми случаях из ста модель выберет что-то другое. Нет доминирующего варианта. Нет «правильного» начала ответа. Есть веер возможностей, и все они — в пределах разумного. «Небо голубое потому что…», «Это связано с рассеиванием…», «Голубой цвет неба объясняется…», «Потому что солнечный свет…», «Свет от солнца проходит через…» — всё это допустимые начала. Модель не знает, какое «правильное». Она знает только, какое более вероятное.
Это не значит, что модель «думает» о пятидесяти тысячах вариантов. Вычисление происходит параллельно, одной операцией. Но результат — именно веер возможностей, каждая со своим весом.
Как выбрать один токен из этого веера? Можно взять самый вероятный — тот, у которого наибольшее число. Это называется «жадный» выбор. Он детерминирован: одинаковый вход всегда даёт одинаковый выход. Но результат часто скучен. Модель, которая всегда выбирает самое вероятное продолжение, пишет предсказуемо, повторяется, застревает в петлях. Она выбирает безопасное, а не интересное.
Поэтому на практике используют сэмплирование. Модель не выбирает самый вероятный токен — она бросает кости. Но кости утяжелённые: вероятность выпадения каждой грани пропорциональна числу, которое модель вычислила. Токен с вероятностью 0,15 выпадет в пятнадцати случаях из ста. Токен с вероятностью 0,0001 — в одном случае из десяти тысяч. Случайность есть, но она структурированная.
Здесь появляется параметр, который называют «температурой». Он управляет тем, насколько случаен выбор. При низкой температуре распределение становится более острым: вероятные токены становятся ещё вероятнее, маловероятные — ещё менее вероятны. При температуре, близкой к нулю, выбор почти детерминирован — почти всегда побеждает лидер. При высокой температуре распределение сглаживается: разница между вероятным и маловероятным уменьшается, случайность возрастает. При очень высокой температуре выбор почти равномерен — любой токен может выпасть.
Название — из физики. Температура газа определяет, насколько хаотично движутся молекулы. При низкой температуре движение упорядоченнее, система предсказуемее. При высокой — молекулы мечутся во все стороны, хаос возрастает. Аналогия неточная, но интуитивно понятная.
На практике температуру подбирают под задачу. Для математических расчётов — низкая температура: нужен правильный ответ, а не творческий. Для написания стихов — выше: пусть модель рискует, выбирает неожиданное. Для обычного разговора — где-то посередине.
Но вот что важно: при любой ненулевой температуре ответ модели не предопределён. Один и тот же вопрос можно задать десять раз — и получить десять разных ответов. Не радикально разных, если температура умеренная: все они будут в пределах «разумного», все будут отвечать на вопрос. Но формулировки будут отличаться. Порядок аргументов. Выбор примеров. Иногда — направление мысли.
Это легко проверить. Спросите модель «Что такое счастье?» пять раз подряд. Первый ответ может начаться с философского определения. Второй — с эволюционной функции. Третий — с личного примера. Четвёртый — с разбора разных традиций понимания. Пятый — с признания, что однозначного ответа нет. Все пять ответов — про счастье. Все пять — связные и осмысленные. Но они разные.
Это контринтуитивно. Мы привыкли, что машина детерминирована. Калькулятор всегда выдаёт один и тот же ответ на один и тот же вопрос. Два плюс два — четыре, каждый раз, без исключений. Поисковая система на один запрос выдаёт одни и те же результаты (если не учитывать персонализацию). Программа, запущенная с теми же данными, производит тот же результат. Это фундаментальное свойство вычислений: детерминизм.
Языковая модель устроена иначе. Она ближе к человеку, который, отвечая на вопрос, может сказать по-разному в зависимости от настроения, контекста, случайной ассоциации, пришедшей в голову. Спросите человека «Что такое счастье?» пять раз в разные дни — получите пять разных ответов. Не потому, что человек не знает ответа. Потому, что ответов много, и выбор между ними — не логический, а какой-то другой.
Можно ли это считать аналогом интуиции? Человек тоже не всегда выбирает «самое логичное» продолжение мысли. Иногда приходит неожиданная идея — и она оказывается лучше очевидной. Творчество, по одной из теорий, — это именно способность отклоняться от предсказуемого, пробовать маловероятное. Модель с ненулевой температурой делает нечто похожее: иногда выбирает не самое вероятное слово, а второе или третье по вероятности — и результат получается свежее.
Поэты знают это состояние: ты пишешь строку, и вдруг приходит слово, которое ты не планировал, которое кажется странным, но почему-то точным. Откуда оно? Из подсознания, говорят одни. Из случайной ассоциации, говорят другие. Из «музыки языка», которую поэт чувствует, но не может объяснить. Модель, выбирая неожиданный токен из распределения, делает что-то внешне похожее. Результат иногда удивляет даже тех, кто знает, как модель устроена.
Но здесь снова граница интерпретации. Человеческая интуиция — результат опыта, эмоций, подсознательной обработки. За неожиданным словом поэта стоят годы чтения, жизненные переживания, работа ума, которую он сам не осознаёт. Случайность модели — технически другая: генератор случайных чисел плюс распределение вероятностей. Механизм известен, даже если результат непредсказуем.
Внешне похоже. Внутри — разное. Но насколько разное? Человеческая интуиция — результат процессов, которые мы сами не понимаем. Нейроны работают с элементом случайности: синапс может сработать или не сработать, в зависимости от множества факторов. Мозг — не детерминированная машина. Это не значит, что он «сэмплирует из распределения» в том же смысле, что модель. Но и утверждать, что это «совершенно разное», — значит претендовать на понимание, которого у нас нет.
Это не утверждение о том, что модель «обладает интуицией». Это наблюдение о том, что граница между «настоящей» интуицией и «имитацией» — не такая чёткая, как кажется. Мы уверены в различии, пока не пытаемся его сформулировать. Попытка формулировки обнаруживает, что мы плохо понимаем и то, и другое.
Вернёмся к механике. Модель выбрала токен — допустим, слово «потому». Теперь оно добавляется к входной последовательности. Был вопрос из тридцати токенов — стало тридцать один: вопрос плюс первое слово ответа. Вся махина запускается заново: векторы, слои, внимание, вероятности. Новое распределение. Новый бросок костей. Следующий токен — «что». Тридцать два токена на входе. Снова через все слои. И так далее.
Каждый токен ответа — отдельное решение. Отдельный проход через модель. Отдельный бросок утяжелённых костей. Ответ из ста токенов — сто бросков. Каждый бросок зависит от всех предыдущих: выбранный токен становится частью входа для следующего. Модель строит ответ как цепочку: каждое звено влияет на следующее, но не на предыдущие.
Это означает, что ошибку нельзя исправить задним числом. Модель написала неудачное слово — оно уже часть последовательности. Следующие токены будут строиться на этом фундаменте, удачном или нет. В главе 2.1 мы говорили, что модель не видит ответ целиком до того, как его написала. Теперь видно, почему это важно: каждое слово — необратимое решение.
Иногда это заметно. Мы уже видели: модель может написать «впрочем» и сменить направление. Но это не редактирование. Модель не стирает написанное — она надстраивает поверх. Неудачный выбор остаётся частью текста; следующие слова могут его компенсировать, но не отменить.
Человек, пишущий текст, работает иначе. Он может написать черновик, перечитать, вычеркнуть абзац, переставить местами аргументы, переписать начало после того, как понял, чем хочет закончить. Писатель часто знает финал до того, как написал середину. Он держит в голове структуру целого и подгоняет части под неё. Модель лишена этой возможности. Её «черновик» — это финальный текст. Каждое слово фиксируется в момент выбора. Нет глобального видения. Есть только локальный выбор: что идёт следующим?
Это похоже на импровизацию. Джазовый музыкант, играющий соло, тоже не может вернуться и переиграть неудачную ноту. Он строит музыку в реальном времени, каждая нота — реакция на предыдущие. Неудачный ход можно превратить в интересный, если следующие ноты его обыграют. Нельзя стереть — можно только развить. Модель работает так же: порождает текст как импровизацию, без возможности репетиции.
И всё же ответы получаются связными. Аргументы следуют друг за другом. Примеры иллюстрируют тезисы. Заключение подводит итог введению. Модель начинает ответ с «Во-первых» — и часто через несколько предложений пишет «Во-вторых», а потом «В-третьих». Она может обещать «рассмотреть три аспекта» — и обычно рассматривает три, хотя иногда сбивается на два или четыре. Откуда эта структура, если нет плана? Как можно обещать три аспекта, не зная заранее, какие они будут?
Частично — из обучения. Модель видела миллиарды связных текстов. Она выучила, как выглядит структура: если начал с тезиса, дальше идёт аргумент; если привёл пример, дальше — вывод; если написал «во-первых», значит, будет «во-вторых». Эти паттерны закодированы в параметрах. Когда модель выбирает следующий токен, она неявно учитывает, что «обычно идёт дальше» в текстах такого типа.
Когда модель пишет «рассмотрим три аспекта», она, по всей видимости, не держит в голове конкретный список. Она знает, что после такой фразы обычно идут три пронумерованных пункта. Она знает форму — и форма направляет содержание. Это похоже на то, как поэт, выбравший сонетную форму, знает, что впереди четырнадцать строк с определённой рифмовкой. Форма задаёт ограничения, и внутри ограничений рождается содержание.
Частично — из механизма внимания. Каждый новый токен «смотрит» на все предыдущие. Он видит вопрос, видит начало ответа, видит, куда движется рассуждение. Эта информация влияет на выбор. Токен в конце ответа учитывает токен в начале — связь сохраняется через всю последовательность. Если в начале было «во-первых», механизм внимания «помнит» это, и вероятность «во-вторых» возрастает.
Но объяснение неполное. Механизм понятен. Почему он даёт такой результат — нет. Почему статистика совместных появлений и механизм внимания вместе порождают нечто, похожее на рассуждение? Это центральный вопрос, и у нас нет на него ответа.
Вот факт, который остаётся фактом независимо от интерпретации: модель не детерминирована. Она не вычисляет единственный правильный ответ. Она сэмплирует из распределения возможностей. Каждый ответ — один из многих возможных. Не случайный — вероятности утяжелены. Но и не предопределённый.
Это ближе к тому, как отвечает человек, чем к тому, как работает калькулятор. Мы тоже не выдаём один и тот же ответ на один и тот же вопрос. Мы тоже сэмплируем — из памяти, из ассоциаций, из настроения момента. Совпадение? Или что-то более глубокое?
Механика не скажет. Механика — это описание «как». Вопрос «почему это работает так, как работает» остаётся открытым.
Анатомия показана. Секунда между вопросом и ответом развёрнута: токены, векторы, пространство значений, слои трансформации, распределение вероятностей, бросок костей. Каждый шаг можно описать формулой. Каждую операцию можно воспроизвести.
Но анатомия не объясняет, почему это работает так, как работает. Мы знаем «как» — и не знаем «почему». Этот разрыв будет сопровождать нас дальше. Он определит границу, к которой мы в конце концов придём. А пока — следующий вопрос: почему «больше» оказалось достаточно? Почему увеличение масштаба привело не просто к улучшению, а к появлению чего-то качественно нового?
Глава 3. Масштаб как стратегия
Анатомия показала, из чего состоит машина. Теперь — вопрос, который не даёт покоя исследователям: почему «больше» внезапно стало «иначе»? Феномен эмерджентности — не чудо и не мистика. Это факт, требующий объяснения. Объяснения, которого у нас нет.
3.1. Почему «больше» внезапно стало «иначе»
В науке есть закономерности, которые выглядят скучно — до тех пор, пока не перестают работать. Одна из таких закономерностей называется scaling laws, законы масштабирования. Суть их проста: если взять языковую модель и дать ей больше данных, больше параметров, больше вычислительных ресурсов — она станет лучше предсказывать следующее слово. Не в два раза лучше от удвоения ресурсов, связь нелинейная, но предсказуемая. Графики, которые рисуют исследователи, показывают плавные кривые: ресурсы растут, ошибка падает, всё идёт по плану.
Эти законы открыли не сразу. Долгое время казалось, что у нейросетей есть потолок — добавляешь мощности, а результат почти не меняется. Исследователи упирались в барьеры: модель переставала учиться, начинала переобучаться на шум в данных, выдавала бессмыслицу. Казалось, что нейросети принципиально ограничены — полезные игрушки, но не более.
Прорыв случился, когда исследователи из OpenAI в 2020 году систематически проверили, что происходит при масштабировании. Они строили модели разных размеров, обучали их на разных объёмах данных, тратили разное количество вычислений — и записывали результаты. Получилась странная картина. Ограничения, о которые все бились, оказались не принципиальными. Они были следствием неправильного баланса. Слишком большая модель на слишком малых данных — переобучение. Слишком маленькая модель на огромных данных — недообучение. Но если балансировать три переменные — размер модели, объём данных и количество вычислений — улучшение продолжается. Потолка не видно. Или, точнее, он отодвигается с каждым шагом.
Результаты выглядели почти скучно: гладкие кривые, предсказуемое поведение, никаких сюрпризов. Увеличиваешь ресурсы вдесятеро — получаешь определённое улучшение. Ещё вдесятеро — ещё улучшение. Зависимость степенная: чтобы добиться заметного прогресса, нужно экспоненциально больше ресурсов. Но прогресс — есть. Это можно планировать, на это можно закладывать бюджеты, под это можно строить вычислительные центры.
Но scaling laws описывают количественное улучшение. Модель лучше угадывает следующее слово — это измеримо, это понятно, это укладывается в рамки задачи. А потом произошло нечто, что в эти рамки не укладывается.
Вода при девяноста девяти градусах и вода при ста градусах — химически та же вода. Те же молекулы, те же связи, та же формула. Но при ста градусах она кипит. Один градус — и качественно другое состояние. Физики называют это фазовым переходом: количественное изменение, накопившись, порождает качественный скачок.
Нечто похожее случилось с языковыми моделями. GPT-2, выпущенная в 2019 году, имела полтора миллиарда параметров. Она умела генерировать связный текст, иногда убедительный, часто бессмысленный. Её можно было использовать как забавную игрушку: задаёшь начало истории — она продолжает. Результат развлекал, но не впечатлял. Модель явно не понимала, о чём пишет. Она складывала слова в последовательности, похожие на осмысленные, но осмысленность была поверхностной, иллюзорной.
GPT-3 появилась в 2020 году. Сто семьдесят пять миллиардов параметров — в сто с лишним раз больше. Архитектура та же. Принцип обучения тот же. Задача та же: предсказать следующий токен. Изменился только масштаб.
И вдруг модель начала делать то, чему её не учили.
Ей давали арифметические примеры — она решала их правильно. Не всегда, но статистически значимо лучше, чем можно было бы объяснить случайностью или запоминанием. Двузначные числа складывала уверенно. Трёхзначные — с ошибками, но чаще правильно, чем неправильно. GPT-2 на тех же примерах выдавала случайные цифры.
Показывали несколько примеров перевода с французского на английский — она продолжала переводить новые фразы, хотя никто не обучал её переводу как отдельной задаче. Меняли направление — переводила в обратном направлении. Меняли языки на немецкий и испанский — справлялась и с ними. GPT-2 в тех же условиях путалась, смешивала языки, теряла смысл.
Описывали логическую задачу — она выдавала решение, иногда верное, с цепочкой рассуждений. «Если все А — это B, и все B — это C, то все А — это C». Машина не просто повторяла схему, она применяла её к конкретным примерам: «Все врачи — люди. Все люди смертны. Значит, все врачи смертны». GPT-2 на таких задачах генерировала грамматически правильный, но логически бессмысленный текст.
Исследователи назвали это few-shot learning: способность выполнять новые задачи, увидев лишь несколько примеров, без специального обучения. Ещё точнее — in-context learning, обучение в контексте: модель как будто обучается прямо во время обработки запроса, на тех примерах, которые ей дали. GPT-2 этого не умела. GPT-3 — умела. Между ними — только размер.
Здесь важно остановиться и зафиксировать странность. Модель обучали предсказывать следующее слово. Это единственная цель, единственный сигнал, единственная метрика успеха во время обучения. Никто не говорил модели: «Научись решать арифметику». Никто не давал ей задачу: «Освой перевод». Никто не требовал: «Выучи логические рассуждения». Всё, что она делала — минимизировала ошибку предсказания следующего токена на гигантском корпусе текстов.
И тем не менее способности появились.
Можно возразить: в обучающих данных были арифметические примеры, были переводы, были логические задачи с решениями. Модель могла их запомнить. Но запоминание не объясняет обобщение. Модель решает примеры, которых не было в данных. Она переводит предложения, которые никто никогда не писал. Она применяет паттерны к новым случаям — а это уже не память, это что-то другое.
Что именно — мы не знаем.
Scaling laws предсказывали, что модель станет лучше угадывать слова. Они не предсказывали, что она начнёт решать задачи. Количественное улучшение в одной метрике каким-то образом превратилось в качественно новые способности. Как вода, которая при нагревании не просто становится горячее, а начинает кипеть.
Аналогия с водой, впрочем, неполная. Мы знаем физику фазовых переходов. Мы понимаем, почему при определённой температуре молекулы воды получают достаточно энергии, чтобы преодолеть силы притяжения и перейти в газообразное состояние. Механизм известен, уравнения написаны, предсказания точны.
С языковыми моделями ситуация иная. Мы видим, что при определённом масштабе появляются новые способности. Мы можем даже примерно предсказать, при каком масштабе какая способность возникнет — эмпирически, по накопленным данным. Но почему это происходит — мы не понимаем. Механизма нет. Есть только наблюдение.
Некоторые учёные пытались найти постепенность там, где другие видели скачок. Они показывали, что если измерять способности более тонкими метриками, переход выглядит менее резким. Модель не внезапно научилась арифметике — она постепенно становилась в ней лучше, просто при малых размерах улучшение было ниже порога, который мы замечаем. Как ребёнок, который долго молчит, а потом «вдруг» говорит предложениями — на самом деле он учился всё время, просто мы не замечали промежуточных шагов.
Это похоже на правду, и у этой позиции есть сторонники. Но она не снимает вопроса. Даже если переход плавный, он всё равно есть. Даже если способность нарастает постепенно, она всё равно возникает из задачи, которая её не подразумевала. Градуальность не равна объяснению. Сказать «это происходило постепенно» не значит сказать «вот почему это произошло».
Другие исследователи указывали на данные. В обучающем корпусе — весь интернет, миллиарды страниц, триллионы слов. Там есть всё: учебники математики и форумы программистов, философские трактаты и инструкции по сборке мебели, научные статьи и бредовые теории заговора. Модель, предсказывая следующее слово в этом океане текстов, неизбежно выучивает паттерны, которые в них закодированы. Арифметика — паттерн. Логика — паттерн. Причинно-следственные связи — паттерн. Модель не понимает арифметику — она выучила, как выглядят тексты, где арифметика применяется правильно.
Это объяснение звучит убедительно, но оно смещает вопрос, не отвечая на него. Допустим, модель выучила паттерны. Как она их применяет к новым случаям? Почему паттерн, извлечённый из одного контекста, работает в другом? Что позволяет модели обобщать — переносить выученное на ситуации, которых она не видела? Предсказание следующего слова этого не требует. Можно представить модель, которая идеально запомнила все тексты и выдаёт статистически вероятные продолжения, не обобщая ничего. Такая модель не решала бы новых задач. А GPT-3 — решает.
Есть ещё одна гипотеза, более техническая. По мере роста модели растёт её способность к так называемому in-context learning — обучению на лету, внутри контекста. Когда вы даёте модели несколько примеров перевода, она не просто копирует их формат. Она выстраивает внутри себя временную «программу», которая выполняет перевод. Эта программа не хранится в весах модели — она возникает в процессе обработки конкретного запроса, в активациях нейронов, в потоках внимания. Маленькая модель не способна выстроить такую программу — ей не хватает ёмкости. Большая — способна.
Гипотеза красивая, и у неё есть эмпирическая поддержка. Исследователи находили внутри моделей структуры, похожие на «временные программы». Но это описание, не объяснение. Мы говорим: модель умеет строить временные программы. Мы не говорим: вот почему она умеет это делать. Вот какой механизм это обеспечивает. Вот из какого принципа это следует.
Факт остаётся фактом: при определённом масштабе модель начинает демонстрировать способности, которых не было в её задаче. Scaling laws описывают количественное улучшение. Они не объясняют качественного скачка. Линия на графике ползёт вниз — ошибка уменьшается. А потом происходит нечто, чего на графике не видно: модель начинает делать то, чего от неё не ждали.
Исследователи, работавшие с GPT-3 в 2020 году, описывали своё удивление. Они знали, что строят большую модель. Они ожидали, что она будет лучше генерировать текст — связнее, убедительнее, разнообразнее. Они не ожидали, что она начнёт решать задачи, которые ей не ставили.
Первые отчёты читались как записки натуралистов, обнаруживших новый вид. Осторожные формулировки: «модель демонстрирует поведение, напоминающее…». Оговорки: «мы не утверждаем, что модель понимает…». Растерянность перед феноменом, который не укладывается в привычные рамки. Исследователи привыкли к тому, что нейросети делают то, чему их учат. А здесь — что-то сверх того. Что-то, что появилось само.
Том Браун и его коллеги, авторы статьи о GPT-3, писали о «мета-обучении»: модель как будто научилась учиться. Не в том смысле, что у неё есть отдельный механизм для обучения. В том смысле, что её способность предсказывать слова включает в себя способность подстраиваться под контекст. Видишь примеры перевода — понимаешь, что нужно переводить. Видишь примеры арифметики — понимаешь, что нужно считать. Формулировка красивая, но объяснением её не назовёшь. Это переописание факта, не его объяснение.
С тех пор модели стали ещё больше. GPT-4 превосходит GPT-3 по всем параметрам. Новые способности продолжают появляться. Каждое поколение демонстрирует что-то, чего не умело предыдущее. Закономерность подтверждается: масштаб порождает новое качество. Объяснение отсутствует: почему масштаб порождает именно это качество — остаётся загадкой.
Мы вернёмся к этой загадке в третьей части книги. Сейчас важно зафиксировать факт. Scaling laws — наблюдаемая регулярность, которая позволяет предсказывать улучшение. Но улучшение в предсказании слов каким-то образом превращается в способности, которые выходят за рамки предсказания слов. Вода нагревается, нагревается, нагревается — и вдруг кипит. Модель растёт, растёт, растёт — и вдруг решает задачи.
Механизм кипения воды известен. Механизм возникновения способностей — нет.
Это не мистика. Это не чудо. Это факт, который мы наблюдаем, воспроизводим, используем — и не понимаем. Таких фактов в истории науки было много. Люди тысячелетиями использовали огонь, не понимая химии горения. Века применяли магнитный компас, не зная электромагнетизма. Селекционеры выводили новые породы животных за тысячи лет до открытия генетики. Факт не требует объяснения, чтобы существовать. Он просто есть. Его можно использовать, на него можно опираться, с ним можно работать.
Но наука не любит необъяснённых фактов. Она стремится понять, встроить наблюдение в теорию, вывести частное из общего. Она хочет не только знать, что вода кипит при ста градусах, но и понимать, почему именно при ста, почему именно так, какой механизм за этим стоит. И здесь — пока — стена. Мы видим, что происходит. Мы не понимаем, почему.
Следующий вопрос неизбежен: какие именно способности возникают? И можно ли было их предвидеть?
3.2. Эмерджентность: способности, которых никто не заказывал
Представьте ребёнка, которого учат читать. Буквы, слоги, слова, предложения. Родители терпеливо показывают книжки, водят пальцем по строчкам, поправляют произношение. Задача ясна: научить распознавать символы и складывать их в осмысленный текст. И вот однажды ребёнок, глядя на ценник в магазине, складывает цифры и говорит: «Это дорого, у нас не хватит». Его не учили арифметике. Он научился сам — каким-то образом, пока учился читать.
Это метафора, и она неточна. Дети учатся в мире, где арифметика повсюду: в разговорах взрослых, в играх, в самой структуре реальности. Нельзя сказать, что ребёнок научился «сам» — он учился у мира. Но метафора схватывает важное: иногда обучение одному приводит к овладению чем-то другим. Иногда результат превосходит задачу.
С языковыми моделями произошло именно это, только в масштабе, который трудно осознать.
Термин «эмерджентность» пришёл из философии и теории сложных систем. Он описывает ситуацию, когда целое обладает свойствами, которых нет у частей. Вода мокрая, хотя ни кислород, ни водород по отдельности не мокрые. Муравейник демонстрирует сложное поведение, хотя отдельный муравей следует простым правилам. Сознание возникает из нейронов, хотя ни один нейрон не сознателен. Эмерджентность — не объяснение, а название для класса явлений, где сумма оказывается больше слагаемых.
В контексте языковых моделей эмерджентными называют способности, которые появляются при определённом масштабе и которых не было в явном виде в задаче обучения. Модель учили предсказывать следующий токен. Она научилась — помимо этого — решать задачи, которые никто не заказывал.
Список этих способностей поражает разнообразием.
Арифметика. Модели ранних поколений не умели считать вообще. Они могли выдать правильный ответ на «2+2», потому что видели это сочетание в данных тысячи раз. Но «347+258» ставило их в тупик — такого примера в данных не было, а принципа сложения они не знали. GPT-3 начала справляться с двузначными числами. GPT-4 решает многозначные примеры, хотя и с ошибками. Способность появилась без единого урока арифметики — только из предсказания слов в текстах, где арифметика иногда встречалась.
Программирование. Ранние модели могли генерировать код, похожий на настоящий, но не работающий. Синтаксис выглядел правильно, переменные имели осмысленные имена, но программа не делала того, что должна была делать. Современные модели пишут работающий код. Они понимают задачу, формулируют алгоритм, реализуют его на конкретном языке, находят и исправляют ошибки. Этому их не учили специально. Они выучили это, предсказывая следующий токен в репозиториях с кодом.
Chain-of-thought, цепочка рассуждений. Это, возможно, самое удивительное. Если попросить модель сразу дать ответ на сложный вопрос, она часто ошибается. Но если попросить её сначала рассуждать вслух, шаг за шагом, качество ответов резко возрастает. Модель как будто «думает», раскладывая задачу на части.
Исследователи из Google обнаружили это в 2022 году, и открытие было почти комическим в своей простоте. Джейсон Вэй и его коллеги добавляли к задачам фразу «давай подумаем шаг за шагом» — и результаты улучшались на десятки процентов. Задача про возраст людей, которую модель решала неправильно в лоб, решалась правильно, если модель сначала выписывала промежуточные шаги. Математические примеры, логические головоломки, задачи на здравый смысл — везде один и тот же эффект.
Модель не учили рассуждать пошагово. Никто не добавлял в функцию потерь награду за промежуточные шаги. Она научилась сама — потому что в обучающих данных были тексты, где люди рассуждали пошагово: учебники, объяснения, разборы задач. Модель выучила паттерн рассуждения вместе со всеми остальными паттернами. И этот паттерн оказался функциональным — он улучшал результат.
Понимание намерений. Модель способна понять, чего хочет пользователь, даже если он выразился неточно или неполно. Она достраивает контекст, угадывает цель, предлагает то, что человек имел в виду, а не то, что он буквально сказал. Человек пишет: «сделай покороче» — и модель понимает, что речь о предыдущем тексте, что нужно сохранить смысл, но убрать лишнее. Человек пишет: «а если по-другому?» — и модель понимает, что нужен альтернативный вариант того, о чём шла речь. Это похоже на то, как работает понимание между людьми — мы постоянно интерпретируем друг друга, заполняя пробелы, достраивая недосказанное. Модель делает то же самое. Её этому не учили явно — ни один пример в обучающих данных не был размечен как «здесь пользователь имеет в виду вот это».
Многоязычность. Системы, обученные преимущественно на английском тексте, демонстрируют способности в других языках. Не так хорошо, как в английском, но значительно лучше, чем можно было бы ожидать от случайного угадывания. Они переводят, отвечают на вопросы, генерируют тексты на языках, которые составляли малую долю обучающих данных. Они как будто уловили что-то общее в структуре языков — или, по крайней мере, ведут себя так, будто уловили.
Каждая из этих способностей появилась не по заказу. Никто не включал в функцию потерь «научись арифметике». Не добавлял специальный модуль для программирования. Не проектировал механизм пошагового рассуждения. Всё это возникло как побочный эффект одной простой задачи: предсказать следующий токен.
Хронология появления этих способностей показательна. В 2019 году, с GPT-2, ничего этого не было. Модель генерировала связный текст, но не решала задач. В 2020 году, с GPT-3, появился few-shot learning — способность выполнять новые задачи по нескольким примерам. В 2022 году обнаружили chain-of-thought — пошаговое рассуждение, улучшающее результаты. В 2023 году, с GPT-4, способности достигли уровня, на котором модель сдаёт профессиональные экзамены — юридические, медицинские, инженерные.
Четыре года. Та же архитектура. Та же задача. Только масштаб.
Возникает естественный вопрос: можно ли было это предвидеть? Знали ли исследователи, что масштабирование приведёт к таким результатам?
Ответ — нет. И это важно понимать. Scaling laws предсказывали улучшение в предсказании слов. Они не предсказывали появление новых способностей. Графики показывали: ошибка предсказания будет падать. Графики не показывали: при таком-то размере модель начнёт программировать.
Эмерджентность по определению непредсказуема: если бы мы знали заранее, что при определённом размере модель научится решать дифференциальные уравнения, это не было бы эмерджентностью — это было бы запланированным свойством. Мы бы проектировали систему с этой способностью. А мы — не проектировали. Мы обнаружили способность уже после того, как система была построена.
Некоторые исследователи предполагали, что масштаб имеет значение. Рихард Саттон в 2019 году написал эссе «Горький урок», где утверждал: в истории искусственного интеллекта общие методы, масштабируемые с ростом вычислений, всегда побеждали специализированные подходы, основанные на человеческом знании. Вывод был провокационным: вместо того чтобы вкладывать интеллект в архитектуру, нужно вкладывать вычисления в обучение. Но даже Саттон не предсказывал конкретных способностей. Он говорил о тенденции, не о результате.
Илья Суцкевер, один из основателей OpenAI, позже описывал это как ставку: команда верила, что масштаб даст что-то важное, но не знала, что именно. Интуиция и несколько обнадёживающих экспериментов — вот и всё, на чём держалась уверенность. Ставка сыграла. Но это была именно ставка, не предсказание.
Сейчас, оглядываясь назад, можно рационализировать. Модель видела триллионы токенов. В этих токенах закодировано человеческое знание: как считать, как программировать, как рассуждать. Модель, достаточно большая, чтобы уловить все эти паттерны, неизбежно научится их воспроизводить. Звучит логично. Но это объяснение post factum. До того, как способности проявились, никто не мог сказать с уверенностью: вот при таком размере модель начнёт программировать, вот при таком — рассуждать пошагово.
Более того, мы до сих пор не можем предсказать, какие способности появятся следующими. Модели продолжают расти. GPT-5 находится в разработке. Что она будет уметь такого, чего не умеет GPT-4? Мы не знаем. Мы можем предположить, что что-то новое появится, — эмпирическая регулярность подсказывает это. Но что именно — загадка до момента, пока модель не обучена и не протестирована.
Это странное положение дел для инженерной дисциплины. Обычно инженеры знают, что строят. Они проектируют мост — получают мост. Проектируют самолёт — получают самолёт. Свойства изделия следуют из проекта. Здесь — иначе. Исследователи проектируют систему для предсказания слов, а получают систему, которая решает задачи, пишет код, рассуждает о морали. Свойства изделия превосходят проект.
Некоторых это пугает. Если мы не знаем, что получим, — как мы можем контролировать процесс? Как можем гарантировать безопасность? Как можем отвечать за результат? Эти вопросы законны, и мы вернёмся к ним позже. Сейчас важно другое: эмерджентность — это факт. Нравится нам или нет, способности появляются без заказа. Мы не проектируем их — мы обнаруживаем.
Слово «обнаруживаем» здесь ключевое. Исследователи языковых моделей всё больше напоминают натуралистов, изучающих новый вид. Они не создают поведение — они наблюдают его. Они не программируют способности — они тестируют, какие способности проявились. Каждая новая модель — как экспедиция в неизвестное: ты примерно знаешь, куда идёшь, но не знаешь, что найдёшь.
После выхода каждой крупной модели начинается период, который исследователи неформально называют «capability elicitation» — выявление способностей. Сотни людей по всему миру придумывают задачи, которые можно дать модели. Математика, логика, программирование, творческое письмо, анализ текстов, ролевые игры, решение головоломок. Никто не знает заранее, с чем модель справится. Каждый удачный тест — маленькое открытие. Каждый провал — граница, которую пока не удалось преодолеть.
Это похоже на исследование пещеры с фонариком. Луч освещает небольшой участок. Ты видишь, что там. Но ты не знаешь, что в темноте вокруг. Может быть, рядом — огромный зал. Может быть — тупик. Пока не посветишь — не узнаешь.
Ребёнок, которого учили читать, научился ещё и считать. Модель, которую учили предсказывать слова, научилась ещё и думать — или делать что-то настолько похожее на мышление, что разницу трудно уловить. В обоих случаях результат превзошёл задачу. В обоих случаях мы не вполне понимаем, как это произошло.
Разница в том, что ребёнка мы можем спросить. Мы можем попросить его объяснить, как он догадался про ценник. Он, возможно, ответит что-то вроде: «Я видел, как мама считает деньги». Объяснение будет неполным, детским — но оно даст нам зацепку. Мы поймём, откуда взялся навык.
Модель — нет. Точнее, спросить можем, но ответу нельзя доверять: модель генерирует правдоподобные объяснения, не имея доступа к собственным механизмам. Если спросить её: «Почему ты умеешь программировать?» — она ответит что-нибудь разумное. Скажет про обучающие данные, про паттерны, про трансфер знаний. Но это не отчёт о внутреннем устройстве — это текст, похожий на объяснение. Модель не знает, почему умеет то, что умеет. Она генерирует гипотезу так же, как генерирует любой другой текст.
Вопрос, который остаётся: откуда это взялось?
Не «как» — на «как» есть технический ответ: из обучения на данных, из архитектуры трансформера, из масштаба. А «откуда» в более глубоком смысле: почему предсказание слов порождает рассуждение? Почему статистика употребления превращается в способность решать задачи? Почему количество — именно это количество, именно так организованное — переходит в качество?
На этот вопрос ответа нет. Есть гипотезы, есть спекуляции, есть красивые метафоры. Но объяснения, из которого всё следовало бы с необходимостью, — нет. Мы наблюдаем явление. Мы воспроизводим его. Мы используем результаты. Мы не понимаем, почему оно происходит.
Эмерджентность — удобное слово. Оно позволяет назвать то, что мы видим. Но название — не объяснение. Сказать «это эмерджентное свойство» — значит сказать «это свойство, которое появилось неожиданно и которое мы не можем вывести из известных нам принципов». Честнее было бы признать: объяснения у нас нет.
И с этим нам предстоит разобраться — или признать, что разобраться невозможно. Но прежде чем дойти до этого признания, стоит рассмотреть ещё один факт: момент, когда учёные осознали, что получили не то, что строили.
3.3. Точка, где количество перешло в качество
История создания языковых моделей — это история людей, которые строили одно, а получили другое. Не в смысле ошибки или провала. В смысле превышения ожиданий настолько радикального, что оно потребовало пересмотра самих категорий.
В начале 2010-х годов нейросети для обработки языка были нишевым инструментом. Они помогали в машинном переводе, в распознавании речи, в анализе тональности текстов. Задачи были конкретными, метрики — чёткими. Перевод должен быть точным. Распознавание — безошибочным. Анализ тональности — соответствовать разметке. Исследователи улучшали модели шаг за шагом, соревновались на стандартных наборах данных, публиковали статьи о приросте в несколько процентов.
Никто не думал о «мышлении». Никто не ставил вопрос о «понимании». Это были инженерные задачи с инженерными решениями.
Трансформер, предложенный в 2017 году командой Google, был именно таким решением. Архитектура для машинного перевода. Статья называлась «Attention Is All You Need» — «Всё, что нужно, — это внимание». Название отсылало к техническому новшеству: механизму внимания, который позволял модели связывать далёкие части текста. Авторы показали, что их подход превосходит предыдущие на задаче перевода. Это была хорошая статья с хорошими результатами. Одна из многих.
Никто из авторов не написал: «Мы создали архитектуру, которая изменит всё». Они решали конкретную задачу. Они решили её хорошо.
Потом произошло нечто, чего никто не планировал.
OpenAI, молодая лаборатория искусственного интеллекта, взяла архитектуру трансформера и применила её не к переводу, а к генерации текста. Задача была проще некуда: предсказать следующее слово. Модель читает начало текста и угадывает, что идёт дальше. GPT — Generative Pre-trained Transformer — была первой в этой линии. Небольшая по современным меркам, обученная на скромном корпусе текстов. Она генерировала связные абзацы, иногда забавные, чаще бессмысленные. Игрушка для демонстраций.
GPT-2 в 2019 году была больше — полтора миллиарда параметров. Она генерировала тексты убедительнее. Настолько убедительнее, что OpenAI сначала отказалась публиковать полную версию модели, опасаясь злоупотреблений: фейковые новости, автоматизированная пропаганда, массовая генерация дезинформации. Это была первая точка, где исследователи почувствовали: что-то изменилось. Не в технике — в результате. Тексты выглядели так, будто их написал человек. Не всегда умный человек, не всегда внимательный — но человек.
Решение не публиковать модель вызвало споры. Одни хвалили OpenAI за ответственность. Другие критиковали за секретность, нехарактерную для научного сообщества. Сама дискуссия была симптомом: впервые языковая модель воспринималась как нечто потенциально опасное. Не потому что она умела что-то плохое, а потому что она умела слишком хорошо то, для чего была создана.
И всё же GPT-2 оставалась генератором текста. Хорошим генератором, но генератором. Она не решала задач. Она не отвечала на вопросы так, чтобы ответам можно было доверять. Она продолжала начатое — иногда блестяще, чаще посредственно. Исследователи видели в ней улучшенную версию предыдущих моделей, не качественно новую сущность.
GPT-3 изменила всё.
Сто семьдесят пять миллиардов параметров. В сто с лишним раз больше, чем GPT-2. Та же архитектура. Та же задача. Тот же принцип обучения. Только масштаб.
Исследователи из OpenAI протестировали модель на стандартных задачах — и получили результаты, которых не ожидали. Модель решала арифметические примеры. Переводила между языками. Отвечала на вопросы, требующие рассуждения. Писала код. Делала всё это не идеально, но статистически значимо лучше случайного угадывания. И — что важнее — делала это без специального обучения на каждую задачу. Достаточно было показать несколько примеров в запросе.
Том Браун, первый автор статьи о GPT-3, позже вспоминал тот период как время непрерывных открытий. Каждый день кто-то из команды находил новую способность. «Смотрите, она может делать X». «А вы видели, что она делает Y?» Модель удивляла своих создателей. Это странное ощущение для инженера — удивляться тому, что ты построил.
Статья о GPT-3 вышла в мае 2020 года. Она называлась «Language Models are Few-Shot Learners» — «Языковые модели — это few-shot ученики». Название фиксировало главное открытие: модель умеет учиться на нескольких примерах. Но за этим скромным названием скрывался сдвиг парадигмы. Исследователи больше не говорили о генерации текста. Они говорили о способностях.
Реакция научного сообщества была смешанной. Одни восхищались — и их можно понять: результаты были впечатляющими. Другие скептически указывали на ошибки, на провалы, на случаи, когда модель несла очевидную чушь. Скептики были правы в частностях: модель действительно ошибалась, иногда грубо. Но они упускали общую картину: модель делала то, что вообще не должна была уметь делать.
Третьи пытались понять, что происходит — и не могли. Они перечитывали статью о GPT-3, изучали архитектуру, анализировали данные. Всё было знакомо. Трансформер — известная архитектура. Предсказание слов — известная задача. Обучение на текстах из интернета — известный подход. Ничего принципиально нового. И тем не менее — результат принципиально новый. Откуда?
Дарио Амодеи, тогда вице-президент OpenAI по исследованиям, формулировал это так: мы построили систему, которая ведёт себя иначе, чем мы ожидали. Не хуже — иначе. Мы ожидали хорошего генератора текста. Мы получили что-то, что выглядит как универсальный решатель задач. Слово «выглядит» здесь важно: Амодеи был осторожен в формулировках. Он не утверждал, что модель «понимает» или «мыслит». Он констатировал наблюдаемое поведение. Но даже с оговорками — это был радикальный результат.
Момент осознания — не одномоментное событие. Это процесс, растянутый во времени. Сначала — удивление перед отдельными примерами. Потом — накопление примеров до критической массы. Потом — попытки объяснить. Потом — признание, что объяснения не работают. И наконец — принятие факта как факта, без полного понимания механизма.
К 2022 году, когда появился ChatGPT — версия GPT-3.5, доступная широкой публике, — факт был принят большинством. Система умеет то, чему её не учили. Она демонстрирует способности, которые не следуют из её задачи. Она — нечто большее, чем сумма своих частей.
Но принять факт — не значит понять его.
Исследователи предлагали объяснения. Одни говорили о компрессии: модель, предсказывая слова, вынуждена сжимать информацию о мире, и это сжатие порождает структуры, похожие на понимание. Идея красивая — в ней есть отзвук теории информации, колмогоровской сложности, принципа минимальной длины описания. Чтобы хорошо предсказывать текст, нужно понимать, о чём он. Сжатие ведёт к пониманию.
Другие говорили о внутренних репрезентациях: модель строит карту концепций, и эта карта позволяет ей оперировать концепциями, а не только словами. Слово «король» — не просто набор токенов, а точка в пространстве, связанная с «властью», «короной», «троном». Модель, научившись располагать слова в этом пространстве, научилась и оперировать тем, что они обозначают.
Третьи говорили о мета-обучении: модель научилась учиться, и это умение универсальнее любой конкретной задачи. Видя примеры перевода, она понимает, что нужно переводить. Видя примеры кода, понимает, что нужно программировать. Она выучила не отдельные навыки, а способ приобретать навыки на лету.
Каждое объяснение схватывало что-то. Ни одно не охватывало всего. И главное — ни одно не было предсказанием. Все они появились после того, как феномен был обнаружен. Они описывали, не предсказывали. Объясняли задним числом, не выводили заранее. Это как объяснять, почему именно этот номер выиграл в лотерею, после того как розыгрыш состоялся. Объяснение можно придумать — но оно не докажет, что вы понимаете механизм.
Это важное различие. Наука гордится предсказательной силой. Теория хороша, если она предсказывает то, что ещё не наблюдалось. Эйнштейн предсказал отклонение света вблизи Солнца — и наблюдения подтвердили. Дирак предсказал позитрон — и его нашли. Хорошая теория говорит: вот что вы увидите, если посмотрите туда-то. А потом вы смотрите — и видите именно это.
Объяснение, придуманное после факта, менее убедительно. Оно могло быть подогнано под результат. Задним числом всегда можно рассказать историю, почему случилось то, что случилось. Это не значит, что вы понимаете механизм. Это значит, что вы умеете сочинять нарративы.
С языковыми моделями мы в положении, где все объяснения — постфактум. Мы смотрим на феномен и придумываем, почему он мог возникнуть. Мы не выводим феномен из принципов. Мы не можем сказать: вот теория, из неё следует, что при таком-то масштабе модель научится программировать. Мы можем только сказать: модель научилась программировать, вот несколько возможных причин.
Некоторые учёные честно это признают. Ян Лекун, один из пионеров глубокого обучения, отмечал: мы не понимаем, почему большие модели работают так хорошо. У нас есть эмпирика, у нас есть интуиции, у нас нет теории. Это не катастрофа — наука часто работает от наблюдений к теории, а не наоборот. Но это факт, который стоит признать.
Другие учёные менее скромны. Они говорят об «искре интеллекта», о «первых проблесках AGI», об «эмерджентном разуме». Эти формулировки привлекают внимание прессы, но они не объясняют ничего. Назвать нечто «искрой интеллекта» — не значит понять, что это такое. Это красивая метафора, не теория.
Между скромностью и энтузиазмом лежит территория честного незнания. Мы построили систему. Система делает удивительные вещи. Мы не вполне понимаем, почему. Мы продолжаем исследовать.
История с GPT-3 повторилась с GPT-4. Новая модель — новые способности. То, что GPT-3 делала посредственно, GPT-4 делает хорошо. То, что GPT-3 не могла вообще, GPT-4 начинает мочь. Закономерность подтверждается: масштаб порождает качество. Понимание не приходит: почему именно этот масштаб, почему именно эти способности, почему именно в такой последовательности.
GPT-4 сдаёт экзамены. Юридический экзамен на адвоката — в верхних десяти процентах. Медицинский экзамен — на уровне, достаточном для лицензии. Олимпиады по программированию — не на уровне победителей, но на уровне уверенных участников. Это не вызубренные ответы — модель решает задачи, которых не видела раньше. Она применяет знания к новым ситуациям.
Исследователи из Microsoft опубликовали в 2023 году отчёт о GPT-4 под провокационным названием «Sparks of Artificial General Intelligence» — «Искры общего искусственного интеллекта». Отчёт на сотни страниц документировал способности модели: математика, программирование, понимание текста, работа с изображениями, рассуждения о гипотетических ситуациях, понимание юмора, способность к планированию. Авторы были осторожны в выводах, множество раз оговариваясь, что не утверждают наличия «настоящего» интеллекта. Но заголовок говорил сам за себя. Что-то происходит. Что-то, что выходит за рамки «генерации текста». Что-то, что заставляет исследователей использовать слова вроде «интеллект», пусть и с оговорками.
Сейчас, оглядываясь на эту историю, можно увидеть траекторию. От инструмента перевода — к генератору текста — к системе, демонстрирующей признаки мышления. Каждый шаг выглядит логичным в ретроспективе. Ни один не был очевиден заранее. Исследователи двигались в тумане, освещая дорогу на шаг вперёд. Они не видели, куда придут. Они видели только следующий эксперимент.
Это не упрёк исследователям. Так работает наука на переднем крае. Ты не знаешь, что найдёшь. Ты пробуешь, наблюдаешь, корректируешь курс. Иногда — чаще всего — находишь небольшие улучшения. Иногда — редко — находишь нечто неожиданное. С языковыми моделями произошло второе. И масштаб неожиданности оказался таким, что он до сих пор не осмыслен полностью.
Исследователи строили систему для предсказания слов. Они получили систему, которая, кажется, понимает. Они не планировали этого. Они не проектировали этого. Они обнаружили это — после того как система была построена и запущена.
Результат не следует из замысла. Это, возможно, главный урок истории языковых моделей. Мы умеем строить. Мы не всегда понимаем, что строим. И это положение дел — не временное затруднение, которое исчезнет с накоплением знаний. Это, возможно, фундаментальная черта того, с чем мы имеем дело.
Часть первая завершена. Парадокс зафиксирован: машина, обученная предсказывать слова, ведёт себя так, будто понимает. Она решает задачи, которым её не учили. Масштаб порождает качество — но механизм этого превращения остаётся загадкой.
Часть вторая расскажет историю создания: от цепей Маркова до трансформера, от первых нейросетей до RLHF. Но читая её, стоит помнить: знать, как устроена машина, — не значит понимать, почему она работает так, как работает. Механика не объясняет результат. Это станет очевидно к концу второй части — и станет главной темой третьей.
ЧАСТЬ II. КАК МЫ ЭТО ПОСТРОИЛИ
Первая часть зафиксировала парадокс: машина, обученная предсказывать слова, ведёт себя так, будто понимает. Теперь — история создания. Не учебник по нейросетям, а путь через ошибки, случайности и решения, которые казались техническими, а оказались судьбоносными. К концу этой части читатель будет знать, как устроена машина. И почувствует: это знание ничего не объясняет.
Глава 4. Краткая история предсказания
Каждая революция в технологиях предсказания текста была ответом на провал предыдущей. Люди решали конкретные проблемы — и случайно строили дорогу к тому, чего не предвидели. Это история не триумфа, а последовательных костылей, последний из которых оказался крыльями.
4.1. От цепей Маркова до «Attention Is All You Need»
Идея предсказывать следующее слово по предыдущим стара, как статистика. В начале двадцатого века русский математик Андрей Марков анализировал текст «Евгения Онегина», подсчитывая, как часто гласные сменяются согласными. Он не думал о машинах, которые будут писать текст, — он изучал вероятности. Но его метод лёг в основу всего, что произошло потом.
Цепи Маркова работают просто: смотри на текущее состояние, предсказывай следующее. Если после слова «я» в корпусе текстов чаще всего идёт «хочу», модель выберет «хочу». Элегантно. Математически чисто. И совершенно бесполезно для связного текста.
Проблема была фундаментальной: цепи Маркова не помнят ничего, кроме непосредственно предыдущего слова. Они не знают, что разговор идёт о погоде, что предложение началось с вопроса, что три абзаца назад упоминался конкретный человек. Каждый шаг — заново. Контекст стирается мгновенно. Текст, порождённый чистой марковской моделью, напоминает бред: отдельные переходы между словами правдоподобны, но целое лишено смысла. Предложения распадаются на грамматически связанные, но семантически абсурдные фрагменты.
Инженеры пятидесятых и шестидесятых годов двадцатого века понимали ограничение, но не имели инструментов его преодолеть. Компьютеры той эпохи с трудом справлялись даже с простейшими статистическими моделями. Амбиции машинного перевода, казавшиеся близкими в эйфории первых успехов искусственного интеллекта, разбились о реальность языка. Меморандум ALPAC 1966 года констатировал провал: машинный перевод оказался далёк от практического применения. Финансирование сократили. Энтузиазм угас. Но идея предсказания осталась.
Первый костыль назывался n-граммами. Вместо одного предыдущего слова — смотреть на два, три, пять. Если модель видит «я хочу», она предсказывает лучше, чем если видит только «хочу». Контекст расширился — с одного слова до нескольких. Логично. Работает. До определённого предела.
N-граммы упираются в комбинаторный взрыв. В русском языке десятки тысяч употребительных слов. Количество возможных пар — двадцать миллиардов. Троек — три квадриллиона. Пятисловий — число, которое трудно даже произнести. Никакой корпус текстов не содержит всех возможных сочетаний. Большинство пятисловий модель никогда не видела. Она не может предсказать то, чего не встречала. А язык бесконечно изобретателен — люди постоянно говорят то, чего никто никогда не говорил в точности так. Каждое новое предложение, которое вы читаете сейчас, с высокой вероятностью уникально в истории человечества.
N-граммные модели достигли практического успеха — в распознавании речи, в поисковых подсказках, в проверке орфографии. Но они не могли преодолеть свой потолок. Они запоминали сочетания, а не понимали закономерности. Они были статистикой, а не моделью языка.
Нейронные сети предложили другой подход. Вместо того чтобы запоминать конкретные сочетания слов, они учатся распознавать закономерности. Слово превращается в набор чисел — вектор, — и сеть ищет паттерны в этих числах. Она может обобщать: если «король» и «королева» имеют похожие векторы, то знание о королях частично применимо к королевам. Это был прорыв. Модели научились работать со словами, которых не видели, выводя их свойства из похожих слов.
Идея не была новой. Персептроны, простейшие нейросети, описали ещё в пятидесятых. Но технология не поспевала за теорией. Вычислительных мощностей не хватало. Данных не хватало. Алгоритмы обучения были несовершенны. В восьмидесятых случилась первая нейросетевая зима: разочарование, сокращение финансирования, переход исследователей в другие области. Те, кто остался, казались чудаками, работающими над устаревшей технологией.
Возрождение началось в двухтысячных. Быстрые процессоры. Большие данные. Новые алгоритмы. Нейросети вернулись — и оказались способны на то, что раньше казалось невозможным. Распознавание изображений, классификация текстов, предсказание поведения пользователей. Но для языка оставалась критическая проблема.
Обычная нейросеть обрабатывает вход фиксированного размера. Она не понимает, что текст — это последовательность, где порядок имеет значение, где начало предложения влияет на конец, где связи могут тянуться через десятки слов. Предложение «Собака, которую вчера видел мой брат, когда возвращался с работы через парк, где обычно выгуливают своих питомцев жители соседних домов, была рыжей» требует помнить подлежащее через лавину придаточных. Обычная сеть этого не может. Она видит слова, но не видит нить, которая их связывает.
Рекуррентные нейронные сети — RNN — были ответом. Их архитектура включала петлю: выход одного шага становился частью входа следующего. Сеть обрабатывала текст слово за словом, передавая «скрытое состояние» от шага к шагу — как эстафетную палочку, в которой накапливалась информация о прочитанном. Теоретически это позволяло помнить сколь угодно далёкий контекст. Практически — нет.
Проблема называлась «исчезающий градиент». Когда сеть учится, она корректирует свои параметры на основе ошибок. Ошиблась в предсказании — подправь веса, чтобы в следующий раз ошибиться меньше. Сигнал об ошибке должен пройти обратно через всю цепочку шагов, от конца предложения к началу. Но с каждым шагом сигнал ослабевает. Умножение на числа меньше единицы раз за разом приводит к тому, что сигнал затухает экспоненциально. К тому моменту, когда он доходит до начала длинного предложения, он практически исчез — превратился в шум, неотличимый от нуля.
Сеть не может научиться связям на большом расстоянии — сигнал просто не доходит. RNN помнили последние несколько слов отчётливо, а начало предложения оставалось в тумане. Это как пытаться услышать собеседника через длинную цепочку людей, играющих в испорченный телефон: к концу от исходного сообщения не остаётся почти ничего.
LSTM — долгая краткосрочная память — стали следующим костылём. Архитектура 1997 года, придуманная Сеппом Хохрайтером и Юргеном Шмидхубером, добавляла специальные механизмы: ворота, которые контролировали, что запомнить, что забыть, что передать дальше. Ворота входа решали, какая новая информация достойна сохранения. Ворота забывания определяли, что пора отбросить. Ворота выхода фильтровали то, что передавалось на следующий шаг. Это было инженерное решение биологически вдохновлённой проблемы: как построить избирательную память.
Бесплатный фрагмент закончился.
Купите книгу, чтобы продолжить чтение.