Серию интервью с докладчиками PyCon Russia продолжает разговор с разработчиком-аналитиком из Тинькофф Банка Андреем Степановым. Мы поговорили с Андреем о месте Python в инфраструктуре банка, о машинном обучении и о технологии распознавания речи.



— Андрей, как ты пришел к разработке на 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)


  1. bro-dev
    12.07.2017 18:17
    +7

    Сколько там ЗП?


  1. mbait
    13.07.2017 02:03
    +7

    Зашёл почитать про язык программирования ML =(


  1. AMIluvatar
    13.07.2017 09:30
    +5

    Я бы другой вопрос задал. Вроде у банка все хорошо, специалистов полно, а ИБ пользоваться невозможно вообще, это самый забагованный и тормознутый ИБ, который я видел. У меня ПК старый, 7 лет ему, однако там есть core i6, SSD, 12GB RAM, нормальная видеокарта, канал в 100 Мбит/сек симметричный, а ИБ лагает просто неистово. При этом мобильное приложение отличное, работает быстро и хорошо.
    Вот как так? Почему каждый новый ИБ (2012=>2015=>2017) все более и более казуальный и тупой?
    Ах да, когда на мониторе в 27 дюймов видно 5 строчек с полезной инфой, а все остальное залито красивыми цветами, это тоже не круто.


    1. ntkj666
      13.07.2017 14:30

      core i6?


      1. AMIluvatar
        13.07.2017 14:37

        Опечатался, а так как мои комментарии вынуждены проходить модерацию, исправить не было возможности. Само собой i5, 650 (старый, но пока хватает как ни странно).
        Суть в том, что ИБ ужасен. Со стороны смотрится красиво и современно, но пользоваться этим желания нет. Слава богу, что почти все (кроме просмотра МСС кодов) можно делать через МБ.


  1. sergof
    13.07.2017 10:04

    Скажите, а какой смысл в интервью с кем-то не имеющим отношения к теме интервью.
    Ну да, в силу обстоятельств команда интервьюированного пользуется определенными инструментами. И что?
    Нелепо было бы взять у меня интервью на тему «двигателестроения BMW» на том лишь основании что я владелец автомобиля BMW.
    Давайте сразу делать статьи про кодинг Ali / Ebay / Amazon каждым кто делал там заказ.
    А кто смотрит телевизор, тот пусть дает интервью про Linux в бытовых устройствах.
    Логично ведь, да?


    1. shulyndina
      13.07.2017 10:54
      -1

      А почему интервьюируемый не имеет отношения к теме интервью? Интервью про python, ml, финтех и Тиньков, к которым Андрей имеет непосредственное отношение. Или брать интервью по вашей логике нужно только у Гвидо Ван Россума?


      1. sergof
        13.07.2017 12:39

        Берите у кого хотите. Интернет все стерпит.