5 вопросов core-разработчику
Короткое интервью с главным DS-инженером AMAI
Я работал с большим количеством core-разработчиков в продуктах разного масштаба: чаще всего они не выступают на конференциях, не проходят онлайн-курсы, не пишут тысячи публикаций и не просиживают весь рабочий день в телеграм-чатах. Но главный вывод, которые я сделал: чем ближе ты к разработке core-продукта, тем меньше ты подвержен иллюзиям своей сферы.
Далее короткое интервью с core-разработчиком AMAI — Андреем, который пришел в компанию как джуниор без какого-либо опыта и за 2 года разработал модель для TTS-движка с невероятно реалистичным качеством голоса в одном из самых технологически сложных AI-направлении.
Какой у тебя бэкграунд?
Я учился на математика, получил магистра по алгебраическим методам защиты информации. Во время обучения были курсы по machine learning методам, но я на пары не ходил, просто показывал преподавателю чем занимаюсь. Занялся нейросетями в качестве хобби на 4 курсе бакалавра, заодно диплом по теме написал. В конференциях никогда не участвовал, в самом начале прошел три недели курса Воронцова, но потом там предложили решать интегралы и я забросил: я целый год до этого их решал и с тех пор травма.
Насколько помогает математический бэкгрануд в написании нейросетей?
Ирония в том, что всякие теоремы из классической статистики не работают. Даже не припомню адекватных ссылок не в стиле: «Если сделать десять допущений, то мы получим какой-то результат из теории струн, и вот поэтому наверно нейронные сети работают». Универсальная теорема аппроксимации гласит, что однослойная сеть может аппроксимировать любую непрерывную функцию. Что нам это дает? Ничего.
Алгоритмы GAN отсылают к «Равновесию Нэша», но никто не знает, как его достичь. Публикации, которые сводят «Градиентный спуск» или нейросети к чему-то биологическому тоже выглядят как подгон задачи под ответ.
Я думаю, что если сделают Strong AI в ближайшее десятилетие, у нас все равно не будет понимания, как это работает. Точно так же как сейчас делают классификаторы изображений, но без особой интерпретации. В прошлом году был сделан большой шаг вперед,
но это понимание не того уровня.
Что важно не упускать в начале работы над DS-проектом?
Самое первое — это сбор датасетов, поиск каких-нибудь артефактов. Потом необходимо сформировать все нужные метрики, чтобы не было такого: «Интересно, а предыдущая модель была лучше или хуже?». Для этого можно, например, через модель прогнать датасет и посмотреть на самые проблемные сэмплы. Если говорить про прогресс модели в длительном промежутке, то это широкий вопрос: в плане TTS это субъективные метрики через оценку людьми, что затратно, поэтому другие модели машинного обучения проще.
Какие модели машинного обучения подходят конкретно для TTS?
Feed forward, свёрточные сети, LSTM, GRU, Transformer. Все остальные судя по всему не имеют каких-то особых преимуществ в тех задачах, которые я делал.
Какие опыт важен для DS-специалиста?
Опыт придумывания своих моделей для решения задач, какие-нибудь оригинальные решения, комбинация известных вещей. Мне помогает общение с другими людьми в своей сфере, поиск информации и чтение публикаций. Я читаю примерно две в неделю, иногда больше. Еще много абстрактов и блогов. Из недавних публикаций понравились эти: