Używanie modeli osadzania z katalogu modeli Microsoft Foundry na potrzeby zintegrowanej wektoryzacji (wersja zapoznawcza)

Uwaga

Wyszukiwanie AI platformy Azure jest dostępna za pośrednictwem portalu Azure, interfejsów API REST i Azure SDKs. Jest także podstawą Foundry IQ — zarządzanej warstwy wiedzy, która przekształca treści przedsiębiorstwa w bazy wiedzy wielokrotnego użytku z uwzględnieniem uprawnień dla agentów w portalu Microsoft Foundry.

Ważne

Funkcje, możliwości lub właściwości oznaczone (wersja zapoznawcza) nie są objęte umową dotyczącą poziomu usług, nie są zalecane w przypadku obciążeń produkcyjnych i mogą ulec zmianie lub ograniczeniu, zanim staną się one ogólnie dostępne. Warunki Wyszukiwanie AI platformy Azure wersji zapoznawczej mają zastosowanie do wszystkich funkcji w wersji zapoznawczej, niezależnie od tego, czy jest ona autonomiczna, czy częścią ogólnie dostępnej funkcji.

Z tego artykułu dowiesz się, jak używać modeli wykazu modeli Microsoft Foundry do zintegrowanej wektoryzacji (wersja zapoznawcza) podczas indeksowania i wykonywania zapytań w Wyszukiwanie AI platformy Azure.

Przepływ pracy wymaga wdrożenia modelu z katalogu, który obejmuje osadzanie modeli z Microsoft i innych firm. Wdrażanie modelu jest rozliczane zgodnie ze strukturą rozliczeń każdego dostawcy.

Po wdrożeniu modelu można go użyć z umiejętnością AML do zintegrowanej wektoryzacji podczas indeksowania lub z wektoryzatorem katalogu modeli Microsoft Foundry dla zapytań.

Wskazówka

Kreator importu danych umożliwia wygenerowanie zestawu umiejętności obejmującego umiejętności AML dla wdrożonych modeli osadzania w narzędziu Foundry. Definicja umiejętności AML dla danych wejściowych, danych wyjściowych i mapowań jest generowana przez kreatora, co zapewnia łatwy sposób testowania modelu przed napisaniem jakiegokolwiek kodu.

Wymagania wstępne

Obsługiwane modele osadzania

Obsługiwane modele osadzania z wykazu modeli różnią się w zależności od metody użycia:

Wdrażanie modelu osadzania z wykazu modeli

  1. Postępuj zgodnie z tymi instrukcjami portalu , aby wdrożyć obsługiwany model w projekcie.

  2. Zanotuj docelowy identyfikator URI, klucz i nazwę modelu. Te wartości są potrzebne dla definicji wektoryzatora w indeksie wyszukiwania i zestawu umiejętności, który wywołuje punkty końcowe modelu podczas indeksowania.

    Jeśli wolisz uwierzytelnianie tokenu do uwierzytelniania opartego na kluczach, musisz skopiować tylko nazwę modelu. Zanotuj jednak region, w którym wdrożono model.

  3. Skonfiguruj indeks wyszukiwania i indeksator do korzystania z wdrożonego modelu.

Wdróż model osadzający jako wdrożenie bezserwerowe

Umiejętności AML i wektoryfikator katalogu modeli Microsoft Foundry akceptują tylko bezserwerowe wdrożenia modeli osadzania Cohere. Wdrożenia bezserwerowe za pośrednictwem portalu Microsoft Foundry nie są obsługiwane w przypadku tych modeli, dlatego użyj Azure CLI do utworzenia wdrożenia. Aby uzyskać więcej informacji, zapoznaj się z tematem Wdrażanie modeli jako bezserwerowe wdrożenia interfejsów API.

Aby utworzyć wdrożenie bezserwerowe Cohere:

  1. Zainstaluj Azure CLI przy użyciu rozszerzenia ml.

    az extension add -n ml
    
  2. Zaloguj się do Azure i skonfiguruj domyślne ustawienia.

    az login
    az account set --subscription <subscription-id>
    az configure --defaults workspace=<project-name> group=<resource-group>
    
  3. Utwórz plik subscribe.yaml, aby zasubskrybować Marketplace dla tego modelu.

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

    W przypadku innych obsługiwanych modeli zastąp identyfikator modelu jedną z następujących wartości.

    Model Identyfikator modelu
    Cohere-embed-v3-english azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    Cohere-embed-v3-wielojęzyczny azureml://registries/azureml-cohere/models/Cohere-embed-v3-multilingual
    Cohere-embed-v4 azureml://registries/azureml-cohere/models/Cohere-embed-v4
  4. Uruchom następujące polecenie, aby utworzyć subskrypcję.

    az ml marketplace-subscription create --file subscribe.yaml
    
  5. Utwórz plik endpoint.yaml, aby utworzyć bezserwerowy punkt końcowy.

    name: cohere-embed-v3-english-endpoint
    model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    
  6. Uruchom następujące polecenie, aby utworzyć punkt końcowy.

    az ml serverless-endpoint create --file endpoint.yaml
    
  7. W przypadku uwierzytelniania opartego na kluczach pobierz identyfikator URI punktu końcowego i klucz do użycia w umiejętności lub wektoryzatorze.

    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
    

Przykładowy ładunek umiejętności AML

Podczas wdrażania modeli osadzania z katalogu modeli nawiąż połączenie z nimi przy użyciu umiejętności AML w Wyszukiwanie AI platformy Azure na potrzeby indeksowania obciążeń.

W tej sekcji opisano definicję umiejętności AML i mapowania indeksów. Zawiera przykładowy pakiet, który jest już skonfigurowany do współpracy z odpowiednim wdrożonym punktem końcowym. Aby uzyskać więcej informacji, zobacz Kontekst umiejętności i język adnotacji wejściowych.

Modele osadzające Cohere

Ten ładunek umiejętności AML działa z następującymi modelami osadzania:

  • Cohere-embed-v3-english
  • Cohere-embed-v3-wielojęzyczny
  • Cohere-embed-v4

Przyjęto założenie, że fragmentujesz zawartość przy użyciu umiejętności Dzielenie tekstu i dlatego tekst, który ma zostać wektoryzowany, znajduje się w ścieżce /document/pages/* . Jeśli tekst pochodzi z innej ścieżki, zaktualizuj odpowiednio wszystkie odwołania do /document/pages/* ścieżki.

Należy dodać ścieżkę /v1/embed na końcu adresu URL skopiowanego z wdrożenia rozwiązania Foundry. Możesz również zmienić wartości danych input_typewejściowych , truncatei embedding_types , aby lepiej pasowały do twojego przypadku użycia. Aby uzyskać więcej informacji na temat dostępnych opcji, sprawdź dokumentację interfejsu Cohere Embed API.

Identyfikator URI i klucz są generowane podczas wdrażania modelu z wykazu. Aby uzyskać więcej informacji na temat tych wartości, zobacz How to deploy Cohere Embed models with Foundry (Jak wdrożyć modele osadzania cohere za pomocą rozwiązania 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"
    }
  ]
}

Ponadto dane wyjściowe modelu Cohere nie są bezpośrednio osadzaną tablicą, ale raczej obiektem JSON, który go zawiera. Należy wybrać ją odpowiednio podczas mapowania jej na definicję indeksu za pomocą metody indexProjections lub outputFieldMappings. Oto przykładowy indexProjections ładunek, który umożliwia zaimplementowanie tego mapowania.

Jeśli wybrano inną embedding_types w definicji umiejętności, zmień float na wybrany typ w ścieżce source.

"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": {}
}

Przykładowy ładunek wektoryzatora

Wektoryzator katalogu modeli Microsoft Foundry, w przeciwieństwie do funkcji AML, jest dostosowany do pracy tylko z modelami osadzającymi, które można wdrażać poprzez katalog modeli. Główną różnicą jest to, że nie musisz martwić się o ładunek żądania i odpowiedzi. Należy jednak podać modelName, odpowiadającą "Identyfikatorowi modelu", który został skopiowany po wdrożeniu modelu.

Oto przykładowy zasób, jak skonfigurować wektoryzator w definicji indeksu na podstawie właściwości skopiowanych z rozwiązania Foundry.

W przypadku modeli Cohere nie należy dodawać ścieżki /v1/embed na końcu adresu URL, jak robiło się to w wypadku umiejętności.

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

Nawiązywanie połączenia przy użyciu uwierzytelniania tokenu

Jeśli nie możesz użyć uwierzytelniania opartego na kluczach, możesz skonfigurować umiejętność AML oraz połączenie z wektoryzatorem modelu w katalogu Microsoft Foundry na potrzeby uwierzytelniania za pomocą token za pośrednictwem kontroli dostępu opartej na rolach w Azure.

Usługa wyszukiwania musi mieć tożsamość zarządzaną przypisaną przez użytkownika lub system, a tożsamość musi mieć uprawnienia Właściciel lub Współautor dla projektu. Następnie możesz usunąć pole key ze swojej definicji umiejętności oraz wektoryzatora, zastępując je resourceId. Jeśli projekt i usługa wyszukiwania znajdują się w różnych regionach, podaj również pole 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

Uwaga

Ta integracja nie obsługuje obecnie uwierzytelniania tokenów dla modeli Cohere. Należy użyć uwierzytelniania opartego na kluczach.