— Андрей, как ты пришел к разработке на Python?
— В основном, как и многие в моей отрасли, через ML. Но это будет не совсем честный ответ. Питоном я увлекался до этого, можно даже сказать, со школы. А еще был классный курс в ШАДе. Поначалу меня пугал синтаксис, до этого я изучал лишь C-подобные языки, и после них казалось, что полагаться на пробелы и табы для структурирования программы не совсем разумно. Но потом привык, понравилась простота, а через некоторое время пришло понимание, какой же это на самом деле богатый и многогранный язык, какие сумасшедшие вещи можно с ним делать. Это не то, что приходится часто делать на работе, но приятно осознавать, что инструмент, с которым ты работаешь, достаточно гибок и мощен.
— У тебя интересная должность — разработчик-аналитик. Чем занимаются разработчики-аналитики? Над чем ты сейчас работаешь?
— Нас, разработчиков-аналитиков, в банке не очень много. Это что-то среднее между специалистом по работе с большими данными и промышленным разработчиком. Здесь надо и код уметь писать красивый и поддерживаемый, и с данными уметь работать, ML эксперименты проводить, анализировать результаты и соответствующим образом обновлять математические модели. Ну, или искать новые подходы к решению задачи, если текущие не работают. А если работают, и со стороны бизнеса все ок, то пробовать реализовать прототип для продакшена. Соответственно, стек технологий очень широкий. Работа интересная и довольно трудоемкая, очень много приходится читать доков про новые технологии и вообще в принципе следить за новостями в области ML и выбранных технологий для продакшен стека.
Сейчас я работаю на проекте по распознаванию речи для банка.
— Какие технологии использует Тинькофф? Много ли у вас ML? Какое место в инфраструктуре занимает Python?
— Из тех, что используем мы: Python, Tensorflow, Docker, Protocol Buffers, GRPC, Cython. У других команд, конечно, может быть другой стек технологий.
ML много, в продакшене особенно ценятся простые и быстрые, хорошо интерпретируемые ML модели. Сейчас развиваем и модный Deep Learning. Распознавание речи, диалоговые системы — все это как раз использует глубокие нейросети. Применение нейронных сетей может дать в будущем качественный скачок в создании клиентских продуктов и сервисов, поэтому мы уделяем им отдельное внимание.
Python в инфраструктуре наших ML решений пока занимает роль языка для проведения экспериментов и тренировки первоначальных моделей. В нём есть все для ML продакшена, и мы пытаемся исследовать эту тему. В идеале хотелось бы иметь инструмент, который позволит аналитикам экспортировать обученные модели и предоставлять быстрый внешний API для их расчета. Для Deep Learning что-то такое отчасти уже есть, я сейчас говорю про Tensorflow Serving. Было бы круто, если такой инструмент существовал для всех часто используемых ML моделей.
На прошлогоднем PyCon Martin Gorner из Google подробно рассказал про TensorFlow
— Насколько страшно писать код для банка?
— В RnD вообще не страшно, а должно быть? :) Ребятам, которые ближе к персональным данным и деньгам, наверное, страшнее, но у них там и внешнего контроля над процессом больше.
— Насколько я знаю, Тинькофф стал первым в России, кто внедрил у себя технологию распознавания клиентов по голосовому слепку. Это так? Ты принимал участие в разработке? Расскажи поподробнее про эту фичу?
— Если я правильно понял, вы говорите про совместный проект с NICE Systems. Мы внедрили распознавание по голосу в 2014 г, это произошло до того, как я пришел работать в Тинькофф.
Внедрение этой технологии позволило сократить количество дополнительных вопросов к клиенту или вообще обойтись без них. Продолжительность звонков в среднем уменьшается на 40-60 секунд за звонок, что позволяет нам существенно экономить на трафике.
Система распознавания голоса повышает уровень сервиса, так как клиентам не нужно отвечать на однотипные вопросы при каждом звонке в банк, и эффективность работы службы поддержки, поскольку операторы сразу переходят к решению вопроса. А еще голосовая биометрия позволяет повысить уровень безопасности при проведении операций.
— Стоит ли ждать, что голосовые помощники и голосовые технологии станут нормальными собеседниками?
— Со временем, думаю, да. Но сколько времени должно пройти для этого, никто не знает.
Сейчас всё, даже с учетом последних наработок в области GPGPU, упирается в вычислительные способности современного железа и разработку эффективных нейросетевых архитектур. Основная проблема заключается даже не в тренировке, хотя и в этой области развитие железа помогло бы, а в предоставлении миллионам пользователей вычислительного времени для обсчёта нейросети на их данных. Представленные недавно Tensor Processing Unit (TPU) от Google и специализированные вычислительные юниты для Deep Learning в GPU ядре новой архитектуры от NVIDIA позволяют частично решить эту проблему, но должно пройти еще много времени, чтобы эти технологии освоили разработчики и ученые.
Да, человечество сделало огромный шаг в области AI по сравнению с тем, что было, например, 10 лет назад, но до полноценного искусственного интеллекта, думаю, еще далеко.
— На твой взгляд, в каком направлении будут развиваться эти технологии в ближайшие годы?
— Думаю, в ближайшее время произойдёт серьезное усиление человеческих способностей с помощью AI в тех областях, где сейчас традиционно человек считается превосходящим компьютер (это как раз голосовые помощники, чатботы, диалоговые системы). Интерфейсы взаимодействия всё еще сохранят отчасти искусственный, компьютерный «облик», то есть естественно разговаривать с голосовым помощником на произвольную тему пока ещё не получится, но в рамках фиксированного домена разговор, даже естественный, может вполне состояться.
— Ты наверняка знаешь, что происходит в мире финтеха. Какова роль Python в этой отрасли?
— Python зарекомендовал себя как отличный язык для экспериментов с ML. В продакшене не все так просто, я сейчас в основном про скорость работы. Но computationally-intensive часть кода всегда можно реализовать на Cython или как C extension. Тогда проблем со скоростью быть не должно. У Python очень классное комьюнити, и возникшие потребности можно всегда решить внешними пакетами.
— Какие инструменты ты используешь для организации работы (в том числе для планирования времени, организации рабочего пространства и т.п.)?
— Я предпочитаю почти пустой рабочий стол с минимальным количеством самого необходимого. Для планирования использую листок бумаги и голову, иногда Google Keep для долгосрочных задач.
— Ты читаешь какой-нибудь профессиональный блог? Какие информационные ресурсы ты мог бы порекомендовать коллегам для развития скиллов?
— Если про ML и Deep Learning, то мне нравятся блоги Andrej Karpathy и WildML. Они, правда, уже давно не обновлялись. Еще есть классный блог про Tensorflow от одного француза. Также мне очень понравилась видеолекция от David Beazley про метапрограммирование в Python 3. А еще у Python-а и стандартной библиотеки очень классные доки, я всегда нахожу в них что-то новое.
17 июля на PyConRu Андрей проведет большой мастер-класс «Распознавание речи на Python без PhD» на котором расскажет о том, как написать и натренировать свой простой движок для распознавания речи с Tensorflow и нейросетями в максимально сжатые сроки.
Спасибо нашим спонсорам, которые делают конференцию возможной: золотому спонсору — компании Adcombo, партнеру энергии и хорошего настроения компании ЦИАН, серебряным спонсорам — Rambler&Co и ДомКлик, бронзовому спонсору — MediaScope. Спасибо за поддержку Python Software Foundation.
Комментарии (8)
AMIluvatar
13.07.2017 09:30+5Я бы другой вопрос задал. Вроде у банка все хорошо, специалистов полно, а ИБ пользоваться невозможно вообще, это самый забагованный и тормознутый ИБ, который я видел. У меня ПК старый, 7 лет ему, однако там есть core i6, SSD, 12GB RAM, нормальная видеокарта, канал в 100 Мбит/сек симметричный, а ИБ лагает просто неистово. При этом мобильное приложение отличное, работает быстро и хорошо.
Вот как так? Почему каждый новый ИБ (2012=>2015=>2017) все более и более казуальный и тупой?
Ах да, когда на мониторе в 27 дюймов видно 5 строчек с полезной инфой, а все остальное залито красивыми цветами, это тоже не круто.ntkj666
13.07.2017 14:30core i6?
AMIluvatar
13.07.2017 14:37Опечатался, а так как мои комментарии вынуждены проходить модерацию, исправить не было возможности. Само собой i5, 650 (старый, но пока хватает как ни странно).
Суть в том, что ИБ ужасен. Со стороны смотрится красиво и современно, но пользоваться этим желания нет. Слава богу, что почти все (кроме просмотра МСС кодов) можно делать через МБ.
sergof
13.07.2017 10:04Скажите, а какой смысл в интервью с кем-то не имеющим отношения к теме интервью.
Ну да, в силу обстоятельств команда интервьюированного пользуется определенными инструментами. И что?
Нелепо было бы взять у меня интервью на тему «двигателестроения BMW» на том лишь основании что я владелец автомобиля BMW.
Давайте сразу делать статьи про кодинг Ali / Ebay / Amazon каждым кто делал там заказ.
А кто смотрит телевизор, тот пусть дает интервью про Linux в бытовых устройствах.
Логично ведь, да?shulyndina
13.07.2017 10:54-1А почему интервьюируемый не имеет отношения к теме интервью? Интервью про python, ml, финтех и Тиньков, к которым Андрей имеет непосредственное отношение. Или брать интервью по вашей логике нужно только у Гвидо Ван Россума?
bro-dev
Сколько там ЗП?