ИИ, нейросети и высоконагруженные системы: чему VK и ВШЭ учат студентов
Привет, Хабр! Меня зовут Анна Степанова, я директор по образовательным проектам и взаимодействию с вузами в VK. Недавно мы совместно с Высшей школой экономики создали Инженерно-математическую школу (ИМШ). Цель ИМШ — дать студентам IT-специальностей возможность познакомиться с реальными исследовательскими и коммерческими задачами крупных IT-компаний и попробовать себя в их решении.
Уже 11 лет мы сотрудничаем с лучшими вузами страны — там мы организовываем образовательные проекты и прокачиваем навыки IT-специалистов. Но в основном эти проекты представляют собой «надстройку» над той программой обучения, которая даётся в разных учебных заведениях. Поэтому выпускников, которые приходят к нам работать, нужно ещё какое-то время дообучать и адаптировать к реалиям коммерческой разработки в большой компании и к её корпоративной культуре.
Для решения этих задач ещё на этапе обучения мы решили встроить преподавание информационных технологий на реальных практических кейсах в учебную программу, чтобы на выходе компании получали сильных молодых специалистов, которых можно сразу забрать к себе на работу. Так появилась ИМШ.
О том, что это такое и что ждёт студентов — читайте под катом.
Идея
В основу идеи ИМШ легла концепция федерального проекта «Передовые инженерные школы», в которую мы добавили свою IT-специфику и культуру разработки.
Школа состоит из мастерских — лабораторий, специализированных на разных ИТ-задачах. Мы выбрали такие, которые востребованы нашими бизнес-подразделениями (то есть диктуются рынком и отраслью) и интересны для самих студентов. Так как если человеку не интересно какое-то дело, вряд ли он станет в нём мастером.
Студенты-участники мастерских — ребята без большого опыта, которые только начинают пробовать себя в IT, так что мы старались в первую очередь удовлетворить их интерес и вдохновить на обучение. В мастерских у учеников опытные наставники — руководители от Вышки и кураторы от нашей компании :)
Мастерские у нас такие:
по прикладному искусственному интеллекту;
по компиляторам и высоконагруженным системам;
по аппаратному обеспечению искусственного интеллекта;
по виртуальным платформенным решениям.
В будущем мы планируем расширить этот список.
Методология
ИМШ — не просто ещё один образовательный проект. Школа построена по «студентоцентрической» модели: в основе учебного процесса лежат интересы и польза для студентов. На практику в Школе мы отводим не менее 50% учебного времени. И это не просто практика — мы переняли у MIT (Massachusetts Institute of Technology) и активно применяем технологическое менторство: наставники из бизнес-подразделений VK постоянно общаются со своими подопечными. Это помогает смоделировать работу в реальной IT-команде.
Ещё одна особенность ИМШ — у нас нет учебных проектов. Все задачи, над которыми работают студенты, потом пойдут в эксплуатацию. Наверняка кто-то недоумевает: «Как можно допускать учеников до прода?». Конечно, риск есть, но мы пошли на него сознательно.
Во-первых, так мы прививаем свою культуру разработки. А во-вторых, в Школу не принимают случайных людей — все студенты проходят тщательный отбор и с ними работают наши наставники, штатные сотрудники компании. Кроме того, в проектах студентов подстраховывают специалисты от вуза. Таким образом мы не только обучаем ребят, но и развиваем профессиональное сообщество института, чтобы оно лучше понимало наши задачи и инструментарий.
Помимо продуктовых мы даём студентам исследовательские задачи: ребята проверяют различные гипотезы и ищут новые технологические решения.
На этом «изюминки» Инженерно-математической школы не заканчиваются. Мастерские — это учебные пространства, объединяющие студентов всех курсов. То есть в практических задачах у нас нет деления на уровни образования. В команды мастерских попали те студенты, которые прошли тестовые задания и собеседования с экспертами от Вышки и VK — вне зависимости от того бакалавры они или магистры и на каком курсе обучаются. Такой подход не характерен для российского образования, однако его удалось успешно применить в Школе.
Подробнее о мастерских
Мастерская по компиляторам и высоконагруженным системам (на базе ВШЭ МИЭМ)
Куратор — Александр Кирсанов, руководитель команды KPHP, ВКонтакте.
Эта мастерская построена вокруг KPHP — языка, на котором написан весь бэкенд ВКонтакте. Он превращает PHP в С++, за счёт этого ускоряя код в разы. Особенно, если он хорошо типизирован.
Для работы есть несколько направлений: во-первых, создание компилируемых библиотек на обычном PHP, то есть по факту развитие экосистемы вокруг KPHP для нужд сообщества; во-вторых, точечная доработка рантайма (стандартной библиотеки KPHP) и добавление туда отсутствующих, но полезных функций; и в-третьих, непосредственное участие в развитии самого компилятора.
Для студентов это отличная возможность погрузиться в компиляторы и среды исполнения, а также пополнение собственного портфолио, поскольку вся работа идёт в Open Source. Для VK выгода в том, что мы совместными усилиями сделаем набор кубиков для продуктовой разработки на KPHP. Так, в обозримом будущем мы построим полноценный веб-фреймворк, чем-то похожий на Symfony — с роутингом, диспатчером, сервисами, ORM, Dependency injection, шаблонизацией и т.п. — причём это всё будет компилируемо, то есть совместимо с KPHP.
Помимо практики, студенты этой мастерской углублённо изучают С++, многопоточку, анализ языков, системное программирование, веб-разработку и другие курсы.
Планируется, что через пару лет на выходе получатся многопрофильные специалисты, способные без проблем трудоустроиться в любую топовую IT-компанию как в инфраструктурное, так и продуктовое направление.
Мастерская по аппаратному обеспечению искусственного интеллекта (на базе ВШЭ МИЭМ)
Куратор — Соловьев Дмитрий, руководитель группы нейронных сетей, департамент Технологий ИИ.
Системы искусственного интеллекта стали применяться намного чаще и всё больше компаний могут позволить себе сервисы, использующие подобные решения. Но за каждым «умным» сервисом, особенно если у него многомиллионная аудитория, стоят немалые вычислительные мощности — высокопроизводительные серверы. И чем шире внедряются системы ИИ, тем выше спрос на оборудование, которое превращается в очень заметную строку в списке инвестиций. Поэтому одну из мастерских мы посвятили аппаратному обеспечению.
В мастерскую зачислено семь студентов, которые в осеннем семестре факультативно проходят три учебных курса от VK: машинное обучение, введение в анализ данных, углубленное программирование на C++. Параллельно проектируем отдельную магистерскую программу, в которую будут включены дополнительные дисциплины по тематике мастерской.
В наступающем году мы получим от российских производителей первые образцы оборудования и начнём эксперименты. В первую очередь прогоним бенчмарк MLPerf, а затем попытаемся портировать те нейросети, которые мы сейчас применяем для решения продуктовых задач VK. После сборки демостендов станет понятно, в каком направлении двигаться дальше.
Мастерская по виртуальным платформенным решениям (на базе ВШЭ, Санкт-Петербург)
Кураторы — Сенников Алексей, руководитель проектов и Торобаев Руслан, разработчик, команда Одноклассники.
За годы работы мы накопили большой опыт в области машинного обучения, решая различные промышленные и бизнес-задачи с помощью нейронных сетей. Сегодня мы предоставляем нашу инфраструктуру студентам, чтобы они могли экспериментировать с ней и решать настоящие задачи, которые ставит перед нами бизнес. Ребята из первого набора — мы приняли в мастерскую пять человек — будут писать ПО для инфраструктуры. Проект разбит на этапы. Первый — это MVP интерфейса, который позволит любому сотруднику или студенту обучить простые модели по классификации изображения, текстов или видео. Также у пользователей будет API-доступ к модели, которую они обучат в нашем сервисе, чтобы использовать её, к примеру, в другом проекте и с другой командой.
В будущем мы планируем передавать студентам бизнес-задачи. В качестве возможного примера могу привести такой запрос от заказчика: по многочисленным фотографиям, сделанным в разных портах и в разное время суток, научиться автоматически определять, есть ли утечки из наливных танкеров, перевозящих нефть и нефтепродукты. Результатом работы студентов может стать обученная нейросеть с API, через которую заказчик будет загружать новые фотографии и регулярно контролировать состояние кораблей.
Мастерская по прикладному искусственному интеллекту (на базе ВШЭ МИЭМ)
В этой мастерской есть сразу три отдельных направления: компьютерное зрение, обработка естественных языков и обработка аудио.
Компьютерное зрение
Куратор — Безбородов Роман, руководитель команды компьютерного зрения, департамент VK Видео.
Мы выбрали два проекта, которые должны будут выполнить студенты:
Восстановление mesh-геометрии человека по фотографии, то есть его трёхмерная реконструкция и последующая анимация. Это может быть интересной функцией в VK Клипах.
Универсальная модель для наложения масок на кого угодно. Сейчас ВКонтакте работают маски для людей и кошек: наводишь камеру, и у человека или кошки появляются усы и шляпа. А мы хотим сделать маску универсальной, чтобы она могла работать на любом объекте, у которого есть что-то похожее на лицо — например, с игрушкой.
Над первым проектом будет работать четыре студента, над вторым — пять. На выходе должны получиться нейронные сети, код для обучения и соответствующие наборы данных. Ещё ребята должны написать пару статей о своей работе.
Обработка естественных языков
Кураторы — Спирин Егор и Шапошников Борис — эксперты в области обработки естественных языков из команды Прикладных исследований ВКонтакте.
Здесь студенты — их двое — будут заниматься визуальным представлением токенов текста. Обычные классические модели NLP в тексте каждое слово заменяют числом, которое затем используют. Но люди в интернете часто пишут с опечатками, а также пытаются обмануть системы, отслеживающие ругательства, заменяя различные буквы на похожие символы. Всё это может запутать обычную модель машинного обучения.
Поэтому мы используем визуальное представление текста, из которого извлекается информация с помощью моделей компьютерного зрения. Эта информация, как правило в виде вектора, используется в стандартных моделях для работы с естественным языком. Один из студентов работает над «детектором токсичности», выявляющим в тексте замаскированные оскорбления — очень полезная для соцсетей штука. А второй работает над системой автоматического определения языка, на котором написан текст — это нужно в системах машинного перевода, а также для анализа ленты и комментариев, чтобы точнее узнавать свою целевую аудиторию, на каких языках она общается. Ещё одна сфера применения визуального представления текста — системы проверки орфографии, но это уже идея на будущее.
Мы постоянно общаемся со студентами, ставим им задачи, которые приближают нас к решению бизнес-задач, проверяем результаты, обсуждаем их и двигаемся дальше. Помимо моделей и кода ребята подготовят выступление на тематической научной конференции — визуальное представление текста снова набирает популярность, и мы надеемся предложить несколько новаторских идей. Сделанные наработки уже выложены по лицензии открытого исходного кода, и ребята продолжают их развивать и дополнять.
Обработка аудио
Куратор — Шутов Виталий, руководитель разработки звуковых технологий, департамент VK Видео.
Для этого направления мы выбрали проект по разделению аудиосигнала на источники — над ним работает один студент. В ходе проекта предстоит разработать фреймворк для разделения аудиосигнала на составляющие без дополнительной информации об их количестве и характере. Этими составляющими могут быть сигналы человеческой речи, фоновая музыка и различные сторонние шумы.
В более сложном случае музыку можно разделять по отдельным инструментам или, скажем, распознавать выделенный в песне вокал и автоматически генерировать текст — это задачи на перспективу развития проекта.
Будущее выпускников
Совместно с ВШЭ мы создаём Инженерно-математическую школу, чтобы обеспечить VK и другие компании молодыми специалистами с высокой квалификацией, которые будут готовы с минимальной адаптацией выйти на работу. Очевидно, что успешно завершат обучение в Школе не все — нагрузка и требования к студентам достаточно высокие.
Но лучшим участникам проекта мы предложим стажировки, индивидуальные траектории развития и трудоустройства. Мы ожидаем, что по итогу курса на рынке появятся крутые специалисты высокого уровня — пропитанные нашей культурой разработки, обученные на актуальных задачах и владеющие всем нужным инструментарием для работы.