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

Книга: «Внутри AI. Как это работает»

Книга: «Внутри AI. Как это работает» - 1

Привет, Хаброжители! Я хочу рассказать вам о новинке издательства Spint Book.

Пока все вокруг восторженно пишут «ChatGPT изменил мир», большинство разработчиков по-прежнему плохо понимают, что происходит под капотом современных моделей. Мы используем API, запускаем fine-tuning и обучаем LoRA, но при этом часто остаёмся в роли «пользователей волшебства».

«Внутри AI. Как это работает» Рональда Т. Кнойзеля  от издательства Sprint Book как раз закрывает этот пробел.

Это не очередное практическое руководство по промпт-инжинирингу и не математический трактат с тоннами формул. Автор поставил себе амбициозную задачу — объяснить современный искусственный интеллект [1] на концептуальном уровне, так, чтобы программист, data scientist или просто технически подкованный человек смог понять логику [2] происходящего без PhD по машинному обучению [3].

Что внутри:

Книга последовательно проводит читателя по всей эволюционной цепочке от классического машинного обучения -> через нейронные сети и свёрточные архитектуры -> к генеративным моделям (GAN и диффузионные модели) -> и, наконец, к большим языковым моделям — тому самому «настоящему AI».

«Внутри AI» можно поставить на полку между «Grokking Deep Learning» и «Deep Learning» Гудфеллоу. Она написано просто, честно и без лишней воды.

Издательство Sprint Book продолжает свою миссию — переводить на русский язык качественные англоязычные IT-книги, которые действительно стоит читать. Русскоязычное издание вышло в 2026 году. Если вы хотите наконец перестать воспринимать современный AI как чёрный ящик — это одна из лучших отправных точек на сегодняшний день.

Отрывок из главы 7

Мы видели, что LLM способны писать рассказы, программировать и даже рисовать картинки в LaTeX. Но достаточно ли они креативны, чтобы создавать хорошие карикатуры? Склонность этих моделей галлюцинировать (генерировать поддельные или воображаемые факты) в своих ответах — эту тему мы обсудим в главе 8 — доставляет определенное беспокойство во многих областях, но создание художественных произведений к ним не относится. Далее мы попробуем предложить модели описать новую карикатуру, отправив следующий промпт:

Опиши черно-белую карикатуру в стиле Гари Ларсона о коровах и инопланетянах и придумай подпись.

Гари Ларсон (Gary Larson) — создатель необычной серии комиксов The Far Side, популярной в 1980-х и 1990-х годах. Вот ответ GPT-4:

Описание карикатуры: в мирной сельской местности две коровы пасутся на лугу, а недалеко от них в воздухе зависло НЛО с открытым люком. Одна корова носит маску инопланетянина с большими глазами и длинной тонкой шеей, в то время как другая смотрит на нее с удивлением. Инопланетяне, высунувшиеся из НЛО, выглядят озадаченными и, похоже, сравнивают изображение обычной коровы с коровой в маске инопланетянина. Подпись: «Милдред, не думаю, что они клюнут на это».

Если вы знакомы с творчеством Гари Ларсона, то в описании и подписи заметите отчетливый дух The Far Side.

Возможность автоматически генерировать описания и подписи к карикатурам, а также соответствующие изображения для последующей передачи в диффузионную модель вместе с текстом открывает совершенно новые горизонты. Такое сочетание LLM и диффузионных моделей позволило реализовать мечту американского карикатуриста Х. Т. Вебстера (H. T. Webster), изображенную им в 1923 году (рис. 7.2).

Рис. 7.2. Пророческая карикатура 1923 года

Рис. 7.2. Пророческая карикатура 1923 года

Большие языковые модели впечатляют своими возможностями. Как же они работают? Давайте попробуем найти ответ.


Начну с конца, с нескольких комментариев из заключения в статье Sparks of Artificial General Intelligence, упомянутой выше:

Как [GPT-4] рассуждает, планирует и творит? Почему она проявляет такой универсальный и гибкий интеллект, если в своей основе является лишь комбинацией простых алгоритмических компонентов — градиентного спуска и масштабных трансформеров с чрезвычайно большими объемами данных? Эти вопросы составляют часть загадки и очарования моделей LLM, которые бросают вызов нашему пониманию обучения и познания, подогревают наше любопытство и мотивируют на более глубокие исследования.

Эта цитата затрагивает вопросы, на которые пока нет убедительных ответов. Проще говоря, исследователи не знают, почему большие языковые модели, такие как GPT-4, работают именно так, а не иначе. В настоящее время отсутствуют доказанные теории — есть лишь гипотезы, которые еще предстоит доказать и подтвердить. Поэтому мы можем обсуждать только то, что являет собой большая языковая модель, но не ее поведение [4].

Большие языковые модели используют новый класс нейронных сетей — трансформеры, поэтому начнем с них. (Аббревиатура GPT расшифровывается как generative pretrained transformer — генеративный, предварительно обученный трансформер.) Архитектура трансформера впервые была описана в 2017 году в поворотной статье Attention Is All You Need, написанной исследователями из Google: Ашишом Васвани (Ashish Vaswani) и его коллегами. По состоянию на март 2023 года эта статья была процитирована более 70 000 раз.

Традиционно для обработки последовательностей (к каковым относятся и предложения) использовались рекуррентные нейронные сети, которые передают свои выходные данные обратно на вход вместе со следующими входными данными из последовательности. Такая модель обработки текста, когда выходные данные передаются на вход вместе со следующим токеном, создает в сети некое подобие памяти [5]. Действительно, ранние системы перевода с глубоким обучением использовали рекуррентные сети. Однако у них весьма ограниченный объем памяти и присутствует сложность в обучении, что ограничивает сферы применения.

Сети-трансформеры используют другой подход: они принимают весь входной поток сразу и обрабатывают его параллельно. Трансформеры обычно включают в себя кодировщика и декодировщика. Кодировщик запоминает представления и ассоциации [6] между частями входного потока (например, предложениями), а декодировщик использует эти ассоциации для создания выходных данных (например, новых предложений).

Большие языковые модели, такие как GPT, обходятся без кодировщика и обучаются необходимому представлению без учителя, используя огромный набор текстовых данных. После предварительной подготовки декодировщик трансформера генерирует текст в ответ на запрос ввода.

Входными данными для моделей, подобных GPT-4, является текстовая последовательность, состоящая из слов. Модель разбивает ее на блоки, называемые токенами. Токен может быть словом, частью слова или даже отдельным символом. Цель предварительного обучения — отображение токенов в многомерное пространство векторных представлений (вложений) и сопоставление каждого токена с вектором, который можно рассматривать как точку в этом пространстве.

Полученные векторные представления токенов фиксируют сложные взаимосвязи между ними, благодаря чему токены, близкие по смыслу, оказываются в этом пространстве ближе друг к другу, чем семантически далекие. Например, как показано на рис. 7.3, после предварительного обучения отображение (контекстное кодирование) поместит слово «собака» ближе к слову «лиса», чем к слову «консервныйнож». Пространство векторных представлений имеет много измерений, намного больше двух, показанных на рис. 7.3, но суть от этого не меняется.

Рис. 7.3. Контекстное кодирование в пространстве векторных представлений

Рис. 7.3. Контекстное кодирование в пространстве векторных представлений

Контекстное кодирование обучается во время предварительного обучения и заставляет модель предсказывать следующий токен на основе всех ранее полученных. Фактически если на вход передать текст «розы красные», то во время предварительного обучения модели будет предложено предсказать следующий токен после «розы». Если она предскажет не «красные», то применяется функция потерь и обратное распространение ошибки [7] для обновления своих весов, то есть выполняется шаг градиентного спуска после подходящего усреднения ошибки по мини-пакету. Несмотря на все свои возможности, большие языковые модели обучаются так же, как и другие нейронные сети.

Предварительное обучение позволяет модели изучить язык, включая грамматику и синтаксис, а также, по-видимому, приобрести существенные знания о мире, чтобы реализовать новые способности, которые перевернули сферу AI с ног на голову.

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

В частности, в процессе прогнозирования модели типа GPT используют функцию внимания, чтобы оценить важность различных токенов во входной последовательности и тем самым зафиксировать взаимосвязи между ними. Это основное отличие модели-трансформера от более старых рекуррентных нейронных сетей. Трансформер может обращать внимание на различные части входной последовательности, что позволяет ему выявлять и использовать взаимосвязи между токенами, даже если во входной последовательности они находятся далеко друг от друга.

При использовании в режиме чата модели LLM создают иллюзию диалога, хотя на самом деле каждый новый запрос пользователя передается модели вместе со всем предыдущим текстом (запросами пользователя и ответами модели). Модели-трансформеры имеют фиксированную ширину входных данных (контекстное окно), которая в настоящее время составляет примерно 4000 токенов для GPT-3.5 и около 32 000 для GPT-4. Большое окно ввода позволяет области внимания модели возвращаться к элементам, встречавшимся в начале входных данных, что недоступно рекуррентным моделям.

Большие языковые модели готовы к использованию после предварительного обучения, если это необходимо, но многие приложения сначала настраивают их, применяя данные, характерные для предметной области. Для универсальных моделей, таких как GPT-4, тонкая настройка, вероятно, включала этап, известный как обучение с подкреплением [8] на основе обратной связи с человеком (reinforcement learning from human feedback, RLHF). В этом случае модель дополнительно обучается на обратной связи от реальных людей, чтобы приводить свою реакцию [9] в соответствие с человеческими ценностями и ожиданиями общества.

Это совершенно необходимо, потому что LLM не являются сознательными сущностями и не могут понимать особенности человеческого общества с его многочисленными правилами. Например, несогласованные LLM будут возвращать пошаговые инструкции по изготовлению того, на что законодательство накладывает ограничения, например, как изготавливать наркотики [10] или бомбы. В статье Sparks приведено несколько подобных примеров выходных данных, сгенерированных моделью GPT-4 до этапа RLHF, в ходе которого она была согласована с общественными ожиданиями.

Модель Alpaca с открытым исходным кодом, созданная в Стэнфордском университете, основана на LLaMa — большой языковой модели компании Meta. На момент написания этих строк Alpaca еще не прошла процесс унификации и будет отвечать на вопросы, на которые GPT и другие коммерческие LLM отвечать отказываются.

Вывод: согласование абсолютно необходимо, потому что приводит эффективные языковые модели в соответствие с человеческими ценностями и общественными нормами.


Замечательным свойством LLM является их способность к контекстному обучению. Оно подразумевает обучение модели на лету на основе поступающей информации без изменения ее весов. Контекстное обучение отличается от тонкой настройки. При тонкой настройке ранее обученная модель адаптируется к задаче путем обновления весов с использованием новых обучающих данных. Контекстное обучение добавляет новую информацию в LLM в рамках задания, сохраняя веса модели неизменными.

Обзор литературы по моделям LLM неизбежно приводит к терминам «обучение без ознакомления» (zero-shot), «обучение на одном примере» (one-shot) и «обучение на нескольких примерах» (few-shot), каждый из которых относится к контекстному обучению, определяемому количеством предоставляемых примеров. Традиционные обучающие наборы, как мы уже знаем, включают от сотен до миллионов примеров. Контекстное обучение ближе к тому, что делает человек: освоение задачи по контексту на основе не более нескольких примеров.

Обучение «без ознакомления» подразумевает использование LLM без предоставления примеров, то есть «из коробки». Аналогично обучение «на одном примере» предполагает использование одного примера, а обучение на «нескольких примерах» — нескольких (скажем, трех-пяти).

Вероятным источником способности LLM к контекстному обучению является механизм внимания, встроенный в архитектуру трансформера. Он позволяет сети фокусироваться на различных входных токенах при выборе следующего токена для вывода. Обратите внимание, что я сказал «вероятным». В настоящее время не совсем ясно, как LLM реализуют контекстное обучение.

В качестве примера рассмотрим следующее взаимодействие с GPT-4, где строки, выделенные курсивом, — это мои промпты:

«яблоко 4» => я люблю красные яблоки. А что такое «банан 3»?

Похоже, вы предлагаете схему с использованием цифр и фруктов. Вы упомянули «яблоко 4» и выразили свою любовь к красным яблокам, поэтому, следуя шаблону, я могу связать «банан 3» с утверждением, связанным с бананами. Вот пример:

«банан 3» => я люблю есть спелые бананы.

Правило: <слово> <длина> подразумевает предложение, состоящее из <длина> слов, в котором используется <слово>. Что такое «банан 3»?

Если использовать предоставленное вами правило, то «банан 3» подразумевает предложение из 3 слов, одно из которых «банан». Вот пример:

Бананы очень вкусные.

«огурец 4», «дуриан 5», «огурец 6»

Следуя правилу, которое вы дали, я составлю предложения заданной длины и с указанным словом:

Огурец 4: огурцы имеют освежающий вкус [11].

Дуриан 5: дуриан имеет уникальный резкий запах [12].

Огурец 6: я предпочитаю свежие огурцы в салате.

Мой первый промпт был не слишком очевидным. Полагаю, что большинство людей поймут правило по одному этому примеру, но первоначальное предположение GPT-4 было неверным. Второй промпт сформулировал общее правило, которого оказалось достаточно, чтобы сеть поняла поставленную задачу и применила правило в других обстоятельствах. В примере с дурианом шесть слов вместо пяти, но это, скорее всего, следствие трудностей со счетом, которые испытывают LLM. Контекстное обучение научило GPT-4 использовать правило, не изменяя весовых коэффициентов.

Эта книга об искусственном интеллекте, и мы приложили немало усилий, чтобы понять, как работают модели машинного обучения. Но сможет ли GPT-4 использовать контекстное обучение для создания другой модели и ее применения? Давайте выясним это на примере, воспользовавшись набором данных с размерами ирисов из главы 1.

В первой попытке я передал модели GPT-4 набор данных, содержащий 100 образцов с тремя признаками ирисов в каждом, предварив его вопросом: «Вот набор данных с тремя признаками». К моему удивлению, GPT-4 сразу распознала его как выборку из знаменитого набора данных об ирисах, даже притом что мой вариант содержал лишь 100 образцов из 150 и каждый из них включал три признака из четырех. Поэтому я изменил порядок признаков в образцах, и этого оказалось достаточно, чтобы GPT-4 сочла набор данных новым.

Затем я передал соответствующие метки из обучающего набора в GPT-4, и она поняла, что они связаны с набором векторов признаков, который я предоставил первым.

Наконец, я передал в GPT-4 контрольный набор данных из 21 образца без меток, попросил ее обучить модель трех ближайших соседей и применить ее к контрольному набору. Я сформировал контрольный набор так, чтобы каждый из трех классов встречался ровно семь раз, обеспечив его сбалансированность. Вот мой промпт:

Используй набор данных и метки для обучения модели трех ближайших соседей.
Затем примени модель к этим неизвестным образцам:
(список образцов)
Покажи мне только предсказанные метки. Не показывай мне код.

GPT-4 вывела в ответ список меток классов:

Я обучила модель трех ближайших соседей, используя предоставленные набор данных и метки. Вот прогнозируемые метки классов для неизвестных образцов: [2,2,1,1,1,1,0,2,0,0,1,0,1,0,0,0,2,1,2,1,2]

Насколько хорошо сработала новая обученная модель? Вот фактические метки классов из контрольного набора:

[2,1,1,1,1,1,0,2,0,0,2,0,2,0,0,0,2,1,2,1,2]

Означает ли это, что контекстная классификация GPT-4 была корректна на 85 %? Существуют три класса, поэтому случайное угадывание будет верным примерно один раз из трех, или в 33 % случаев. Следовательно, GPT-4 выполнила какие-то действия с набором данных, чтобы получить заданные метки классов.

Но что? Чтобы узнать, я отправил вопрос:

Расскажи, как ты получила набор меток для неизвестных образцов. Код не показывай.

Вот ее ответ:

Чтобы получить набор меток для неизвестных образцов, я выполнила следующие шаги. Подготовила данные: я использовала предоставленный набор данных, содержащий 100 образцов с тремя признаками в каждом и соответствующими им метками классов.

  1. Обучила модель трех ближайших соседей — классификатор трех ближайших соседей (k-NN), используя предоставленный набор данных и метки. Модель изучила взаимосвязи между признаками и метками классов без явного построения модели, полагаясь на сходство образцов в пространстве признаков.

  2. Применила модель к неизвестным образцам: я передала модели 21 неизвестный образец с тремя признаками в каждом.

  3. Предсказание меток классов: модель k-NN предсказала метки классов для каждого из неизвестных образцов, найдя три ближайших соседа (то есть три обучающих образца с наиболее схожими значениями признаков) и присвоив неизвестному образцу наиболее распространенную метку класса среди этих соседей.

Ответ GPT-4 заставил меня задуматься: может быть, она использовала какую-то внешнюю программу для построения и обучения модели? Поэтому я спросил:

Использовала ли ты внешнюю программу для обучения модели трех ближайших соседей или сама сымитировала работу модели трех ближайших соседей?

Она ответила:

Как большая языковая модель, я не могу напрямую выполнять код или использовать внешние программы. Однако я могу смоделировать работу модели трех ближайших соседей и описать этот процесс, что я и сделала в предыдущем ответе. Я описала шаги, которые необходимо выполнить для обучения модели трех ближайших соседей с использованием предоставленного набора данных и меток, а затем применить ее для прогнозирования меток классов для неизвестных образцов.

Эта замечательная, неожиданно возникшая способность вызывает вопрос: откуда она взялась?


Возможности больших языковых моделей, таких как GPT-4, не были задуманы изначально, это счастливая случайность [13], как сказал бы известный преподаватель живописи. Так что же в данных, обучении и архитектуре позволяет им делать то, на что они способны? Как уже упоминалось, никто пока не знает наверняка, но мы можем строить некоторые предположения.

Большие языковые модели обучаются на обширном корпусе текстов, сгенерированных человеком. Текст отражает особенности использования языка людьми — его грамматику и стиль. Изначальной целью создания LLM было изучение особенностей использования языка человеком и предсказание правильного (наилучшего) выходного токена в процессе генерации. Увеличение емкости модели (путем добавления узлов и/или слоев, то есть наращивания количества весов) улучшает качество предсказаний. Я наблюдал это, экспериментируя с моделями Alpaca, насчитывающими 7, 13 и 30 миллиардов параметров. В качестве примера все три модели получили следующее задание:

Расскажи мне историю о единорогах и трагедии человечества.

Вот первые абзацы, сгенерированные каждой из них. Каждая последующая более крупная модель создавала более точный и сложный текст, чем предыдущая.

7 миллиардов

Давным-давно жила единорожка по имени Хоуп. Она жила в зачарованном лесу, полном волшебных существ, таких как феи и драконы. Мать благословила ее крыльями, благодаря которым она могла взлететь в любой момент и избежать ловушки. Но однажды, когда взошло солнце, произошло нечто, изменившее жизнь Хоуп: в их мир пришел человек.

13 миллиардов

Давным-давно в зачарованном лесу жила прекрасная единорожка со своими друзьями — другими волшебными существами — феями и эльфами. Но однажды она встретила юношу из другого мира, который называл себя «Человеком». Он пришел в страну магии в поисках приключений. Единорожка без памяти влюбилась, но она не могла рассчитывать на ответное чувство, потому что человек никогда не сможет по-настоящему понять ее и разделить свою жизнь с той, которая жила совсем иначе.

30 миллиардов

Когда-то давно существовало волшебное королевство, где единороги свободно бродили в своей естественной среде обитания. Люди, жившие здесь, были счастливы соседствовать с этими величественными созданиями; они приносили радость, куда бы они ни шли, и помогали защищать землю от любых опасностей, которые могли возникнуть.

Ни одна из моделей не показала выдающихся результатов, но субъективно мы можем оценить работу каждой более крупной модели эффективнее предыдущей. Ни одна из них, похоже, не поняла часть подсказки о «трагедии человеческого существования».

Для сравнения приведу первый абзац ответа GPT-4:

Давным-давно, в мире, где магия была реальностью, а единороги бродили свободно, существовало королевство, наполненное миром и процветанием. Это мистическое королевство называлось Элизиумом, и там люди жили с единорогами в полной гармонии. Единороги, с их рогами, переливающимися всеми цветами радуги, и неземной красотой, были хранителями этой земли, и их присутствие создавало ауру очарования, которая облагораживала каждого, кто там жил.

GPT-4 сгенерировала довольно длинный и подробный сюжет. Она не придумала новых названий для персонажей и мест, например Элизиума, но, похоже, поняла суть задания. Вот последний абзац:

Трагедия человеческого существования продолжала тревожить живущих на протяжении веков, но не менее сильны были надежда и любовь, которые Эйра проявила в последние мгновения своей жизни. Эта любовь победила время и смерть, вдохновляя жителей Элизиума никогда не забывать [14] о волшебстве и чуде, которые когда-то объединяли людей и единорогов. И пока история Эйры, Лисандра и их невероятной жертвы передавалась из поколения в поколение, дух Элизиума оставался живым, свидетельствуя о силе любви, дружбы и нерушимой связи между двумя мирами.

В истории GPT-4 Эйра (человек) и Лисандр (единорог) влюбляются друг в друга, и Эйра должна пожертвовать собой, чтобы помешать злому колдуну уничтожить их землю. Очевидно, что LLM большего размера лучше владеют языком, чем более простые модели.

Модель-трансформер генерирует выходные токены, выбирая их из распределения вероятностей. Представьте себе бросание игральной кости, чтобы получить число от одного до шести, где вероятность выпадения единицы не равна вероятности выпадения шестерки. Распределение формируется в процессе предварительного обучения.

С течением времени и увеличением мощности LLM был достигнут некий порог, после которого стали появляться и совершенствоваться неожиданные способности. Я думаю, что преодоление этого порога позволило моделям освоить многомерное вероятностное представление не только грамматики и стиля, но и мира в целом, включая контекстные связи и имитации. Другими словами, изучение закономерностей выбора следующего наилучшего токена потребовало эволюции способностей, связанных с механизмом внимания модели и встроенными нейронными сетями прямого распространения. Опять же, это была счастливая случайность, что архитектура трансформера развила такие возможности, поскольку они не были запланированы. Это говорит о том, что мы можем ожидать еще больших успехов с появлением более продвинутых архитектур трансформеров, разработанных для повышения мощности неожиданно появляющихся навыков LLM.

Книга: «Внутри AI. Как это работает» - 4

О научном редакторе русскоязычного издания

Дмитрий Бардин — руководитель группы разработки инфраструктурных продуктов «Кинопоиск», архитектор решений, один из авторов курсов «Архитектор ПО» и «Микросервисная архитектура» от «Яндекс Практикума». В прошлом — руководитель службы продуктовой разработки и ресурс менеджер. Опыт [15] в ИТ — более 15 лет.


Приобрести книгу «Внутри AI. Как это работает» можно на:

Автор: sprintbook

Источник [19]


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

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

URLs in this post:

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

[2] логику: http://www.braintools.ru/article/7640

[3] обучению: http://www.braintools.ru/article/5125

[4] поведение: http://www.braintools.ru/article/9372

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

[6] ассоциации: http://www.braintools.ru/article/621

[7] ошибки: http://www.braintools.ru/article/4192

[8] подкреплением: http://www.braintools.ru/article/5528

[9] реакцию: http://www.braintools.ru/article/1549

[10] наркотики: http://www.braintools.ru/article/3452

[11] вкус: http://www.braintools.ru/article/6291

[12] запах: http://www.braintools.ru/article/9870

[13] случайность: http://www.braintools.ru/article/6560

[14] забывать: http://www.braintools.ru/article/333

[15] Опыт: http://www.braintools.ru/article/6952

[16] Wildberries: https://www.wildberries.ru/catalog/978238385/detail.aspx

[17] Ozon: https://www.ozon.ru/product/4019697130/?oos_search=false

[18] Ozon: https://www.ozon.ru/product/4043021309/?oos_search=false

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

www.BrainTools.ru

Rambler's Top100