A ferramenta What-If (WIT) fornece uma interface fácil de usar para expandir a compreensão da classificação de caixa preta e modelos de ML de regressão. Com o plug-in, você pode realizar inferência em um grande conjunto de exemplos e visualizar imediatamente os resultados de várias maneiras. Além disso, os exemplos podem ser editados manualmente ou programaticamente e executados novamente no modelo para ver os resultados das alterações. Ele contém ferramentas para investigar o desempenho e a imparcialidade do modelo em subconjuntos de um conjunto de dados.
O objetivo da ferramenta é oferecer às pessoas uma maneira simples, intuitiva e poderosa de explorar e investigar modelos de ML treinados por meio de uma interface visual sem absolutamente nenhum código necessário.
A ferramenta pode ser acessada por meio do TensorBoard ou diretamente em um notebook Jupyter ou Colab. Para obter detalhes mais detalhados, demonstrações, orientações e informações específicas sobre o uso do WIT no modo notebook, consulte o site da ferramenta What-If .
Requisitos
Para usar o WIT no TensorBoard, duas coisas são necessárias:
- Os modelos que você deseja explorar devem ser exibidos usando o TensorFlow Serving usando a API de classificação, regressão ou previsão.
- O conjunto de dados a ser inferido pelos modelos deve estar em um arquivo TFRecord acessível pelo servidor web do TensorBoard.
Uso
Ao abrir o painel da ferramenta What-If no TensorBoard, você verá uma tela de configuração na qual fornece o host e a porta do servidor modelo, o nome do modelo que está sendo atendido, o tipo de modelo e o caminho para o arquivo TFRecords para carregar. Após preencher essas informações e clicar em "Aceitar", o WIT carregará o conjunto de dados e executará a inferência com o modelo, exibindo os resultados.
Para obter detalhes sobre os diferentes recursos do WIT e como eles podem ajudar na compreensão do modelo e nas investigações de imparcialidade, consulte o passo a passo no site da ferramenta What-If .
Modelo de demonstração e conjunto de dados
Se quiser testar o WIT no TensorBoard com um modelo pré-treinado, você pode baixar e descompactar um modelo pré-treinado e um conjunto de dados em https://storage.googleapis.com/what-if-tool-resources/uci-census -demo/uci-census-demo.zip O modelo é um modelo de classificação binária que usa o conjunto de dados UCI Census para prever se uma pessoa ganha mais de $ 50.000 por ano. Esse conjunto de dados e tarefa de previsão é frequentemente usado em modelagem de aprendizado de máquina e pesquisa de imparcialidade.
Defina a variável de ambiente MODEL_PATH para o local do diretório do modelo resultante em sua máquina.
Instale o docker e o TensorFlow Serving seguindo a documentação oficial .
Sirva o modelo usando docker por meio docker run -p 8500:8500 --mount type=bind,source=${MODEL_PATH},target=/models/uci_income -e MODEL_NAME=uci_income -t tensorflow/serving
Observe que pode ser necessário executar o comando com sudo
dependendo da configuração do docker.
Agora inicie o tensorboard e use o menu suspenso do painel para navegar até a ferramenta What-If.
Na tela de configuração, defina o endereço de inferência como "localhost:8500", o nome do modelo como "uci_income" e o caminho para exemplos como o caminho completo para o arquivo adult.tfrecord
baixado e pressione "Aceitar".
Algumas coisas para tentar com a ferramenta What-If nesta demonstração incluem:
- Editando um único ponto de dados e vendo a mudança resultante na inferência.
- Explorar a relação entre recursos individuais no conjunto de dados e os resultados de inferência do modelo por meio de gráficos de dependência parcial.
- Fatiar o conjunto de dados em subconjuntos e comparar o desempenho entre as fatias.
Para uma visão aprofundada dos recursos da ferramenta, confira o passo a passo da ferramenta What-If .
Observe que o recurso de base de dados no conjunto de dados que este modelo está tentando prever é denominado "Destino", portanto, ao usar a guia "Desempenho e imparcialidade", "Alvo" é o que você deseja especificar na lista suspensa de recursos de base de verdade.