Azure umiejętności osadzania openAI

Uwaga / Notatka

Wyszukiwanie AI platformy Azure jest dostępna za pośrednictwem portalu Azure, interfejsów API REST i Azure SDKs. Stanowi ona również podstawę IQ rozwiązania Foundry, zarządzanej warstwy wiedzy, która przekształca zawartość przedsiębiorstwa w bazy wiedzy wielokrotnego użytku, uwzględniające uprawnienia dla agentów w portalu Microsoft Foundry.

Umiejętność Azure OpenAI Embedding łączy się z modelem osadzania wdrożonym w Twoim zasobie Azure OpenAI w zasobach Foundry Models lub Microsoft Foundry do generowania osadzeń podczas indeksowania. Dane są przetwarzane w obszarze geograficznym , w którym wdrożono model.

Kreator Import data wizard w portalu Azure wykorzystuje umiejętność osadzania Azure OpenAI do wektoryzacji treści. Możesz uruchomić czarodzieja i przejrzeć wygenerowany zestaw umiejętności, aby zobaczyć, jak czarodziej buduje umiejętność do osadzania modeli.

Uwaga / Notatka

Ta umiejętność jest Azure OpenAI i jest pobierana według standardowej ceny Azure OpenAI.

Wymagania wstępne

  • Zasób Azure OpenAI w modelach foundry lub Foundry.

    • Zasób Azure OpenAI musi mieć poddomenę custom, taką jak https://<resource-name>.openai.azure.com. Ten punkt końcowy można znaleźć na stronie Keys i Endpoint w portalu Azure i użyć go dla właściwości resourceUri w tej umiejętności.

    • Zasób nadrzędny projektu Foundry zapewnia dostęp do wielu punktów końcowych, w tym https://<resource-name>.openai.azure.com, https://<resource-name>.services.ai.azure.comi https://<resource-name>.cognitiveservices.azure.com. Te punkty końcowe można znaleźć na stronie Keys i Endpoint w portalu Azure i użyć dowolnej z nich dla właściwości resourceUri w tej umiejętności.

  • Model osadzania openAI Azure wdrożony w zasobie lub projekcie. Wspierane modele można znaleźć w sekcji Parametry umiejętności .

@odata.type

Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill

Limity danych

Maksymalny rozmiar wejścia tekstowego powinien wynosić 8 000 tokenów. Jeśli wejście przekroczy dozwolone maksimum, model wyrzuca błąd nieprawidłowego żądania. Więcej informacji można znaleźć w kluczowej koncepcji tokens w dokumentacji Azure OpenAI. Rozważ użycie umiejętności Text Split , jeśli potrzebujesz dzielenia danych.

Parametry umiejętności

W parametrach jest rozróżniana wielkość liter.

Dane wejściowe Opis
resourceUri (Wymagane) Identyfikator URI dostawcy modelu. Obsługiwane domeny to:

  • openai.azure.com
  • services.ai.azure.com
  • cognitiveservices.azure.com

To pole jest wymagane, jeśli Twój zasób jest wdrożony za prywatnym punktem końcowym lub korzysta z integracji z siecią wirtualną (VNet). obsługiwane są również punkty końcowe Azure API Management z wyjątkiem domen niestandardowych usługi API Management. Aby uzyskać informacje na temat konfiguracji, w tym uwierzytelniania, kontroli dostępu opartej na rolach i opcjonalnej łączności prywatnej, zobacz Użyj Azure API Management z umiejętnościami i wektoryzatorami Azure openAI.

apiKey Klucz tajny używany do uzyskiwania dostępu do modelu. Jeśli podasz klucz, pozostaw authIdentity wartość pustą. W przypadku ustawienia parametru apiKeyauthIdentity i apiKeyparametr jest używany w połączeniu.
deploymentId (Wymagane) Identyfikator wdrożonego modelu osadzania Azure OpenAI. Jest to nazwa wdrożenia określona podczas wdrażania modelu.
authIdentity Tożsamość zarządzana przez użytkownika używana przez usługę wyszukiwania dla połączenia. Możesz użyć tożsamości zarządzanej przez system lub użytkownika. Aby użyć tożsamości zarządzanej przez system, pozostaw apiKey wartość i authIdentity pozostaw ją pustą. Tożsamość zarządzana przez system jest używana automatycznie. Tożsamość zarządzana musi mieć uprawnienia Cognitive Services OpenAI User do wysyłania tekstu do programu Azure OpenAI.
modelName (Wymagane) Nazwa modelu Azure OpenAI wdrożonego w określonym deploymentId. Obsługiwane wartości to:

  • text-embedding-ada-002
  • text-embedding-3-large
  • text-embedding-3-small
dimensions (Opcjonalnie) Wymiary osadzeń, które chcesz wygenerować, zakładając, że model obsługuje zakres wymiarów. Domyślnie to maksymalne wymiary dla każdego modelu. Dla zestawów umiejętności stworzonych w wersjach API REST przed podglądem 10.10.2023, wymiary są ustalone na 1536. Jeśli ustawisz właściwość dimensions w tej umiejętności, ustaw dimensions ją w definicji pola wektorowego na tę samą wartość.

Wymiary wspierane przez modelName

Obsługiwane wymiary dla Azure umiejętności osadzania OpenAI zależą od skonfigurowanego modelName.

modelName Minimalne wymiary Maksymalne wymiary
text-embedding-ada-002 1536 1536
osadzanie tekstu —3 — duże 1 3072
text-embedding-3-small 1 1536

Dane wejściowe dla umiejętności

Dane wejściowe Opis
text Tekst wejściowy ma być wektoryzowany. Jeśli używasz sekcji danych, źródłem może być /document/pages/*.

Dane wyjściowe umiejętności

Wynik Opis
embedding Wektoryzowane osadzanie tekstu wejściowego.

Przykładowa definicja

Rozważmy rekord, który zawiera następujące pola:

{
    "content": "Microsoft released Windows 10."
}

Wtedy twoja definicja umiejętności może wyglądać tak:

{
  "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
  "description": "Connects a deployed embedding model.",
  "resourceUri": "https://my-demo-openai-eastus.openai.azure.com/",
  "deploymentId": "my-text-embedding-ada-002-model",
  "modelName": "text-embedding-ada-002",
  "dimensions": 1536,
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "embedding"
    }
  ]
}

Przykładowe dane wyjściowe

Dla danego tekstu wejściowego generowany jest wektoryzowany wynik osadzenia.

{
  "embedding": [
        0.018990106880664825,
        -0.0073809814639389515,
        .... 
        0.021276434883475304,
      ]
}

Wyjście pozostaje w pamięci. Aby wysłać ten wynik do pola w indeksie wyszukiwania, musisz zdefiniować outputFieldMapping , który odwzorowuje wektorowe wyjście osadzenia (czyli tablicę) na pole wektorowe. Zakładając, że wynik umiejętności znajduje się w węźle osadzenia dokumentu, a content_vector jest polem w indeksie wyszukiwania, wynik FieldMapping w indekserze powinien wyglądać następująco:

  "outputFieldMappings": [
    {
      "sourceFieldName": "/document/embedding/*",
      "targetFieldName": "content_vector"
    }
  ]

Najlepsze rozwiązania

Oto kilka najlepszych praktyk, które warto rozważyć przy stosowaniu tej umiejętności:

  • Jeśli osiągasz limit Azure modułu TPM openAI (tokeny na minutę), rozważ quota limity porady aby odpowiednio rozwiązać ten problem. Aby uzyskać więcej informacji na temat wydajności wystąpienia Azure OpenAI, zapoznaj się z dokumentacją Azure OpenAI.

  • Wdrożenie modelu osadzeń OpenAI Azure, którego używasz do tej umiejętności, powinno być idealnie oddzielne od wdrożenia używanego w innych przypadkach, w tym query vectorizer. Ułatwia to dostosowanie każdego wdrożenia do konkretnego przypadku użycia, co prowadzi do zoptymalizowanej wydajności i identyfikowania ruchu z indeksatora i łatwego osadzania wywołań indeksu.

  • Wystąpienie usługi OpenAI Azure powinno znajdować się w tym samym regionie lub co najmniej w pobliżu regionu, w którym jest hostowana usługa wyszukiwania sztucznej inteligencji. Zmniejsza to opóźnienie i zwiększa szybkość transferu danych między usługami.

  • Aby uniknąć częstego stosowania kodów błędów 429, rozważ zaimplementowanie równoważenia obciążenia za pośrednictwem usługi API Management przez zaimplementowanie bramy przed wieloma wdrożeniami modelu osadzania openAI Azure OpenAI.

  • Jeśli masz większy niż domyślny limit Azure modułu TPM openAI (tokeny na minutę) opublikowany w quotas i limity, otwórz przypadku obsługi z zespołem Wyszukiwanie AI platformy Azure, aby można było to odpowiednio dostosować. Dzięki temu proces indeksowania nie jest niepotrzebnie spowalniany przez udokumentowany domyślny limit modułu TPM, jeśli masz wyższe limity.

  • Przykłady i robocze przykłady kodu korzystające z tej umiejętności można znaleźć na następujących linkach:

Błędy i ostrzeżenia

Warunek Result
Nulowy lub nieprawidłowy URI Błąd
Null lub nieprawidłowy identyfikator wdrożenia Błąd
Tekst jest pusty Warning
Tekst jest większy niż 8 000 tokenów Błąd

Zagadnienia dotyczące zabezpieczeń uwierzytelniania tożsamości zarządzanej

Gdy umiejętność osadzania Azure OpenAI korzysta z uwierzytelniania tożsamości zarządzanej, Wyszukiwanie AI platformy Azure uzyskuje token dostępu Microsoft Entra dla odbiorców narzędzi Foundry Tools (https://cognitiveservices.azure.com) i uwzględnia go w żądaniach wysyłanych do punktu końcowego określonego przez resourceUri. Uwierzytelnianie tożsamości zarządzanej ma zastosowanie w przypadku authIdentity ustawienia lub gdy zarówno, apiKey jak i authIdentity są puste, a usługa korzysta z tożsamości przypisanej przez system.

Punkt końcowy, do których odwołuje resourceUri się użytkownik, powinien być twoim zasobem Azure OpenAI lub Foundry Tools. Obsługiwane domeny to:

  • openai.azure.com
  • cognitiveservices.azure.com
  • services.ai.azure.com

Obsługiwane są również punkty końcowe Azure API Management (*.azure-api.netAPIM). Ponieważ nie można zweryfikować nazwy hosta usługi APIM z samej nazwy, Wyszukiwanie AI platformy Azure weryfikuje te punkty końcowe przy użyciu kontroli łączności na żywo w czasie konfiguracji, a nie przez dopasowanie domeny. Odpowiadasz za konfigurowanie i utrzymywanie relacji między punktem końcowym usługi APIM a zasobem Azure openAI lub narzędzi Foundry Tools.

Token tożsamości zarządzanej wystawiony dla odbiorców narzędzi Foundry Tools jest prawidłowy dla wszystkich narzędzi Foundry Tools lub Azure zasób OpenAI, na którym jest autoryzowana tożsamość. Wysłanie go do niezaufanego punktu końcowego może uwidocznić token.

Aby ułatwić utrzymanie bezpiecznego wdrożenia, postępuj zgodnie z następującymi rozwiązaniami:

  • Ustaw resourceUri tylko punkty końcowe, których jesteś właścicielem i ufasz. Preferuj domeny narzędzi foundry wymienione wcześniej. Jeśli używasz punktu końcowego usługi APIM, przed włączeniem tożsamości zarządzanej upewnij się, że jest on frontonem twojego zasobu. Zaufana nazwa hosta nie jest dowodem własności.
  • Zastosuj zasadę najniższych uprawnień do tożsamości zarządzanej używanej przez usługę wyszukiwania. Umiejętność Azure osadzania openAI wymaga tylko roli użytkownika openAI usług Cognitive Services w zasobie docelowym. Unikaj udzielania szerszych ról.
  • Użyj obwodu zabezpieczeń sieci (NSP) i prywatnych punktów końcowych lub integracji z siecią wirtualną, aby ograniczyć, z których punktów końcowych usługa wyszukiwania może uzyskiwać dostęp i z których źródeł zasób docelowy akceptuje żądania.
  • Jeśli używasz punktu końcowego usługi APIM, upewnij się, że brama weryfikuje żądania przychodzące i przekazuje je tylko do zamierzonego zaplecza. Należy również okresowo przeglądać zasady dostępu.
  • Preferuj tożsamość zarządzaną za pośrednictwem apiKey. Jeśli używasz apiKeymetody , zapisz ją i obracaj ją bezpiecznie i nie osadzaj jej w kontroli źródła. Usługa odrzuca konfiguracje, które ustawiają zarówno , jak apiKey i authIdentity.
  • Okresowo przejrzyj definicje zestawu umiejętności, przypisania ról tożsamości zarządzanej i konfiguracje usługi APIM, aby potwierdzić, że resourceUri wartości, mechanizmy kontroli dostępu i uprawnienia tożsamości pozostają aktualne i odpowiednie. Przejrzyj zmiany konfiguracji za pomocą ustanowionych procesów zarządzania zmianami i przeglądu zabezpieczeń.
  • Monitoruj dzienniki logowania Azure OpenAI i Foundry Tools, zdarzenia uwierzytelniania i dzienniki dostępu pod kątem nieoczekiwanych lub nieautoryzowanych działań.
  • Usuń nieużywane umiejętności, punkty końcowe, przypisania ról i klucze interfejsu API, które nie są już wymagane.

Ograniczanie dostępu do konfiguracji zestawu umiejętności

Użytkownicy, którzy mogą tworzyć, modyfikować lub uruchamiać zestawy umiejętności, kontrolują zarówno docelowy punkt końcowy (resourceUri), jak i konfigurację uwierzytelniania używaną przez umiejętności. Ponieważ umiejętność wysyła token tożsamości zarządzanej dla odbiorców narzędzi Foundry Tools do tego punktu końcowego, ogranicz te uprawnienia do zaufanych administratorów i postępuj zgodnie ze standardowymi procesami zarządzania zmianami i przeglądu zabezpieczeń podczas konfigurowania umiejętności z obsługą tożsamości zarządzanej.

Zobacz także