Machine Learning é um ramo da Inteligência Artificial focado em ensinar computadores a tomarem decisões a partir de dados. A ideia não é programar uma máquina, mas sim tornar possível que ela aprenda sozinha a fazer escolhas a partir de informações. Esse aprendizado acontece por meio de algoritmos.
Algoritmos de machine learning são usados, por exemplo, por plataformas de vídeo e serviços de streaming para recomendar filmes de acordo com o gosto individual de cada usuário. Quanto mais o usuário interage com a plataforma, mais preciso fica o algoritmo de recomendação.
No Nubank, os Data Scientists, ou cientistas de dados, são os responsáveis por aplicar Machine Learning e outras técnicas de inteligência artificial e análise de dados aos nossos problemas de negócio.
Por aqui, os algoritmos de ML são usados em uma série de sistemas – por exemplo, para identificar qual o motivo do contato de alguém entrando no chat e repassar a conversa para a pessoa mais adequada para responder.
No nosso dia a dia, usamos uma série de bibliotecas abertas de Machine Learning (como Xgboost, LGBM e ScikitLearn). Essas plataformas open-source permitem que toda a comunidade desenvolvedora se beneficie de conhecimento compartilhado.
Ainda assim, sentimos a necessidade de um nível maior de abstrações que nos ajudasse a aplicar o conteúdo dessas bibliotecas aos problemas que a gente enfrenta por aqui – por isso, criamos a Fklearn, a nossa biblioteca de Machine Learning com foco em programação funcional.
A Fklearn embala outras bibliotecas em um formato que torna mais fácil usá-las em produção e abastece uma série de modelos que nos ajudam a resolver problemas de análise de dados aqui no Nubank.
Por acreditar que ela tem sido bastante útil no nosso dia-a-dia, decidimos tornar a Fklearn uma biblioteca open-source de machine learning. A partir de hoje, ela está aberta.
Queremos contribuir com a comunidade de Machine Learning com essa ferramenta, afinal, usamos muitos projetos open-source no nosso dia a dia e achamos importante também retribuir com coisas novas, devolvendo um pouco pra comunidade.
Esperamos que ela seja uma ferramenta útil para que outras pessoas desenvolvam seus projetos.
De onde surgiu a ideia da Fklearn
No Nubank, somos fãs de programação funcional – e, há algum tempo, percebemos que ela pode ser uma grande aliada dos cientistas de dados.
Machine Learning é frequentemente feito usando código em python orientado a objeto e, até pouco tempo, era assim que a gente trabalhava por aqui.
Na época, o processo de construir modelos de machine learning e colocá-los em produção era trabalhoso e, muitas vezes, cheio de bugs. Somente depois que o modelo ia para a validação era possível descobrir que uma série de previsões não batiam com as feitas na fase de produção.
Para piorar, a validação em si era muito difícil de reproduzir e os resultados acabavam pouco consistentes.
Com a programação funcional, nós conseguimos resolver esses problemas.
- Ficou mais fácil criar “pipelines” garantindo que os dados da fase de treinamento batem com os dados em produção.
- Exploração em ambientes interativos (e.g. Jupyter Notebooks) ficaram mais consistentes e fáceis de reproduzir.
- A validação de modelos passou a ser feita de forma mais genérica e automática, aumentando a nossa eficiência.
Não esperamos que o Fklearn substitua bibliotecas mais comuns que já estão sendo usadas, mas achamos que ela pode ser útil para começar uma conversa sobre os benefícios da programação funcional em Machine Learning.
Todos os desenvolvedores podem contribuir aqui, e falar com a gente para discutir idéias de como melhorar a biblioteca.
Adoraríamos receber feedbacks sobre como melhorar a ferramenta.
{{#comments}}-
{{comment_author}}
{{comment_date}}
{{comment_content}}
{{/comments}}
{{#children}}-
{{child_comment_author}}
{{child_comment_date}}
{{child_comment_content}}
{{/children}}