📜 ⬆️ ⬇️

Interview with a programmer from Tinkoff Bank Andrei Stepanov about the language of Python and ML

A series of interviews with speakers PyCon Russia continues the conversation with the developer-analyst from Tinkoff Bank Andrey Stepanov. We talked with Andrew about the place of Python in the bank infrastructure, machine learning and speech recognition technology.



- Andrew, how did you come to the development in Python?

- Basically, like many in my industry, through ML. But it will not be quite an honest answer. I was keen on python before, one might even say, from school. And there was a cool course at the SAD. At first, I was afraid of the syntax, before that I had studied only C-like languages, and after them it seemed that relying on spaces and tabs to structure the program was not entirely reasonable. But then I got used to it, I liked simplicity, and after a while it came to understand what kind of a rich and many-sided language it is, what crazy things you can do with it. This is not something that you often have to do at work, but it's nice to know that the tool you work with is quite flexible and powerful.
')
- You have an interesting position - a developer analyst. What do analyst developers do? What are you working on right now?

- We, the analyst developers, are not very many in the bank. It's a cross between a big data specialist and an industrial developer. Here we need both the code to be able to write beautiful and supported, and to be able to work with the data, to conduct ML experiments, analyze the results and update the mathematical models accordingly. Well, or look for new approaches to solving the problem, if the current do not work. And if they work, and from the business side everything is ok, then try to implement a prototype for production. Accordingly, the technology stack is very wide. The work is interesting and rather labor-intensive, a lot of docks have to be read about new technologies and, in general, in principle, follow the news in the field of ML and selected technologies for production of the stack.

I am currently working on a speech recognition project for a bank.

- What technologies does Tinkoff use? Do you have a lot of ML? What place in infrastructure does Python take?

- Of those that we use: Python, Tensorflow, Docker, Protocol Buffers, GRPC, Cython. Other teams, of course, may have a different technology stack.

ML is a lot, in production, simple and fast, well-interpreted ML models are especially appreciated. Now we are developing and fashionable Deep Learning. Speech recognition, interactive systems - all this just uses deep neural networks. The use of neural networks may give a qualitative leap in the creation of client products and services in the future, so we pay special attention to them.

Python in the infrastructure of our ML solutions so far takes the role of a language for conducting experiments and training initial models. It has everything for ML production, and we are trying to explore this topic. Ideally, I would like to have a tool that allows analysts to export trained models and provide a fast external API for their calculation. For Deep Learning, something of this kind is already there, I am now talking about Tensorflow Serving. It would be cool if such a tool existed for all frequently used ML models.


At last year's PyCon Martin Gorner from Google spoke in detail about TensorFlow

- How scary is it to write code for a bank?

- In RnD is not scary at all, but should it be? :) The guys who are closer to personal data and money are probably worse, but they have more external control over the process.

- As far as I know, Tinkoff was the first in Russia to introduce client recognition technology based on voice cast. This is true? Did you take part in the development? Tell me more about this feature?

- If I understand correctly, you are talking about a joint project with NICE Systems. We implemented voice recognition in 2014, this happened before I came to work in Tinkoff.

The introduction of this technology has reduced the number of additional questions to the client or even do without them. The duration of calls on average decreases by 40-60 seconds per call, which allows us to significantly save on traffic.

The voice recognition system increases the level of service, because customers do not need to answer questions of the same type each time they call the bank, and the effectiveness of the support service, as the operators immediately begin to resolve the issue. And voice biometrics allows you to increase the level of security during operations.

- Is it worth waiting for voice assistants and voice technologies to become normal interlocutors?

- Over time, I think, yes. But how much time must pass for this, no one knows.

Now everything, even taking into account the latest developments in the field of GPGPU, rests on the computational abilities of modern iron and the development of efficient neural network architectures. The main problem is not even training, although in this area the development of iron would help, and in providing millions of users with computational time to calculate the neural network on their data. Google’s recently introduced Tensor Processing Unit (TPU) and specialized computational units for Deep Learning in the GPU core of NVIDIA’s architecture partially solve this problem, but it takes a long time for developers and scientists to master these technologies.

Yes, humanity has made a huge step in the field of AI compared to what it was, for example, 10 years ago, but I think it’s still far from full-fledged artificial intelligence.

- In your opinion, in what direction will these technologies develop in the coming years?

- I think in the near future there will be a serious enhancement of human abilities with the help of AI in areas where now traditionally a person is considered to be superior to a computer (these are voice assistants, chatbots, interactive systems). The interaction interfaces will still retain a kind of artificial, computerized “image”, that is, it’s natural to talk with a voice assistant on an arbitrary topic for the time being, but for a fixed domain, even natural conversation may well take place.

- You probably know what is happening in the world of Fintech. What is the role of Python in this industry?

- Python has established itself as an excellent language for experiments with ML. Production is not so simple, now I’m mostly talking about speed. But the computationally-intensive part of the code can always be implemented in Cython or as a C extension. Then there should be no problems with speed. Python has a very cool community, and needs can always be addressed by external packages.

- What tools do you use to organize work (including time planning, work space organization, etc.)?

- I prefer an almost empty desktop with a minimum amount of the most necessary. For planning I use a piece of paper and a head, sometimes Google Keep for long-term tasks.

- Do you read any professional blog? What information resources could you recommend to colleagues for the development of skills?

- If about ML and Deep Learning, I like the blogs of Andrej Karpathy and WildML . True, they have not been updated for a long time. There is also a cool blog about Tensorflow from one Frenchman. I also liked David Beazley’s video lecture about metaprogramming in Python 3. And Python and the standard library have very cool docks, I always find something new in them.

On July 17, at PyConRu, Andrei will hold a large master class “Speech Recognition in Python without PhD”, which will tell you how to write and train your simple speech recognition engine with Tensorflow and neural networks in the shortest possible time.



Thanks to our sponsors who make the conference possible: the gold sponsor Adcombo , the energy and good mood partner of CIAN , the silver sponsor Rambler & Co and DomKlik , the bronze sponsor MediaScope . Thank you for supporting the Python Software Foundation .

Source: https://habr.com/ru/post/332870/


All Articles