как работают большие языковые модели? Введение в трансформеры | Глубокое обучение, глава 5

Как большие языковые модели работают под капотом.

Таймкоды

Но что такое GPT? Визуальное введение в Transformers | Глубокое обучение, глава 5

00:00 Введение в GPT

  • GPT расшифровывается как генеративный предварительно обученный трансформатор.
  • Это боты, которые генерируют новый текст на основе огромных объемов данных.
  • Трансформатор — это особый вид нейронной сети, лежащий в основе нынешнего бума в области искусственного интеллекта.

00:56 Применение трансформаторов

  • Трансформаторы используются для создания синтетической речи и изображений.
  • Оригинальный трансформатор Google был создан для перевода текста с одного языка на другой.
  • Современные модели, такие как ChatGPT, обучаются переводу текста и предсказанию следующего слова.

01:44 Генерация текста

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

03:03 Процесс работы трансформатора

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

05:06 Заключение и обучение

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

07:28 Введение в глубокое обучение

  • Глубокое обучение описывает модели, которые используют данные для определения поведения.
  • Пример линейной регрессии показывает, как данные используются для настройки параметров модели.
  • Глубокое обучение использует алгоритм обратного распространения для обучения моделей.

09:10 Заключение о глубоком обучении

  • Глубокое обучение доказало свою масштабируемость и использует один и тот же алгоритм обучения.
  • Модели должны соответствовать определенному формату для успешной работы.
  • Понимание этого формата помогает объяснить, как трансформеры обрабатывают язык.

09:41 Входные данные и параметры модели

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

10:34 Матрично-векторное произведение

  • Взвешенные суммы часто объединяются в матрично-векторное произведение.
  • Матрицы заполнены настраиваемыми параметрами, преобразующими векторы данных.
  • Пример: 175 миллиардов весов в GPT-3 организованы в 28 матриц.

11:57 Различие между весами и данными

  • Веса модели определяют её поведение, а данные кодируют входные данные.
  • Пример: разбиение текста на лексемы и преобразование их в векторы.
  • Матрица встраивания содержит столбцы для каждого слова, определяющие его вектор.

13:14 Вложение слов

  • Преобразование слов в векторы было обычной практикой в машинном обучении.
  • В GPT-3 векторы слов имеют размерность 12,288.
  • Модель настраивает веса для семантически значимых направлений в пространстве.

14:21 Примеры семантических направлений

  • Модель может ассоциировать направления в пространстве с семантическими значениями.
  • Пример: вложение слова «башня» и его семантические ассоциации.
  • Модель может кодировать гендерную информацию и другие семантические направления.

16:54 Скалярное произведение векторов

  • Скалярное произведение измеряет, насколько хорошо векторы совпадают.
  • Пример: проверка гипотезы о множественности слов через скалярное произведение.
  • Модель изучает, как слова встраиваются в пространство на основе данных.

18:25 Контекст и контекстное обучение

  • Векторы в пространстве вложений кодируют информацию о положении слова и контекст.
  • Модель должна эффективно использовать контекст для предсказания следующего слова.
  • На первом шаге каждый вектор кодирует значение одного слова без контекста.

19:37 Основная цель сети

  • Сеть позволяет каждому вектору впитывать богатое значение.
  • Размер контекста ограничивает объем текста, который может обработать сеть.
  • Это объясняет, почему чат-боты могут терять нить разговора при длительных беседах.

20:22 Распределение вероятностей

  • Цель — распределение вероятности по всем возможным следующим словам.
  • Пример: если последним словом было «профессор», сеть может предсказать «Снейп».
  • Используется матрица для сопоставления последнего вектора с лексемами в словаре.

21:45 Матрица без вложений

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

22:22 Функция softmax

  • Softmax нормализует распределение вероятностей, чтобы значения были в диапазоне от 0 до 1.
  • Процесс включает возведение в степень и деление на сумму.
  • Добавление константы t в знаменатель изменяет распределение вероятностей.

24:27 Влияние температуры

  • Температура t влияет на доминирование значений в распределении.
  • Нулевая температура приводит к выбору наиболее предсказуемого слова.
  • Высокая температура позволяет выбирать менее правдоподобные слова, но с риском бессмысленности.

25:32 Логиты и внимание

  • Логиты — это необработанные, ненормализованные выходные данные.
  • Логиты используются для предсказания следующего слова.
  • Понимание механизма внимания требует интуиции в отношении встраивания слов и матричного умножения.

26:03 Заключение

  • Основная цель главы — заложить основы для понимания механизма внимания.
  • Понимание встраивания слов и матричного умножения поможет в изучении внимания.
  • Следующая глава доступна для ознакомления сторонникам Patreon.

Таймкоды сгенерированы при помощи Яндекс браузера https://browser.yandex.ru/

Расшифровка видео

Predict, sample, repeat
0:00
Инициалы GPT означают Generative Pretrained Transformer
0:02

«Генеративный предобученный трансформер»
0:05
«Генеративный» означает, что модель генерирует новый текст.
0:09
«Предобученный» означает, что модель была обучена на огромном количестве данных,
0:16
и её можно до-обучить для конкретных задач.
0:20
И, наконец,
0:23
Трансформер — это особый вид нейронной сети, лежащий в
0:27
основе нынешнего бума в области искусственного интеллекта.
0:31
В этом видео и последующих главах я хочу наглядно показать,
0:35
что на самом деле происходит внутри трансформера.
0:43
Существует множество различных видов моделей на основе трансформеров.
0:47
Некоторые модели принимают на вход аудиозапись и на выходе возвращают текст.
0:51
Или наоборот — на вход текст, а на выходе синтезированный голос.
0:56
Также на трансформерах работают такие модели как DALL-E и Midjourney,
1:01
которые по текстовому описанию генерируют изображения.
1:06
Это удивительно и потрясающе, что такое вообще возможно.
1:13
А оригинальный трансформер, представленный в 2017 году компанией Google,
1:18
был придуман для перевода текста с одного языка на другой.
1:22
Итак, в этом видео мы сосредоточимся на трансформере, который лежит основе таких моделей,
1:28
как ChatGPT, — на вход подаётся фрагмент текста,
1:31
а также может быть сопутствующие звук и изображения,
1:35
а на выходе получаем продолжение текста
1:38
Такое предсказание текста имеет форму распределения
1:41
вероятностей для различных вариантов следующего слова
1:45
На первый взгляд может показаться, что предсказание следующего
1:47
слова — это совсем другая задача, нежели генерация нового текста.
1:50
Но мы вполне можем создавать таким образом и длинные тексты — слово за словом,
1:59
каждый раз подавая на вход весь созданный ранее текст, и генерируя одно следующее слово.
2:10
На первый взгляд кажется, что вряд ли такой текст получится осмысленным.
2:13
Давайте запустим на ноутбуке GPT-2 и попросим эту модель написать рассказ
2:22
Мы получаем рассказ без особого смысла.
2:26
Однако если взять более крупную модель GPT-3, то внезапно,
2:31
почти по волшебству, мы получим вполне разумный рассказ,
2:35
в котором существо Пи могло бы жить в стране математики и вычислений.
2:41
Этот процесс предсказывания следующего слова — это то, что происходит,
2:46
когда мы взаимодействуем с ChatGPT или любой другой большой языковой моделью.
2:52
И здесь нам очень пригодилась бы возможность увидеть
2:55
распределение вероятностей для каждого нового слова.
Inside a transformer
3:03
Итак, давайте посмотрим на то, как данные проходят через трансформер.
3:08
Для начала мы взглянем на общую схему, а чуть позже добавим детали для каждого шага.
3:19
Во-первых, входные данные разбиваются на кучу маленьких кусочков.
3:22
Эти кусочки называются токенами. Для текста это отдельные слова или части слов.
3:30
А для изображений и звука это фрагменты изображения и отрывки звукового ряда.
3:37
Далее каждый из этих токенов ассоциируется с вектором,
3:40
который должен каким-то образом закодировать значение этого фрагмента.
3:45
Если представить координаты, то слова с похожими значениями
3:50
имеют векторы близко друг к другу в этом пространстве.
3:55
Затем эти векторы проходит через операцию «Attention block»,
3:59
которая позволяет векторам общаться друг с другом и передавать информацию туда-сюда.
4:04
Например, значение слова model во фразе «a machine learning
4:08
model» отличается от значения во фразе «a fashion model».
4:12
«Attention block» позволяет понять, какие слова в контексте имеют
4:16
отношение к друг к другу, и как нужно обновить векторы на основе этих слов.
4:29
Далее эти векторы проходят через другой вид операций — многослойный перцептрон,
4:34
или иногда его ещё называют «feed-forward layer».
4:38
Здесь векторы не общаются друг с другом.
4:43
И хотя этот блок немного сложнее интерпретировать,
4:46
этот шаг немного похож на длинный список вопросов о каждом векторе,
4:50
и обновление векторов на основе ответов на эти вопросы.
4:54
Все операции в обоих этих блоках выглядят как огромное количество матричных вычислений,
5:00
и прежде всего нам с вами важно понять, какие матрицы здесь участвуют.
5:06
Для упрощения я опускаю некоторые промежуточные шаги нормализации.
5:13
И далее этот процесс многократно повторяется — данные перемещаются между
5:18
блоками внимания и блоками многослойного перцептрона. В итоге мы надеемся ,
5:23
что весь смысл рассказа был закодирован в самый последний вектор.
5:28
Затем мы выполняем определенную операцию над этим последним вектором,
5:33
получаем распределение вероятности по всем возможным токенам.
5:38
И как только модель умеет предсказывать одно следующее слово,
5:43
мы можем сначала скормить ей некоторый начальный текст,
5:46
а затем предсказывать следующее слово много раз,
5:49
в итоге получая продолжение начального текста.
5:53
Именно так выглядели ранние демо-версии GPT-3, ещё до появления ChatGPT
6:05
Чтобы превратить такой инструмент в чатбота, проще всего начать с небольшого текста,
6:10
который описывает взаимодействие пользователя с чатботом.
6:14
Такой текст называется системным промптом. Далее этот промпт и первый вопрос
6:19
пользователя — это начальный текст, а дальнейшие предсказания текста — это ответ
6:24
чатбота на вопрос пользователя.
6:27
Конечно нужно многое сделать для обучения такой модели, но это основная идея.
6:35
В этом видео мы посмотрим подробнее на то, что происходит в самом начале сети,
Chapter layout
6:41
а также в самом конце сети. Кроме того, мы вспомним некоторые базовые
6:47
знания о нейронных сетях, которые появились ещё до трансформеров.
6:53
Если Вы уже знаете нейронные сети и хотите сразу перейти к трансформерам,
6:57
то можете сразу перейти к следующему видео, в котором речь пойдет о блоках внимания.
7:03
После этого речь пойдёт о многослойном перцептроне и о том,
7:08
как происходит обучение модели.
7:12
Эти видео-ролики являются продолжением плейлиста о глубоком обучении.
7:17
Если Вы не смотрели предыдущие видео — ничего страшного, их можно смотреть не по порядку
The premise of Deep Learning
7:23
. Однако всё-таки нужно сказать пару общих слов о глубоком обучении.
7:29
Рискуя заявить очевидное, скажу, что речь пойдёт о моделях машинного обучения,
7:34
поведение которых определяется обучающими данными.
7:39
В качестве примера представим, что нам нужна функция,
7:42
которая принимает на вход изображение и на выходе выдаёт описание.
7:47
Или наш пример с предсказанием следующего слова для начального текста.
7:53
Идея машинного обучения заключается в том, что мы не пытаемся явно написать
8:00
алгоритм решения задачи. Вместо этого мы берём очень гибкую модель с
8:06
настраиваемыми параметрами, и показываем этой модели много примеров того,
8:13
как должны выглядеть результаты модели для тех или иных входных данных.
8:19
Например, самой простой формой машинного обучения может быть линейная регрессия,
8:25
где входными и выходными данными являются отдельные числа — например площадь дома и
8:30
его цена. Мы ищем линию наилучшего соответствия, чтобы предсказать будущие цены на дома.
8:37
Эта линия описывается двумя непрерывными параметрами,
8:41
и цель — определить эти параметры, чтобы они как можно точнее соответствовали данным.
8:48
Глубокое обучение выглядит намного сложнее.
8:52
GPT-3, например, содержит не два, а 175 миллиардов параметров.
8:58
Однако огромное количество параметров ещё не гарантирует того,
9:05
что модель сможет хорошо обучиться.
9:10
И всё же модели глубокого обучения доказали, что
9:13
они удивительно хорош о обучаются и масштабируются.
9:16
Эти модели объединяет один и тот же алгоритм обучения,
9:20
который называется обратное распространение — backpropagation. Для того,
9:24
чтобы этот алгоритм обучения хорошо работал, эти модели должны следовать
9:29
определенному формату.
9:41
Во-первых, при создании любой модели, входные данные
9:43
должны быть оформлены в виде массива вещественных чисел.
9:46
Это может быть список чисел, может быть двумерный массив,
9:50
а очень часто это массивы более высокой размерности. Такие массивы называются тензорами.
9:56
Входные данные постепенно преобразуются во множестве отдельных слоев, где,
10:00
опять же, каждый слой всегда структурирован как некий массив вещественных чисел.
10:04
И так продолжается до последнего слоя, который будет результатом работы модели.
10:17
В глубоком обучении эти параметры модели почти всегда называются весами.
10:22
При этом единственный способ взаимодействия этих параметров
10:26
с обрабатываемыми данными — это взвешенные суммы.
10:30
Также кое-где добавляются нелинейные функции, но они не будут зависеть от параметров.
10:35
Обычно вместо того, чтобы увидеть взвешенные суммы в явном виде,
10:39
мы видим их в виде отдельных компонентов в произведении векторов и матриц.
10:46
Каждый компонент на выходе будет выглядеть как взвешенная сумма.
10:54
Обычно удобнее работать с матрицами параметров,
11:00
которые преобразуют вектора входных данных.
11:06
Например, 175 миллиардов весов в GPT-3 организованы
11:10
в чуть менее чем 28 000 отдельных матриц.
11:14
Эти матрицы, в свою очередь, делятся на восемь различных категорий.
11:23
По ходу дела будет интересно ссылаться на конкретные цифры из GPT-3,
11:27
чтобы подсчитать, откуда именно взялись эти 175 миллиардов.
11:31
Даже если сейчас уже есть модели побольше и получше,
11:35
это была первая большая языковая модель, которая действительно привлекла
11:39
всеобщее внимание.
11:41
Кроме того, для современных моделей не всегда просто найти информацию о конкретных цифрах.
11:47
Итак, когда мы заглядываем под капот такого инструмента, как ChatGPT,
11:52
то почти все вычисления выглядят как матрично-векторное умножение.
11:57
Чтобы не заблудиться в миллиардах чисел, следует очень четко разграничить веса модели,
12:03
мы всегда будем окрашивать в синий или красный цвет, а также обрабатываемые данные,
12:08
которые мы всегда будем окрашивать в серый цвет.
12:12
Веса — это мозг модели, это то, что усваивается во время обучения модели.
12:18
Обрабатываемые данные просто кодируют все конкретные входные данные,
12:23
которые подаются на вход модели.
Word embeddings
12:27
С учетом всего этого давайте приступим к первому шагу нашего примера по обработке данных.
12:32
Мы разбиваем входные данные на токены и далее превращаем их в векторы.
12:37
Как упоминалось ранее, токены могут быть как словами,
12:41
так и частями слов. Но для упрощения будем считать, что это целые слова.
12:55
Модель имеет предопределенный словарный запас — это список всех возможных слов,
12:59
скажем, 50 000 штук. Первая матрица, с которой мы столкнемся — это матрица эмбеддингов.
13:05
В ней для каждого слова есть отдельная колонка.
13:15
Обозначим эту матрицу W_e, и, как и для других матриц,
13:17
сначала её значения будут случайными, а затем они будут подобраны в процессе обучения
13:21
модели на основе данных.
13:23
Преобразование слов в векторы появилось задолго до появления трансформаторов.
13:36
Векторы для слов часто называют эмбеддингами слов.
13:38
Геометрически их можно представить себе как точки в некотором высокомерном пространстве.
13:44
Если координат всего 3, то в трёхмерном пространстве визуализацию сделать просто.
13:48
Однако эмбеддинги имеют намного больше измерений.
13:52
В GPT-3 это 12 тысяч с хвостиком измерений.
14:01
Как же визуализировать такие данные? Для трёхмерного пространства мы
14:05
можем делать двумерные срезы, и спроецировать все точки на этот срез.
14:10
Давайте для эмбеддингов сделаем то же самое — сделаем трёхмерный срез,
14:15
и будем проецировать на него эмбеддинги из многомерного пространства.
14:21
Во время обучения модели изменяются веса — в итоге мы получаем эмбеддинги для слов.
14:28
При этом отдельные измерения могут иметь некоторый семантический смысл.
14:34
В качестве примера — если мы поищем все слова,
14:38
чьи эмбеддинги близки к слову tower (башня), то мы увидим слова, близкие по смыслу.
14:46
Если Вы хотите взять в руки Python и поиграть дома,
14:48
то вот конкретная модель, которую я использую для создания анимации.
14:58
Классический пример — если взять разницу между векторами для мужчины и женщины
15:03
и представить это как маленький вектор, соединяющий кончик одного вектора с
15:08
кончиком другого, то это очень похоже на разницу между королём и королевой.
15:15
Так что если мы не знаем слова, обозначающего монарха-женщину,
15:18
то мы можем взять слово king, добавить к нему направление мужчины и женщины,
15:22
и далее взять эмбеддинги, близкие к этой точке.
15:28
На самом деле эмбеддинг для слова queen немного дальше, чем можно было бы предположить,
15:35
и это предположительно потому что слово queen может иметь другие значения.
15:41
Эта же идея более чётко видна в таких парах слов как дядя и тётя, папа и мама и так далее.
15:46
Одно направление в этом пространстве кодировало гендерную информацию.
15:56
Другой пример: если взять эмбеддинг Италии, вычесть эмбеддинг Германии и прибавить
16:02
эмбеддинг Гитлера, то получится что-то очень близкое к эмбеддингу Муссолини.
16:08
Как будто модель научилась ассоциировать одно направление с Италией,
16:12
а другое — с участниками Второй мировой войны.
16:16
Или вот красивый пример — если взять разницу между Германией и Японией и добавить суши,
16:24
то получим сардельки.
16:27
Ещё пример — Кошка может быть близка и к зверю, и к монстру.
16:34
Хорошо. Далее взглянем на скалярное произведение двух векторов — dot product.
16:44
Скалярное произведение это умножение соответствующих компонентов вектора и затем сложение.
16:55
Геометрически скалярное произведение положительно,
16:57
если векторы направлены в одну и ту же сторону. Оно равно нулю,
17:00
если векторы перпендикулярны. И отрицательно,
17:03
если они направлены в противоположные стороны.
17:06
В качестве примера попробуем взять разницу эмбеддингов «кошки» и «кошка».
17:11
Мы можем найти измерение, которое делает из единственного числа множественное.
17:17
Для проверки можно взять скалярные произведения слов в единственном числе,
17:23
и то же самое во множественном числе.
17:27
Можно заметить, что слова во множественном числе действительно имеют
17:31
бОльшие значения по этому измерению, чем слова в единственном числе.
17:37
Также забавно, что если взять скалярное произведение со словами 1,
17:43
2, 3 и так далее, то они дают возрастающие значения.
17:50
Какие именно получатся эмбеддинги — определяется во время обучения модели.
17:54
И в итоге матрица эмбеддингов — это первый набор коэффициентов нашей модели.
18:00
Если говорить про GPT-3, то в ней словарный запас составляет 50 тысяч токенов.
18:10
Размерность эмбеддингов равна 12 тысяч — умножаем эти числа,
18:15
получаем около 617 миллионов весов.
18:18
Запишем это, чтобы в конце получить общее количество в 175 миллиардов параметров.
Embeddings beyond words
18:25
Вектора в этом пространстве эмбеддингов представляют собой не только отдельные слова.
18:32
Они также кодируют информацию о позиции слова, о чём мы поговорим позже,
18:37
но, что ещё более важно, они обладают способностью впитывать контекст.
18:43
Представьте себе эмбеддинг для слова king — по мере обучения модели он постепенно
18:50
притягивает к себе информацию из других блоков — «который жил в Шотландии»,
18:56
«для восхождения на трон устранил предыдущего короля»,
19:01
«говорил на языке Шекспира» и так далее.
19:05
Представьте себе слово «птичье перо».
19:08
Значение этого слова явно зависит от окружающих слов,
19:11
и иногда оно включает в себя контекст, находящийся на большом расстоянии внутри текста.
19:16
Поэтому при создании модели, нужно каким-то образом дать ей возможность эффективно
19:22
учитывать контекст.
19:24
В самом начале обучения эмбеддинги содержат только значения отдельных слов,
19:33
без вклада окружающих слов.
19:37
И далее эти вектора постепенно впитывают в себя информацию о соседних словах,
19:45
в дополнение к самому исходному слову.
19:49
Нейронная сеть может обрабатывать только фиксированное количество векторов,
19:52
известное как размер контекста.
19:54
Для GPT-3 размер контекста был 2048, поэтому данные выглядят как массив из 2048 столбцов,
20:01
каждый из которых имеет 12 000 измерений.
20:05
Размер контекста ограничивает то, сколько текста может содержать трансформер.
20:12
Именно поэтому при длительных беседах с некоторыми чатботами часто возникало ощущение,
20:19
что бот как бы теряет нить разговора.
Unembedding
20:23
Чуть позже мы углубимся в детали, но, забегая вперед,
20:25
давайте кратко обсудим, что происходит в самом конце.
20:35
Например, если самое последнее слово — профессор, а контекст включает такие слова,
20:41
как Гарри Поттер, а чуть раньше написано «наименее любимый учитель»,
20:47
то хорошо обученная сеть, накопившая знания о Гарри Поттере,
20:52
присвоит высокое значение слову Снейп.
20:56
Для этого нужны два разных этапа.
20:58
Первый этап заключается в использовании другой матрицы,
21:01
которая сопоставляет самый последний вектор в данном контексте
21:04
со списком из 50 000 значений, по одному на каждый токен в словаре.
21:08
Далее идёт функция Softmax, которая нормализует это распределение вероятностей.
21:15
Однако кажется странным использовать для предсказания только последний эмбеддинг,
21:22
тогда как на последнем шаге у нас есть тысячи других векторов.
21:28
Дело здесь в том, что в процессе обучения очень полезно использовать каждый из этих
21:34
векторов в последнем слое для того, чтобы одновременно предсказывать следующее слово.
21:45
Эта матрица называется матрицей Unembedding, и мы обозначим её как W_U.
21:50
Как и для других матриц с весами, все её значения сначала случайные,
21:53
а затем подбираются в процессе обучения модели.
22:06
Эта матрица похожа на матрицу эмбеддингов W_E, только поменялся порядок размерностей.
22:11
Прибавляем 617 миллионов параметров, и на данный момент мы насчитали чуть больше
22:16
миллиарда — это лишь небольшая часть от 175 миллиардов, которые мы получим в итоге.
Softmax with temperature
22:22
Хорошо. Далее поговорим о функции Softmax, которая
22:26
нам не раз ещё встретится в следующих видео.
22:31
Идея заключается в том, что если мы хотим преобразовать
22:35
последовательность чисел в распределение вероятностей,
22:39
то каждое значение должно быть между 0 и 1, а также сумма должна быть 1.
22:45
Однако во время обучения мы выполняем произведения матриц на вектора,
22:50
и результаты получаются совсем не похожи на вероятности.
22:55
Значения часто бывают отрицательными или намного больше 1, и их сумма не равна 1.
23:00
Softmax — это стандартный способ превратить произвольный
23:05
список чисел в правильное распределение вероятностей.
23:13
Для этого можно сначала возвести e в степень каждого из чисел,
23:19
получим положительные числа, а затем взять сумму этих значений и поделить отдельные
23:27
числа на эту сумму.
23:30
В итоге получается, что если одно из чисел на входе значительно больше остальных,
23:37
то на выходе это число доминирует в распределении.
23:42
Но это более мягкое условие, чем просто выбрать максимум,
23:47
потому что другие значения — если они тоже велики,
23:50
то они тоже получают значимый вес в распределении.
23:55
В некоторых ситуациях, например, когда ChatGPT использует это распределение для создания
24:02
следующего слова, есть возможность добавить в знаменатель экспонент константу t.
24:09
Её можно назвать температурой, потому что она похожа на температуру в некоторых
24:14
уравнениях термодинамики. Когда t больше, мы придаём больший вес меньшим значениям,
24:20
то есть распределение становится более равномерным. Если t меньше,
24:24
то большие значения будут доминировать более агрессивно. И если t равно нулю,
24:29
то весь вес перейдет к максимальному значению.
24:33
Например, давайте попросим GPT-3 сгенерировать
24:38
историю с начальным текстом «Once upon a time».
24:43
Нулевая температура означает, что всегда выбирается слово с наибольшей вероятностью.
24:49
В итоге мы получим вариацию сказки по Златовласку.
24:53
Более высокая температура даёт шанс выбирать менее вероятные слова,
24:56
но это связано с риском.
24:58
Эта история начинается более оригинально, о молодом веб-художнике из Южной Кореи,
25:03
но быстро вырождается в бессмыслицу.
25:06
И на самом деле API не позволяет выбрать температуру больше 2.
25:11
Это просто произвольное ограничение, чтобы инструмент не генерировал слишком нелепые вещи.
25:19
В этом видео я на самом деле беру 20 наиболее вероятных следующих слов из GPT-3,
25:28
а затем уже сам подстраиваю вероятности.
25:33
В качестве ещё одного жаргона. Отдельные компоненты выхода этой функции можно
25:39
назвать вероятностями. А вот входы этой функции часто называют словом logits.
25:46
Например, когда исходный текст проходит через слои нейронной сети и в
25:51
конце выполняется умножение на матрицу unembedding,
25:54
то специалисты по машинному обучению могут называть эти ненормализованные
25:59
компоненты логитами.
Up next
26:03
Хорошо. Во многом целью этого видео было заложить основы для
26:06
понимания механизма внимания, который будет в следующем видео.
26:10
Если Вы понимаете, что такое эмбеддинги слов, что скалярное произведение измеряет
26:16
похожесть векторов, а также что большинство вычислений должны выглядеть как
26:21
матричное умножение, то Вам будет проще разобраться в механизме внимания,
26:26
который является краеугольным камнем в современном буме искусственного интеллекта.
26:32
На этом всё, до встречи в следующем видео.
26:36
Черновик следующего видео доступен для ознакомления участникам Patreon.
26:41
Финальная версия должна появиться через неделю или две,
26:44
обычно это зависит от того, как много будет изменений по результатам замечаний.

Поделиться: