Zelfstudie: Insluit- en chatmodellen voor RAG kiezen in Azure AI Search
Een RAG-oplossing die is gebouwd op Azure AI Search, is afhankelijk van het insluiten van modellen voor vectorisatie en van chatmodellen voor gesprekszoekopdrachten over uw gegevens.
In deze zelfstudie hebt u:
- Meer informatie over welke modellen in de Azure-cloud werken met ingebouwde integratie
- Meer informatie over de Azure-modellen die worden gebruikt voor chatten
- Modellen implementeren en modelgegevens verzamelen voor uw code
- Zoekprogrammatoegang tot Azure-modellen configureren
- Meer informatie over aangepaste vaardigheden en vectorizers voor het koppelen van niet-Azure-modellen
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Vereisten
De Azure-portal, die wordt gebruikt voor het implementeren van modellen en het configureren van roltoewijzingen in de Azure-cloud.
Een rol Eigenaar of Beheerder voor gebruikerstoegang in uw Azure-abonnement, die nodig is voor het maken van roltoewijzingen. In deze zelfstudie gebruikt u ten minste drie Azure-resources. De verbindingen worden geverifieerd met behulp van Microsoft Entra-id, waarvoor de mogelijkheid is vereist om rollen te maken. In dit artikel worden roltoewijzingen beschreven voor het maken van verbinding met modellen. Als u geen rollen kunt maken, kunt u in plaats daarvan API-sleutels gebruiken.
Een modelprovider, zoals Azure OpenAI, Azure AI Vision via een Azure AI Services-resource voor meerdere services of Azure AI Foundry.
In deze zelfstudie gebruiken we Azure OpenAI. Andere providers worden weergegeven zodat u uw opties voor geïntegreerde vectorisatie kent.
Azure AI Search, Basic-laag of hoger biedt een beheerde identiteit die wordt gebruikt in roltoewijzingen.
Een gedeelde regio. Als u alle zelfstudies in deze reeks wilt voltooien, moet de regio zowel Azure AI Search als de modelprovider ondersteunen. Zie ondersteunde regio's voor:
Azure AI Search heeft momenteel beperkte beschikbaarheid in sommige regio's. Als u de regiostatus wilt bevestigen, controleert u de azure AI Search-regiolijst.
Tip
Raadpleeg dit artikel voor een lijst met overlappende regio's.
Modellen controleren die ingebouwde vectorisatie ondersteunen
Vectorized content verbetert de queryresultaten in een RAG-oplossing. Azure AI Search ondersteunt een ingebouwde vectorisatieactie in een indexeringspijplijn. Het biedt ook ondersteuning voor vectorisatie tijdens query's, waarbij tekst- of afbeeldingsinvoer wordt geconverteerd naar insluitingen voor een vectorzoekopdracht. In deze stap identificeert u een insluitmodel dat geschikt is voor uw inhoud en query's. Als u onbewerkte vectorgegevens en onbewerkte vectorquery's levert, of als uw RAG-oplossing geen vectorgegevens bevat, slaat u deze stap over.
Vectorquery's met een conversiestap voor tekst-naar-vector moeten hetzelfde insluitingsmodel gebruiken dat is gebruikt tijdens het indexeren. De zoekmachine genereert geen fout als u verschillende modellen gebruikt, maar u krijgt slechte resultaten.
Als u aan dezelfde modelvereiste wilt voldoen, kiest u voor het insluiten van modellen waarnaar kan worden verwezen via vaardigheden tijdens het indexeren en via vectorizers tijdens het uitvoeren van query's . De volgende tabel bevat de vaardigheids- en vectorizerparen. Als u wilt zien hoe de insluitingsmodellen worden gebruikt, gaat u verder met het maken van een indexeringspijplijn voor code die een vaardigheid voor insluiten en een overeenkomende vectorizer aanroept.
Azure AI Search biedt ondersteuning voor vaardigheden en vectorizers voor de volgende insluitingsmodellen in de Azure-cloud.
Klant | Modellen insluiten | Vaardigheid | Vectorizer |
---|---|---|---|
Azure OpenAI | text-embedding-ada-002, tekst-insluiten-3-groot, tekst-insluiten-3-klein |
AzureOpenAIEmbedding | AzureOpenAIEmbedding |
Azure AI Vision | multimodale 4.0 1 | AzureAIVision | AzureAIVision |
Azure AI Foundry-modelcatalogus | Facebook-DinoV2-Image-Embeddings-ViT-Base, Facebook-DinoV2-Image-Embeddings-ViT-Giant, Cohere-embed-v3-english, Cohere-embed-v3-multilingual |
AML2 | Azure AI Foundry-modelcatalogus |
1 Ondersteunt afbeeldings- en tekstvectorisatie.
2 Geïmplementeerde modellen in de modelcatalogus zijn toegankelijk via een AML-eindpunt. We gebruiken de bestaande AML-vaardigheid voor deze verbinding.
U kunt andere modellen gebruiken naast de modellen die hier worden vermeld. Zie Niet-Azure-modellen gebruiken voor insluitingen in dit artikel voor meer informatie.
Notitie
Invoer voor een insluitmodel is doorgaans gesegmenteerde gegevens. In een Azure AI Search RAG-patroon wordt segmentering verwerkt in de indexeerpijplijn, die wordt behandeld in een andere zelfstudie in deze reeks.
Modellen controleren die worden gebruikt voor generatieve AI tijdens het uitvoeren van query's
Azure AI Search heeft geen integratiecode voor chatmodellen, dus u moet een LLM kiezen waarmee u bekend bent en die voldoet aan uw vereisten. U kunt querycode wijzigen om verschillende modellen uit te proberen zonder een index opnieuw te hoeven bouwen of een deel van de indexeringspijplijn opnieuw uit te voeren. Bekijk Zoeken en genereer antwoorden op code die het chatmodel aanroept.
De volgende modellen worden vaak gebruikt voor een chatzoekervaring:
Klant | Chatmodellen |
---|---|
Azure OpenAI | GPT-35-Turbo, GPT-4, GPT-4o, GPT-4 Turbo |
GPT-35-Turbo- en GPT-4-modellen zijn geoptimaliseerd voor gebruik met invoer die is opgemaakt als een gesprek.
In deze zelfstudie gebruiken we GPT-4o. Tijdens het testen hebben we vastgesteld dat het minder waarschijnlijk is om aan te vullen met zijn eigen trainingsgegevens. Als u bijvoorbeeld de query 'hoeveel van de aarde wordt bedekt door water?', beantwoordt GPT-35-Turbo met behulp van de ingebouwde kennis van de aarde dat 71% van de aarde wordt bedekt door water, zelfs als de steekproefgegevens dat feit niet bieden. Daarentegen antwoordde GPT-4o (correct) met "Ik weet het niet".
Modellen implementeren en informatie verzamelen
Modellen moeten worden geïmplementeerd en toegankelijk zijn via een eindpunt. Zowel insluitingsgerelateerde vaardigheden als vectorizers hebben het aantal dimensies en de modelnaam nodig.
In deze reeks zelfstudies worden de volgende modellen en modelproviders gebruikt:
- Tekst-insluiten-3-groot in Azure OpenAI voor insluitingen
- GPT-4o in Azure OpenAI voor voltooiing van chat
U moet Cognitive Services OpenAI-inzender of hoger hebben om modellen te implementeren in Azure OpenAI.
Ga naar Azure AI Foundry.
Selecteer Implementaties in het linkermenu.
Selecteer Model implementeren>basismodel implementeren.
Selecteer tekst-insluiten-3-groot in de vervolgkeuzelijst en bevestig de selectie.
Geef een implementatienaam op. U wordt aangeraden 'text-embedding-3-large' te gebruiken.
Accepteer de standaardwaarden.
Selecteer Implementeren.
Herhaal de vorige stappen voor gpt-4o.
Noteer de modelnamen en het eindpunt. Als u vaardigheden en vectorizers insluit, wordt het volledige eindpunt intern samengesteld, zodat u alleen de resource-URI nodig hebt. Het eindpunt dat u bijvoorbeeld moet opgeven
https://MY-FAKE-ACCOUNT.openai.azure.com/openai/deployments/text-embedding-3-large/embeddings?api-version=2024-06-01
in vaardigheids- en vectorizerdefinities ishttps://MY-FAKE-ACCOUNT.openai.azure.com
.
Zoekprogrammatoegang tot Azure-modellen configureren
Voor het uitvoeren van pijplijnen en query's gebruikt deze zelfstudie Microsoft Entra ID voor verificatie en rollen voor autorisatie.
Wijs uzelf en de identiteitsmachtigingen voor de zoekservice toe aan Azure OpenAI. De code voor deze zelfstudie wordt lokaal uitgevoerd. Aanvragen voor Azure OpenAI zijn afkomstig van uw systeem. Ook worden zoekresultaten van de zoekmachine doorgegeven aan Azure OpenAI. Om deze redenen hebben zowel u als de zoekservice machtigingen nodig voor Azure OpenAI.
Meld u aan bij Azure Portal en zoek uw zoekservice.
Configureer Azure AI Search om een door het systeem beheerde identiteit te gebruiken.
Zoek uw Azure OpenAI-resource.
Selecteer Toegangsbeheer (IAM) in het linkermenu.
Selecteer Roltoewijzing toevoegen.
Selecteer Cognitive Services OpenAI-gebruiker.
Selecteer Beheerde identiteit en selecteer vervolgens Leden. Zoek de door het systeem beheerde identiteit voor uw zoekservice in de vervolgkeuzelijst.
Selecteer vervolgens Gebruiker, groep of service-principal en selecteer vervolgens Leden. Zoek uw gebruikersaccount en selecteer het in de vervolgkeuzelijst.
Zorg ervoor dat er twee beveiligingsprinciplen zijn toegewezen aan de rol.
Selecteer Controleren en toewijzen om de roltoewijzingen te maken.
Wijs Cognitive Services OpenAI-gebruiker toe voor toegang tot modellen in Azure AI Vision. Wijs Azure AI Developer toe voor Azure AI Foundry.
Niet-Azure-modellen gebruiken voor insluitingen
Het patroon voor het integreren van elk insluitmodel is het verpakken ervan in een aangepaste vaardigheid en aangepaste vectorizer. Deze sectie bevat koppelingen naar naslagartikelen. Zie de demo met aangepaste insluitingen voor een codevoorbeeld dat een niet-Azure-model aanroept.
Klant | Modellen insluiten | Vaardigheid | Vectorizer |
---|---|---|---|
Alle | Alle | aangepaste vaardigheid | aangepaste vectorizer |