Udostępnij przez


Umiejętność osadzania wielomodalnego usługi Azure Vision

Ważne

Ta umiejętność jest dostępna w publicznej wersji zapoznawczej w obszarze Dodatkowe warunki użytkowania. Interfejs API REST 2024-05-01-Preview i nowsze interfejsy API w wersji zapoznawczej obsługują tę funkcję.

Umiejętność osadzania wielomodalnego usługi Azure Vision korzysta z wielomodalnego interfejsu API osadzania z usługi Azure Vision w narzędziach Foundry do generowania osadzania dla tekstu lub danych wejściowych obrazu.

W przypadku transakcji, które przekraczają 20 dokumentów na indeksator dziennie, ta umiejętność wymaga dołączenia rozliczanego zasobu usługi Microsoft Foundry do zestawu umiejętności. Wykonanie wbudowanych umiejętności jest naliczane za istniejącą cenę standardową narzędzi Foundry Tools. Wyodrębnianie obrazów jest również rozliczane za pomocą usługi Azure AI Search.

Lokalizacja zasobów jest częścią rozliczeń. Ponieważ używasz wersji zapoznawczej interfejsu API REST do tworzenia zestawu umiejętności zawierającego umiejętności w wersji zapoznawczej, możesz użyć połączenia bez klucza w celu obejścia wymagań dotyczących tego samego regionu. Jednak w przypadku połączeń opartych na kluczach usługa Azure AI Search i Foundry muszą znajdować się w tym samym regionie. Aby zapewnić zgodność regionów:

  1. Znajdź obsługiwany region na potrzeby osadzania wielomodalnego.
  2. Sprawdź, czy region udostępnia wzbogacanie sztucznej inteligencji.

Zasób Foundry jest używany tylko do celów rozliczeniowych. Przetwarzanie zawartości odbywa się na osobnych zasobach zarządzanych i obsługiwanych przez usługę Azure AI Search w tym samym obszarze geograficznym. Dane są przetwarzane w obszarze geograficznym , w którym wdrożono zasób.

@odata.type

Microsoft.Skills.Vision.VectorizeSkill

Limity danych

Limity danych wejściowych dla umiejętności można znaleźć w dokumentacji usługi Azure Vision dla obrazów i tekstu. Rozważ użycie umiejętności Dzielenie tekstu, jeśli potrzebujesz fragmentowania danych dla danych wejściowych tekstowych.

Odpowiednie dane wejściowe obejmują:

  • Rozmiar pliku wejściowego obrazu musi być mniejszy niż 20 megabajtów (MB). Rozmiar obrazu musi być większy niż 10 x 10 pikseli i mniejszy niż 16 000 x 16 000 pikseli.
  • Ciąg wejściowy tekstu musi zawierać się między (włącznie) jednym wyrazem i 70 wyrazami.

Parametry umiejętności

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

Dane wejściowe opis
modelVersion (Wymagane) Wersja modelu (2023-04-15), która ma zostać przekazana do interfejsu API osadzania wielomodalnego usługi Azure Vision na potrzeby generowania osadzania. Osadzanie wektorów można porównać i dopasować tylko wtedy, gdy pochodzą one z tego samego typu modelu. Obrazy wektorowane przez jeden model nie będą przeszukiwalne za pomocą innego modelu. Najnowszy interfejs API analizy obrazów oferuje dwa modele:
  • Wersja 2023-04-15 , która obsługuje wyszukiwanie tekstu w wielu językach. Usługa Azure AI Search używa tej wersji.
  • Starszy 2022-04-11 model, który obsługuje tylko angielski.

Dane wejściowe umiejętności

Dane wejściowe definicji umiejętności obejmują nazwy, źródło i dane wejściowe. Poniższa tabela zawiera prawidłowe wartości nazwy danych wejściowych. Można również określić rekursywne dane wejściowe. Aby uzyskać więcej informacji, zobacz dokumentację interfejsu API REST i tworzenie zestawu umiejętności.

Dane wejściowe opis
text Tekst wejściowy do wektoryzowania. Jeśli używasz fragmentowania danych, źródłem może być /document/pages/*.
image Typ złożony. Obecnie działa tylko z polem "/document/normalized_images" utworzonym przez indeksator obiektów blob platformy Azure, gdy imageAction jest ustawiona wartość inną niż none.
url Adres URL do pobrania obrazu do wektoryzowania.
queryString Ciąg zapytania adresu URL do pobrania obrazu, który ma zostać wektoryzowany. Przydatne w przypadku przechowywania adresu URL i tokenu SAS w oddzielnych ścieżkach.

Tylko jeden z textelementów image lub url/queryString można go skonfigurować dla pojedynczego wystąpienia umiejętności. Jeśli chcesz wektoryzować zarówno obrazy, jak i tekst w ramach tego samego zestawu umiejętności, dołącz dwa wystąpienia tej umiejętności w definicji zestawu umiejętności, po jednym dla każdego typu danych wejściowych, którego chcesz użyć.

Dane wyjściowe umiejętności

Wyjście opis
vector Dane wyjściowe osadzania tablicy zmiennoprzecinkowych dla tekstu wejściowego lub obrazu.

Przykładowa definicja

W przypadku wprowadzania tekstu rozważ obiekt blob, który ma następującą zawartość:

{
    "content": "Forests, grasslands, deserts, and mountains are all part of the Patagonian landscape that spans more than a million square  kilometers of South America."
}

W przypadku danych wejściowych tekstowych definicja umiejętności może wyglądać następująco:

{ 
    "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill", 
    "context": "/document", 
    "modelVersion": "2023-04-15", 
    "inputs": [ 
        { 
            "name": "text", 
            "source": "/document/content" 
        } 
    ], 
    "outputs": [ 
        { 
            "name": "vector",
            "targetName": "text_vector"
        } 
    ] 
} 

W przypadku danych wejściowych obrazu druga definicja umiejętności w tym samym zestawie umiejętności może wyglądać następująco:

{
    "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
    "context": "/document/normalized_images/*",
    "modelVersion": "2023-04-15", 
    "inputs": [
        {
            "name": "image",
            "source": "/document/normalized_images/*"
        }
    ],
    "outputs": [
        {
            "name": "vector",
            "targetName": "image_vector"
        }
    ]
}

Jeśli chcesz wektoryzować obrazy bezpośrednio ze źródła danych magazynu obiektów blob, a nie wyodrębniać obrazów podczas indeksowania, definicja umiejętności powinna określać adres URL, a może token SAS w zależności od zabezpieczeń magazynu. W tym scenariuszu definicja umiejętności może wyglądać następująco:

{
    "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
    "context": "/document",
    "modelVersion": "2023-04-15", 
    "inputs": [
        {
            "name": "url",
            "source": "/document/metadata_storage_path"
        },
        {
            "name": "queryString",
            "source": "/document/metadata_storage_sas_token"
        }
    ],
    "outputs": [
        {
            "name": "vector",
            "targetName": "image_vector"
        }
    ]
}

Przykładowe dane wyjściowe

W przypadku danych wejściowych generowany jest wektoryzowany wynik osadzania. Dane wyjściowe to 1024 wymiary, czyli liczba wymiarów obsługiwanych przez wielomodalny interfejs API usługi Azure Vision.

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

Dane wyjściowe znajdują się w pamięci. Aby wysłać te dane wyjściowe do pola w indeksie wyszukiwania, należy zdefiniować element outputFieldMapping, który mapuje wektoryzowane dane wyjściowe osadzania (czyli tablicę) na pole wektorowe. Zakładając, że dane wyjściowe umiejętności znajdują się w węźle wektorowym dokumentu, a content_vector jest polem w indeksie wyszukiwania, dane wyjścioweFieldMapping w indeksatorze powinny wyglądać następująco:

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

W przypadku osadzania obrazów mapowania do indeksu należy użyć projekcji indeksu. Ładunek elementu indexProjections może wyglądać podobnie do poniższego przykładu. image_content_vector jest polem w indeksie i jest wypełniana zawartością znajdującą się w wektorze tablicy normalized_images .

"indexProjections": {
    "selectors": [
        {
            "targetIndexName": "myTargetIndex",
            "parentKeyFieldName": "ParentKey",
            "sourceContext": "/document/normalized_images/*",
            "mappings": [
                {
                    "name": "image_content_vector",
                    "source": "/document/normalized_images/*/vector"
                }
            ]
        }
    ]
}

Zobacz też