Tutorial: Escolher modelos de incorporação e chat para RAG no Azure AI Search
Uma solução RAG criada no Azure AI Search depende da incorporação de modelos para vetorização e de modelos de chat para pesquisa conversacional sobre seus dados.
Neste tutorial:
- Saiba quais modelos na nuvem do Azure funcionam com integração interna
- Saiba mais sobre os modelos do Azure usados para bate-papo
- Implante modelos e colete informações de modelo para seu código
- Configurar o acesso do mecanismo de pesquisa aos modelos do Azure
- Saiba mais sobre habilidades personalizadas e vetorizadores para anexar modelos que não sejam do Azure
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
O portal do Azure, usado para implantar modelos e configurar atribuições de função na nuvem do Azure.
Uma função de Proprietário ou Administrador de Acesso de Usuário em sua assinatura do Azure, necessária para criar atribuições de função. Você usa pelo menos três recursos do Azure neste tutorial. As conexões são autenticadas usando o Microsoft Entra ID, que requer a capacidade de criar funções. As atribuições de função para conexão com modelos estão documentadas neste artigo. Se não for possível criar funções, você poderá usar chaves de API.
Um provedor de modelo, como o Azure OpenAI, o Azure AI Vision por meio de um recurso multisserviço de serviços de IA do Azure ou o Azure AI Foundry.
Usamos o Azure OpenAI neste tutorial. Outros provedores são listados para que você conheça suas opções de vetorização integrada.
A Pesquisa de IA do Azure, camada Básica ou superior, fornece uma identidade gerenciada usada em atribuições de função.
Uma região partilhada. Para concluir todos os tutoriais desta série, a região deve dar suporte à Pesquisa de IA do Azure e ao provedor de modelo. Consulte as regiões suportadas para:
O Azure AI Search enfrenta atualmente uma disponibilidade limitada em algumas regiões. Para confirmar o status da região, verifique a lista de regiões do Azure AI Search.
Gorjeta
Consulte este artigo para obter uma lista de regiões sobrepostas.
Revise modelos que suportam vetorização integrada
O conteúdo vetorizado melhora os resultados da consulta em uma solução RAG. O Azure AI Search dá suporte a uma ação de vetorização interna em um pipeline de indexação. Ele também suporta vetorização no momento da consulta, convertendo entradas de texto ou imagem em incorporações para uma pesquisa vetorial. Nesta etapa, identifique um modelo de incorporação que funcione para seu conteúdo e consultas. Se você estiver fornecendo dados vetoriais brutos e consultas vetoriais brutas, ou se sua solução RAG não incluir dados vetoriais, ignore esta etapa.
As consultas vetoriais que incluem uma etapa de conversão de texto para vetor devem usar o mesmo modelo de incorporação que foi usado durante a indexação. O motor de busca não lança um erro se você usar modelos diferentes, mas você obtém resultados ruins.
Para atender ao mesmo requisito de modelo, escolha modelos de incorporação que possam ser referenciados por meio de habilidades durante a indexação e por meio de vetorizadores durante a execução da consulta. A tabela a seguir lista os pares de habilidade e vetorizador. Para ver como os modelos de incorporação são usados, pule para Criar um pipeline de indexação para código que chama uma habilidade de incorporação e um vetorizador correspondente.
O Azure AI Search fornece suporte a habilidades e vetorizadores para os seguintes modelos de incorporação na nuvem do Azure.
Cliente | Incorporação de modelos | Competência | Vetorizador |
---|---|---|---|
Azure OpenAI | incorporação de texto-ada-002, incorporação de texto-3-grande, incorporação de texto-3-pequeno |
AzureOpenAIEmbedding | AzureOpenAIEmbedding |
Visão de IA do Azure | multimodal 4,0 1 | AzureAIVision | AzureAIVision |
Catálogo de modelos do Azure AI Foundry | Facebook-DinoV2-Image-Embeddings-ViT-Base, Facebook-DinoV2-Imagem-Embeddings-ViT-Giant, Cohere-embed-v3-inglês, Cohere-embed-v3-multilingual |
AML 2 | Catálogo de modelos do Azure AI Foundry |
1 Suporta vetorização de imagem e texto.
2 Os modelos implantados no catálogo de modelos são acessados por meio de um ponto de extremidade AML. Usamos a habilidade AML existente para essa conexão.
Você pode usar outros modelos além dos listados aqui. Para obter mais informações, consulte Usar modelos que não sejam do Azure para incorporações neste artigo.
Nota
As entradas para um modelo de incorporação são normalmente dados em partes. Em um padrão RAG do Azure AI Search, a fragmentação é tratada no pipeline do indexador, abordado em outro tutorial desta série.
Revisar modelos usados para IA generativa no momento da consulta
O Azure AI Search não tem código de integração para modelos de chat, portanto, você deve escolher um LLM com o qual esteja familiarizado e que atenda às suas necessidades. Você pode modificar o código de consulta para tentar modelos diferentes sem ter que reconstruir um índice ou executar novamente qualquer parte do pipeline de indexação. Revise a Pesquisa e gere respostas para o código que chama o modelo de chat.
Os modelos a seguir são comumente usados para uma experiência de pesquisa de bate-papo:
Cliente | Modelos de chat |
---|---|
Azure OpenAI | GPT-35-Turbo, GPT-4, GPT-4o, GPT-4 Turbo |
Os modelos GPT-35-Turbo e GPT-4 são otimizados para trabalhar com entradas formatadas como uma conversa.
Usamos GPT-4o neste tutorial. Durante os testes, descobrimos que é menos provável complementar com seus próprios dados de treinamento. Por exemplo, dada a consulta "quanto da terra é coberto por água?", o GPT-35-Turbo respondeu usando seu conhecimento interno da terra para afirmar que 71% da terra é coberta por água, embora os dados da amostra não forneçam esse fato. Em contraste, GPT-4o respondeu (corretamente) com "Eu não sei".
Implantar modelos e coletar informações
Os modelos devem ser implantados e acessíveis por meio de um ponto de extremidade. Tanto as habilidades relacionadas à incorporação quanto os vetorizadores precisam do número de dimensões e do nome do modelo.
Esta série de tutoriais usa os seguintes modelos e provedores de modelos:
- Incorporação de texto-3-grande no Azure OpenAI para incorporações
- GPT-4o no Azure OpenAI para conclusão de chat
Você deve ter o Colaborador OpenAI dos Serviços Cognitivos ou superior para implantar modelos no Azure OpenAI.
Vá para Azure AI Foundry.
Selecione Implantações no menu à esquerda.
Selecione Implantar modelo>Implantar modelo base.
Selecione text-embedding-3-large na lista suspensa e confirme a seleção.
Especifique um nome de implantação. Recomendamos "text-embedding-3-large".
Aceite as predefinições.
Selecione Implementar.
Repita as etapas anteriores para gpt-4o.
Anote os nomes dos modelos e o ponto de extremidade. As habilidades de incorporação e vetorizadores montam o ponto de extremidade completo internamente, portanto, você só precisa do URI do recurso. Por exemplo, dado
https://MY-FAKE-ACCOUNT.openai.azure.com/openai/deployments/text-embedding-3-large/embeddings?api-version=2024-06-01
, o ponto de extremidade que você deve fornecer nas definições de habilidade e vetorizador éhttps://MY-FAKE-ACCOUNT.openai.azure.com
.
Configurar o acesso do mecanismo de pesquisa aos modelos do Azure
Para execução de pipeline e consulta, este tutorial usa o Microsoft Entra ID para autenticação e funções para autorização.
Atribua a si mesmo e às permissões de identidade do serviço de pesquisa no Azure OpenAI. O código deste tutorial é executado localmente. As solicitações para o Azure OpenAI são originadas do seu sistema. Além disso, os resultados da pesquisa do mecanismo de pesquisa são passados para o Azure OpenAI. Por esses motivos, você e o serviço de pesquisa precisam de permissões no Azure OpenAI.
Entre no portal do Azure e encontre seu serviço de pesquisa.
Configure o Azure AI Search para usar uma identidade gerenciada pelo sistema.
Encontre seu recurso do Azure OpenAI.
Selecione Controle de acesso (IAM) no menu à esquerda.
Selecione Adicionar atribuição de função.
Selecione Cognitive Services OpenAI User.
Selecione Identidade gerenciada e, em seguida, selecione Membros. Encontre a identidade gerenciada pelo sistema para seu serviço de pesquisa na lista suspensa.
Em seguida, selecione Usuário, grupo ou entidade de serviço e, em seguida, selecione Membros. Procure a sua conta de utilizador e, em seguida, selecione-a na lista pendente.
Verifique se você tem duas entidades de segurança atribuídas à função.
Selecione Rever e Atribuir para criar as atribuições de função.
Para aceder a modelos no Azure AI Vision, atribua Cognitive Services OpenAI User. Para o Azure AI Foundry, atribua o Azure AI Developer.
Usar modelos que não sejam do Azure para incorporações
O padrão para integrar qualquer modelo de incorporação é envolvê-lo em uma habilidade personalizada e vetorizador personalizado. Esta seção fornece links para artigos de referência. Para obter um exemplo de código que chama um modelo que não seja do Azure, consulte demonstração de incorporações personalizadas.
Cliente | Incorporação de modelos | Competência | Vetorizador |
---|---|---|---|
Qualquer | Qualquer | habilidade personalizada | vetorizador personalizado |