Umiejętność AML w potoku wzbogacania usługi Azure AI Search

Ważne

Obsługa połączeń indeksatora z wykazem modeli usługi Azure AI Studio jest dostępna w publicznej wersji zapoznawczej w ramach dodatkowych warunków użytkowania. Interfejsy API REST w wersji zapoznawczej obsługują tę umiejętność.

Umiejętność AML umożliwia rozszerzenie wzbogacania sztucznej inteligencji za pomocą niestandardowego modelu usługi Azure Machine Learning (AML ). Gdy model AML zostanie wytrenowany i wdrożony, umiejętność AML integruje go ze wzbogacaniem sztucznej inteligencji.

Podobnie jak inne wbudowane umiejętności, umiejętność AML ma dane wejściowe i wyjściowe. Dane wejściowe są wysyłane do wdrożonego punktu końcowego online AML jako obiektu JSON, który generuje ładunek JSON jako odpowiedź wraz z kodem stanu powodzenia. Dane są przetwarzane w obszarze geograficznym, w którym wdrożono model. Oczekuje się, że odpowiedź będzie miała dane wyjściowe określone przez umiejętności AML . Każda inna odpowiedź jest uważana za błąd i nie są wykonywane żadne wzbogacenia.

Umiejętności AML można wywołać za pomocą stabilnej wersji interfejsu API 2024-07-01 lub interfejsu API 2024-05-01-preview dla połączeń z wykazem modeli w usłudze Azure AI Studio.

Począwszy od interfejsu API REST 2024-05-01-preview i w witrynie Azure Portal (która jest również przeznaczona dla wersji 2024-05-01-preview), usługa Azure AI Search wprowadziła wektory katalog katalogów modeli usługi Azure AI Studio na potrzeby połączeń czasu zapytań z wykazem modeli w usłudze Azure AI Studio. Jeśli chcesz użyć tego wektoryzatora dla zapytań, umiejętności AML to odpowiednik indeksowania do generowania osadzania przy użyciu modelu w katalogu modeli usługi Azure AI Studio.

Podczas indeksowania umiejętność AML może łączyć się z wykazem modeli, aby wygenerować wektory dla indeksu. W czasie wykonywania zapytań zapytania mogą używać wektoryzatora do łączenia się z tym samym modelem w celu wektoryzacji ciągów tekstowych dla zapytania wektorowego. W tym przepływie pracy umiejętności AML i wektoryzator wykazu modeli powinny być używane razem, aby używać tego samego modelu osadzania dla indeksowania i zapytań. Aby uzyskać szczegółowe informacje na temat tego przepływu pracy, zobacz How to implement integrated vectorization using models from Azure AI Studio (Jak zaimplementować zintegrowaną wektoryzację przy użyciu modeli z usługi Azure AI Studio ).

Uwaga

Indeksator ponawia próbę dwukrotnie dla niektórych standardowych kodów stanu HTTP zwróconych z punktu końcowego online usługi AML. Te kody stanu HTTP to:

  • 503 Service Unavailable
  • 429 Too Many Requests

Wymagania wstępne

@odata.type

Microsoft.Skills.Custom.AmlSkill

Parametry umiejętności

W parametrach jest rozróżniana wielkość liter. Które parametry wybierane do użycia zależą od tego, jakiego uwierzytelniania wymaga punkt końcowy online usługi AML, jeśli istnieją

Nazwa parametru opis
uri (Wymagane do uwierzytelniania klucza) Identyfikator URI oceniania punktu końcowego online usługi AML, do którego jest wysyłany ładunek JSON. Dozwolony jest tylko schemat identyfikatora URI https.
key (Wymagane do uwierzytelniania za pomocą klucza) Klucz punktu końcowego online usługi AML.
resourceId (Wymagane do uwierzytelniania tokenu). Identyfikator zasobu usługi Azure Resource Manager punktu końcowego online usługi AML. Powinna ona być w formacie subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{nazwa-obszaru roboczego}/onlineendpoints/{endpoint_name}.
region (Opcjonalnie w przypadku uwierzytelniania tokenu). Region, w którym wdrożono punkt końcowy online usługi AML.
timeout (Opcjonalnie) Po określeniu wskazuje limit czasu dla klienta http wykonującego wywołanie interfejsu API. Musi być sformatowana jako wartość XSD "dayTimeDuration" (ograniczony podzestaw wartości czasu trwania ISO 8601). Na przykład PT60S przez 60 sekund. Jeśli nie zostanie ustawiona, zostanie wybrana wartość domyślna 30 sekund. Limit czasu można ustawić na maksymalnie 230 sekund i co najmniej 1 sekundę.
degreeOfParallelism (Opcjonalnie) Po określeniu wskazuje liczbę wywołań, które indeksator wykonuje równolegle do podanego punktu końcowego. Tę wartość można zmniejszyć, jeśli punkt końcowy kończy się niepowodzeniem w zbyt dużym obciążeniu żądania. Możesz go zgłosić, jeśli punkt końcowy może zaakceptować więcej żądań i chcesz zwiększyć wydajność indeksatora. Jeśli nie zostanie ustawiona, zostanie użyta wartość domyślna 5. StopieńOfParallelism można ustawić na maksymalnie 10 i co najmniej 1.

Jakich parametrów umiejętności używać

Które parametry umiejętności AML są wymagane, zależy od uwierzytelniania używanego przez punkt końcowy online usługi AML, jeśli istnieje. Punkty końcowe online usługi AML zapewniają dwie opcje uwierzytelniania:

  • Uwierzytelnianie oparte na kluczach. Klucz statyczny jest udostępniany do uwierzytelniania żądań oceniania z umiejętności AML
    • Używanie identyfikatora URI i parametrów klucza
  • Uwierzytelnianie oparte na tokenach. Punkt końcowy online AML jest wdrażany przy użyciu uwierzytelniania opartego na tokenach. Tożsamość zarządzana usługi Azure AI usługa wyszukiwania musi być włączona. Następnie umiejętność AML używa tożsamości zarządzanej usługi do uwierzytelniania względem punktu końcowego online AML bez wymaganych kluczy statycznych. Tożsamość musi mieć przypisaną rolę właściciela lub współautora.
    • Użyj parametru resourceId .
    • Jeśli usługa wyszukiwania znajduje się w innym regionie niż obszar roboczy AML, użyj parametru regionu , aby ustawić region, w którym wdrożono punkt końcowy online usługi AML

Dane wejściowe umiejętności

Dla tej umiejętności nie ma żadnych "wstępnie zdefiniowanych" danych wejściowych. Możesz wybrać co najmniej jedno pole, które będzie już dostępne w momencie wykonywania tej umiejętności jako dane wejściowe, a ładunek JSON wysłany do punktu końcowego online usługi AML będzie miał różne pola.

Dane wyjściowe umiejętności

Dla tej umiejętności nie ma żadnych "wstępnie zdefiniowanych" danych wyjściowych. W zależności od odpowiedzi zwracany przez punkt końcowy online usługi AML dodaj pola wyjściowe, aby można je było odebrać z odpowiedzi JSON .

Przykładowa definicja

  {
    "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
    "description": "A sample model that detects the language of sentence",
    "uri": "https://contoso.count-things.com/score",
    "context": "/document",
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "detected_language_code"
      }
    ]
  }

Przykładowa struktura danych wejściowych JSON

Ta struktura JSON reprezentuje ładunek wysyłany do punktu końcowego online usługi AML. Pola najwyższego poziomu struktury odpowiadają "nazwam" określonym w inputs sekcji definicji umiejętności. Wartości tych pól pochodzą z tych pól (które mogą pochodzić z source pola w dokumencie lub potencjalnie z innej umiejętności)

{
  "text": "Este es un contrato en Inglés"
}

Przykładowa struktura danych wyjściowych JSON

Dane wyjściowe odpowiadają odpowiedzi zwróconej z punktu końcowego online usługi AML. Punkt końcowy online AML powinien zwracać tylko ładunek JSON (zweryfikowany przez sprawdzenie Content-Type nagłówka odpowiedzi) i powinien być obiektem, w którym pola są wzbogacane pasujące do "nazw" w output obiekcie i którego wartość jest traktowana jako wzbogacanie.

{
    "detected_language_code": "es"
}

Definicja przykładu kształtowania wbudowanego

  {
    "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
    "description": "A sample model that detects the language of sentence",
    "uri": "https://contoso.count-things.com/score",
    "context": "/document",
    "inputs": [
      {
        "name": "shapedText",
        "sourceContext": "/document",
        "inputs": [
            {
              "name": "content",
              "source": "/document/content"
            }
        ]
      }
    ],
    "outputs": [
      {
        "name": "detected_language_code"
      }
    ]
  }

Śródliniowa struktura JSON kształtowania danych wejściowych

{
  "shapedText": { "content": "Este es un contrato en Inglés" }
}

Wbudowane kształtowanie przykładowej struktury danych wyjściowych JSON

{
    "detected_language_code": "es"
}

Przypadki błędów

Oprócz niedostępności kodu stanu AML lub wysyłania kodów stanu nonsuccessful są uznawane za błędne przypadki:

  • Jeśli punkt końcowy online AML zwraca kod stanu powodzenia, ale odpowiedź wskazuje, że nie application/jsonjest to , odpowiedź jest uważana za nieprawidłową i nie są wykonywane żadne wzbogacania.
  • Jeśli punkt końcowy online usługi AML zwraca nieprawidłowy kod json

W przypadku, gdy punkt końcowy online AML jest niedostępny lub zwraca błąd HTTP, przyjazny błąd z wszelkimi dostępnymi szczegółami dotyczącymi błędu HTTP zostanie dodany do historii wykonywania indeksatora.

Zobacz też