Мультимодальность: текст, картинки, голос

Раньше одна модель умела что-то одно: или болтать текстом, или узнавать кошку на фото. Сегодня ChatGPT может посмотреть на твою фотку, послушать голосовое и ответить словами — и всё это одной головой.

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

Зачем это вообще нужно

Представь обычный школьный день. Ты фоткаешь задачу по физике и пишешь в чат: «помоги решить». Через секунду приходит разбор по шагам. Потом ты надиктовываешь голосовое: «а можешь попроще объяснить?» — и снова получаешь ответ. Ты даже не задумываешься, что за один разговор ты подсунул модели три разных вида данных: картинку, текст и звук. А она со всеми справилась как с чем-то единым.

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

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

Слово звучит страшновато, но разбирается на части легко. «Модальность» — это просто канал, по которому приходит информация: текст — одна модальность, картинка — другая, звук — третья. «Мульти» — значит «много». Мультимодальная модель — та, что принимает (а иногда и выдаёт) несколько модальностей сразу.

Мультимодальность — способность одной модели понимать и связывать между собой данные разных видов: текст, изображения, звук, иногда видео.

Метафора: один переводчик для всех языков чувств

Вспомни, как ты сам воспринимаешь мир. Ты видишь кошку глазами, слышишь её мяуканье ушами, читаешь слово «кошка» в книге. Это три совершенно разных сигнала: свет, звук, буквы. Но у тебя в голове они сходятся в один и тот же образ кошки. Глаза и уши — разные «входы», а смысл получается общий.

Мультимодальная модель устроена похоже. У неё есть несколько «органов чувств» — отдельные приёмники для текста, для картинок, для звука. Но дальше каждый приёмник переводит свой сигнал на один общий внутренний язык. И этот общий язык — уже знакомые тебе эмбеддинги.

Напомню из прошлых уроков: эмбеддинг — это представление объекта в виде точки в многомерном пространстве, где похожие по смыслу вещи лежат рядом. Раньше мы говорили об этом только про слова: «кошка» и «котёнок» — соседи, «кошка» и «трактор» — далеко. Главная магия мультимодальности в том, что в это же пространство можно положить и картинки, и звуки.

То есть фотография кошки превращается в точку, которая оказывается рядом с точкой слова «кошка». Аудиозапись мяуканья — тоже где-то поблизости. Модели уже не важно, откуда пришёл сигнал: она работает с точками в общем пространстве смыслов, а не с пикселями, буквами или звуковыми волнами по отдельности.

Что пришло на входКакой «орган чувств» обрабатываетВо что превращается
Текст «кошка»текстовый приёмник (через токены)эмбеддинг — точка в пространстве смыслов
Фото кошкиприёмник изображенийэмбеддинг — точка рядом с «кошкой»
Звук мяуканьяприёмник звукаэмбеддинг — точка где-то поблизости

Когда все входы лежат в одном пространстве, модель может их сравнивать и связывать. Поэтому она и способна ответить словами на вопрос про картинку: текст вопроса и картинка встретились в одном месте — в пространстве эмбеддингов.

Как модель «видит» картинку и «слышит» голос

Тут важно сразу честно сказать: модель не видит картинку так, как ты. У неё нет глаз и нет чувства красоты. Для неё фотография — это таблица чисел: каждый пиксель описан несколькими числами (сколько в нём красного, зелёного, синего). Картинка 1000 на 1000 пикселей — это миллионы чисел. Сами по себе они бессмысленны.

Картинка: разбить на кусочки-«токены»

Помнишь, как в текстовых уроках мы дробили предложение на токены — кусочки, которыми оперирует модель? С картинками поступают похоже. Изображение режут на маленькие квадратики-плитки (например, сетка 16 на 16). Каждая плитка — это как бы «токен картинки». Дальше нейросеть-приёмник смотрит на каждую плитку и её соседей и выдаёт для всего изображения набор эмбеддингов.

А что было дальше с токенами в тексте? Правильно — механизм внимания связывал их друг с другом. С картинкой то же самое: внимание (про него был отдельный урок) позволяет модели понять, что плитка с ушами, плитка с усами и плитка с лапами вместе складываются в «кошку». Так распознавание «кошка против собаки», с которого начинался весь курс, теперь живёт внутри той же архитектуры, что и работа с текстом.

Голос: звук превращают в картинку, а картинку — в эмбеддинги

Со звуком фокус ещё интереснее. Голос — это колебания воздуха, то есть волна. Чтобы модель смогла с ней работать, звук обычно превращают в спектрограмму — особую картинку, где по горизонтали идёт время, по вертикали — высота звука, а яркость показывает громкость. По сути речь рисуют как разноцветную полосу.

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

Разбираем на примерах

Этот урок концептуальный, поэтому больших программ не будет. Но один крошечный пример всё-таки полезен — он покажет главную идею: что «близость смыслов» можно честно посчитать числами, и неважно, текст это или картинка.

Пример 1. Почему «фото кошки» оказывается рядом со словом «кошка»

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

// игрушечные эмбеддинги: 3 координаты вместо сотен
const slovoKoshka = [0.9, 0.1, 0.8];   // слово "кошка"
const fotoKoshki  = [0.8, 0.2, 0.7];   // фотография кошки
const slovoTraktor = [0.1, 0.9, 0.2];  // слово "трактор"

// расстояние между двумя точками (чем меньше, тем ближе смысл)
function rasstoyanie(a, b) {
  let s = 0;
  for (let i = 0; i < a.length; i++) {
    s += (a[i] - b[i]) * (a[i] - b[i]);
  }
  return Math.sqrt(s);
}

const doKoshki   = rasstoyanie(slovoKoshka, fotoKoshki);
const doTraktora = rasstoyanie(slovoKoshka, slovoTraktor);

console.log("Слово 'кошка' -> фото кошки:   " + doKoshki.toFixed(2));
console.log("Слово 'кошка' -> слово 'трактор': " + doTraktora.toFixed(2));
console.log("Ближе оказалось: " + (doKoshki < doTraktora ? "фото кошки" : "слово трактор"));

Разберём по шагам. Мы задали три точки: слово «кошка», фотографию кошки и слово «трактор». Функция rasstoyanie считает, насколько две точки далеки друг от друга (складываем квадраты разниц по каждой координате и берём корень — это обычное расстояние, как на уроке геометрии). Потом сравниваем: что ближе к слову «кошка» — фото кошки или слово «трактор»?

Вывод:

Слово 'кошка' -> фото кошки:   0.17
Слово 'кошка' -> слово 'трактор': 1.17
Ближе оказалось: фото кошки

Видишь? Хотя одно пришло как текст, а другое как картинка, в пространстве смыслов они почти рядом (0.17), а до «трактора» далеко (1.17). Именно поэтому модель может найти на твоём фото кошку: она ищет, к какому слову ближе всего точка-картинка. В настоящей модели координат не три, а сотни, и подбирает их обучение — но идея ровно та же.

Пример 2. Какие задачи решает мультимодальность

Чтобы стало совсем понятно, зачем всё это, вот список реальных задач, с которыми ты наверняка сталкивался. Кода тут нет — это карта применений.

ЗадачаЧто на входеЧто на выходе
Описать фото для незрячего человекакартинкатекст
Решить задачу по фотографии тетрадикартинка + текст вопросатекст
Голосовой помощникзвук (речь)текст или звук
Сгенерировать картинку по описаниютексткартинка
Найти мем по словесному описаниютекстподходящая картинка
Субтитры к видеозвук + картинкатекст

Заметь главное: во всех строках в серединке — одно и то же общее пространство эмбеддингов. Меняются только «органы чувств» на входе и способ выдачи на выходе. Сама идея — свести разное к точкам и работать с ними — повторяется везде.

Пример 3. Наш сквозной текстовый пример становится мультимодальным

Через весь курс мы предсказываем следующее слово во фразе «Кошка пьёт ...». Раньше у модели был только текст: она видела слова «кошка» и «пьёт» и выбирала «молоко». А теперь добавь к фразе фотографию: на снимке кошка стоит у пустой миски рядом с пакетом сока. Мультимодальная модель сложит вместе текст и картинку — обе превратятся в эмбеддинги в одном пространстве — и продолжение может стать другим: не «молоко», а «сок» или «воду из миски». Картинка добавила контекст, которого в одном тексте не было. Вот ради этого мультимодальность и нужна: больше каналов — точнее понимание ситуации.

Частые ошибки и подводные камни

Когда начинаешь пользоваться картинками и голосом в ИИ, легко попасть в несколько ловушек. Разберём главные.

  • «Модель видит картинку как человек». Нет. Она не любуется фотографией и не «понимает» её. Для неё это числа-пиксели, превращённые в эмбеддинги. Поэтому она может уверенно ошибиться: принять рисунок собаки за кошку или не заметить очевидную для тебя деталь. Это та же честность про ИИ, что и в прошлых уроках: умное поведение — не разум.
  • «Раз модель умеет всё сразу, она во всём одинаково сильна». Не обязательно. Часто модель отлично работает с текстом, неплохо с картинками и слабее со звуком — смотря на чём её учили. Мультимодальность — это способность принять разные входы, а не гарантия, что каждый вид данных обрабатывается идеально.
  • «Модель честно слышит каждое слово в голосовом». На этапе превращения звука в текст легко теряются слова: фоновый шум, акцент, тихая речь. Дальше модель работает уже с тем, что распозналось, — и если на входе была ошибка, ответ тоже будет про неправильно расслышанную фразу.
  • «Описание картинки — всегда правда». Модель может уверенно описать то, чего на фото нет, — это та самая галлюцинация, только теперь про изображения. Например, «дорисовать» на снимке текст, которого там не было. Проверяй важные детали сам.
  • «Сгенерированному фото или голосу можно верить». Раз модель умеет создавать картинки и голос, тем же занимаются и те, кто делает дипфейки — поддельные фото, видео и голос, выдаваемые за настоящие. Мультимодальность — мощный инструмент, и относиться к чужим «фото» и «записям» теперь стоит осторожнее.

Мини-практика: собери свою мультимодальную задачу

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

Например:

  • Вход: скриншот из игры + текст «почему я проигрываю эту катку?». Выход: текстовый совет по тактике.
  • Вход: голосовое «найди мне музыку как вот эта» + кусочек трека (звук). Выход: список похожих песен.
  • Вход: фото холодильника. Выход: текст с рецептами из того, что есть.

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

И если хочется потрогать код — вернись к примеру 1 и поменяй координаты fotoKoshki так, чтобы фото вдруг оказалось ближе к «трактору». Запусти и посмотри, как изменится вывод. Это покажет, что близость в пространстве смыслов — не магия, а просто числа, которые можно сдвинуть.

Итоги

Давай соберём всё вместе.

  • Мультимодальность — это способность одной модели работать сразу с несколькими видами данных: текстом, картинками, звуком.
  • Секрет в общем пространстве эмбеддингов: любой вход — слово, фото, звук — превращается в точку, и похожие по смыслу вещи лежат рядом, откуда бы они ни пришли.
  • Картинку режут на плитки-«токены», звук превращают в картинку-спектрограмму — и дальше всё работает через уже знакомые токены, эмбеддинги и внимание.
  • Наши сквозные примеры стали богаче: «кошку против собаки» модель теперь узнаёт по фото той же архитектурой, а «Кошка пьёт ...» можно дополнить картинкой и получить более точное продолжение.
  • Честность про ИИ остаётся в силе: модель не «видит» и не «слышит» как человек, может ошибаться и галлюцинировать на картинках, а её умение создавать фото и голос — это ещё и про дипфейки.

Если хочешь повторить, как мы формулируем запросы к модели, загляни в урок что такое промпт и как его писать — теперь ты знаешь, что в промпт можно вложить не только слова, но и картинку с голосом. В следующем уроке мы поговорим о том, где у всей этой мощи проходят границы: чего ИИ делать не умеет и почему важно перепроверять его за руку.

Проверьте себя
1. Что такое мультимодальность модели?
AУмение модели работать сразу с несколькими видами данных: текстом, картинками, звуком
BСпособность модели работать только с очень длинными текстами
CВозможность запускать модель сразу на нескольких компьютерах
DУмение модели отвечать на нескольких человеческих языках
2. Благодаря чему модель может сравнивать слово «кошка» и фотографию кошки?
AОна хранит отдельный словарь для картинок и отдельный для слов
BИ слово, и картинка превращаются в эмбеддинги — точки в общем пространстве смыслов
CОна переводит картинку в текст с помощью словаря
DОна спрашивает у пользователя, что на фото
3. Как модель обычно обрабатывает звук (голос)?
AСлушает его ушами, как человек
BСравнивает с заранее записанными эталонными фразами
CПревращает звук в картинку-спектрограмму, а её — в эмбеддинги
DПросто игнорирует звук и ждёт текст
4. Что происходит с картинкой перед тем, как модель начнёт её «понимать»?
AЕё режут на маленькие плитки-«токены» и каждую превращают в эмбеддинги
BЕё целиком запоминают пиксель в пиксель
CЕё сразу переводят в одно слово-описание
DЕё уменьшают до одного пикселя
5. Какое утверждение про мультимодальный ИИ — правда?
AРаз модель умеет всё сразу, она одинаково сильна в тексте, картинках и звуке
BМодель действительно видит и слышит мир так же, как человек
CМодель может уверенно описать на фото то, чего там нет (галлюцинация)
DСгенерированным моделью фото и голосу всегда можно доверять
6. Что общего у всех мультимодальных задач (описать фото, голосовой помощник, генерация картинки)?
AВсе они работают только с текстом на входе
BВ серединке у всех — общее пространство эмбеддингов, меняются лишь входы и выходы
CВсе они требуют отдельной модели для каждого вида данных
DВсе они работают без какого-либо обучения