Neste artigo, vamos demonstrar como monitorar um modelo em um provedor de Machine Learning customizado usando o IBM watsonx.governance (IBM Watson OpenScale). Embora você possa usar qualquer mecanismo de implementação de modelo, aqui criaremos um container com Python Flask.
- Implementação do servidor de aplicação: Implementa o servidor de aplicação usando VM ou Code Engine na IBM Cloud.
- Configuração do watsonx.governance: Com o Jupyter Notebook configura o watsonx.governance. (diretório do Github).
- Monitoramento do modelo: O watsonx.governance é usado para monitorar a qualidade do modelo de Machine Learning e suas transações (scoring).
Usaremos o Code Engine na IBM Cloud para simular um framework de Machine Learning personalizado existente. Siga as instruções abaixo para criar o container do modelo e fazer upload da imagem no Container Registry da IBM Cloud.
- Crie o container do modelo utilizando o código. (Para mais detalhes sobre como implementar um modelo scikit-learn em container, veja o artigo “Implemente um modelo Scikit-learn em container”)
- Faça upload da imagem para o registry da IBM Cloud.
$ ibmcloud plugin install container-registry -r 'IBM Cloud'
$ ibmcloud login -a https://cloud.ibm.com$ ibmcloud cr region-set global
$ ibmcloud cr namespace-add 'tutorial-watsonx-governance'
$ ibmcloud cr login
$ docker tag sample-model-container \
icr.io/tutorial-watsonx-governance/sample-model-container:latest
$ docker push icr.io/tutorial-watsonx-governance/sample-model-container:latest
$ ibmcloud cr image-list
- Abra o seu serviço do Code Engine.
- Na aba
Projects
-> Clique emCreate +
Agora precisamos configurar a integração do Container Registry ao nosso projeto.
- Na aba
Integrations
-> Clique emGlobal
. (utilizamos o registry na localidade global com o comandoibmcloud cr region-set global
). - Clique em
Configure
Com a configuração do Container Registry no projeto Code Engine, vamos criar a nossa aplicação.
- Na aba
Applications
-> Clique emCreate +
- Na aba
Code
-> Clique emConfigure image
- No menu de configuração, selecione o
Registry server
(utilizamos oIBM Registry Global
). - Selecione o
Namespace
eRepository
para o deploy da aplicação.
- Na aba
Image start options
- Ajuste a
Listening port
para3000
, porta utilizada pela aplicação Flask. - Clique em
Create
Por último, armazene o endpoint (URL) gerado pelo Code Engine:
- Na aba
Domain mappings
- IMPORTANTE: Anote o endpoint público da aplicação.
Para acessar o seu serviço do watsonx.governance via Jupyter Notebook, precisamos criar uma API key no painel do IBM Cloud.
- No menu, clique em
Gerenciar
->Acesso (IAM)
- Na aba
Chaves de API
- Clique em
Criar uma chave API da IBM Cloud
- Dê um nome a sua API Key.
- Clique em
Criar
IMPORTANTE: Anote sua API key, você não poderá visualizá-la novamente.
Para que o watsonx.governance possa acessar os dados utilizados no treinamento do modelo, faça o upload do dataset em um bucket do COS.
- Abra o seu serviço do COS.
- Clique em
Create bucket +
- Neste artigo vamos utilizar a segunda opção
Quickly get started
- Dê um nome ao seu bucket.
- Faça upload do dataset de treinamento
credit_risk_training.csv
- Na aba
Configuration
- IMPORTANTE: Anote sua
apikey
eresource_instance_id
Abra o Jupyter Notebook e execute o código para configurar o watsonx.governance e criar o monitor de qualidade do modelo.
- Execute o bloco
1
, e adicione aAPI_KEY
criada noPasso 2
- Execute o bloco
2
- No bloco
3
e3.1
vamos criar o nosso provedor de Machine Learning customizado.
4. Com o provedor de Machine Learning criado, no bloco 3.2
crie a Subscription
do seu modelo.
5. Adicione suas credenciais:
- SCORING_ENDPOINT_URL: Endpoint da aplicação Code Engine criada no
Passo 1
. Adicione o seguinte path ao endpoint:/api/v1/predict
. ex.:https://application.us-south.codeengine.appdomain.cloud/api/v1/predict
- COS_API_KEY_ID: API Key do COS criado no
Passo 3
- COS_RESOURCE_CRN: Resource CRN criado no
Passo 3
- BUCKET_NAME: Nome do bucket criado no
Passo 3
6. Agora vamos executar chamadas ao modelo, e registrar o resultado (payload logging) no watsonx.governance.
7. Por último, configure e execute alguns monitores de qualidade para o modelo.
- Acurácia
- Precisão
- Recall
- AUC
IMPORTANTE: Execute o Jupyter Notebook até o fim para efetuar o monitor de qualidade com o dataset de teste.
o IBM watsonx.governance é uma ferramenta poderosa para monitorar e garantir a qualidade de modelos de Machine Learning. Seguindo os passos descritos no artigo, é possível monitorar modelos de provedores customizados. Explore novos monitores para aprimorar ainda mais a robustez e transparência do seu modelo.