Интервью с программистом из Тинькофф Банка Андреем Степановым о языке Python и ML

    Серию интервью с докладчиками 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.
    IT-People
    Company

    Comments 8

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

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

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

            core i6?

              0
              Опечатался, а так как мои комментарии вынуждены проходить модерацию, исправить не было возможности. Само собой i5, 650 (старый, но пока хватает как ни странно).
              Суть в том, что ИБ ужасен. Со стороны смотрится красиво и современно, но пользоваться этим желания нет. Слава богу, что почти все (кроме просмотра МСС кодов) можно делать через МБ.
            0
            Скажите, а какой смысл в интервью с кем-то не имеющим отношения к теме интервью.
            Ну да, в силу обстоятельств команда интервьюированного пользуется определенными инструментами. И что?
            Нелепо было бы взять у меня интервью на тему «двигателестроения BMW» на том лишь основании что я владелец автомобиля BMW.
            Давайте сразу делать статьи про кодинг Ali / Ebay / Amazon каждым кто делал там заказ.
            А кто смотрит телевизор, тот пусть дает интервью про Linux в бытовых устройствах.
            Логично ведь, да?
              –1
              А почему интервьюируемый не имеет отношения к теме интервью? Интервью про python, ml, финтех и Тиньков, к которым Андрей имеет непосредственное отношение. Или брать интервью по вашей логике нужно только у Гвидо Ван Россума?
                0
                Берите у кого хотите. Интернет все стерпит.

            Only users with full accounts can post comments. Log in, please.