Använd inbäddningsmodeller från Microsoft Foundry-modellkatalogen för integrerad vektorisering (förhandsversion)

Observera

Azure AI-sökning är tillgängligt via Azure-portalen, REST-API:er och Azure-SDK:er. Den ligger också till grund för Foundry IQ, det hanterade kunskapsskiktet som omvandlar företagsinnehåll till återanvändbara, behörighetsmedvetna kunskapsbaser för agenter i Microsoft Foundry-portalen.

Viktigt

Funktioner, funktioner eller egenskaper som har markerats (förhandsversion) omfattas inte av ett serviceavtal, rekommenderas inte för produktionsarbetsbelastningar och kan ändras eller begränsas innan de blir allmänt tillgängliga. Villkoren för Azure AI-sökning förhandsgranskning gäller för alla förhandsgranskningsfunktioner, oavsett om de är fristående eller en del av en allmänt tillgänglig funktion.

I den här artikeln lär du dig hur du använder Microsoft Foundry-modellkatalogmodeller för integrerad vektorisering (förhandsversion) under indexering och frågekörning i Azure AI-sökning.

Arbetsflödet kräver att du distribuerar en modell från katalogen, som innehåller inbäddningsmodeller från Microsoft och andra företag. Distribution av en modell kan faktureras enligt faktureringsstrukturen för varje leverantör.

När modellen har distribuerats kan du använda den med AML för integrerad vektorisering under indexering eller med Microsoft Foundry model catalog vectorizer för frågor.

Tips

Använd guiden Importera data för att generera en kompetensuppsättning som innehåller en AML-färdighet för distribuerade inbäddningsmodeller på Foundry. AML-kunskapsdefinitionen för indata, utdata och mappningar genereras av guiden, vilket ger dig ett enkelt sätt att testa en modell innan du skriver någon kod.

Förutsättningar

Inbäddningsmodeller som stöds

Inbäddningsmodeller som stöds från modellkatalogen varierar beroende på användningsmetod:

Distribuera en inbäddningsmodell från modellkatalogen

  1. Följ de här portalinstruktionerna för att distribuera en modell som stöds till projektet.

  2. Anteckna mål-URI:n, nyckeln och modellnamnet. Du behöver dessa värden för vektoriserardefinitionen i ett sökindex och för den kompetensuppsättning som anropar modellslutpunkterna under indexeringen.

    Om du föredrar tokenautentisering för nyckelbaserad autentisering behöver du bara kopiera modellnamnet. Anteckna dock den region som modellen distribueras till.

  3. Konfigurera ett sökindex och en indexerare för att använda den distribuerade modellen.

Distribuera en inbäddningsmodell som en serverlös distribution

Katalogvektoriseraren för AML-modellen och Microsoft Foundry accepterar endast serverlösa distributioner av Cohere-inbäddningsmodeller. Serverlösa distributioner via Microsoft Foundry-portalen stöds inte för dessa modeller, så använd Azure CLI för att skapa distributionen. Mer information finns i Distribuera modeller som serverlösa API-distributioner.

Så här skapar du en cohere-serverlös distribution:

  1. Installera Azure CLI med tillägget ml.

    az extension add -n ml
    
  2. Logga in på Azure och ange dina standardvärden.

    az login
    az account set --subscription <subscription-id>
    az configure --defaults workspace=<project-name> group=<resource-group>
    
  3. Skapa en subscribe.yaml fil för att prenumerera på marketplace-prenumerationen för modellen.

    name: cohere-embed-v3-english-subscription
    model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    

    För andra modeller som stöds ersätter du modell-ID:t med något av följande värden.

    Modell Modell-ID
    Cohere-embed-v3-english azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    Cohere-embed-v3-multilingual azureml://registries/azureml-cohere/models/Cohere-embed-v3-multilingual
    Cohere-embed-v4 azureml://registries/azureml-cohere/models/Cohere-embed-v4
  4. Kör följande kommando för att skapa prenumerationen.

    az ml marketplace-subscription create --file subscribe.yaml
    
  5. Skapa en endpoint.yaml fil för att skapa den serverlösa slutpunkten.

    name: cohere-embed-v3-english-endpoint
    model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    
  6. Kör följande kommando för att skapa slutpunkten.

    az ml serverless-endpoint create --file endpoint.yaml
    
  7. För nyckelbaserad autentisering hämtar du slutpunkts-URI och nyckel för användning i färdigheten eller vektoriseraren.

    az ml serverless-endpoint show --name cohere-embed-v3-english-endpoint --query "scoring_uri"
    az ml serverless-endpoint get-credentials --name cohere-embed-v3-english-endpoint
    

Exempel på AML-kompetensnyttolast

När du distribuerar inbäddningsmodeller från modellkatalogen ansluter du till dem med hjälp av AML-skill i Azure AI-sökning för att indexera arbetsbelastningar.

Det här avsnittet beskriver AML-kunskapsdefinitionen och indexmappningar. Den innehåller en exempellast som redan har konfigurerats för att fungera med den distribuerade motsvarande slutpunkten. Mer information finns i Kunskapskontext och indataanteckningsspråk.

Sammanhängande inbäddningsmodeller

Den här AML-färdighetsnyttolasten fungerar med följande inbäddningsmodeller:

  • Cohere-embed-v3-english
  • Cohere-embed-v3-multilingual
  • Cohere-embed-v4

Det förutsätter att du segmenterar ditt innehåll med hjälp av färdigheten Text Split och därför är texten som ska vektoriseras i sökvägen /document/pages/*. Om texten kommer från en annan sökväg, uppdaterar du alla referenser till /document/pages/*-sökvägen i enlighet med den nya sökvägen.

Du måste lägga till /v1/embed sökvägen till slutet av URL:en som du kopierade från din Foundry-distribution. Du kan också ändra värdena för input_type, truncateoch embedding_types indata så att de passar ditt användningsfall bättre. Mer information om tillgängliga alternativ finns i referensen för Cohere Embed API.

URI:n och nyckeln genereras när du distribuerar modellen från katalogen. Mer information om dessa värden finns i Distribuera Cohere Embed-modeller med Foundry.

{
  "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
  "context": "/document/pages/*",
  "uri": "https://cohere-embed-v3-multilingual-hin.eastus.models.ai.azure.com/v1/embed",
  "key": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333",
  "inputs": [
    {
      "name": "texts",
      "source": "=[$(/document/pages/*)]"
    },
    {
      "name": "input_type",
      "source": "='search_document'"
    },
    {
      "name": "truncate",
      "source": "='NONE'"
    },
    {
      "name": "embedding_types",
      "source": "=['float']"
    }
  ],
  "outputs": [
    {
      "name": "embeddings",
      "targetName": "aml_vector_data"
    }
  ]
}

Dessutom är utdata från Cohere-modellen inte matrisen för inbäddningar direkt, utan snarare ett JSON-objekt som innehåller den. Du måste välja det på rätt sätt när du mappar det till indexdefinitionen via indexProjections eller outputFieldMappings. Här är ett exempel indexProjections på nyttolast som gör att du kan implementera den här mappningen.

Om du har valt en annan embedding_types i din kompetensdefinition, ändra float i source-sökvägen till den typ som du har valt.

"indexProjections": {
  "selectors": [
    {
      "targetIndexName": "<YOUR_TARGET_INDEX_NAME_HERE>",
      "parentKeyFieldName": "ParentKey", // Change this to the name of the field in your index definition where the parent key will be stored
      "sourceContext": "/document/pages/*",
      "mappings": [
        {
          "name": "aml_vector", // Change this to the name of the field in your index definition where the Cohere embedding will be stored
          "source": "/document/pages/*/aml_vector_data/float/0"
        }
      ]
    }
  ],
  "parameters": {}
}

Exempelvektoriserarnyttolast

Katalogvektoriseraren Microsoft Foundry-modell är, till skillnad från AML-färdigheten, särskilt utformad för att endast fungera med inbäddningsmodeller som kan distribueras via modellkatalogen. Den största skillnaden är att du inte behöver oroa dig för nyttolasten för begäran och svar. Du måste dock ange modelName, som motsvarar det "modell-ID" som du kopierade efter att du har distribuerat modellen.

Här är ett exempel på hur du konfigurerar vektoriseraren för din indexdefinition med hänsyn till egenskaperna som kopierats från Foundry.

För Cohere-modeller bör du INTE lägga till /v1/embed-sökvägen i slutet av URL:en, såsom du gjorde med "skill".

"vectorizers": [
    {
        "name": "<YOUR_VECTORIZER_NAME_HERE>",
        "kind": "aml",
        "amlParameters": {
            "uri": "<YOUR_URL_HERE>",
            "key": "<YOUR_PRIMARY_KEY_HERE>",
            "modelName": "<YOUR_MODEL_ID_HERE>"
        },
    }
]

Ansluta med tokenautentisering

Om du inte kan använda nyckelbaserad autentisering kan du konfigurera AML-färdigheten och Microsoft Foundry-modellens katalogvektoriseraranslutning för token-autentisering via rollbaserad åtkomstkontroll på Azure.

Din söktjänst måste ha en system- eller användartilldelad hanterad identitet och identiteten måste ha ägar- eller deltagarbehörighet för projektet. Du kan sedan ta bort fältet key från din definition av färdighet och vektoriserare och ersätta det med resourceId. Om projektet och söktjänsten finns i olika regioner anger du även fältet region .

"uri": "<YOUR_URL_HERE>",
"resourceId": "subscriptions/<YOUR_SUBSCRIPTION_ID_HERE>/resourceGroups/<YOUR_RESOURCE_GROUP_NAME_HERE>/providers/Microsoft.MachineLearningServices/workspaces/<YOUR_AML_WORKSPACE_NAME_HERE>/onlineendpoints/<YOUR_AML_ENDPOINT_NAME_HERE>",
"region": "westus", // Only needed if project is in different region from search service

Observera

Den här integreringen stöder för närvarande inte tokenautentisering för Cohere-modeller. Du måste använda nyckelbaserad autentisering.