Desenvolver um aplicativo de IA generativa

Last reviewed 2024-03-26 UTC

Este documento ajuda você a aprender como enfrentar os desafios em cada etapa do desenvolvimento de um aplicativo de IA generativa. Ele descreve como selecionar um modelo, personalizar a saída do modelo para atender às suas necessidades, avaliar suas personalizações e implantar seu modelo. Este documento pressupõe que você já tenha um caso de uso em mente e que ele é adequado para IA generativa. Para informações sobre como desenvolver um caso de uso, consulte Avaliar e definir seu caso de uso comercial de IA generativa.

Antes de começar a desenvolver um aplicativo de IA generativa, avalie a prontidão técnica (recursos e infraestrutura) da sua organização. Para informações sobre como avaliar os recursos de IA e criar um roteiro para aproveitar todo o potencial, consulte Workshop de prontidão para IA. Se você planeja desenvolver fluxos de trabalho automatizados pela IA generativa, avalie se há a necessidade de incluir humanos no ciclo de estágios de decisão críticos. A revisão humana pode ajudar em decisões como garantir o uso responsável, atender a requisitos específicos de controle de qualidade ou monitorar o conteúdo gerado.

Modelos de IA generativa

Os modelos de fundação de IA generativa são treinados com conjuntos de dados de vários terabytes de texto, imagens, código ou outros recursos multimídia. Os dados e a arquitetura do modelo permitem que os modelos identifiquem padrões complexos, tenham uma compreensão contextual profunda e produzam novos conteúdos, como textos, imagens, músicas ou vídeos baseados nos dados de treinamento.

Os modelos de fundação formam o núcleo sobre o qual vários aplicativos de IA generativa são criados. Os recursos dos modelos se traduzem em habilidades emergentes: com uma instrução de comando de texto simples, os modelos de fundação da IA generativa podem aprender a executar diversas tarefas, como traduzir idiomas, responder perguntas, escrever um poema ou escrever código, sem treinamento explícito para cada tarefa. Os modelos de fundação de IA generativa também podem se adaptar para executar tarefas específicas com algumas técnicas de comando ou podem ser ajustados com o mínimo de dados de treinamento extras.

Modelos de linguagem grandes (LLMs) são treinados em texto, são um exemplo de modelos de fundação normalmente baseados em arquiteturas de aprendizado profundo, como o Transformer desenvolvido pelo Google em 2017. É possível treinar os LLMs com bilhões de amostras de texto e outros conteúdos, e os LLMs podem ser personalizados para domínios específicos.

Outros modelos multimodais ampliam a capacidade de um aplicativo de IA generativa de processar informações de várias modalidades, incluindo imagens, vídeos, áudio e texto. Os comandos multimodais combinam vários formatos de entrada, como texto, imagens e áudio. Por exemplo, é possível inserir uma imagem e solicitar que um aplicativo de IA generativa liste ou descreva os objetos que estão nela. Os modelos Gemini do Google são criados do zero para multimodalidade e podem usar o raciocínio entre texto, imagens, vídeo, áudio e código. O Model Garden e a Vertex AI do Google Cloud podem ajudar você a encontrar e personalizar vários modelos de fundação do Google, de código aberto e de terceiros.

Escolher um modelo

Ao escolher um modelo, considere a modalidade, o tamanho e o custo dele. Escolha o modelo mais acessível que ainda atenda aos seus requisitos de latência e qualidade de resposta.

  • Modalidade: conforme descrito na seção anterior, a modalidade de um modelo corresponde a categorias de dados de alto nível para as quais um modelo é treinado, como texto, imagens e vídeo. Normalmente, seu caso de uso e a modalidade do modelo estão intimamente associados. Se o caso de uso envolver a geração de texto para imagem, você precisará encontrar um modelo treinado com dados de texto e imagem. Se você precisar da flexibilidade de várias modalidades, como na pesquisa multimodal, há modelos que também são compatíveis com casos de uso multimodais, mas o custo e a latência podem ser maiores.
    • Os modelos da Vertex AI oferecem uma grande lista de modelos de IA generativa que podem ser usados.
    • O Model Garden fornece uma lista de ofertas de modelos de ML próprios e de código aberto no Google Cloud.
  • Tamanho: o tamanho de um modelo normalmente é medido pelo número de parâmetros. Em geral, um modelo maior pode aprender padrões e relações mais complexos nos dados, o que pode resultar em respostas de maior qualidade. Como modelos maiores na mesma família podem ter latência e custos maiores, talvez seja necessário testar e avaliar os modelos para determinar qual tamanho funciona melhor para seu caso de uso.
  • Custo: o custo de um modelo está relacionado aos recursos dele, que geralmente estão relacionados à contagem de parâmetros do modelo. Os modelos também podem ser medidos e cobrados de maneira diferente. Por exemplo, alguns modelos são cobrados com base no número de tokens de entrada e saída. Outros modelos são cobrados com base no número de horas de uso do nó usadas enquanto o modelo é implantado.

    • Para informações sobre os preços do modelo de IA generativa na Vertex AI, consulte Preços da Vertex AI.

    • Para informações sobre o custo da implantação de modelos no Google Kubernetes Engine (GKE), consulte Preços do GKE.

  • Recursos: nem todos os modelos oferecem suporte a recursos como ajuste e destilação. Se esses recursos forem importantes para você, verifique os recursos compatíveis com cada modelo.

Elaborar comandos

O design de comandos é o processo de criação de pares de comandos e respostas para dar mais contexto e instruções aos modelos de linguagem. Depois de criar comandos, alimente-os ao modelo como um conjunto de dados de comandos para pré-treinamento. Quando um modelo disponibiliza previsões, ele responde com as instruções integradas.

Se você quiser receber uma saída específica, use estratégias de criação de comandos. Por exemplo, instruir o modelo a concluir a entrada parcial ou fornecer exemplos de respostas ideais. Para mais informações, consulte Introdução à criação de comandos.

Personalizar um modelo

Após a criação do comando, é possível que as respostas de um modelo funcionem bem, não sendo necessário personalizá-las. Se o modelo não estiver funcionando bem (por exemplo, se ele tiver alucinação artificial), use outras técnicas de personalização. As seções a seguir apresentam essas técnicas e podem ajudar você a entender como elas influenciam a saída do modelo.

Chamadas de funções e extensões

A chamada de função e as extensões da Vertex AI expandem os recursos do modelo. Considere os casos de uso do seu aplicativo e em que o uso de um modelo sozinho pode ser insuficiente. É possível ajudar o modelo adicionando chamadas de função ou extensões. Por exemplo, o modelo pode extrair informações de calendário do texto e, em seguida, usar uma extensão para localizar e reservar uma reserva.

Embora você possa usar chamadas de função e extensões de forma intercambiável, existem algumas diferenças de alto nível. A chamada de função é uma operação assíncrona e não é necessário incluir credenciais no código. As extensões da Vertex AI oferecem opções pré-criadas que podem ser usadas para tarefas complexas, para que você não precise escrever suas próprias funções. No entanto, como as extensões da Vertex AI retornam e chama funções para você, as extensões exigem que você inclua credenciais no seu código.

Embasamento

O embasamento se refere ao aumento das respostas do modelo ancorando-as a fontes de informações verificáveis. Para embasar um modelo, você o conecta a uma fonte de dados. O embasamento de um modelo ajuda a melhorar a confiabilidade do conteúdo gerado ao reduzir as alucinações artificiais.

A geração aumentada de recuperação (RAG, na sigla em inglês) é uma técnica de embasamento muito usada. O RAG usa a funcionalidade de pesquisa para encontrar informações relevantes e, em seguida, adiciona essas informações a um comando do modelo. Quando você usa o RAG, a saída é fundamentada em fatos e nas informações mais recentes. A pesquisa RAG usa embeddings vetoriais e bancos de dados vetoriais, que armazenam dados como representações numéricas de dados não estruturados, como texto e imagens. Para mais informações, consulte O que é um banco de dados vetorial?

Para saber mais sobre fundamentação na Vertex AI, consulte as Informações gerais de fundamentação. Para informações sobre como configurar um fluxo de trabalho de incorporação no AlloyDB para PostgreSQL, consulte o exemplo de fluxo de trabalho de incorporação.

Ajuste de modelos

Tarefas especializadas, como treinar um modelo de linguagem com terminologia específica, podem exigir mais treinamento do que é possível somente com o design do comando. Nesse cenário, é possível usar o ajuste de modelos para melhorar o desempenho e fazer com que o modelo atenda a requisitos de saída específicos.

Para ajustar um modelo, crie um conjunto de dados de treinamento e selecione um método de ajuste, como ajuste supervisionado, aprendizado por reforço com feedback humano (RLHF) ou destilação do modelo. O tamanho do conjunto de dados e os métodos de ajuste dependem do modelo e da finalidade da otimização. Por exemplo, tarefas especializadas e de nicho exigem um conjunto de dados menor para receber melhorias significativas. Para saber mais sobre o ajuste de modelos, consulte Ajustar modelos linguísticos de base.

Avaliar um modelo

A avaliação do modelo ajuda a avaliar como os comandos e as personalizações afetam o desempenho de um modelo. Cada método de avaliação tem os próprios pontos fortes e pontos fracos a serem considerados. Por exemplo, avaliações baseadas em métricas podem ser automatizadas e escalonadas rapidamente com uma maneira quantificável de medir o desempenho. No entanto, as métricas podem simplificar demais os resultados e perder o contexto e as nuances da linguagem natural. Para atenuar essas deficiências, use uma ampla gama de métricas em combinação com avaliações humanas.

A IA generativa na Vertex AI oferece avaliação lado a lado automática, o que permite comparar a saída de dois modelos com as informações empíricas. Um terceiro modelo ajuda você a selecionar as respostas de maior qualidade. A avaliação automática lado a lado é igual à dos avaliadores humanos, mas é mais rápida e disponível sob demanda. No entanto, para realizar as comparações, esse método exige um modelo maior do que os modelos sendo avaliados e que podem exibir vieses inerentes. Por isso, ainda é necessário realizar algumas avaliações humanas.

Para todos os métodos de avaliação, você precisa de um conjunto de dados de avaliação. Um conjunto de dados de avaliação inclui pares de comandos e informações empíricas (resposta ideal) criados por você. Ao criar seu conjunto de dados, inclua um conjunto diversificado de exemplos que se alinhem com a tarefa que você está avaliando para conseguir resultados significativos.

Implantar um modelo

A implantação de um modelo associa um endpoint e recursos de máquina física ao seu modelo para exibir previsões on-line de baixa latência. Nem todos os modelos precisam de implantação. Por exemplo, os modelos de fundação do Google disponíveis na IA generativa na Vertex AI já têm endpoints. Os endpoints são específicos para seu projeto do Google Cloud e ficam imediatamente disponíveis para uso. No entanto, se você ajustar qualquer um desses modelos, precisará implantá-lo em um endpoint.

Ao implantar um modelo, decida se você prefere implantar modelos em um ambiente totalmente gerenciado ou um ambiente autogerenciado. Em um ambiente totalmente gerenciado, você seleciona os recursos físicos necessários, como tipo de máquina e tipo de acelerador, e a Vertex AI instancia e gerencia os recursos. Por exemplo, para ativar previsões on-line em que a Vertex AI gerencia os recursos de implantação para você, consulte Implantar um modelo em um endpoint. Em um ambiente autogerenciado, você tem um controle mais refinado sobre os recursos, mas os gerencia por conta própria. Com ambientes autogerenciados, é possível disponibilizar modelos em plataformas como o GKE.

Depois de decidir em que tipo de ambiente você quer implantar, considere o tráfego previsto, os requisitos de latência e o orçamento. Você precisa equilibrar esses fatores com seus recursos físicos. Por exemplo, se o menor custo for a prioridade, será possível tolerar uma latência maior com máquinas de custo mais baixo. Os ambientes de teste são um bom exemplo disso. Para mais informações sobre como escolher um tipo de máquina, consulte o notebook Como determinar o tipo de máquina ideal a ser usado para endpoints da Vertex AI.

IA responsável

A IA generativa na Vertex AI foi projetada com os princípios de IA do Google. No entanto, é importante testar modelos para garantir que eles sejam usados com segurança e responsabilidade. Devido à incrível versatilidade dos LLMs, é difícil prever respostas não intencionais ou imprevistas.

Ao desenvolver aplicativos para seu caso de uso, considere as limitações dos modelos de IA generativa para mitigar corretamente o uso indevido em potencial e problemas não intencionais. Um exemplo de limitação de modelo é a qualidade dele em relação aos dados usados. Se você fornecer ao modelo dados abaixo do ideal, como imprecisos ou incompletos, não será possível esperar um desempenho ideal. Verifique se os dados de entrada e as solicitações estão corretos. Caso contrário, o modelo pode ter um desempenho abaixo do ideal ou saídas de modelo falsas. Para saber mais sobre as limitações do modelo de IA generativa, consulte IA responsável.

A seguir