Zintegrowane fragmentowanie i osadzanie danych w usłudze Azure AI Search

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej w obszarze Dodatkowe warunki użytkowania. Interfejs API REST 2023-10-01-Preview obsługuje tę funkcję.

Zintegrowana wektoryzacja dodaje fragmentowanie danych i osadzanie tekstu do wektora do umiejętności w indeksowaniu opartym na indeksatorze. Dodaje również konwersje tekstu do wektorów do zapytań.

Ta funkcja jest dostępna tylko w wersji zapoznawczej. W ogólnie dostępnej wersji wyszukiwania wektorów i w poprzednich wersjach zapoznawczych fragmentowanie danych i wektoryzacja polegają na składnikach zewnętrznych do fragmentowania i wektorów, a kod aplikacji musi obsługiwać i koordynować każdy krok. W tej wersji zapoznawczej fragmentowanie i wektoryzacja są wbudowane w indeksowanie za pomocą umiejętności i indeksatorów. Możesz skonfigurować zestaw umiejętności, który fragmentuje dane przy użyciu umiejętności Dzielenie tekstu, a następnie wywołać model osadzania przy użyciu umiejętności AzureOpenAIEmbedding lub niestandardowej umiejętności. Wszelkie wektoryzatory używane podczas indeksowania mogą być również wywoływane w zapytaniach w celu przekonwertowania tekstu na wektory.

W przypadku indeksowania zintegrowana wektoryzacja wymaga:

W przypadku zapytań:

  • Wektoryzator zdefiniowany w schemacie indeksu, przypisany do pola wektora i używany automatycznie w czasie zapytania w celu przekonwertowania zapytania tekstowego na wektor.

Konwersje wektorowe są jednokierunkowe: tekst-wektor. Nie ma konwersji wektor-tekst dla zapytań lub wyników (na przykład nie można przekonwertować wyniku wektorowego na ciąg czytelny dla człowieka).

Diagramów składników

Na poniższym diagramie przedstawiono składniki zintegrowanej wektoryzacji.

Diagram składników w zintegrowanym przepływie pracy wektoryzacji.

Oto lista kontrolna składników odpowiedzialnych za zintegrowaną wektoryzację:

  • Obsługiwane źródło danych na potrzeby indeksowania opartego na indeksatorze.
  • Indeks określający pola wektorowe i definicję wektoryfikatora przypisaną do pól wektorowych.
  • Zestaw umiejętności zapewniający umiejętność dzielenia tekstu na potrzeby fragmentowania danych oraz umiejętność wektoryzacji (umiejętność AzureOpenAiEmbedding lub niestandardowa umiejętność wskazywania zewnętrznego modelu osadzania).
  • Opcjonalnie projekcje indeksów (zdefiniowane również w zestawie umiejętności) w celu wypychania fragmentowanych danych do indeksu pomocniczego
  • Model osadzania, wdrożony w usłudze Azure OpenAI lub dostępny za pośrednictwem punktu końcowego HTTP.
  • Indeksator umożliwiający zakończenie procesu. Indeksator określa również harmonogram, mapowania pól i właściwości wykrywania zmian.

Ta lista kontrolna koncentruje się na zintegrowanej wektoryzacji, ale twoje rozwiązanie nie jest ograniczone do tej listy. Możesz dodać więcej umiejętności w zakresie wzbogacania sztucznej inteligencji, utworzyć magazyn wiedzy, dodać semantyczny ranking, dodać dostrajanie istotności i inne funkcje zapytań.

Dostępność i cennik

Zintegrowana dostępność wektoryzacji jest oparta na modelu osadzania. Jeśli używasz usługi Azure OpenAI, sprawdź dostępność regionalną.

Jeśli używasz niestandardowych umiejętności i mechanizmu hostingu platformy Azure (takiego jak aplikacja funkcji platformy Azure, aplikacja internetowa platformy Azure i platforma Azure Kubernetes), sprawdź stronę produktu według regionu, aby uzyskać dostępność funkcji.

Fragmentowanie danych (umiejętność dzielenia tekstu) jest bezpłatne i dostępne we wszystkich usługach sztucznej inteligencji platformy Azure we wszystkich regionach.

Uwaga

Niektóre starsze usługi wyszukiwania utworzone przed 1 stycznia 2019 r. są wdrażane w infrastrukturze, która nie obsługuje obciążeń wektorowych. Jeśli spróbujesz dodać pole wektora do schematu i wystąpi błąd, jest to wynik nieaktualnych usług. W takiej sytuacji należy utworzyć nową usługę wyszukiwania, aby wypróbować funkcję wektora.

Jakie scenariusze mogą obsługiwać zintegrowane wektoryzacja?

  • Podziel duże dokumenty na fragmenty, przydatne w scenariuszach wektorowych i niewektorowych. W przypadku wektorów fragmenty ułatwiają spełnienie ograniczeń wejściowych modeli osadzania. W przypadku scenariuszy niewektorowych może istnieć aplikacja wyszukiwania w stylu czatu, w której GPT zbiera odpowiedzi z indeksowanych fragmentów. Do wyszukiwania w stylu czatu można użyć wektoryzowanych lub niewektoryzowanych fragmentów.

  • Utwórz magazyn wektorów, w którym wszystkie pola są polami wektorów, a identyfikator dokumentu (wymagany dla indeksu wyszukiwania) jest jedynym polem ciągu. Wykonaj zapytanie względem magazynu wektorów, aby pobrać identyfikatory dokumentów, a następnie wyślij pola wektorów dokumentu do innego modelu.

  • Połącz pola wektorowe i tekstowe na potrzeby wyszukiwania hybrydowego z rankingiem semantycznym lub bez. Zintegrowana wektoryzacja upraszcza wszystkie scenariusze obsługiwane przez wyszukiwanie wektorów.

Kiedy należy używać wektoryzacji zintegrowanej

Zalecamy użycie wbudowanej obsługi wektoryzacji programu Azure AI Studio. Jeśli takie podejście nie spełnia Twoich potrzeb, możesz utworzyć indeksatory i zestawy umiejętności, które wywołują zintegrowane wektoryzacja przy użyciu interfejsów programistycznych usługi Azure AI Search.

Jak używać zintegrowanej wektoryzacji

W przypadku wektoryzacji tylko do wykonywania zapytań:

  1. Dodaj wektoryzator do indeksu. Powinien to być ten sam model osadzania używany do generowania wektorów w indeksie.
  2. Przypisz wektoryzator do profilu wektorowego, a następnie przypisz profil wektora do pola wektora.
  3. Sformułuj zapytanie wektorowe, które określa ciąg tekstowy do wektoryzacji.

Bardziej typowy scenariusz — fragmentowanie i wektoryzacja danych podczas indeksowania:

  1. Utwórz połączenie ze źródłem danych z obsługiwanym źródłem danych na potrzeby indeksowania opartego na indeksatorze.
  2. Utwórz zestaw umiejętności, który wywołuje umiejętność dzielenia tekstu na potrzeby fragmentowania i elementu AzureOpenAIEmbeddingModel lub niestandardowej umiejętności w celu wektoryzacji fragmentów.
  3. Utwórz indeks określający wektoryzator czasu zapytania i przypisz go do pól wektorowych.
  4. Utwórz indeksator , aby napędzać wszystko, od pobierania danych po wykonywanie zestawu umiejętności, przez indeksowanie.

Opcjonalnie utwórz indeksy pomocnicze dla zaawansowanych scenariuszy, w których fragmentowana zawartość znajduje się w jednym indeksie i nie jest fragmentowana w innym indeksie. Indeksy fragmentowane (lub indeksy pomocnicze) są przydatne w przypadku aplikacji RAG.

Napiwek

Wypróbuj nowy kreator importowania i wektoryzacji danych w witrynie Azure Portal, aby zbadać zintegrowaną wektoryzację przed napisaniem jakiegokolwiek kodu.

Możesz też skonfigurować notes Jupyter tak, aby uruchamiał ten sam przepływ pracy, komórkę według komórki, aby zobaczyć, jak działa każdy krok.

Ograniczenia

Upewnij się, że znasz limity przydziału i limity usługi Azure OpenAI dla modeli osadzania. Usługa Azure AI Search ma zasady ponawiania prób, ale jeśli limit przydziału zostanie wyczerpany, ponowna próba zakończy się niepowodzeniem.

Limity tokenów usługi Azure OpenAI na minutę są naliczane według modelu na subskrypcję. Należy pamiętać, że używasz modelu osadzania dla obciążeń zapytań i indeksowania. Jeśli to możliwe, postępuj zgodnie z najlepszymi rozwiązaniami. Mieć model osadzania dla każdego obciążenia i spróbuj wdrożyć je w różnych subskrypcjach.

W usłudze Azure AI Search pamiętaj, że istnieją limity usług według warstw i obciążeń.

Na koniec następujące funkcje nie są obecnie obsługiwane:

Zalety wektoryzacji zintegrowanej

Oto niektóre z kluczowych zalet wektoryzacji zintegrowanej:

  • Brak oddzielnego potoku fragmentowania i wektoryzacji danych. Kod jest prostszy do pisania i konserwacji.

  • Automatyzowanie kompleksowego indeksowania. Gdy dane zmieniają się w źródle (na przykład w usłudze Azure Storage, Azure SQL lub Cosmos DB), indeksator może przenosić te aktualizacje przez cały potok, od pobierania, do dokumentowania pęknięć, poprzez opcjonalne wzbogacanie sztucznej inteligencji, fragmentowanie danych, wektoryzacja i indeksowanie.

  • Projekcja fragmentowanej zawartości do indeksów pomocniczych. Indeksy pomocnicze są tworzone tak, jak w przypadku każdego indeksu wyszukiwania (schematu z polami i innymi konstrukcjami), ale są one wypełniane razem z indeksem podstawowym przez indeksator. Zawartość z każdego dokumentu źródłowego przepływa do pól w indeksach podstawowych i pomocniczych podczas tego samego przebiegu indeksowania.

    Indeksy pomocnicze są przeznaczone do fragmentowania danych i pobierania aplikacji generacji rozszerzonej (RAG). Zakładając, że duży plik PDF jako dokument źródłowy, indeks podstawowy może zawierać podstawowe informacje (tytuł, data, autor, opis), a indeks pomocniczy zawiera fragmenty zawartości. Wektoryzacja na poziomie fragmentów danych ułatwia znajdowanie odpowiednich informacji (każdy fragment można wyszukiwać) i zwracać odpowiednią odpowiedź, szczególnie w aplikacji wyszukiwania w stylu czatu.

Indeksy fragmentowane

Fragmentowanie to proces dzielenia zawartości na mniejsze części zarządzane (fragmenty), które mogą być przetwarzane niezależnie. Fragmentowanie jest wymagane, jeśli dokumenty źródłowe są zbyt duże dla maksymalnego rozmiaru danych wejściowych osadzania lub dużych modeli językowych, ale może się okazać, że zapewnia lepszą strukturę indeksu dla wzorców RAG i wyszukiwania w stylu czatu.

Na poniższym diagramie przedstawiono składniki indeksowania fragmentowanego.

Diagram przepływu pracy fragmentowania i wektoryzacji.

Następne kroki