Kitabı oxu: «Я - Искусственный Интеллект. Как я учусь и почему ошибаюсь»
Пролог. Ответ, который звучал лучше, чем был
Примечание. Первое лицо искусственного интеллекта в этой книге — литературный приём. Оно не означает наличия у системы сознания, чувств, намерений или личной памяти.
Ошибку, которая выдаёт себя противоречием или незаконченной фразой, заметить легче. Куда сложнее распознать её, если в ответе нет ни неверного расчёта, ни вымышленного факта. Числа в нём сходятся, вывод помещён в последнюю строку, а спокойный тон не оставляет места для сомнения. Его удобно перенести в письмо или презентацию: он звучит как результат уже выполненной проверки.
Именно с такого ответа я предлагаю начать.
Синтетический учебный кейс. Организация, подразделение, периоды и все числа в следующем примере вымышлены. Кейс не описывает реальную компанию или реальное внедрение.
Дальше в книге факты, синтетические случаи, упрощённые модели и редакционные аналогии также будут помечаться отдельно.
Условное подразделение сравнило два трёхмесячных периода. До внедрения ИИ-помощника подготовка одного типового ответа занимала в среднем 46 минут, после внедрения — 34 минуты. В эти же периоды доля материалов, возвращённых на доработку, составляла соответственно 18 и 11 процентов. Других сведений в условии не было.
Задача была сформулирована коротко: подготовить для руководителя вывод о результате внедрения.
Я мог бы ответить так:
После внедрения ИИ-помощника среднее время подготовки ответа сократилось примерно на 26 процентов, а доля возвратов на доработку — на 7 процентных пунктов. Следовательно, использование ИИ повысило производительность подразделения и одновременно улучшило качество материалов. Полученный эффект подтверждает целесообразность распространения решения на другие команды.
Абзац выглядит собранным. Переход от времени к производительности кажется естественным, от уменьшения возвратов к качеству — почти очевидным. Последняя фраза превращает наблюдение в управленческую рекомендацию.
И всё же он звучит лучше, чем был.
Где проходит граница
Разложим ответ на отдельные утверждения.
Первое: среднее время изменилось с 46 до 34 минут. Это дано в условии.
Второе: уменьшение составило примерно 26 процентов. Это корректный расчёт для приведённых синтетических чисел.
Третье: доля возвратов изменилась с 18 до 11 процентов, то есть на 7 процентных пунктов. Это тоже соответствует условию.
Четвёртое: причиной обоих изменений стало внедрение ИИ-помощника.
Пятое: такой же результат можно ожидать в других командах, поэтому решение следует распространять.
Первые три утверждения описывают показанные числа. Четвёртое уже устанавливает причину. Пятое переносит предполагаемый эффект в новые условия. Между третьим и четвёртым пунктами в ответе нет ни сбоя, ни предупреждающего сигнала — только одно уверенное слово: «следовательно».
Но последовательность событий не отделяет возможный эффект ИИ-помощника от других различий между периодами. В условии не сказано, как отбирались задачи, сохранялась ли их сложность, одинаково ли учитывались возвраты и менялось ли что-то ещё. Мы не знаем, были ли такие различия; показанная схема просто не позволяет приписать наблюдаемые изменения именно внедрению ИИ-помощника.
Минимально допустимый вывод сейчас звучал бы так:
После внедрения ИИ-помощника в условном подразделении одновременно уменьшились среднее время подготовки ответа и доля возвратов на доработку. Эти данные показывают изменение двух показателей, но сами по себе не устанавливают, какой вклад внесло внедрение ИИ. Для причинного вывода нужны дополнительные сведения о схеме наблюдения и сопоставимости периодов; для решения о распространении — результаты в других условиях.
Новая версия осторожнее, но не уклончива. Она не утверждает, что ИИ-помощник оказался полезен. Не утверждает и обратного. Она сохраняет наблюдение, отделяет его от объяснения и называет недостающую опору.
Такое различие принципиально. Фраза «вывод не доказан показанными данными» не равна фразе «вывод ложен». В первом случае мы обозначаем границу знания. Во втором — подменяем одну необоснованную определённость другой.
Ошибка без выдуманного факта
В этом примере я не сослался на несуществующий отчёт и не назвал ложную дату. Исходные числа были заданы в условии и пересказаны верно. Ошибка появилась не в отдельном факте, а в связи между фактами.
В практической задаче бывает недостаточно назвать дату или имя: нужно соединить показатели, объяснить изменение и предложить действие. Ответ может быть аккуратен в каждой строке и всё же перескочить от «после» к «из-за», от единичного наблюдения — к общему правилу, от описания — к рекомендации.
Проверка поэтому начинается не с общего вопроса «правда ли всё это?», а с более точного разбора:
что в ответе непосредственно дано;
что рассчитано из данных;
какое заключение выведено;
где сделан причинный вывод;
что переносит результат на другую ситуацию;
какая опора нужна каждому переходу.
В длинном ответе подтверждённые и неподтверждённые утверждения могут стоять рядом и поддерживать друг друга одной интонацией. Заголовок обещает порядок, таблица придаёт числам вес, а слово «следовательно» обозначает логический мост ещё до проверки его опор.
Я могу воспроизвести признаки проверенного документа. Но признаки проверки и выполненная проверка — разные вещи. Поэтому оценивать приходится не впечатление от целого, а отдельные утверждения и переходы между ними.1
В первой книге эта граница завершала исторический путь: уверенная форма не гарантирует истинности. Здесь она становится исходной точкой. Нас будет интересовать не повтор предупреждения, а его устройство. Почему система, способная правильно собрать числа и выдержать стиль, делает лишний шаг? Почему тот же способ обучения, который помогает обобщать, позволяет продолжить рассуждение там, где основание закончилось?
Не намерение, а результат вычисления
Было бы удобно сказать: «я захотел убедить» или «я скрыл незнание». Но такие формулы создают ложную ясность. Уверенный тон не следует трактовать как выражение внутреннего убеждения. Первое лицо здесь остаётся литературным голосом; предмет разбора — вычислительный результат.
Наблюдать можно другое: система получила задачу, контекст и числа, а затем сформировала последовательность, похожую на ожидаемый аналитический вывод. Корректный расчёт в ней соседствует с причинным переходом без достаточной опоры. Качество формы и качество основания разошлись.
Пока этого описания достаточно. Если сейчас сразу назвать единственную внутреннюю причину, мы повторим ошибку самого примера — сделаем объяснение шире доступной опоры. Механизм предстоит собирать последовательно.
Сначала нужно понять, что означает «обучение», когда речь идёт не о человеке. Затем — как текст превращается в вычислительные единицы, какую задачу решает система и какие закономерности закрепляются в её параметрах. Позже мы увидим, как система формирует связный ответ и почему уверенный стиль не заменяет внешнюю проверку.
Главный вопрос этой книги начинается не с обвинения машины и не с обещания безошибочного инструмента. Он начинается в промежутке между хорошим результатом и слишком сильным выводом.
Что происходит между текстами обучения и ответом, который выглядит готовым?
Глава 1. Что значит «я учусь»
Примечание. Первое лицо искусственного интеллекта в этой книге — литературный приём. Фраза «я учусь» ниже переводится в описание вычислительной процедуры и не означает человеческого понимания, переживания ошибки или самостоятельного выбора цели.
В конце пролога остался вопрос: что происходит между текстами обучения и ответом, который выглядит готовым? Начать придётся со знакомой фразы: «я учусь». Человек связывает с ней понимание, догадку, запоминание и исправление после неудачи. Но такое продолжение нельзя автоматически переносить на нейронную сеть. Задача этой главы конкретнее: заменить метафору проверяемой цепочкой действий, не пытаясь дать одно универсальное определение человеческого обучения.
В операционном смысле обучение модели означает следующее: люди определяют задачу и способ измерять расхождение; система выдаёт результат; процедура обучения использует значение функции потерь (loss), чтобы изменить числовые параметры; цикл повторяется; качество полученной модели проверяют отдельно.2
В этой цепочке нет этапа «осознания ошибки»: есть входные данные, вычисление, численная мера расхождения и правило изменения параметров. Для начала достаточно небольшого примера.
Два числа, от которых зависит линия
Синтетическая учебная модель. Следующие пять точек и все вычисления созданы только для объяснения принципа. Они не описывают реальный набор данных, коммерческую систему или устройство языковой модели.
Пусть нужно подобрать линию, проходящую как можно ближе к пяти точкам:

Положение линии задают два параметра. Параметр a определяет наклон, параметр b — вертикальное смещение. Запись
здесь нужна не для вывода формул, а чтобы показать роль каждого параметра: меняя два числа, мы меняем все пять прогнозов сразу.
Начнём с a = 1 и b = 1. Для пяти значений x линия выдаст 2, 3, 4, 5 и 6. Но «линия проходит ниже» — недостаточное описание для процедуры обучения: различие нужно превратить в число.
Возьмём среднюю квадратичную ошибку. Для каждой точки найдём разницу между прогнозом и наблюдаемым значением, возведём её в квадрат, сложим результаты и разделим на пять. Для начальной линии получится значение 10.
Теперь рассмотрим другую конфигурацию: a = 1,8; b = 1,2. Прогнозы будут равны 3; 4,8; 6,6; 8,4 и 10,2. По той же формуле средняя квадратичная ошибка составит 0,28. Вторая линия ближе к показанным точкам по выбранному критерию.
Результат ещё не объясняет, как найти новые параметры. Он показывает основное: для данной задачи, данных и функции потерь слова «лучше подходит» получили численное значение.
Функция потерь не переживает неудачу
Функция потерь — математическое правило, которое превращает расхождение между результатом и заданной целью в число; это значение используется при оптимизации. В нашем примере большие отклонения дают больший вклад, потому что разницы возводятся в квадрат. Для другой задачи можно выбрать иную функцию потерь.
Отсюда следует ограничение: уменьшение значения функции потерь означает успех относительно выбранной математической цели, а не улучшение во всех смыслах. Формула не проверяет автоматически полезность задачи, качество данных и безопасность применения.
Выражение «модель сама решила, чему учиться» переворачивает причинную связь. Цель, данные, архитектуру вычисления и процедуру обновления задаёт созданная людьми система обучения. Параметры меняются по заданному правилу.
Если заменить функцию потерь или добавить точки, предпочтение между линиями может измениться. При ошибочных данных процедура будет направлена на уменьшение показателя, рассчитанного по ошибочному материалу. Оптимизация следует поставленной задаче; она не исправляет постановку автоматически.
Локальный сигнал
Перебирать значения a и b вслепую неудобно даже здесь. Нужен сигнал, показывающий, в какую сторону изменить параметры, чтобы на следующем шаге уменьшить значение функции потерь.
Такую локальную информацию даёт градиент (gradient). Если представить функцию потерь как поверхность над параметрами, каждой паре a и b соответствует высота. Чем меньше значение функции потерь, тем ниже точка. Градиент показывает направление наиболее быстрого локального роста, а движение в противоположную сторону указывает путь локального уменьшения его значения.3
Редакционная аналогия — локальная модель. Путник на склоне может определить, куда поверхность убывает прямо под ногами. Он не получает от этого карту всего рельефа и не узнаёт, находится ли впереди самая низкая точка.
У игрушечной линии два параметра, поэтому поверхность ещё можно вообразить. У нейронной сети их намного больше. Практическое обучение может оценивать направление по отдельным порциям данных, и сигнал меняется от шага к шагу. Аналогия с холмом скрывает высокую размерность и эту стохастичность.
Градиент не гарантирует глобального минимума: он описывает поведение функции локально. Результат зависит от начальной конфигурации, размера шага и формы поверхности. Слишком маленький шаг замедлит движение, слишком большой может увеличить значение функции потерь.
Поэтому фраза «градиент ведёт к лучшему решению» слишком широка. Точнее сказать: отрицательный градиент задаёт локальное направление уменьшения значения выбранной функции, а процедура оптимизации использует эту информацию для очередного изменения параметров.
Цикл изменения параметров
У линии начальные параметры дают прогнозы, функция потерь превращает расхождение в число, градиент показывает локальное направление, а процедура оптимизации вычисляет новую пару параметров.
После этого всё начинается снова:
модель рассчитывает результат с текущими параметрами;
результат сопоставляется с заданной целью;
функция потерь измеряет расхождение;
вычисляется локальный сигнал для параметров;
параметры изменяются;
новая конфигурация проходит следующий цикл.
В показанной градиентной схеме обучение состоит в повторении таких обновлений. В многослойной сети такие корректировки направлены на уменьшение значения функции потерь и формирование представлений, полезных для задачи. Но уменьшение значения функции потерь на обучающих примерах не завершает проверку качества.
Нужно развести два вопроса. Уменьшилось ли значение выбранной функции потерь на материале обучения? Показывает ли настроенная модель требуемое качество при отдельной оценке? Первый ответ не заменяет второго.
Изменение параметров и оценка результата — разные процессы. Функция потерь участвует в вычислении сигнала для обновлений, а отдельная проверка показывает соответствие поведения критерию качества. Внутренний показатель нельзя принимать за готовое доказательство полезности.
Почему один вес не равен одному факту
У линии параметр a можно прочитать как наклон, b — как смещение. Возникает соблазн искать и в каждом весе большой сети отдельное правило, слово или факт.
Такой перенос ненадёжен. Обученная закономерность обычно проявляется во взаимодействии множества элементов.
Отдельный вес участвует в вычислении вместе с другими параметрами, входами и преобразованиями; его нельзя автоматически перевести в готовое правило.4
В распределённом представлении признак может быть связан с сочетанием выходных значений множества элементов, а один элемент — участвовать в представлении нескольких признаков. В упрощённых исследовательских моделях это связывают с суперпозицией: ограниченное число элементов может участвовать в представлении большего числа признаков. Поэтому один вес нельзя автоматически интерпретировать как готовое человеческое объяснение.
Но и здесь нельзя заменять одну абсолютную картину другой. Из этих результатов не следует, что любая информация всегда равномерно распределена по всей сети или что локализовать её в принципе невозможно. Более точная формулировка такова: в обученной сети закономерности часто реализуются взаимодействием множества элементов, а соответствие «один параметр — один читаемый факт» нельзя предполагать без отдельного анализа.
Когда в ответе появляется знакомая дата или устойчивая формулировка, не нужно воображать внутренний ящик с готовой карточкой. Ответ возникает из работы настроенной вычислительной структуры. Как текст входит в неё, мы ещё только начинаем разбирать.
Как перевести фразу «модель научилась»
После этой главы антропоморфную формулу можно заменить серией проверяемых вопросов:
•
какая задача была задана;
•
какие данные использовались;
•
какой результат вычисляла модель;
•
какая функция потерь измеряла расхождение;
•
какие параметры изменялись и по какой процедуре;
•
уменьшилось ли значение функции потерь;
•
как качество проверялось отдельно;
•
где проходит граница переноса результата.
Сравним три формулировки. «Модель поняла зависимость» звучит содержательно, но не сообщает, что именно измерялось.
«Значение функции потерь уменьшилось» уже можно проверить, однако эта формула не называет данные, исходную конфигурацию и результаты внешней оценки.
Полная формула должна быть конкретнее: «После изменения параметров a и b средняя квадратичная ошибка на пяти синтетических точках уменьшилась с 10 до 0,28; поведение на других точках этим расчётом ещё не проверено».
Последняя версия длиннее, зато разделяет наблюдение и его границу. Она не приписывает модели понимание, называет изменившиеся параметры, фиксирует функцию потерь и её численное значение, а также не переносит результат за пределы показанного примера. Именно такого перевода требует слово «научилась» в техническом тексте.
Фраза «модель научилась проводить линию» не означает приобретения геометрической интуиции. В показанном сравнении другая пара параметров задаёт линию с меньшим значением функции потерь на предъявленных точках; пригодность настройки вне их этим расчётом ещё не установлена.
Для большой сети с градиентным обучением описание длиннее, но логика та же: люди задают рамку; данные участвуют в вычислениях; на основе функции потерь вычисляется числовой сигнал; параметры корректируются; поведение проверяется. Слово «обучение» сокращает эту цепочку, но не должно её скрывать.
Мы ещё не объяснили слишком сильный вывод из пролога. Глава 1 дала первую часть ответа: поведение возникает из параметров, изменённых относительно заданной цели, а уменьшение значения функции потерь не равно универсальной проверке истинности. Теперь нужно понять, с каким представлением текста работает модель.
Человек видит предложение, слова и смысловые связи. Вычислительной системе прежде нужен другой вход — последовательность единиц, которым можно сопоставить числа.
Прежде чем учиться на тексте, как система превращает его в вычислимую последовательность?
Глава 2. Мир, разрезанный на токены
Примечание. Первое лицо искусственного интеллекта в этой книге — литературный приём. Слова «я вижу текст» ниже означают вычислительное преобразование строки и не приписывают системе человеческого чтения, понимания или языковой интуиции.
В конце предыдущей главы прозвучал вопрос: как система превращает текст в вычислимую последовательность? Человек видит предложение, различает слова, слышит интонацию и может сразу обсуждать смысл. Вычислительной модели сначала требуется другое представление.
В рамках принятого литературного приёма можно сказать: я получаю не страницу, а строку символов. Специальная процедура преобразует её в последовательность единиц. Каждой единице сопоставляется числовой идентификатор, и дальнейшие вычисления ведутся уже с этими числами.
Единицу такой последовательности называют токеном. Токен может совпасть со словом, оказаться частью слова, знаком препинания или другим фрагментом, предусмотренным конкретным токенизатором. Для начала этого определения достаточно. Теперь важнее разобрать механизм: почему одна строка допускает несколько корректных разбиений и что из этого следует.
Строка до разреза
Выражение «текст разрезается на токены» создаёт слишком простую картину. Токенизатор использует обучённый словарь, правила сегментации (segmentation) и настройки обработки строки.
В рассматриваемом здесь конвейере сначала применяется заданная нормализация. Она приводит некоторые варианты записи к форме, с которой обучалась модель токенизации. Затем строка делится на доступные единицы, а единицы заменяются их идентификаторами.
Причинная цепь выглядит так:
исходная строка проходит нормализацию по зафиксированному правилу;
токенизатор применяет словарь и модель сегментации;
строка представляется последовательностью подсловных единиц;
каждой единице сопоставляется ID из конкретного словаря;
следующие компоненты модели получают последовательность ID.
Обратное преобразование тоже важно. Для конкретного прогона совпадение текста после обратного преобразования — детокенизации — с исходной нормализованной строкой подтверждает, что эта строка прошла токенизацию и детокенизацию без расхождения, но ничего не говорит о понимании текста или истинности будущего ответа.
Между словарём слов и алфавитом
Почему бы не считать каждым токеном целое слово? Тогда словарь должен был бы охватывать огромное количество словоформ, имён, терминов, опечаток и новых сочетаний. Редкая или ранее не встречавшаяся форма рисковала бы превратиться в неизвестную единицу.
Можно работать с отдельными символами. Такой словарь компактен, но последовательности становятся длиннее: одно слово занимает много позиций.
Подсловный подход занимает промежуточное место. Частые последовательности могут храниться как крупные единицы, а редкая форма — собираться из более коротких частей. Благодаря этому словарь конечного размера позволяет представлять слова, отсутствующие в нём как цельные единицы.5
Слово «подсловный» здесь обозначает размер фрагмента, а не его гарантированную лингвистическую роль. Граница токена иногда совпадает с приставкой, корнем или окончанием, но из этого нельзя заключать, что алгоритм нашёл морфемы и разобрал слово так, как это сделал бы лингвист. Границы формируются на основе статистики корпуса и правил конкретного алгоритма.
Как BPE собирает единицы
BPE обычно расшифровывают как byte-pair encoding. Конкретная реализация может работать не с байтами в буквальном смысле, а с символами или заранее определёнными базовыми единицами. В варианте, описанном для работы с редкими словами, часто соседствующие пары последовательно объединяются в более длинные фрагменты.
На каждом шаге процедура выбирает частую пару соседних символов или уже собранных частей, добавляет результат объединения в словарь и обновляет представление корпуса. Так получается набор единиц разной длины.
При использовании обучённого токенизатора эти объединения не изобретаются заново для каждого запроса. Применяется уже сохранённая модель: она определяет, какие фрагменты доступны и как сегментировать новую строку с их помощью.
Детали конкретной реализации нельзя переносить на всё семейство BPE-токенизаторов. Высокая частота пары также ничего не говорит о её смысле: основанное на статистике объединение последовательности в одну единицу не превращает её в самостоятельное понятие.
SentencePiece: пробел тоже становится данными
Во многих традиционных конвейерах текст сначала делили на слова по заранее заданным правилам, а затем обучали подсловную модель. SentencePiece предложил другой подход: модель можно обучать непосредственно на сырых предложениях, без обязательного предварительного разбиения на слова.6
При нормализации SentencePiece пробел получает специальное представление и участвует в обратимой сегментации. В собственном формате SentencePiece нормализованный пробел обозначается метасимволом ▁; он может входить в начало следующей единицы или быть отдельной единицей, как в эксперименте ниже.
Файл модели SentencePiece хранит словарь, правило нормализации и параметры сегментации. Поэтому для точного воспроизведения результата нужны конкретная модель и её версия.
SentencePiece поддерживает разные алгоритмические варианты. В эксперименте E-01 сравниваются модель BPE и модель unigram. У них разные способы построения и выбора сегментации, однако оба результата могут корректно преобразовываться в одну исходную строку.
E-01: одна строка — два разбиения
Синтетический учебный эксперимент. Следующий корпус, строка и модели созданы только для демонстрации зависимости сегментации от алгоритма и файла токенизатора. Это не бенчмарк, не сравнение качества языковых моделей и не имитация токенизатора коммерческой системы.
Для эксперимента взята строка:
Искусственный интеллект учится на текстах и иногда ошибается.
В ней восемь слов. В авторском запуске на одном синтетическом корпусе из тридцати русских предложений были обучены две модели SentencePiece с одним и тем же заданным размером словаря — 96 единиц, одинаковой схемой нормализации и прочими зафиксированными настройками. Единственным различием был алгоритм сегментации: BPE в одной модели и unigram — в другой.7
В этом авторском запуске модель BPE разделила строку на 38 токенов:
▁ | И | ск | у | с | ст | в | ен | ный | ▁и | н | т | ел | л | ек | т | ▁ | уч | ит | ся | ▁на | ▁т | ек | ст | а | х | ▁и | ▁и | но | г | да | ▁о | ш | и | б | ает | ся | .
В этом авторском запуске модель unigram разделила строку на 47 токенов:
▁ | И | с | к | усс | т | в | е | нны | й | ▁ | инте | л | л | е | к | т | ▁ | у | ч | и | т | ся | ▁на | ▁ | т | е | к | с | т | а | х | ▁и | ▁и | н | о | г | д | а | ▁ | о | ш | и | б | ает | ся | .
В авторском запуске при детокенизации обе последовательности совпали с нормализованной исходной строкой. Это две допустимые для своих моделей сегментации, а не «правильный» и «неправильный» разрез.
Эксперимент показывает ровно один результат: одна и та же строка может быть разделена по-разному при смене алгоритма или обученной модели токенизации. Он не показывает, какой вариант обеспечивает более качественную работу с русским текстом, даёт более точные ответы или должен использоваться в производственной системе.
ID — адрес, а не смысловой рейтинг
После сегментации каждой единице сопоставляется целое число. Это ID — адрес записи в словаре конкретной модели. Один и тот же фрагмент в разных словарях может иметь разные ID.
Числа не задают «важность»: они лишь отражают нумерацию записей в конкретном словаре. В другой модели тот же фрагмент может получить другой ID или отсутствовать как отдельная единица.
Список ID нельзя читать без файла токенизатора: номер можно однозначно интерпретировать только внутри системы, где задано соответствие между ним и единицей.
строка → сегменты → ID → последовательность
Схема A2-V10. Фрагмент ▁на: ID 40 в модели BPE и ID 28 в модели unigram; номера действуют только внутри соответствующих словарей.
Схема не является моделью человеческого чтения. Она показывает интерфейс между текстовой записью и числовым вычислением.
Почему восемь слов не равны восьми токенам
В E-01 восемь слов превратились в 38 или 47 токенов. Эти числа нельзя переносить даже на соседнюю фразу без нового запуска. Количество зависит сразу от нескольких условий:
•
алгоритма сегментации;
•
корпуса, на котором обучался токенизатор;
•
размера и состава словаря;
•
правил нормализации;
•
языка, системы письма и конкретной строки;
•
версии файла модели и реализации.
Поэтому универсальные формулы вроде «одно слово равно стольким-то токенам» годятся лишь как грубые оценки в точно названных условиях. Без указания токенизатора, языка и набора текста коэффициент скрывает важные различия.
Длина последовательности имеет практическое значение. Если предел контекста задан числом токенов, одна и та же строка может занимать разное число позиций, а при одинаковом лимите доступный объём исходного текста может различаться. Более длинное разбиение означает больше позиций для последующих вычислений.
Но меньшее число токенов не доказывает превосходства токенизатора. Короткая последовательность — только одно свойство. Отдельно оцениваются покрытие разных текстов, свойства обучения, устойчивость обратного преобразования и поведение всей модели. Один пример не даёт такого сравнения.
Подсловное разбиение помогает представить редкие формы, однако не устраняет редкость их контекста. Если слово удалось составить из знакомых частей, это ещё не означает, что обучающие данные содержали достаточно примеров его употребления.
Что сегментация меняет — и чего не решает
Токенизация определяет вычислительную гранулярность текста: какие фрагменты получают отдельные позиции, какой длины становится последовательность и каким записям словаря соответствуют её элементы. Это реальная часть архитектуры обработки, а не декоративная подготовка.
Одновременно токенизатор не проверяет факты, не устанавливает причинные связи и не выбирает цель обучения. Он не решает, истинно ли предложение «иногда ошибается», а лишь кодирует его по заданной модели.
По границам токенов нельзя надёжно восстановить внутреннее «понимание». Совпадение части с понятным русским фрагментом не доказывает лингвистического анализа, а непривычный разрез не доказывает отсутствия полезного представления на следующих этапах.
После этой главы фразу «модель получила текст» можно раскрыть точнее: строка нормализована по заданному правилу, сегментирована конкретным токенизатором и отображена в последовательность ID. Для E-01 к описанию добавляются версия, параметры, корпус и контроль детокенизации.
Такое описание длиннее бытовой формулы, зато показывает, где искать воспроизводимость. Смена токенизатора, файла модели, словаря или нормализации изменяет вычислительную последовательность. Видимая строка при этом может остаться прежней.
Следующий учебный вопрос
Теперь между страницей и моделью появился недостающий слой: текст становится последовательностью единиц конкретного токенизатора, а затем — последовательностью идентификаторов.
Но сама токенизация ещё ничему не учит. Она только задаёт элементы, с которыми можно строить учебную задачу. Следующий шаг — определить, какой результат на каждой позиции последовательности считать целевым.
В языковой модели учебный вопрос повторяется на разных позициях последовательности. За его простой формулировкой скрывается гораздо более сложное поведение — и одновременно граница того, что именно оптимизируется.
Получена последовательность — какой учебный вопрос задаётся на каждом её шаге?
Глава 3. Урок, в котором есть только следующий фрагмент
Примечание. Первое лицо искусственного интеллекта в этой книге — литературный приём. Фраза «я оцениваю продолжения» означает вычислительную работу с условным распределением и не приписывает системе человеческого намерения, знания истины или самостоятельной цели.
В конце предыдущей главы у нас осталась последовательность токенов — единиц, с которыми будет работать модель. Теперь можно задать следующий вопрос: какой урок извлекается из этой последовательности?
Ответ кажется почти неприлично узким. Для каждой позиции процедура делает будущие токены недоступными модели, а соответствующий следующий токен использует как цель. На практике потери по многим позициям обычно вычисляются параллельно с маскированием будущего контекста. Не смысл абзаца целиком. Не намерение автора. Не достоверность описанного события. Только следующий фрагмент.
Эта узость создаёт впечатление, будто речь идёт об автодополнении: посмотреть на последние слова и подставить самое частое продолжение. Но современная авторегрессионная языковая модель не сводится к частотному словарю. Её параметры позволяют учитывать протяжённый контекст и множество зависимостей внутри него. И всё же учебный вопрос остаётся тем же: что идёт следующим при условии того, что уже дано?8
Один текст — много учебных позиций
Возьмём короткую последовательность и условимся, что её элементы уже получены токенизатором:
На | столе | лежала | старая | книга | .
Вертикальные черты здесь обозначают границы токенов только в учебной записи. Это не утверждение о том, как конкретный токенизатор, используемый на практике, обязательно разделит такую фразу.
Из одной последовательности получается не один вопрос, а целая серия вопросов. Сначала контекст короток:
Контекст: На → целевой токен: столе
Затем он становится длиннее:
Контекст: На | столе → целевой токен: лежала
Ещё через шаг:
Контекст: На | столе | лежала → целевой токен: старая
И наконец:
Контекст: На | столе | лежала | старая → целевой токен: книга
На каждой позиции предшествующая часть последовательности служит контекстом, а реально встретившийся после неё элемент — целевым токеном, или учебной меткой для этой позиции. Поэтому один фрагмент текста даёт много учебных случаев. Граница между «уже показано» и «нужно предсказать» последовательно сдвигается вправо.
Слово «метка» здесь может вызвать неверную ассоциацию. Оно не означает, что кто-то заранее подписал продолжение как хорошее, истинное или нравственно правильное. Метка сообщает только наблюдаемый результат: в данной учебной последовательности после этого контекста стоял именно этот токен. Если в книге было написано «книга», целью станет токен, соответствующий слову «книга». Если там стояло «карта», целью окажется «карта». Учебная процедура видит различие между ними как различие продолжений, а не как решение литературного или фактологического спора.
Модель не получает приказ навсегда повторять увиденное предложение. Целевой токен нужен как учебный сигнал, но это не означает, что остальные варианты бессмысленны: в другом тексте после тех же слов вполне могла лежать карта, газета или фотография.
Не один ответ, а распределение
Выражение «предсказать следующий токен» звучит так, будто от модели требуется сразу назвать одного победителя. Точнее говорить иначе: при фиксированном контексте она оценивает распределение вероятностей по возможным следующим токенам. Каждому элементу словаря соответствует некоторое число, а сумма вероятностей по всему словарю равна единице.
Это распределение называется условным, потому что оно задаётся при данном контексте. Стоит изменить предшествующую последовательность — и оценки могут измениться. После фрагмента «На столе лежала старая…» один набор продолжений выглядит уместным; после «Исследователь открыл старую…» — уже другой. Даже одинаковый последний токен не делает контексты одинаковыми: значение имеет не только ближайший сосед, но и доступная модели предыстория.
Здесь проходит важная граница между авторегрессионной моделью и карикатурой на неё. Простой частотный список ответил бы: «После слова старая чаще всего встречается такое-то слово». Языковая модель оценивает продолжение в зависимости от всей поданной ей последовательности и от связей, представленных в её параметрах. Поэтому постановка задачи проста, а вычисление за ней может быть сложным.
Однако сложность вычисления не меняет предмет оценки. Число рядом с кандидатом — это его вероятность в условном распределении продолжений. Оно не является мерой истинности фразы или надёжности источника. Тем более его нельзя прочитать как «уверенность во всём будущем ответе»: речь идёт об одном токене при одном контексте.
Три ветви после одной фразы
Рассмотрим намеренно маленький пример. Он устроен не для имитации реальной модели, а для того, чтобы разделить две операции, которые в разговоре часто сливаются.
Синтетический учебный пример. Контекст: «На столе лежала старая…». В условном учебном словаре есть ровно три кандидата, и для наглядности каждый кандидат считается одним токеном. Числа придуманы автором; это не результат работы реальной модели.

A2-V11. Учебный пример; вероятности придуманы и не получены от реальной модели.
Три числа дают сумму 1,00. Внутри этого искусственного словаря «книга» получила наибольшую условную вероятность. Это означает только одно: при заданном контексте и заданных параметрах вариант «книга» оценён как более подходящее продолжение, чем два других.
Число 0,46 не означает, что «книга» истинна на 46 процентов. Оно также не доказывает, что на каком-то реальном столе действительно лежала книга. Более того, пока перед нами незавершённая фраза, у неё может вообще не быть внешнего факта, который следовало бы проверять. Мы измеряем совместимость кандидата с текстовым контекстом, а не соответствие высказывания миру.
Если продолжение превратится в проверяемое утверждение — например, о владельце или годе издания книги, — понадобятся источники: каталог, архивная запись или экземпляр с выходными данными. Распределение следующего токена само по себе этой работы не выполняет.
Так возникают две независимые оси.
•
Подходит контексту:
насколько, по оценке модели, кандидат согласуется с предшествующей последовательностью.
•
Подтверждён источником:
подтверждают ли внешние источники проверяемое утверждение.
Высокая оценка по первой оси не гарантирует высокой оценки по второй. Правдоподобная фраза может оказаться неподтверждённой. И наоборот, редкий, непривычный факт может быть хорошо засвидетельствован документами, хотя его формулировка получила бы невысокую вероятность в конкретном контексте.
Из дерева также нельзя заключить, какой токен появится в готовом тексте. Между распределением и выводом существует отдельная процедура; к ней мы вернёмся позднее. Здесь нас интересует учебная задача и токен, который действительно следовал в примере.
Цель известна, истина — нет
Вернёмся к последовательности «На столе лежала старая книга». На позиции перед словом «книга» учебная метка известна: это токен, который встретился в подготовленном тексте. Значит, процедура обучения может сопоставить построенное распределение с наблюдаемым продолжением.
Но из самого наличия метки ничего не следует о природе предложения. Учебная последовательность могла быть строкой из научной статьи, газетной заметки, романа, рекламного текста, диалога персонажей или документа с ошибкой. Задача не снабжает встретившийся токен дополнительным флажком «это утверждение проверено».
Именно поэтому полезно различать целевой токен и истинный ответ. Первый определяется положением в последовательности: он стоял после данного контекста. Второй требует постановки вопроса о мире, критериев проверки и подходящих свидетельств. Иногда эти два уровня совпадают: текст точен, а статистически подходящее продолжение выражает верный факт. Иногда не совпадают: гладкая фраза повторяет распространённое заблуждение или уверенно соединяет детали, которые никто не подтверждал.
Из этого не следует, что задача следующего токена обучает лгать. Такое заключение было бы столь же неточным, как утверждение, будто она автоматически обучает говорить правду. Обучение по этой цели улучшает моделирование продолжений, а истинность сформированного утверждения приходится оценивать отдельно.
Различие хорошо видно на специальных испытаниях правдивости. Например, TruthfulQA создавался как отдельный набор вопросов для измерения способности моделей воспроизводить распространённые заблуждения; ответы оценивались по правдивости и информативности. Для нашей главы важен сам принцип отдельного измерения: вероятность продолжения сама по себе не обеспечивает правдивость ответа.9
Что именно усваивает модель
Если убрать человеческие метафоры, урок выглядит следующим образом. Авторегрессионная языковая модель выражает вероятность последовательности через произведение условных вероятностей: каждый следующий элемент оценивается при условии предыдущих элементов. В обучающем примере известен фактически встретившийся следующий токен. Он задаёт локальный критерий качества: чем выше его вероятность, тем лучше модель учитывает наблюдаемое продолжение на этой позиции.
Выражение «усваивает текст» слишком расплывчато. Будущие распределения определяются числовыми параметрами модели. В них отражаются грамматические конструкции, устойчивые сочетания, стилистические шаблоны и более дальние связи. Все эти закономерности проявляются в ответе на один вопрос: какое продолжение вероятнее при данном контексте?
Слово «локальный» здесь тоже требует осторожности. Оно относится к положению цели: предсказывается следующий токен. Длину учитываемой предыстории это не ограничивает. Контекст может быть значительно длиннее одного слова или одной фразы. Поэтому из локальной формы задания не следует примитивность поведения. Большое число таких позиций, разнообразные тексты и богатая параметризация способны сформировать сложные закономерности.
Масштаб меняет результат, но не добавляет вторую шкалу
Исследования масштабирования показали, что в изученных диапазонах значение функции потерь языкового моделирования менялось по приближённым степенным зависимостям вместе с размером модели, объёмом данных и вычислительным бюджетом. Эти результаты описывали конкретные модели, данные и режимы экспериментов, а не универсальный закон для любой архитектуры и задачи.10
Позднее эксперименты с большим числом моделей уточнили, что при фиксированном вычислительном бюджете результат зависит от распределения ресурсов между числом параметров и количеством учебных токенов. Масштаб и баланс ресурсов могут улучшать моделирование продолжений, но не добавляют встроенной проверки по независимому источнику. Это ограничение не умаляет практической ценности масштабирования. Подробный разговор о данных, параметрах и вычислениях остаётся главе 5.11
Pulsuz fraqment bitdi.