Da Exploração à Produção
Inteligência Artificial com a Plataforma Marvin
Sobre mim ...
Daniel Takabayashi
IT Manager / Software Architect / Software Engineer @ B2W Digital
daniel.takabayashi@b2wdigital.com
linkedin.com/in/danieltakabayashi/
github.com/takabayashi
@DanTakabayashi
B2W Digital: e-commerce leader in LatAm
Alguns cases de IA @ B2W
Buy Box Optimization
Forecast Demand
Risk Analysis
Ad-Spend Optimization
Dynamic Pricing
Product Feature Extraction
Product Category Classification
Product Image Search
Product Match
Domínios de conhecimento
Como abstrair a
complexidade na criação de
IAs?
Github.com/marvin-ai
Marvin: Plataforma open source de Inteligência Artificial
Permite que equipes de ciência de
dados entreguem aplicativos de
IA, simplificando o processo
de exploração e modelagem.
Padronizando & Abstraindo
Padronizando: DASFE pattern
Data Acquisition
and Cleaning
initial dataset
Training
Preparation
dataset
Model Training
model
Model Evaluation
metrics
Batch Actions
Prediction
Preparation
input message
Model Prediction
final prediction
Online Actions
Prediction
Feedback end
Padronizando: passo a passo
Padronizando: Rest APIs
curl -H "Content-Type: application/json" -X POST localhost:8000/<onlineAction> -d {...}
curl -H "Content-Type: application/json" -X PUT localhost:8000/<actionName>/reload?protocol=...
curl -H "Content-Type: application/json" -X GET localhost:8000/<actionName>/health
- Ações batch: acquisitor, tpreparator, trainer, evaluator e pipeline
- Ações online: predictor, feedback
Abstraindo: principais componentes
● Toolbox - Conjunto de utilitários específicos por linguagem de
programação que auxilia em todo processo de exploração, desenvolvimento,
teste e deploy de uma engine (python-toolbox, scala-toolbox, r-toolbox etc).
● Engine - Projeto que contém o código fonte relacionado ao modelo, é
administrado pelo toolbox. Implementação do DASFE pattern.
● Engine Executor - Responsável por toda a abstração arquitetural em
torno da Engine (paralelismo, versionamento, APIs, disponibilidade etc).
● Artefatos - Binários persistidos e versionados no fim de cada ação batch
(initial dataset, dataset, model e metrics).
Abstraindo:
Abstraindo: diagrama de contexto
Abstraindo: componentes arquiteturais
Abstraindo: marvin toolbox
● Python: github.com/marvin-ai/marvin-python-toolbox (v0.0.1)
○ notebook integrado
○ integração com spark, keras etc
○ integração contínua (git, gerenciamento de versão, test unitários, profiling, test funcional etc)
○ gerador de template
○ importação e sampling de dados do hive
○ marvin common classes (properties, logs, data etc)
○ ...
● Scala: github.com/marvin-ai/marvin-scala-toolbox (em construção)
● Java: github.com/marvin-ai/marvin-java-toolbox (vamos contruir?)
● R: github.com/marvin-ai/marvin-r-toolbox (vamos contruir?)
Abstraindo: Ambiente de desenvolvimento
O marvin toolbox é compatível com o ubuntu e macOS !!!
https://github.com/marvin-ai/marvin-python-toolbox/blob/master/README.md
...mas também é possível utilizar uma box do vagrant (muito fácil) !!!
https://github.com/marvin-ai/marvin-vagrant-dev/blob/master/README.md
Marvin Roadmap
● Jupyter extension to generate code
● Admin module
● Toolbox: Go, R, Java, Scala support
● Feedback server
● Artifacts persistence layer: S3 and local FS support
● Remote provisioning and deployment: Azure, AWS and GCP
● Automate feature engineering
● Hyper parameters support
● ML for no-data scientists
● ...
Hands on...
Da Exploração à Produção - Inteligência Artificial com a plataforma Marvin

Da Exploração à Produção - Inteligência Artificial com a plataforma Marvin

  • 1.
    Da Exploração àProdução Inteligência Artificial com a Plataforma Marvin
  • 2.
    Sobre mim ... DanielTakabayashi IT Manager / Software Architect / Software Engineer @ B2W Digital daniel.takabayashi@b2wdigital.com linkedin.com/in/danieltakabayashi/ github.com/takabayashi @DanTakabayashi
  • 3.
    B2W Digital: e-commerceleader in LatAm
  • 4.
    Alguns cases deIA @ B2W Buy Box Optimization Forecast Demand Risk Analysis Ad-Spend Optimization Dynamic Pricing Product Feature Extraction Product Category Classification Product Image Search Product Match
  • 5.
  • 6.
    Como abstrair a complexidadena criação de IAs?
  • 7.
  • 8.
    Marvin: Plataforma opensource de Inteligência Artificial Permite que equipes de ciência de dados entreguem aplicativos de IA, simplificando o processo de exploração e modelagem.
  • 9.
  • 10.
    Padronizando: DASFE pattern DataAcquisition and Cleaning initial dataset Training Preparation dataset Model Training model Model Evaluation metrics Batch Actions Prediction Preparation input message Model Prediction final prediction Online Actions Prediction Feedback end
  • 11.
  • 12.
    Padronizando: Rest APIs curl-H "Content-Type: application/json" -X POST localhost:8000/<onlineAction> -d {...} curl -H "Content-Type: application/json" -X PUT localhost:8000/<actionName>/reload?protocol=... curl -H "Content-Type: application/json" -X GET localhost:8000/<actionName>/health - Ações batch: acquisitor, tpreparator, trainer, evaluator e pipeline - Ações online: predictor, feedback
  • 13.
    Abstraindo: principais componentes ●Toolbox - Conjunto de utilitários específicos por linguagem de programação que auxilia em todo processo de exploração, desenvolvimento, teste e deploy de uma engine (python-toolbox, scala-toolbox, r-toolbox etc). ● Engine - Projeto que contém o código fonte relacionado ao modelo, é administrado pelo toolbox. Implementação do DASFE pattern. ● Engine Executor - Responsável por toda a abstração arquitetural em torno da Engine (paralelismo, versionamento, APIs, disponibilidade etc). ● Artefatos - Binários persistidos e versionados no fim de cada ação batch (initial dataset, dataset, model e metrics).
  • 14.
  • 15.
  • 16.
  • 17.
    Abstraindo: marvin toolbox ●Python: github.com/marvin-ai/marvin-python-toolbox (v0.0.1) ○ notebook integrado ○ integração com spark, keras etc ○ integração contínua (git, gerenciamento de versão, test unitários, profiling, test funcional etc) ○ gerador de template ○ importação e sampling de dados do hive ○ marvin common classes (properties, logs, data etc) ○ ... ● Scala: github.com/marvin-ai/marvin-scala-toolbox (em construção) ● Java: github.com/marvin-ai/marvin-java-toolbox (vamos contruir?) ● R: github.com/marvin-ai/marvin-r-toolbox (vamos contruir?)
  • 18.
    Abstraindo: Ambiente dedesenvolvimento O marvin toolbox é compatível com o ubuntu e macOS !!! https://github.com/marvin-ai/marvin-python-toolbox/blob/master/README.md ...mas também é possível utilizar uma box do vagrant (muito fácil) !!! https://github.com/marvin-ai/marvin-vagrant-dev/blob/master/README.md
  • 19.
    Marvin Roadmap ● Jupyterextension to generate code ● Admin module ● Toolbox: Go, R, Java, Scala support ● Feedback server ● Artifacts persistence layer: S3 and local FS support ● Remote provisioning and deployment: Azure, AWS and GCP ● Automate feature engineering ● Hyper parameters support ● ML for no-data scientists ● ...
  • 20.