Dela via


Självstudie: Välj inbäddnings- och chattmodeller för RAG i Azure AI Search

En RAG-lösning som bygger på Azure AI Search är beroende av inbäddningsmodeller för vektorisering och på chattmodeller för konversationssökning över dina data.

I den här kursen får du:

  • Lär dig vilka modeller i Azure-molnet som fungerar med inbyggd integrering
  • Lär dig mer om De Azure-modeller som används för chatt
  • Distribuera modeller och samla in modellinformation för din kod
  • Konfigurera sökmotoråtkomst till Azure-modeller
  • Lär dig mer om anpassade kunskaper och vektoriserare för att ansluta modeller som inte är Azure-modeller

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Förutsättningar

  • Den Azure Portal som används för att distribuera modeller och konfigurera rolltilldelningar i Azure-molnet.

  • En ägar- eller användaråtkomstadministratörsroll i din Azure-prenumeration som krävs för att skapa rolltilldelningar. Du använder minst tre Azure-resurser i den här självstudien. Anslutningarna autentiseras med Microsoft Entra-ID, vilket kräver möjligheten att skapa roller. Rolltilldelningar för att ansluta till modeller dokumenteras i den här artikeln. Om du inte kan skapa roller kan du använda API-nycklar i stället.

  • En modellprovider, till exempel Azure OpenAI, Azure AI Vision via en Azure AI-tjänstresurs med flera tjänster eller Azure AI Foundry.

    Vi använder Azure OpenAI i den här självstudien. Andra leverantörer visas så att du vet vilka alternativ du har för integrerad vektorisering.

  • Azure AI Search, Basic-nivån eller senare tillhandahåller en hanterad identitet som används i rolltilldelningar.

  • En delad region. För att slutföra alla självstudier i den här serien måste regionen ha stöd för både Azure AI Search och modellprovidern. Se regioner som stöds för:

    Azure AI Search har för närvarande begränsad tillgänglighet i vissa regioner. Kontrollera regionens status genom att kontrollera listan över Azure AI Search-regioner.

Dricks

I den här artikeln finns en lista över överlappande regioner.

Granska modeller som stöder inbyggd vektorisering

Vektoriserat innehåll förbättrar frågeresultaten i en RAG-lösning. Azure AI Search stöder en inbyggd vektoriseringsåtgärd i en indexeringspipeline. Den stöder också vektorisering vid frågetillfället och konverterar text- eller bildindata till inbäddningar för en vektorsökning. I det här steget identifierar du en inbäddningsmodell som fungerar för ditt innehåll och dina frågor. Om du tillhandahåller rådata och rådatavektorfrågor, eller om DIN RAG-lösning inte innehåller vektordata, hoppar du över det här steget.

Vektorfrågor som innehåller ett text-till-vektorkonverteringssteg måste använda samma inbäddningsmodell som användes under indexeringen. Sökmotorn utlöser inget fel om du använder olika modeller, men du får dåliga resultat.

För att uppfylla samma modellkrav väljer du inbäddningsmodeller som kan refereras via kunskaper under indexering och genom vektoriserare under frågekörningen. I följande tabell visas paren för färdighet och vektoriserare. Om du vill se hur inbäddningsmodellerna används går du vidare till Skapa en indexeringspipeline för kod som anropar en inbäddningsfärdighet och en matchande vektoriserare.

Azure AI Search ger stöd för kompetens och vektorisering för följande inbäddningsmodeller i Azure-molnet.

Klient Inbäddningsmodeller Färdighet Vektoriserare
Azure OpenAI text-embedding-ada-002,
text-embedding-3-large,
text-embedding-3-small
AzureOpenAIEmbedding AzureOpenAIEmbedding
Azure AI-visuellt innehåll multimodal 4.0 1 AzureAIVision AzureAIVision
Azure AI Foundry-modellkatalog Facebook-DinoV2-Image-Embeddings-ViT-Base,
Facebook-DinoV2-Image-Embeddings-ViT-Giant,
Cohere-embed-v3-english,
Cohere-embed-v3-multilingual
AML 2 Azure AI Foundry-modellkatalog

1 Stöder bild- och textvektorisering.

2 Distribuerade modeller i modellkatalogen nås via en AML-slutpunkt. Vi använder den befintliga AML-färdigheten för den här anslutningen.

Du kan använda andra modeller förutom de som anges här. Mer information finns i Använda icke-Azure-modeller för inbäddningar i den här artikeln.

Kommentar

Indata till inbäddningsmodeller är vanligtvis segmenterade data. I ett RAG-mönster för Azure AI Search hanteras segmentering i indexeringspipelinen, som beskrivs i en annan självstudie i den här serien.

Granska modeller som används för generativ AI vid frågetillfället

Azure AI Search har inte integreringskod för chattmodeller, så du bör välja en LLM som du är bekant med och som uppfyller dina krav. Du kan ändra frågekoden för att prova olika modeller utan att behöva återskapa ett index eller köra någon del av indexeringspipelinen igen. Granska Sök och generera svar för kod som anropar chattmodellen.

Följande modeller används ofta för en chattsökningsupplevelse:

Klient Chattmodeller
Azure OpenAI GPT-35-Turbo,
GPT-4,
GPT-4o,
GPT-4 Turbo

GPT-35-Turbo- och GPT-4-modeller är optimerade för att fungera med indata som formateras som en konversation.

Vi använder GPT-4o i den här självstudien. Under testningen upptäckte vi att det är mindre troligt att det kompletterar med egna träningsdata. Med tanke på frågan "hur mycket av jorden som täcks av vatten?", svarade GPT-35-Turbo med hjälp av sin inbyggda kunskap om jorden för att ange att 71 % av jorden täcks av vatten, även om exempeldata inte anger det faktumet. GPT-4o svarade däremot (korrekt) med "Jag vet inte".

Distribuera modeller och samla in information

Modeller måste distribueras och vara tillgängliga via en slutpunkt. Både inbäddningsrelaterade kunskaper och vektoriserare behöver antalet dimensioner och modellnamnet.

I den här självstudieserien används följande modeller och modellprovidrar:

  • Textinbäddning-3-large på Azure OpenAI för inbäddningar
  • GPT-4o på Azure OpenAI för slutförande av chatt

Du måste ha Cognitive Services OpenAI-deltagare eller senare för att distribuera modeller i Azure OpenAI.

  1. Gå till Azure AI Foundry.

  2. Välj Distributioner på den vänstra menyn.

  3. Välj Distribuera modell>Distribuera basmodell.

  4. Välj text-embedding-3-large i listrutan och bekräfta markeringen.

  5. Ange ett distributionsnamn. Vi rekommenderar "text-embedding-3-large".

  6. Acceptera alla standardinställningar.

  7. Välj distribuera.

  8. Upprepa föregående steg för gpt-4o.

  9. Anteckna modellnamnen och slutpunkten. Inbäddningsfärdigheter och vektoriserare monterar den fullständiga slutpunkten internt, så du behöver bara resurs-URI:n. Till exempel https://MY-FAKE-ACCOUNT.openai.azure.com/openai/deployments/text-embedding-3-large/embeddings?api-version=2024-06-01är https://MY-FAKE-ACCOUNT.openai.azure.comden slutpunkt som du bör ange i definitionerna för färdighet och vektoriserare .

Konfigurera sökmotoråtkomst till Azure-modeller

För pipeline- och frågekörning använder den här självstudien Microsoft Entra-ID för autentisering och roller för auktorisering.

Tilldela dig själv och identitetsbehörigheterna för söktjänsten i Azure OpenAI. Koden för den här självstudien körs lokalt. Begäranden till Azure OpenAI kommer från systemet. Dessutom skickas sökresultat från sökmotorn till Azure OpenAI. Därför behöver både du och söktjänsten behörigheter för Azure OpenAI.

  1. Logga in på Azure Portal och hitta söktjänsten.

  2. Konfigurera Azure AI Search för att använda en systemhanterad identitet.

  3. Hitta din Azure OpenAI-resurs.

  4. Välj Åtkomstkontroll (IAM) på den vänstra menyn.

  5. Välj Lägg till rolltilldelning.

  6. Välj Cognitive Services OpenAI-användare.

  7. Välj Hanterad identitet och välj sedan Medlemmar. Hitta den systemhanterade identiteten för söktjänsten i listrutan.

  8. Välj sedan Användare, grupp eller tjänstens huvudnamn och välj sedan Medlemmar. Sök efter ditt användarkonto och välj det sedan i listrutan.

  9. Kontrollera att du har två säkerhetsobjekt tilldelade till rollen.

  10. Välj Granska och Tilldela för att skapa rolltilldelningarna.

För åtkomst till modeller i Azure AI Vision tilldelar du Cognitive Services OpenAI-användare. Tilldela Azure AI Developer för Azure AI Foundry.

Använda icke-Azure-modeller för inbäddningar

Mönstret för att integrera en inbäddningsmodell är att omsluta den i en anpassad färdighet och anpassad vektoriserare. Det här avsnittet innehåller länkar till referensartiklar. Ett kodexempel som anropar en icke-Azure-modell finns i demo för anpassade inbäddningar.

Klient Inbäddningsmodeller Färdighet Vektoriserare
Valfri Valfri anpassad färdighet anpassad vektoriserare

Gå vidare