core-ai
Словарь ↗Латентное пространство
Латентное пространство — это сжатое, обученное представление меньшей размерности, в которое кодировщик отображает высокоразмерные данные вроде изображений, причём устроено оно так, что перцептивно или семантически похожие входы оказываются в близких областях. В диффузионных моделях изображений именно там и происходит генерация: кодировщик сжимает картинку, весь цикл зашумления и шумоподавления идёт на этом маленьком представлении, а декодировщик в конце восстанавливает изображение в полном разрешении. Перенос диффузии из сырого пиксельного пространства в латентное — пожалуй, главное отдельно взятое новшество по части эффективности во всей современной генерации изображений: именно поэтому модели линии Stable Diffusion вообще запускаются на массовых GPU, тогда как эквивалентная диффузия по пикселям потребовала бы несопоставимо больше вычислений при том же разрешении. Степень сжатия здесь и есть ручка размена: сжимаете сильнее — генерация быстрее и дешевле, но падает предел мелкой детализации, которую пайплайн вообще способен вытянуть, потому что отброшенное кодировщиком декодировщик обратно не придумает. Две мысленные модели стоит поправить. Латентное пространство — не сжатые пиксели в том смысле, в каком ими является JPEG: это обученное представление, осмысленное только для конкретного декодировщика, обученного вместе с ним, а не сжатие без потерь и даже не линейное, которое можно распаковать сторонним инструментом. И точка в латентном пространстве не соответствует фиксированному изображению, пока её не декодируют, — ровно поэтому небольшие перемещения по этому пространству дают плавно меняющиеся результаты, а не скачки; на этом свойстве и держатся латентная интерполяция и эффекты морфинга. Практический вывод для разработчиков: связка кодировщик-декодировщик — не сантехника, а реальная переменная качества. Она управляет верностью мелких деталей, и сообщества, подменяющие этот компонент на одной и той же базовой модели, получают заметно разные характеристики цвета и резкости без какого-либо переобучения самой модели. Термин встречается и за пределами генерации изображений, и смешение двух употреблений порождает путаницу. Эмбеддинги из текстовой модели тоже живут в обученном векторном пространстве с тем же свойством соседства — близкие смыслы оказываются рядом, — но эти векторы созданы для сравнения и поиска, а не для восстановления, и никакого декодировщика, возвращающего из эмбеддинга исходный фрагмент, не существует. Латентное пространство диффузионной модели — это именно пространство «сжать, сгенерировать, восстановить» с приделанным обученным декодировщиком. Когда говорят, что система «ищет в латентном пространстве», почти всегда имеют в виду сходство эмбеддингов; когда говорят, что модель «генерирует в латентном пространстве», имеют в виду диффузионный смысл. На практике латенты объясняют и то, почему image-to-image и инпейнтинг дёшево добавить, если у вас уже есть генерация из текста: все три гоняют один и тот же цикл шумоподавления на одном и том же представлении и различаются лишь тем, с чего цикл стартует и какие области ему разрешено менять.
Похожие термины