Este guia para iniciantes é uma introdução à obtenção de inferências de modelos personalizados na Gemini Enterprise Agent Platform.
Objetivos de aprendizagem
Nível de experiência da plataforma de agentes do Gemini Enterprise: iniciante
Tempo de leitura estimado: 15 minutos
O que você vai aprender:
- Benefícios de usar um serviço de inferência gerenciado.
- Como as inferências em lote funcionam na Gemini Enterprise Agent Platform.
- Como as inferências on-line funcionam na Agent Platform.
Por que usar um serviço de inferência gerenciado?
Imagine que você recebeu a tarefa de criar um modelo que recebe como entrada uma imagem de uma planta e prevê a espécie. Você pode começar treinando um modelo em um notebook, testando diferentes hiperparâmetros e arquiteturas. Quando você tiver um modelo treinado, será possível chamar o método predict no framework de ML de sua escolha e testar a qualidade do modelo.
Esse fluxo de trabalho é ótimo para experimentação, mas quando você quiser usar o modelo para receber previsões sobre muitos dados ou para receber previsões de baixa latência em tempo real, precisará de algo mais do que um notebook. Por exemplo, digamos que você esteja tentando medir a biodiversidade de um determinado ecossistema. Em vez de fazer com que os seres humanos identifiquem e contem manualmente espécies de plantas na natureza, você usa esse modelo de ML para classificar grandes lotes de imagens. Ao usar um notebook, você pode atingir as restrições de memória. Além disso, receber inferências para todos esses dados provavelmente é um job de longa duração que pode atingir o tempo limite no notebook.
E se você quiser usar esse modelo em um aplicativo em que os usuários possam fazer upload de imagens de plantas e fazer com que elas sejam identificadas imediatamente? Você precisará de um lugar para hospedar o modelo que existe fora de um notebook que o aplicativo pode chamar para uma inferência. Além disso, é improvável que você tenha tráfego consistente no seu modelo. Por isso, é recomendável ter um serviço com escalonamento automático quando necessário.
Em todos esses casos, um serviço de inferência gerenciado vai reduzir o atrito da hospedagem e do uso de modelos de ML. Este guia apresenta uma introdução à obtenção de inferências de modelos de ML na Gemini Enterprise Agent Platform. Há outras personalizações, recursos e maneiras de interagir com o serviço que não são abordados aqui. O objetivo deste guia é fornecer uma visão geral. Para mais informações, consulte a documentação de inferências da Gemini Enterprise Agent Platform.
Visão geral do serviço de previsão gerenciado
O Agent Platform oferece suporte a inferências on-line e em lote.
A inferência em lote é uma solicitação assíncrona. É uma boa opção quando você não precisa de uma resposta imediata e quer processar dados acumulados em uma única solicitação. No exemplo discutido na introdução, esse seria o caso de uso de biodiversidade.
Se quiser receber inferências de baixa latência de dados transmitidos ao modelo em tempo real, use a inferência on-line. No exemplo discutido na introdução, este seria o caso de uso em que você quer incorporar o modelo a um app que ajude os usuários a identificar as espécies de plantas imediatamente.
Fazer upload do modelo para o Model Registry da Gemini Enterprise Agent Platform
Para usar o serviço de inferência, a primeira etapa é fazer upload do modelo de ML treinado para o Model Registry. Esse é um registro em que é possível gerenciar o ciclo de vida dos modelos.
Criar um recurso de modelo
Ao treinar modelos com o serviço de treinamento personalizado da Gemini Enterprise Agent Platform, é possível importar o modelo automaticamente para o registro após a conclusão do job de treinamento. Se você pulou essa etapa ou treinou seu modelo fora da Gemini Enterprise Agent Platform, é possível fazer upload manualmente usando o Google Cloud console ou o SDK da Agent Platform para Python. Para isso, aponte para um local do Cloud Storage com os artefatos de modelo salvos. O formato desses artefatos de modelo pode ser savedmodel.pb, model.joblib, etc., dependendo do framework de ML que você está usando.
O upload de artefatos para o Model Registry da Gemini Enterprise Agent Platform cria um Model recurso, que é visível no Google Cloud console:

Selecionar um contêiner.
Ao importar um modelo para o Model Registry da plataforma de agentes do Gemini Enterprise, é necessário associá-lo a um contêiner para que a plataforma de agentes do Gemini Enterprise exiba solicitações de previsão.
Contêineres pré-criados
A plataforma de agentes do Gemini Enterprise oferece contêineres pré-criados que podem ser usados para previsões. Os contêineres pré-criados são organizados por framework de ML e versão de framework e oferecem servidores de inferência HTTP que podem ser usados para disponibilizar inferências com uma configuração mínima. Eles executam apenas a operação de inferência do framework de machine learning. Portanto, se você precisar pré-processar seus dados, isso precisará acontecer antes da solicitação de inferência. Da mesma forma, qualquer pós-processamento precisa acontecer depois da solicitação de inferência. Para um exemplo de uso de um contêiner pré-criado, consulte o notebook Como disponibilizar modelos de imagem do PyTorch com contêineres pré-criados na Agent Platform.
Contêineres personalizados
Se seu caso de uso exigir bibliotecas que não estão incluídas nos contêineres pré-criados ou se você tiver transformações de dados personalizadas que queira executar como parte da solicitação de inferência, use um contêiner personalizado que você{101 }criar e enviar para o Artifact Registry. Os contêineres personalizados permitem uma maior personalização, mas precisam executar um servidor HTTP. Especificamente o contêiner precisa detectar e responder a verificações de atividade, verificações de integridade e solicitações de previsão. Na maioria dos casos, usar um contêiner pré-criado, se possível, é a opção recomendada e mais simples. Para um exemplo de uso de um contêiner personalizado, consulte o notebook GPU única para classificação de imagem PyTorch usando o Vertex Training com contêiner personalizado
Rotinas de inferência personalizadas
Caso seu caso de uso precise de transformações personalizadas de pré e pós-processamento, e você não quiser sobrecarregar a criação e a manutenção de um contêiner personalizado, use as rotinas de inferência personalizadas. Com as rotinas de previsão personalizadas, é possível fornecer transformações de dados como código Python e, em segundo plano, o SDK da plataforma de agentes para Python vai criar um contêiner personalizado que pode ser testado localmente e implantado na plataforma de agentes do Gemini Enterprise. Para ver um exemplo de como usar as rotinas de inferência personalizadas, consulte o notebook Rotinas de inferência personalizadas com Sklearn
Receber previsões em lote
Depois que o modelo estiver no Model Registry da Gemini Enterprise Agent Platform, envie um job de inferência em lote pelo console ou SDK da Agent Platform para Python. Google Cloud Especifique o local dos dados de origem e o local no Cloud Storage ou no BigQuery em que você quer que os resultados sejam salvos. Também é possível especificar o tipo de máquina em que esse job será executado e os aceleradores opcionais. Como o serviço de inferência é totalmente gerenciado, a Gemini Enterprise Agent Platform provisiona automaticamente os recursos de computação, executa a tarefa de inferência e garante a exclusão de recursos de computação quando o job de inferência é concluído. O status dos jobs de inferência em lote pode ser rastreado no Google Cloud console.

Receber previsões on-line
Se quiser receber inferências on-line, você precisa realizar a etapa extra de
implantação do modelo
em um endpoint da Gemini Enterprise Agent Platform.
Isso associa os artefatos do modelo aos recursos físicos para baixa latência
e cria um
DeployedModelrecurso.

Depois que o modelo é implantado em um endpoint, ele aceita solicitações como qualquer outro endpoint REST, o que significa que é possível chamá-lo de uma função do Cloud Run, um chatbot, um app da Web etc. Observe que você pode implantar vários modelos em um único endpoint, dividindo o tráfego entre eles. Essa funcionalidade é útil, por exemplo, quando você quer lançar uma nova versão do modelo e não quer direcionar todo o tráfego para o novo modelo de forma imediata. Também é possível implantar o mesmo modelo em várias operações.
Recursos para receber inferências de modelos personalizados na Agent Platform
Para saber mais sobre como hospedar e disponibilizar modelos no Agent Platform, consulte os recursos abaixo ou o repositório do GitHub de amostras do Agent Platform.
- Vídeo sobre como receber previsões
- Treinar e disponibilizar um modelo do TensorFlow usando um contêiner pré-criado
- Como disponibilizar modelos de imagem do PyTorch com contêineres pré-criados na Agent Platform
- Disponibilizar um modelo de difusão estável usando um contêiner pré-criado
- Rotinas de inferência personalizadas com Sklearn