Перейти к содержимому
ПереводыDatawhale и китайские курсы

Ли Хунъи, «Введение в генеративный ИИ» 2024: лекции 6–11

Конспект середины курса «Введение в генеративный ИИ» 2024 профессора Ли Хунъи: «история совершенствования» LLM в три этапа (предобучение, инструкционное дообучение, RLHF), ИИ-агенты, как устроен Transformer и как заглянуть внутрь модели.

  • «Совершенствование» LLM — три этапа, и на всех задача одна — предсказать следующий токен; меняются только данные: тексты из интернета → примеры «вопрос — ответ» от людей → оценки людей «какой ответ лучше».
  • Предобучение даёт «внутреннюю силу» (знания), но не «приёмы» (умение отвечать). Инструкционное дообучение — «наставник», и данных для него нужно удивительно мало, если они качественные.
  • RLHF учит модель смотреть на ответ целиком, а не на каждый токен; людей заменяет «виртуальный человек» — модель вознаграждения, у которой свои побочные эффекты.
  • Transformer: токены → эмбеддинги (+ позиции) → много блоков «внимание + полносвязная сеть» → распределение следующего токена. Узкое место — квадратичная стоимость внимания по длине текста.
ЛекцияКогда смотретьНаш урок
6перед модулем 5.1 (данные предобучения)5.1.2
7перед модулем 6.16.1.1, 6.1.2
8перед модулем 6.36.3.2, 6.3.3
9вместе с модулем 8.38.3.1
10перед модулями 4.4–4.5 (Ли сам говорит: знакомым с Transformer можно пропустить)4.4.1, 4.5.1
11вместе с модулем 9.39.3.1
flowchart LR
P["Этап 1: самообучение<br/>тексты интернета<br/>(предобучение)"] --> S["Этап 2: наставник<br/>пары «вопрос — ответ»<br/>(инструкционное дообучение)"]
S --> R["Этап 3: практика<br/>«какой ответ лучше»<br/>(RLHF)"]
P -. "даёт знания<br/>и хорошие начальные параметры" .-> S
S -. "этапы 2–3 вместе —<br/>выравнивание (alignment)" .-> R
Три этапа «совершенствования» LLM по лекциям 6–8 (схема переводчика)

Лекция 6. Этап 1: самообучение, накопление силы

Заголовок раздела «Лекция 6. Этап 1: самообучение, накопление силы»

Видео на YouTube — в названии видео Ли советует знакомым с машинным обучением начинать с 15:00.

Напоминание основ. Модель — функция с миллиардами параметров; обучение — их поиск. У поиска (оптимизации) есть гиперпараметры — их выставляет человек, и «подбирать параметры» на жаргоне значит именно подбирать гиперпараметры. Обучение случайно и может провалиться — тогда меняют гиперпараметры и пробуют снова; отсюда огромный расход вычислений.

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

Что нужно знать, чтобы хорошо продолжать текст: знание языка (грамматика — его нужно сравнительно немного данных) и знание мира (кипит ли вода при 100 °C — зависит от давления; таких знаний нужно несравнимо больше). Источник — интернет: любое предложение само собой нарезается на пары «начало → следующий токен», поэтому разметка не нужна — это самообучение (self-supervised learning).

Без людей всё же не обойтись — данные надо чистить (Ли приводит пример из статьи DeepMind о модели Gopher): убрать вредное содержимое и HTML-разметку, отдать предпочтение качественным текстам (Википедия, учебники), удалить дубликаты. Яркий пример: длинный рекламный абзац свадебного агентства встретился в веб-данных более 60 000 раз — без дедупликации модель бы его «заучила». Отдельно — вопрос авторских прав (иск New York Times к OpenAI и Microsoft).

GPT-1 → GPT-3. «Талант» (число параметров) и «усердие» (объём данных) росли: GPT-1 (2018) — 117 млн параметров, GPT-2 (2019) — 1,5 млрд, GPT-3 (2020) — 175 млрд. Но GPT-3 оставался «неуправляемым»: часто не отвечал на вопрос, а продолжал текст как-нибудь. Сравнение Ли — герой романа Цзинь Юна Ши Потянь: огромная внутренняя сила, но ни одного приёма. Чтобы научить «приёмам», нужен этап 2.

Лекция 7. Этап 2: наставник раскрывает потенциал

Заголовок раздела «Лекция 7. Этап 2: наставник раскрывает потенциал»

Видео на YouTube

Инструкционное дообучение (instruction fine-tuning). Люди готовят пары «вопрос → правильный ответ», и модель учится на них той же игре в слова: «Пользователь: Какая гора самая высокая на Тайване? ИИ:» → «Юй» → «шань» (Юйшань) → «[конец]». Это обучение с учителем (supervised learning) на размеченных людьми данных.

Зачем метки ролей «Пользователь:» и «ИИ:». Без них строка «Какая гора самая высокая на Тайване? Юйшань» двусмысленна: это ответ ИИ (дальше — конец) или человек сам ответил (дальше — «Верно»)? Ли предполагает, что и в ChatGPT такие метки есть «под капотом», просто их не видно.

Почему нельзя учиться только у людей. Размеченных данных мало (даже миллион диалогов — капля по сравнению с интернетом), а модель находит «ленивые» правила: научили одному вопросу — она может решить «видишь слово „самая“ — отвечай „Юйшань“». Лаборатория Ли когда-то обучала чат-бота на миллионах человеческих диалогов: он говорил грамматично, но бессодержательно. Пример из жизни — старые голосовые помощники: «не включай музыку» включало музыку.

Решение — начать с параметров предобучения. Они уже содержат сложные правила, поэтому дообучение не скатывается в «ленивые» решения и даёт обобщение. Пример Ли: многоязычный BERT, предобученный на 104 языках, дообучили на английском тесте на понимание текста и проверили на китайском (корпус DRCD) — F1 78 %, почти как у модели, которую дообучали на китайском без предобучения (78 %); с предобучением и китайским дообучением — 89 %.

Две дороги: «специалисты» и «универсал». Можно для каждой задачи дообучать отдельную модель (так делали с BERT), а можно учить одну модель всему сразу. Лаборатория Ли пробовала «универсала» ещё в 2019 году на GPT-2 и столкнулась с катастрофическим забыванием: выучив новую задачу, модель забывала старые. Затем вышли FLAN (Google, 2021) и T0 (Hugging Face); в 2022 году Google показала, что чем больше задач в инструкционном дообучении (до 1800), тем лучше модель на невиданных задачах.

InstructGPT (OpenAI, март 2022) обогнал FLAN и T0. Объяснение OpenAI — данные: не шаблоны из старых NLP-датасетов, а настоящие вопросы пользователей их API. И данных понадобилось немного — десятки тысяч примеров. Тот же вывод у Llama 2 (около 27 000 тщательно отобранных примеров, «quality is all you need») и LIMA («less is more for alignment»: 1000 примеров, написанных авторами).

Народное дообучение. У маленьких команд не было ни данных, ни предобученной модели. Данные начали получать «обратной разработкой» ChatGPT (Self-Instruct: просим сильную модель придумать вопросы и ответить на них). А открытие весов LLaMA компанией Meta «освободило мир»: появились Alpaca, Vicuna и множество потомков — дообучать стало можно каждому.

Лекция 8. Этап 3: практика оттачивает мастерство — RLHF

Заголовок раздела «Лекция 8. Этап 3: практика оттачивает мастерство — RLHF»

Видео на YouTube

Что меняется. Человек больше не пишет правильный ответ — он только говорит, какой из ответов лучше. Это проще (оценить легче, чем написать) и подходит для вопросов без единственного верного ответа.

Взгляд на результат целиком. На этапах 1–2 модель учится «правильно продолжать на каждом шаге» — это локальная цель. RLHF оценивает весь ответ, поэтому модель учится стратегии: какой ответ в итоге нравится людям.

Сравнение с AlphaGo. Обучение AlphaGo тоже шло так: сначала подражание партиям людей (аналог этапа 2), затем обучение с подкреплением по исходу партии. Разница: у го есть объективный исход (выигрыш), а у текста «хорошо» определяют люди — и их оценок мало.

Модель вознаграждения — «виртуальный человек». Её обучают предсказывать предпочтения людей, а затем языковая модель учится на её оценках сколько угодно. Но перебор вредит: в статье OpenAI 2020 года оценка «виртуального человека» растёт, а настоящих людей — после пика падает. Побочные эффекты Ли видит в самом ChatGPT: многословие, любовь к спискам «1, 2, 3…» с итогом «Overall», лишние извинения. Поэтому появились методы без явной модели вознаграждения — DPO и KTO; заменят ли они RLHF, по словам Ли (весна 2024), ещё неясно.

RLAIF. Оценивать может и ИИ — вплоть до самой модели, которая «рефлексирует» над своими ответами.

Что такое «хорошо»? «Научи меня делать порох»: отказ хорош с точки зрения безопасности и плох с точки зрения полезности. В Llama 2 обучали две модели вознаграждения — за полезность и за безопасность; как их совмещать — вопрос вкуса. А когда ИИ дойдёт до вопросов, на которые сами люди не знают ответа, откуда брать обратную связь?

Итог трёх лекций: этапы 2 и 3 вместе называют выравниванием (alignment) — подгонкой модели под предпочтения и потребности людей.

Видео — в плейлисте курса; пересказ по краткому конспекту Vincia-Jun.

  • Сдвиг способа использования. Сегодня мы даём ИИ разовые задачи (вопрос, перевод, текст). Агент получает цель и сам планирует, запоминает, рефлексирует и действует в несколько шагов, подстраиваясь к изменениям.
  • Примеры, которые разбираются: AutoGPT, AgentGPT, BabyAGI, Godmode; «деревня» из ИИ-агентов, моделирующих социальное поведение; Voyager, который сам учится и исследует мир Minecraft; LLM, управляющие роботами; Talk2Drive — языковая модель в автопилоте.
  • Цикл взаимодействия: агент наблюдает среду → сверяется с целью, памятью и планом → действует → получает новое наблюдение → при необходимости рефлексирует и меняет план.

Лекция 10. Как сегодняшние языковые модели продолжают текст — о Transformer

Заголовок раздела «Лекция 10. Как сегодняшние языковые модели продолжают текст — о Transformer»

Видео на YouTube

Путь входного текста через модель:

  1. Токенизация. Текст режется на токены по заранее составленному списку; популярный способ его построить — BPE (сливать частые пары). Этот модуль не обучается.
  2. Эмбеддинг токена. Каждый токен — вектор; близкие по смыслу токены оказываются рядом. Векторы — обучаемые параметры. Пока они не зависят от контекста: у слова одинаковый вектор в любом предложении.
  3. Позиционный эмбеддинг. К вектору прибавляется вектор позиции — иначе модель не знает порядка. Может быть задан вручную или выучен.
  4. Внимание (attention). Для каждого токена считаются оценки связи со всеми остальными, и векторы складываются с этими весами — получается контекстный эмбеддинг. Ли подчёркивает: статья «Attention Is All You Need» не изобрела внимание, а показала, что оно работает без RNN. В языковой модели внимание причинное — токен смотрит только налево (назад), потому что при генерации будущего ещё нет; к тому же уже посчитанное для прошлых токенов можно переиспользовать. Многоголовое внимание ловит разные типы связей.
  5. Полносвязная сеть (feed-forward) перерабатывает собранное вниманием.
  6. Блок «внимание + FFN» повторяется много раз — модель «думает» несколько раз; на выходе — линейный слой и softmax, то есть распределение вероятностей следующего токена.

Узкое место — длинный текст. Внимание считает связи всех пар, стоимость растёт как O(N2)O(N^2) по длине: вдвое длиннее текст — вчетверо больше вычислений. Направления исследований: ускорить внимание, «обучать на коротком — применять к длинному» (train short, test long), архитектуры на замену вниманию — семейство Mamba (эффективно обучаемая разновидность RNN) и гибрид Jamba (Mamba + Transformer).

Лекция 11. О чём «думает» большая языковая модель — объяснимость

Заголовок раздела «Лекция 11. О чём «думает» большая языковая модель — объяснимость»

Видео — в плейлисте курса; пересказ по конспекту Vincia-Jun.

Три слова, которые путают: прозрачность (открыты ли веса, данные, процесс обучения), интерпретируемость (модель сама по себе проста, как дерево решений), объяснимость (модель сложная, но её поведение можно объяснить внешними методами) — лекция о последней.

  • Какие входы важны. «Чёрный ящик»: меняем часть входа и смотрим, как меняется ответ. «Белый ящик»: смотрим на веса внимания по слоям. Так же можно выяснить, какие примеры в промпте (in-context learning) повлияли на ответ.
  • Какие обучающие данные важны. Функции влияния (influence functions; статья Anthropic 2023 года): какие примеры обучения сильнее всего повлияли на ответ — в том числе обнаружилось обучение «через языки».
  • Что лежит в эмбеддингах. Пробинг — обучить маленький классификатор на векторах слоя (есть ли там, например, часть речи); у BERT нижние слои хранят поверхностные свойства, средние — синтаксис, верхние — смысл. Проекции эмбеддингов: на дерево разбора предложения, на карту мира и шкалу времени («Language Models Represent Space and Time»), «детектор лжи» по внутренним векторам.
  • Пусть модель объяснит себя. GPT-4 описывает, за что отвечают нейроны GPT-2 (работа OpenAI); модель просят оценить важность слов во входе — насколько это объяснение честное, исследуется отдельно.

  1. Дедупликация. Возьмите 1000 абзацев из любого веб-корпуса (например, из FineWeb-Edu) и найдите точные дубликаты хешированием. Сколько их? Это ровно эпизод с «рекламой свадебного агентства» из лекции 6.
  2. Роли в шаблоне. Подайте базовой модели (без чат-дообучения, например Qwen3-0.6B-Base) строку «Какая гора самая высокая в России? Эльбрус» и ту же строку с метками «Пользователь: … ИИ:» — сравните продолжения (лекция 7).
  3. Квадрат внимания. Посчитайте, сколько пар «токен — токен» обрабатывает внимание для 1 000, 8 000 и 128 000 токенов, и сколько это памяти для матрицы весов в float16 на одну голову (лекция 10).
РусскийПояснение
«история совершенствования»метафора из романов о боевых искусствах
предобучениеэтап 1
самообучение (self-supervised)метки берутся из самих данных
гиперпараметрывыставляет человек
переобучение
инструкционное дообучениеэтап 2
обучение с учителемsupervised learning
катастрофическое забывание
обучение с подкреплениемRL
модель вознаграждения (reward model)«виртуальный человек»
выравнивание (alignment)этапы 2–3
внимание / причинное вниманиеattention / causal attention
объяснимостьexplainability