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

Ważne

Zintegrowane fragmentowanie i wektoryzacja danych jest w publicznej wersji zapoznawczej w obszarze Uzupełniające warunki użytkowania. Interfejs API REST 2023-10-01-Preview udostępnia tę funkcję.

Wektoryzacja zintegrowana to rozszerzenie potoków indeksowania i zapytań w usłudze Azure AI Search. Dodaje następujące możliwości:

  • Fragmentowanie danych podczas indeksowania
  • Konwersja tekstu na wektor podczas indeksowania
  • Konwersja tekstu na wektor podczas wykonywania zapytań

Fragmentowanie danych nie jest wymaganiem twardym, ale chyba że nieprzetworzone dokumenty są małe, fragmentowanie jest niezbędne do spełnienia wymagań wejściowych tokenu dotyczących modeli osadzania.

Kluczową korzyścią jest to, że zintegrowana wektoryzacja przyspiesza opracowywanie i minimalizuje zadania konserwacji podczas pozyskiwania danych i czasu wykonywania zapytań, ponieważ istnieje mniej składników zewnętrznych do skonfigurowania i zarządzania nimi.

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).

Używanie zintegrowanej wektoryzacji podczas indeksowania

W przypadku fragmentów danych i konwersji tekstu na wektory przyjmujesz zależność od następujących składników:

  • Indeksator, który pobiera nieprzetworzone dane z obsługiwanego źródła danych i służy jako aparat potoku.

  • Zestaw umiejętności skonfigurowany dla:

    • Umiejętność dzielenia tekstu używana do dzielenia danych.
    • Umiejętność azureOpenAIEmbedding dołączona do elementu text-embedding-ada-002 w usłudze Azure OpenAI.
    • Alternatywnie możesz użyć niestandardowych umiejętności zamiast usługi AzureOpenAIEmbdding, która wskazuje na inny model osadzania na platformie Azure lub po innej stronie.
  • Indeks wektorowy do odbierania fragmentowanej i wektoryzowanej zawartości.

Używanie zintegrowanej wektoryzacji w zapytaniach

W przypadku konwersji tekstu na wektor podczas wykonywania zapytań należy podjąć zależność od tych składników:

  • Wektoryzator zdefiniowany w schemacie indeksu, przypisany do pola wektora i używany automatycznie w czasie zapytania w celu przekonwertowania zapytania tekstowego na wektor.
  • Zapytanie określające co najmniej jedno pole wektora.
  • Ciąg tekstowy, który jest konwertowany na wektor w czasie zapytania.

Diagramów składników

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

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

Przepływ pracy jest potokiem indeksatora. Indeksatory pobierają dane z obsługiwanych źródeł danych i inicjują wzbogacanie danych (lub stosowane sztuczną inteligencję), wywołując usługi Azure OpenAI lub Azure AI lub niestandardowy kod konwersji tekstu na wektor lub inne przetwarzanie.

Diagram 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 wektoryzacja jest dostępna we wszystkich regionach i warstwach. Jeśli jednak używasz usługi Azure OpenAI i umiejętności AzureOpenAIEmbedding, sprawdź dostępność regionalną tej usługi.

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 wektorów i niewektorów. W przypadku wektorów fragmenty ułatwiają spełnienie ograniczeń wejściowych modeli osadzania. W przypadku scenariuszy niewektorów możesz mieć aplikację 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 niewektorowych 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 dla aplikacji w stylu pytań i odpowiedzi lub czatu. Indeks pomocniczy zawiera szczegółowe informacje na temat bardziej szczegółowych dopasowań, ale indeks nadrzędny zawiera więcej informacji i często może generować bardziej kompletną odpowiedź. Po znalezieniu dopasowania w indeksie pomocniczym zapytanie zwraca dokument nadrzędny z indeksu podstawowego. Na przykład przy założeniu dużego pliku PDF jako dokumentu źródłowego indeks podstawowy może zawierać podstawowe informacje (tytuł, data, autor, opis), podczas gdy indeks pomocniczy zawiera fragmenty zawartości z możliwością wyszukiwania.

Następne kroki