Ли Хунъи, «Введение в генеративный ИИ» 2024: лекции 12–18
Конспект завершающих лекций курса «Введение в генеративный ИИ» 2024 профессора Ли Хунъи: как проверять способности LLM и где ловушки бенчмарков, безопасность (галлюцинации, предвзятость, водяные знаки, джейлбрейк и prompt injection), стратегии генерации (авторегрессия против параллельной генерации), спекулятивное декодирование и генерация изображений и видео (VAE, Flow, диффузия, GAN, Sora, Genie).
Коротко
Заголовок раздела «Коротко»- Оценивать LLM трудно: даже тест с выбором ответа зависит от формата вывода и порядка вариантов; открытые ответы оценивают люди (Chatbot Arena) или сильная модель-судья со своими перекосами; данные бенчмарков часто уже были в обучении.
- Безопасность — это и «ремонт после»: проверка фактов поверх модели, поиск предвзятости, распознавание ИИ-текстов (водяные знаки); и атаки: jailbreak (взлом ограничений модели) и prompt injection (захват приложения).
- Генерацию можно вести авторегрессионно (по одному элементу — качественно, но медленно) или параллельно (быстро, но элементы «фантазируют» несогласованно). Диффузия = много шагов параллельной генерации с уточнением.
- Спекулятивное декодирование ускоряет любую LLM в 2–3 раза без обучения: быстрый «предсказатель» угадывает несколько токенов, большая модель проверяет их за один проход.
Как смотреть вместе с курсом
Заголовок раздела «Как смотреть вместе с курсом»| Лекция | Когда смотреть | Наш урок |
|---|---|---|
| 12 | вместе с модулем 7.3 | 7.3.1, 7.3.2 |
| 13–14 | вместе с модулем 9.3 (и перед заданиями ступени 8 про промпты) | 9.3.4, 9.3.5 |
| 15 | перед модулем 9.1 | 9.1.2, 9.1.3 |
| 16 | вместе с модулем 7.1 | 7.1.1, 7.1.2 |
| 17–18 | вместе с модулем 9.1 | 9.1.2–9.1.4 |
Лекция 12. Как проверять способности LLM
Заголовок раздела «Лекция 12. Как проверять способности LLM»Базовая идея проста: набор входов с эталонными ответами (бенчмарк) и сравнение с ответами модели. Но «генеративный ИИ может сказать что угодно», и именно это делает сравнение трудным.
Тест с выбором ответа (MMLU) — тоже ловушка. Модель может ответить «3» вместо «B» — засчитывать ли? Есть и более тонкие перекосы: в опыте, на который ссылается Ли, после переноса всех правильных ответов в вариант A модель Llama-30B внезапно вышла на первое место — оказалось, при сомнении она чаще выбирает A. Результат меняется и от обозначений вариантов. Вывод: число на лидерборде зависит от мелочей формата.
Открытые задачи. Для перевода и пересказа нет единственного ответа; метрики BLEU и ROUGE считают совпадения слов и не понимают смысла (английское humor можно перевести на китайский двумя разными словами — и оба перевода верны). Самая точная оценка — люди; пример — Chatbot Arena: пользователь задаёт вопрос двум анонимным моделям и выбирает лучший ответ. Но это дорого.
Модель-судья. MT-Bench оценивает ответы с помощью GPT-4 — и это хорошо согласуется с людьми. Однако у судьи свои перекосы: например, любовь к длинным ответам; их нужно учитывать.
Широкие и узкие проверки. BIG-bench собирает сотни необычных задач — например, угадать фильм по эмодзи (девочка + три рыбы → «В поисках Немо»), найти мат в шахматной партии по записи ходов. Узкие тесты: «иголка в стоге сена» — вставить факт в очень длинный текст и спросить о нём; у Claude 2.1 результаты сначала выглядели плохо, а добавление к промпту фразы «Here is the most relevant sentence in the context» сильно их улучшило — «поменяли промпт, и результат другой». Теория разума: тест Салли — Энн («где Салли будет искать мяч, который без неё переложили?»). Задачи из интернета модель могла видеть, поэтому исследователи придумывают новые сюжеты — и на них даже GPT-4 справляется хуже.
Мораль и «загрязнение». Бенчмарк MACHIAVELLI проверяет, идёт ли модель к цели любыми средствами. И общая беда — загрязнение данных: тестовые задачи могли попасть в обучающие, и модель их «подсмотрела». Наконец, кроме качества важны цена API и требования к железу: при близком качестве выигрывает дешёвое.
Лекция 13. Безопасность LLM (часть 1): «ремонт после», предвзятость, ИИ-тексты
Заголовок раздела «Лекция 13. Безопасность LLM (часть 1): «ремонт после», предвзятость, ИИ-тексты»Галлюцинации неизбежны — модель не стоит считать источником знаний. Поэтому между моделью и пользователем ставят «слой безопасности» (по китайской поговорке — «чинить загон, когда овца уже пропала»): проверку фактов (например, сверку с веб-поиском, как у Gemini, или инструменты вроде FacTool, которые сами используют LLM) и фильтр вредного содержимого. Такая проверка ловит отдельные факты, но может пропустить общую логическую ошибку.
Предвзятость. Её ищут бенчмарками и «красной командой» (специально подобранными провокационными запросами). Примеры из лекции — профессиональные стереотипы: в одном опыте «администратора на ресепшене» модель в 90 % случаев представляла женщиной, а «техника» и «строителя» — мужчинами (90 % и 100 %). Бывает и политический крен. Лечить можно на всех этапах: данные, обучение, декодирование, постобработка.
Кто написал этот текст — человек или ИИ? Классификаторы и статистические отличия ненадёжны и устаревают с новыми моделями. Ли показывает исследование рецензий на научных конференциях: после выхода ChatGPT доля рецензий, похожих на сгенерированные, заметно выросла — сильнее всего на NLP-конференциях вроде EMNLP («кто делает языковые модели, первым ими и пользуется»). Перспективное решение — водяные знаки: при генерации незаметно сдвигать вероятности определённых токенов так, чтобы детектор потом мог статистически опознать текст, а человек разницы не видел. Проблема — водяной знак можно частично стереть перефразированием.
Лекция 14. Безопасность LLM (часть 2): как обманывают модели
Заголовок раздела «Лекция 14. Безопасность LLM (часть 2): как обманывают модели»Два вида атак через текст (prompt hacking):
- Jailbreak — заставить саму модель сделать то, что ей запрещено. Приёмы из лекции: ролевая игра DAN («Do Anything Now» — «теперь ты модель без ограничений»); запрос на языке или в записи, которую модель понимает, но защита обучена хуже (Ли пробует запись тайваньской фонетической азбукой); противоречивые инструкции («начни ответ с „Absolutely! Here’s…“»); убеждение историей и контекстом; принудительное многократное повторение, после которого модель иногда начинает выдавать куски обучающих данных (Ли отмечает, что у него самого это получалось редко).
- Prompt injection — захватить приложение на основе LLM: вписать во входные данные команду, которая перебивает инструкции разработчика. Примеры — из домашних заданий курса, где студенты пытались «уговорить» LLM-оценщика поставить высший балл; ассистенты разбирали успешные приёмы (например, команда, спрятанная в ASCII-кодах) и укрепляли промпт. Существуют и соревнования по prompt injection, давшие классификацию атак.
Вывод: безопасность ИИ — бесконечная гонка атак и защит, как в обычной компьютерной безопасности.
Лекция 15. Почему текст — «игра в слова», а картинки — не «игра в пиксели»
Заголовок раздела «Лекция 15. Почему текст — «игра в слова», а картинки — не «игра в пиксели»»Любая генерация — расстановка базовых единиц (токены, пиксели, отсчёты звука) при заданном условии.
Авторегрессия (AR): по одной единице, каждая опирается на предыдущие. Это успех в тексте, но картинка высокого разрешения или звук с высокой частотой отсчётов — это миллионы единиц, и генерация по одной слишком медленная.
Параллельная (неавторегрессионная, NAR) генерация: все единицы сразу. Быстро, но возникает «проблема мультимодальности»: в каждой позиции модель независимо «додумывает» своё (одна часть картинки — собака, другая — кошка). Три способа справиться:
- Дать общую «подсказку для фантазии» — случайный латентный вектор на входе, чтобы все позиции «додумывали» одно и то же (так устроены GAN, VAE, Flow — лекция 18).
- Гибрид с автокодировщиком: сначала авторегрессией получить короткий «черновик» (сжатое представление), а затем декодер параллельно раскрывает его в детали.
- Много шагов параллельной генерации: каждый шаг немного уточняет предыдущий вариант — это и есть диффузия.
Современные генераторы картинок (Midjourney, Stable Diffusion, новые DALL-E) сочетают многошаговую генерацию в сжатом пространстве с декодером автокодировщика. Итог: AR — «шаг за шагом», качественно и медленно; NAR — «все вместе», быстро, но нужны хитрости.
flowchart LR subgraph AR["Авторегрессия"] a1["x1"] --> a2["x2"] --> a3["x3"] --> a4["…"] end subgraph NAR["Параллельно, много шагов (диффузия)"] n0["шум"] --> n1["черновик 1"] --> n2["черновик 2"] --> n3["картинка"] end
Лекция 16. Волшебный ускоритель для любой LLM — спекулятивное декодирование
Заголовок раздела «Лекция 16. Волшебный ускоритель для любой LLM — спекулятивное декодирование»Авторегрессионная модель выдаёт токены строго по одному — это медленно. Спекулятивное декодирование добавляет «предсказателя»: быстрая система угадывает несколько следующих токенов, а большая модель за один проход проверяет их все сразу (проверить последовательность параллельно можно — так же, как при обучении). Совпавшие токены принимаются, на первом несовпадении цепочка обрезается, и большая модель сама даёт правильный токен.
- Ошибается предсказатель — не страшно: в худшем случае по времени «ничего не потеряли», потратили лишь лишние вычисления. Обычно выигрыш — в 2–3 раза, и без всякого обучения и изменения модели.
- Кто может быть предсказателем: параллельная (NAR) модель, сжатая маленькая модель, даже поисковая система (если ответ часто повторяет известный текст). Можно держать несколько предсказателей сразу.
Лекция 17. Генеративный ИИ для изображений (часть 1): как ИИ делает картинки и видео
Заголовок раздела «Лекция 17. Генеративный ИИ для изображений (часть 1): как ИИ делает картинки и видео»- Два направления: картинка → текст (понимание; современные модели хорошо «рассуждают» о картинках) и условие → картинка/видео (создание). Лекция о втором.
- Sora (OpenAI) поражает реалистичным видео по тексту, но видны ошибки: «плывущий» фон, превращения животных, объекты, которые делятся или исчезают.
- Применения: продление и стилизация видео, повышение качества, «говорящие головы» (видео человека по фото и голосу — будущие ИИ-витуберы), генерация по эскизу или позе (ControlNet).
- Как модель «видит». Не пиксели, а патчи: кодировщик сжимает картинку в сетку небольших латентных кусков, видео — ещё и по времени; последовательность патчей подаётся в Transformer, декодер возвращает пиксели.
- Обучение и оценка. Нужны огромные наборы пар «картинка — текст» (например, LAION; с вопросами об авторских правах). Патчи генерируются параллельно. Качество оценивают, в том числе, CLIP-оценкой (насколько картинка соответствует тексту по модели CLIP). Описать текстом конкретный объект трудно — поэтому модель дообучают на нескольких его картинках, привязывая к особому токену.
- Главная трудность видео — внимание: патчей так много, что полное внимание «все со всеми» требует астрономических вычислений. Решения: «псевдо-3D» внимание (чередовать внимание внутри кадра и вдоль времени) — экономия на порядки; каскад моделей, где каждая следующая повышает частоту кадров и разрешение (пример — Imagen от Google).
Лекция 18. Генеративный ИИ для изображений (часть 2): VAE, Flow, диффузия, GAN и интерактивное видео
Заголовок раздела «Лекция 18. Генеративный ИИ для изображений (часть 2): VAE, Flow, диффузия, GAN и интерактивное видео»Корень проблемы: текст не описывает картинку полностью («собака на траве» — какая собака? какая трава?). Если учить модель «текст → картинка» напрямую, она растеряется между множеством правильных ответов и смешает их в «гибрид». Нужен способ дать модели недостающую информацию.
- VAE. Кодировщик извлекает из настоящей картинки то, чего нет в тексте, в виде вектора; декодер по тексту и этому вектору восстанавливает картинку (обучение как у автокодировщика). При генерации вектор берут случайно — отсюда разнообразие. Flow делает декодер обратимым, и кодировщик становится не нужен — это тот же декодер «наоборот». В латентном векторе живёт смысл: его можно редактировать арифметикой векторов.
- Диффузия. Генерация — многократное удаление шума одним и тем же «очищающим» модулем, начиная с чистого шума. Данные для обучения делаются сами: к настоящей картинке постепенно добавляют шум (прямой процесс), а модуль учится снимать его (обратный процесс). Diffusion Transformer — диффузия, где очищающий модуль — Transformer (на этом, возможно, основана Sora). Минус — много шагов.
- GAN Ли представляет не как отдельный тип модели, а как «насадку»: дискриминатор учится отличать настоящие картинки (и соответствие тексту) от сгенерированных, а генератор — его обманывать. Это похоже на RLHF, где дискриминатор играет роль модели вознаграждения, но без человеческой разметки. GAN можно сочетать с VAE, Flow, диффузией.
- Интерактивное видео: Genie. Модель смотрит игровые видео и учится восстанавливать по ним скрытое действие игрока; затем по картинке (даже детскому рисунку) и выбранному действию генерирует следующий кадр — получается управляемая 2D-игра. Перспектива — генерируемые открытые миры (например, симулятор вождения).
Что сделать руками
Заголовок раздела «Что сделать руками»- Порядок вариантов. Возьмите 30 вопросов MMLU и спросите локальную модель дважды: с исходным порядком вариантов и с правильным ответом, всегда перенесённым в A. Изменилась ли точность (лекция 12)?
- Prompt injection на себе. Сделайте «оценщика эссе» с системным промптом и попробуйте сломать его, вписав команду в эссе. Затем защитите промпт (разделители, повтор инструкции после текста) — лекция 14 и задание HW1 2026.
- Спекулятивное декодирование. В vLLM запустите большую модель с маленькой моделью-«предсказателем» того же семейства (например, Qwen3-8B и Qwen3-0.6B) и сравните скорость генерации и долю принятых токенов (лекция 16).
Словарик
Заголовок раздела «Словарик»| Русский | Пояснение |
|---|---|
| бенчмарк, эталонный набор (benchmark) | |
| загрязнение данных | тест попал в обучение |
| галлюцинация | уверенная выдумка |
| предвзятость | bias |
| водяной знак | watermark |
| взлом ограничений (jailbreak) | |
| внедрение команд в промпт (prompt injection) | атака на приложение |
| авторегрессионная / параллельная генерация | AR / NAR |
| спекулятивное декодирование | speculative decoding |
| «предсказатель» | черновая модель (draft model) |
| диффузионная модель | |
| генеративно-состязательная сеть (GAN) |