Русский
Русский
English
Статистика
Реклама

Обучение в ит

Лаборатория Тинькофф как студенты разрабатывают визуального робота

22.09.2020 20:11:13 | Автор: admin

image


В Тинькофф есть образовательный проект Лаборатория Финансовые технологии. Мы отбираем студентов и магистров московских технических вузов, которые хотят работать с ИТ-проектами банка. Оформляем их на работу в штат на 20, 30 или 40 часов в неделю, даем задачи, ментора и помогаем расти профессионально. Мы работаем в партнерстве с МФТИ: преподаватели и старшекурсники вуза выступают менторами для студентов.


Лаборант может выбрать, в какой из пяти команд работать:


  • Computer Vision;
  • Speech-to-Tech;
  • Аналитика;
  • Обработка естественного языка;
  • Рекомендательные системы.

У каждой команды свои задачи и специфика. Но принцип общий: учим решать сложные академические задачи на реальных кейсах.


Рассказываем о внутренней кухне Лаборатории на примере работы команды Computer Vision весной-летом 2020 года.


Проект команды Computer Vision: Говорящие головы


Куратор проекта: Константин Осминин, Тинькофф
Ментор: Аркадий Ильин, Лаборатория гибридных интеллектуальных систем МФТИ
Лаборанты: Кирилл Рыжиков (2 курс) и Дмитрий Гадецкий (1 курс магистратуры)


В Лаборатории мы решаем наукоемкие задачи, которые в перспективе можно применить на практике в работе банка. В команде Computer Vision в этом году работали над задачей audio-to-video. Это генерация реалистичного видео с человеком на основе его речи на русском языке.
Изначально тут был не только бизнес, но в значительной степени исследовательский интерес. Если кратко: нужно было обучить компьютерную модель генерировать видеоизображение на основе только фото человека и аудиодорожки. То есть мы даем модели аудио и картинку, а на выходе получаем видео с говорящим человеком.


Такая технология впервые появилась в Китае, а в России представлена сервисом по генерации виртуальных ведущих в Мейл.ру. У Сбербанка робот-ведущий Елена читает 30-секундные новости.


Потенциально такую технологию можно применить для реализации виртуальных ведущих, помощников, визуализации образовательных курсов или даже генерации изображения собеседника при звонках, чтобы не гонять трафик видео, а значит, снизить стоимость звонка.


Константин Осминин, куратор команды Computer Vision в Тинькофф
Область виртуальных аватаров сейчас очень востребована в индустрии. Лаборатория это больше образовательный проект, для нас важно поработать с самой технологией, проверить уже существующие решения и придумать что-то свое.
Сначала мы работали над исследовательской частью, а потом поняли, как можно применить технологию в бизнесе. Теперь мы разрабатываем свой прототип ориентированного на бизнес сервиса, визуально общающегося с пользователем.

Задача: разработать говорящую голову


У нас было два этапа работы. Первый провести исследование в области Neural Voice Puppetry, выяснить, что уже сделано другими исследователями и разработчиками. Потом реализация.
Работа над ней делилась на два больших блока:


  • создание правдоподобной мимики лица на основе аудио (сгенерировать движение глаз, губ, бровей);
  • рендеринг видео.

Первый челлендж: исследовать чужие наработки


Сначала нам нужно было глубоко разобраться в области. Некоторые компании уже работали над этой задачей, например Samsung AI Center, Сбербанк. Но код у них закрытый и получить доступ к нему нельзя. Поэтому мы работали с открытыми источниками, они все в основном на английском. Больше всего информации нашли на агрегаторе Arxiv.


image
Пример статьи c arxiv.org


Это не научный журнал, а агрегатор статей в открытом доступе. Поэтому каждую статью и все, что там написано, нужно проверять. То есть посмотреть, насколько рабочий код приложен в статье.
Обычно код к статьям выкладывают на Гитхабе. Если авторы не выложили код, команда искала имплементации на том же Гитхабе, но уже от простых пользователей-энтузиастов.


image
Пример неофициальной имплементации архитектуры генератора говорящих голов из статьи Few-Shot Adversarial Learning of Realistic Neural Talking Head Models (Egor Zakharov et al.)


Дмитрий Гадецкий, лаборант Тинькофф, студент 1 курса магистратуры
В первый месяц мы почти все время читали статьи на Arxiv и проверяли разные подходы. По опыту скажу: чтобы разобраться в вопросе, нужно вдумчиво изучить около десяти статей и проверить их код на работоспособность. Только когда понимаешь архитектуру кода, появляется возможность применить описанные принципы к конкретным задачам.
У нас был случай, когда мы проверяли подход к генерации из статьи китайских коллег. Мы не могли запустить код несколько дней. Пришлось писать авторам статьи с просьбой о помощи. В итоге они ответили, дописали код, чтобы все заработало.

Второй челлендж: датасет, лэндмарки и моргание


Дальше мы перешли к поиску собственных решений, как сгенерировать реалистичное видео говорящего человека только по фото и аудио.


Теоретически можно было использовать наработки зарубежных разработчиков и код их нейронной сети, как, например, на Гитхабе.


Но возникла серьезная проблема. Нейросети, которые уже решали задачу генерации видео по аудио, не работали с русским языком. Все они были заточены под английский язык. А значит, нужно было разработать сеть и обучить ее на собственном датасете.


Встал вопрос, на каких данных обучать свой комплекс нейросетей. Готовых данных у нас не было. В сети датасетов с видео на английском языке тысячи часов (например, voxceleb, voxceleb2), а на русском их просто нет.


Нужно было собрать свой датасет:


  • видео на русском языке;
  • где четко видно лицо;
  • без шумов.

Изначально для парсинга мы выбрали лекции на Курсере. У них есть API, которая позволяет скачивать видео. Мы скачали видео с ресурса и приступили к его обработке.


Для этого написали программный модуль: он нарезал видео на отдельные кусочки, проверял, что на этом кусочке речь одного человека. Еще он искал в кадре того человека, кто говорил. Вырезанные куски с головой говорящего человека в кадре складывали в датасет.


С Курсеры мы собрали 20 часов видео. Но качество видео этого датасета было не очень. Лицо получалось в плохом разрешении. Поэтому нам пришлось собирать второй датасет уже с Ютуба. Оттуда скачали видео, которые больше соответствовали нашим требованиям: лицо говорящего человека занимало не меньше 40% экрана, смотрело в камеру. Этот датасет был в 60 часов.


image
Параметры датасета


На собранной базе видео мы запустили работу модели по разметке лиц. Мы прогнали одну модель (FaceAlign), которая искала на лице определенные ключевые точки лэндмарки. Всего их 68.


image
Сеть извлекает на каждом кадре видео эти точки и переводит их вот в такое представление:


image


Данные о точках описывали движение челюстей, губ, подвижность бровей и синхронное движение носа.


На этих данных о ключевых точках обучался пререндер, построенный и обученный нами с оглядкой на архитектуру, предложенную Захаровым (a.k.a. Samsung)). Ему подавалась входная аудиодорожка, а он должен был сгенерировать видео. Сначала модуль генерировал абсолютное положение точек, но модель на таком подходе генерировала неправдоподобное изображение.


image
Итерации обучения генератора абсолютных положений лэндмарок. На последних итерациях видно, что рот перестает полностью закрываться, а брови приобретают статичное положение и присутствует общая деградация выразительности мимики


Кирилл Рыжиков, лаборант
Чтобы наша сеть генерировала правдоподобное изображение, мы искали другой подход. Попробовали генерировать не абсолютное положение ключевых точек, а отклонение от их положения на нейтральном лице, когда человек смотрит на вас прямо с закрытым ртом и спокойными бровями. И эврика! сеть сгенерировала правдоподобную мимику. Мы поняли, что идем в правильном направлении, и начали работать именно с этим подходом.
Отдельно мы решали задачу генерации моргания, чтобы лицо на видео выглядело реалистично. Без моргания говорящее лицо смотрится жутко. Выяснилось, что моргание не синхронизировано с речью. Поэтому наша модель его просто сэмплировала.

Третий челлендж: пререндеринг и рендеринг


Когда мы обучили сеть генерить правдоподобную мимику, пришла очередь работать над пререндером и рендером, то есть переводом данных в видео. Лаборанты использовали технологии First Order Modu и Samsung. После двух-трех этапов рендера получилось сгенерировать более проработанную мимику, более качественное изображение и приятную текстуру лица.


В качестве пострендера использовали LipGAN, чтобы уточнить движение губ.



Где готовый продукт


Ребята показали результат в июле этого года. На общей презентации было 60 сотрудников Тинькофф, что необычно для Лаборатории. Как правило, проекты защищаются перед меньшей аудиторией.


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


Готовый результат ждем к концу этого года. Скорее всего, это будет 3D-модель, как тут:



Встречались вживую только один раз


Лаборанты с ментором и куратором встречались вживую только один раз, на собеседовании. Остальное время общались в Телеграме и Зуме. Это принцип Лаборатории: удаленная работа в удобное участникам время.


Аркадий Ильин, ментор
Каждый работает в комфортное ему время, в комфортной для себя обстановке. Например, вчера Кирилл прислал мне ответ в час ночи и, пока он спал до обеда, я его прочитал. Думаю, такой подход только повышает эффективность работы.

Три раза в неделю рабочие созвоны, где обсуждают текущие задачи, гипотезы, методы решений.


Два раза в месяц отчетные созвоны с куратором Тинькофф, на которых лаборанты рассказывают о проделанной работе.


image
Обычный рабочий созвон с обсуждением найденной архитектуры генератора мимики


Лаборанты готовые R&D-специалисты


Так как работа в Лаборатории идет на стыке науки и практики, ее результаты публикуют и в академических кругах. Например, первые результаты работы в проекте Говорящие головы ментор и студенты готовят для доклада на 63-ю научную конференцию в МФТИ в ноябре этого года.


Аркадий Ильин, ментор
То, что делаем мы, мало кто делает в бизнес-сообществе. Поэтому хотим донести результаты и до академической среды.

До 27 сентября открыт прием заявок в лабораторию, подробнее об открытых проектах и сроках

Подробнее..

Почему я преподаю и вам тоже стоит начать это делать

29.07.2020 10:12:50 | Автор: admin
Это история о бывшем вузовском преподавателе, который нашел свое призвание в ИТ, но не перестал обучать молодых специалистов. Знакомьтесь Андрей Трубицын, Solution Architect, уже практически 5 лет сотрудничает с EРАМ. За его плечами 8 лет преподавания в ВУЗе и сейчас он задействован сразу в нескольких образовательных проектах компании. Андрей не стремился к преподаванию, но жизнь раcпорядилась иначе. Итак, далее рассказ от первого лица.



С чего все началось


В детстве увлекался произведениями фантастов Азимова, Лема, Стругацких, мечтал создавать роботов. С момента, когда в доме появился 8-разрядный ZX Spectrum, все мои мысли были только о программировании. В лицее я впервые познакомился с компьютерами из Европы, первые 286-е машины. Именно там в 11 классе у меня случился первый опыт преподавания. Я рассказывал пятиклассникам о Norton Commander, как копировать файлы, запускать игры, считывать информацию с дискеты. Изучая математику в вузе (механико-математический факультет в Харьковском национальном университете им. В.Н.Каразина), как и многие студенты, я постоянно подрабатывал решал лабораторные по программированию. Параллельно поступил в аспирантуту. Оказалось, преподавателей математики много, а информатики нет. Поэтому в 22 года я начал читать лекции по программированию. Читал курс по языкам программирования С++, Java, базы данных, спецкурсы по шаблонам проектирования, криптографии. Вначале было страшно в аудитории мои вчерашние приятели. Сложно воспринимать себя в новой роли, но это как раз был отличный период развития soft skills.



К программированию на мехмате относились как к гуманитарному предмету, единицы по-настоящему хотели учиться. Я работал только с теми студентами, кто интересовался, от других требовал минимум знаний. Сейчас по-другому, когда я преподаю, вижу отдачу. Люди понимают, что программисты зарабатывают выше по рынку, и это мотивирует. Иногда я встречаю своих бывших студентов среди тестировщиков, программистов, хотя в свое время они обещали никогда не заниматься программированием. За обещание я ставил им тройки.
По окончанию вуза я работал в Институте комплексной автоматизации, который разрабатывал программы для атомных станций. Кстати, парочка моих программ до сих пор вертится на Хмельницкой, Ивано-Франковской АЭС. Пока я писал кандидатскую и преподавал, другой институт попросил построить систему учета мониторинга роста и изготовления кристаллов. На тот момент таких специалистов было мало либо уехали за рубеж, либо ушли в коммерцию. Мне, молодому 24-летнему парню, выпала крутая возможность создавать продукт для крупного института, который зарабатывал миллионы на экспорте кристаллов. Благодаря этому сотрудничеству, институт прошел сертификацию на ISO, а я занялся фрилансом на различных платформах. Когда появилась семья, родилась дочь, стало ясно: надо что-то менять. Так в моей жизни появилась аутстафинговая компания Muranosoft и потом ЕРАМ. Началась моя карьера программиста и на пять лет приостановилась карьера преподавателя.

Как построить карьеру преподавателя в бизнесе


EPAM быстро растет, постоянно присоединяются новые ребята, которых нужно обучать. И вот я, уже архитектор, снова преподаю. Хотя я бы не сказал, что это совмещение карьер: обучение других это часть моей работы инженера. Я начинаю новые проекты и хочу, чтобы ко мне приходили те, кто понимает архитектуру, умеет читать диаграммы, может брать ответственность за часть работы, помогая мне добиваться целей. С 2016 года в компании существует Solution Architecture School (SAS), где я обучаю. Цель программы за 5 месяцев дать фундаментальные знания по этой дисциплине и помочь ребятам перейти на новый карьерный уровень в компании. Но профессия архитектора это, откровенно говоря, сложно. А 180 часов обучения немало, поэтому до конца доходят не все. Те, кто смогли, стали лучше выстраивать процессы и делать дизайн некоторых частей решения, анализировать требования на проектах и документировать решение. Чтобы я сам мог перейти на более высокий уровень Senior Architect, директор по технологиям или Lead Architect мне нужно подготовить смену, чем я и занимаюсь.

С прошлого года работаю также над внешней образовательной программой Masters degree Program, которая создана ЕРАМ в партнерстве с одним из престижных ВУЗов Украины Киево-Могилянской Академией. Это магистерская программа подготовлена специально для опытных разработчиков, которые мечтают о развитии карьеры в IT и она доступна абсолютно всем вне зависимости от проживания и места работы. Вместе с коллегами я разрабатывал модуль по Solution Architecture на основе опыта в SAS. Но, если в школе архитекторов больше внимания уделялось оффлайновым встречам, то в MsDP упор на онлайн формат и воркшопы. Новый формат требует адаптации учебной программы сделать опросники, квизы, задачи для отбора, разработка домашних заданий и т.д. Сейчас, когда половина обучения прошла, признаюсь, группа подобралась отличная. Ребята разные есть разработчики, менеджеры, директора. Есть руководитель IT-отделения банка, которому важно не стать архитектором, но понять внутренние процессы своего IT-отдела. Интересно, что пара ребят приехали из Белоруси, самостоятельно оплачивая программу и дорогу. Я был поражен их целеустремленностью. Невзирая на то, что программа насыщенная только один модуль длиться более 400 часов участники крайне мотивированы. Возможно, потому что обучение платное и отношение другое. Ситуаций, когда кто-то не сделал домашку не бывает. Как не бывает и сессий без вопросов. Студенты требуют ответов, погружаются в глубину темы, им нужны детали. Когда отдаешь знания и кому-то они нужны преподаватель счастлив. Кстати, в преподавательском составе MsDP специалисты очень высокого уровня. В Киев приезжали выступать IT-звезды несколько СТО, топы ЕРАМ, а также приглашенные преподаватели, среди которых Бертран Мейер, выпускник Стэндфорда, создатель языка программирования Eiffel. Это люди, которые много добились, у них огромный опыт, широкий взгляд на происходящее. Эти встречи очень популярны.



Также я участвую в менторинговой программе. Она полезна для специалистов, которые приходят с рынка и не всегда владеют экспертизой, необходимой для проекта. Наставник может помочь быстрее включиться в работу. Иногда приходят опытные специалисты, которые хотят пройти ре-трейнинг своих навыков. Вместе мы готовим персональный план развития, цели, которые ученик хочет достичь за определенное время. Обычно такое сотрудничество длится 2-6 месяцев. Это хороший опыт, но прежде всего очень важно сначала проговаривать, зачем это ментору и зачем это менти. Вообще, хорошая привычка всегда думать, зачем мы что-то делаем. Как-то работал одновременно с 7 ребятами, но быть наставником для такого количества это трудно. Позже мои менти разошлись по проектам, некоторые исполняют функции архитектора, некоторые до сих пор работают со мной, мы поддерживаем связь. Пока что они не стали архитекторами, но понимание архитектурной работы у них есть.

Но все же, для чего преподавание мне? Все достаточно прагматично это возможность капитализировать себя как специалиста и признание моей экспертизы. Чтобы развиваться и зарабатывать больше, мне нужно делать то, чего не делают другие, идти на более сложную позицию. Для этого мне нужно оставить после себя стабильную ситуацию, компетентных специалистов. Также мне, как и любому человеку, важна потребность в самовыражении и признании. Когда меня слушают, спрашивают, появляется чувство востребованности. Преподаватели знают, о чем я.



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

Кто он хороший преподователь?


В заключении, я бы хотел, чтобы вы задумались кто такой хороший преподаватель. На каждого из нас в свое время оказал влияние учитель. Вспомним тандем Александра Македонского и Аристотеля. Что объединяет людей, которых мы называем хорошими учителями? И что нужно для того, чтобы быть похожим на них?

Во-первых, это понимание того, зачем ты преподаешь. О своих мотивах я уже рассказал выше.

Во-вторых, что ты преподаешь. Речь о технических знаниях. Я почувствовал это, когда на курсе криптографии появлялись элллиптические кривые и алгоритмы, основанный на них. Откровенно, я не до конца понимал тему. И вопросы от умных ребят были особенно горячие. Пришлось разобраться.

В-третьих, терпение это, наверное, самое важное в преподавании. Эта добродетель особенно испытывалась в вузе, когда студенты в период сессии пробовали манипулировать через здоровье, другие жизненные обстоятельства, лишь бы получить зачет. Кроме того, терпение и принятие понадобиться и в других случаях. То, что очевидно для вас, требует времени на осмысление у студента. Поэтому, преподавая, никогда нельзя скатываться в подход я покажу, как правильно и делай, как я. Чтобы подготовить людей мыслящих, используйте другой метод сделай, покажи мне и я подскажу, как это сделать лучше. Да, это приводит к тому, что у каждого инженера формируется свой стиль. Но мне кажется, это к лучшему, ведь разнообразие это то, что делает IT индустрию, да и мир в целом, прекрасней.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru