Pipeline de build do modelo.
O pipeline de build tem a seguinte estrutura de arquivos:
|-- CONTRIBUTING.md
|-- pipelines
| |-- customer_churn
| | |-- evaluate.py
| | |-- __init__.py
| | |-- pipeline.py
| | `-- preprocess.py
| |-- get_pipeline_definition.py
| |-- __init__.py
| |-- run_pipeline.py
| |-- _utils.py
| `-- __version__.py
|-- README.md
|-- setup.cfg
|-- setup.py
|-- tests
| `-- test_pipelines.py
`-- tox.ini
Dentro de pipelines/customer_churn
, temos os arquivos que compõem a pipeline do SageMaker para o modelo, onde temos em preprocess.py
, os pré-processamentos que fazemos antes de treinar o modelo, em evaluate.py
temos o código para gerar um json com a avaliação do desempenho do modelo, que usamos para decidir se haverá ou não o deploy. Por fim, em pipeline.py
, temos a pipeline do SageMaker (opens in a new tab) sendo definida todas as suas etapas, desde o caminho para os dados no S3, definimos o modelo que será utilizado (no exemplo XGBoost), até a etapa onde o modelo é registrado no SageMaker de acordo com seu desempenho (se o desempenho for maior que o threshold, ele será registrado).
O resto dos arquivos dentro de pipelines
servem apenas para para pegar o código da definição pipeline que definimos, fazer um parse e rodar, para que o código vá para o SageMaker e execute.
Por fim, temos uma pasta de tests
, onde é possível executar testes no código, se for necessário além da avaliação de desempenho do modelo.
O código completo pode ser acessado em https://github.com/RicardoRibeiroRodrigues/AWS-IaC-mlops-pipeline/tree/main/templates/modelbuild_pipeline (opens in a new tab).