Как работает команда обучения нейросетей
Сергей, расскажи, где ты учился и как пришёл к работе с нейросетями?
Я начал программировать ещё в институте. Сперва занимался компьютерными сетями передачи данных, а затем прошёл курс Питера Норвига и Себастьяна Трана об основах искусственного интеллекта — и эта тема меня засосала!
Так из компьютерных сетей я ушёл в нейронные и в компьютерное зрение. Я и сейчас занимаюсь рекомендательными системами и зрением.
Можно подробнее о компьютерном зрении? Как оно работает?
Нейросети и машинное обучение можно применять для анализа естественных языков, распознавания и генерации речи, анализа звуков и так далее. А компьютерное зрение занимается распознаванием визуальной информации. То есть все задачи, которые связаны с обработкой визуальных данных, называют компьютерным зрением. Это, например, поиск похожих картинок, детекция объектов и подобные вещи.
В частности, с помощью компьютерного зрения мы учим программы на лету распознавать нужные объекты. К примеру, в любом супермаркете у дома есть камеры. А ещё есть сервер, который обрабатывает видео: нейросети следят, чтобы полки в магазине всегда были заполнены товаром. Если где-то мало помидоров или детского питания, нейронка сигнализирует человеку — и он добавляет товар.
Вернёмся от помидоров к Шедевруму. Как у вас распределены роли?
В Шедевруме есть две команды.
Мои ребята — это исследователи машинного обучения. Они отвечают за то, чтобы как можно лучше обучать сеть генерировать картинки, видео и другой контент.
А есть команда, которая занимается приложением. Она следит за тем, чтобы всё классно работало, было красиво, придумывает продуктовое развитие — это команда Николая.
Недавно Шедеврум научился генерировать короткие видеоролики!
Нейросеть создаёт видео длиной четыре секунды с частотой 24 кадра в секунду. После публикации ими можно поделиться с друзьями или сохранить в формате MP4.
Чтобы получился ролик, сперва нужно описать текстом то, что хочется увидеть. В ответ приложение предложит четыре варианта первого кадра и набор анимационных эффектов для создания движения. Нейронка берёт за основу выбранное пользователем изображение, создаёт набор его изменённых версий и объединяет всё выбранным эффектом. Сейчас их семь: зум (приближение), таймлапс (ускоренная перемотка), полёт, панорама, вращение, подъём и морфинг (постепенное изменение).
А какие сотрудники тебе всегда нужны в команду? И где их найти?
Вот три группы специалистов, которых я всегда жду.
-
Machine learning research инженеры, чтобы выдвигать гипотезы, писать код по их имплементации, проверять их, читать статьи и генерировать свои идеи по улучшению нейросетей. Их главная задача — развивать область генеративных моделей, проводить нетривиальные эксперименты и исследовать новые подходы в диффузионных моделях.
-
MLOps-инженеры. Их задача — писать код, чтобы всё работало. В то время как ML-инженеры разрабатывают модели обучения машин, MLOps-инженеры программируют весь цикл машинного обучения: от разработки до внедрения и поддержки. Этим специалистам должно быть интересно работать над высоконагруженными сервисами, использующими нейросети, а также развивать экосистему инструментов вокруг новейшей и динамично развивающейся области генеративных моделей.
-
Аналитики, поскольку работа с данными критически важна. Мы ищем специалистов, чтобы улучшить данные для обучения: мы комбинируем ML- и DS-методы с ручной разметкой, пробуем разные подходы для файнтюна финальной модели, создаём инструменты для оценки качества, сравнения с конкурентами и поиска точек роста.
Ребята многому учатся сами, но у нас много людей из Физтеха, ВШЭ, МГУ, а ещё таким специальностям обучают в ШАДе Яндекса.
В чём конкретно заключается твоя работа над нейросетью?
Я сейчас собираю команду, которая будет работать над улучшением модели генерации. Но в основном задачи разработчиков, обучающих сеть, это:
-
Собрать данные.
-
Понять, на чём обучать.
-
Написать код, который будет это делать.
-
Проверить, что всё верно.
-
Принять решения исходя из знаний и интуиции.
-
Запустить обучение.
-
Проанализировать графики, которые показывают, хорошо работает сеть или нет.
-
Выдвинуть новые гипотезы.
Вот такой алгоритм. Повторять бесконечно.
Подожди, а нейросеть появилась раньше Шедеврума? Как она работает в проекте — и где ещё планируете её развивать?
Всё верно. Сначала появилась нейросеть, потом — Шедеврум и его задачи. Идея с Шедеврумом возникла в конце 2022 года. На тот момент у нас уже была обученная сеть, а потом мы к ней добавили первую версию бэкенда, который генерирует изображения. И команда сделала всё за новогодние праздники.
Первая версия названия проекта была «Шедеврус», ещё был «Им-Ям» (Yimg-Yamg), но это плохо воспринималось на слух. В итоге победил вариант «Шедеврум» — это классное многослойное название. Приложение генерирует шедевры внутри room — «своей комнаты».
У этой нейросети есть и другие применения. Миссия моей команды — в разработке достаточно общих технологий, которые используются в разных продуктах компании и касаются большей их части.
Шедеврум — это интересная, фановая B2C-история, но наша цель — расти дальше. Есть планы внедрения в B2B, рекламу и много ещё куда. Например, Яндекс использует в рекламе иллюстрации, созданные той же нейросетью, что работает в Шедевруме. Если у рекламодателя нет собственной картинки для объявления, он может выбрать из предложенных нейросетью.
Нейросети можно использовать как для решения бизнес-задач, так и для развлечения. Мы постоянно в поисках новых применений. Уже сейчас нейросеть может придумать костюмы и декорации, разработать креативные концепции — помогать людям в их профессиональной деятельности. Отправить запрос на коммерческое использование контента из Шедеврума можно через форму обратной связи — ответ придет в течение 5 рабочих дней.
Как вообще работает Шедеврум?
В первую очередь сеть понимает, что хочет изобразить пользователь. Для этого мы используем отдельную нейросеть. Она обучалась на датасете текстов, понимает, как устроен язык и какие в нём взаимосвязи. Её задача — представить данные для другой нейросети в виде вектора чисел. Туда она кодирует информацию, о чём фраза, как взаимосвязаны слова.
Вторая нейросеть в процессе обучения видела 330 млн изображений и текстов, связанных с ними. Предполагается, что она сформировала своё представление о мире: каким визуальным образам соответствуют те или иные слова, как устроен мир изображений, как надо рисовать. Её задача — понять из сжатого представления текста, чего от неё хотят, и создать изображение. Если данных мало или вовсе нет, решение о генерации она принимает случайным образом. То есть додумывает сама: если не указать локацию, где лежит кот, она выдаст нам его изображение, например, на диване, а может — в вакууме или на пляже.
Над чем команда работает прямо сейчас? Что необходимо Шедевруму для развития?
В первую очередь — над улучшением качества. Работаем над архитектурными улучшениями и анализом ошибок. Это не финальный вариант нейросети, у нас есть новые наработки и много идей.
Сетка будет обновляться всегда. На этапе создания Шедеврума мы попрототипировали — и нам захотелось поделиться этим. Пользователям понравилось, поэтому у нас много мотивации двигаться дальше.
В целом всегда можно улучшать качество изображений, их красоту, естественность. Есть сложные штуки вроде пальцев и лиц людей: сейчас сгенерированное изображение человека сразу видно по тому, как плохо нарисованы пальцы. Нейросеть в датасете видит руки в разных ракурсах, и где-то видно два пальца, а где-то — все пять. И поэтому она рисует что-то среднее между всеми изображениями, которые видела.
Вообще, всё, что важно для людей, сложно изобразить. Это не только части тела, но и животные, знакомые людям предметы. Пока ещё нейронки делают это не идеально, но всё впереди!
Как считаешь, стоит ли бояться нейросетей? И как ты сам используешь нейросети в обычной жизни?
Зачем их бояться? Прогресс в масштабах человечества идёт независимо от моего мнения или мнений других людей. Это как переживать из-за погоды. Поскольку я не могу на это повлиять, считаю, что нужно возглавить процесс: больше узнавать о технологиях, изучать их, развивать и не оставаться в стороне.
Я рад развитию, а благодаря большому вниманию к сфере ИИ привлекается много ресурсов и талантов.
Нейросетями я пользуюсь так же, как и все. В Шедевруме люблю полистать ленту, генерирую что-то. Использую текстовые сетки, когда нужно составить письмо или список чего-то. Если есть проблема чистого листа, это хорошая отправная точка, которую можно улучшать последующей редактурой.