Projektowanie danych uziemienia dla obciążeń sztucznej inteligencji na platformie Azure
W przypadku aplikacji sztucznej inteligencji podejście Well-Architected Framework do projektowania danych musi spełniać wymagania niefunkcjonalne, takie jak obsługa, koszty i zabezpieczenia oraz przestrzegać podstawowych zasad filarów platformy Azure Well-Architected Framework. Należy również rozważyć wymagania funkcjonalne, takie jak pozyskiwanie danych, przygotowywanie i walidacja.
Wybrany model AI ma wpływ na kolejne decyzje projektowe dotyczące danych. W tym artykule omówiono kluczowe zagadnienia dotyczące architektury modeli podstawowych, które wymagają rozszerzenia w celu zwiększenia istotności wyników. Te modele są zwykle generowane.
Modele generowania sztucznej inteligencji są wstępnie utworzone lub wstępnie wytrenowane, co pozwala na natychmiastowe korzystanie z nich bez wprowadzania modyfikacji. Jednak gotowe modele często nie spełniają określonych wymagań dotyczących obciążeń. Aby rozwiązać ten problem, modele są rozszerzane o dane specyficzne dla kontekstu, aby poprawić ich wydajność. Można na przykład użyć modelu GPT w różnych przypadkach użycia. Te aplikacje obejmują pobieranie informacji z dokumentów, zapewnianie pomocy technicznej IT oraz podsumowywanie złożonych informacji. Aby użyć modeli podstawowych w celu spełnienia określonych potrzeb, ważne jest, aby zrozumieć te zagadnienia.
Ważne
Projekt danych to proces iteracyjny oparty na eksperymentach statystycznych. Generowanie aplikacji sztucznej inteligencji wysyła zapytania do modelu zawierającego dane monitu i kontekstu. Aby uściślić projekt danych, dane monitu i kontekstu powinny być iterowane. Proces iteracyjny powinien obejmować przetwarzanie wstępne, wybieranie osadzonych i fragmentów. Te kroki ułatwiają tworzenie danych odpowiednich dla indeksu. Aby uzyskać więcej informacji, zobacz Projektowanie i opracowywanie rozwiązania generacji rozszerzonej (RAG).
Podczas eksperymentowania i iterowania należy pamiętać o przypadkach użycia. Dostosuj projekt danych na podstawie rzeczywistych wzorców zapytań. Ustal, co jest akceptowalne przez uściślenie i testowanie.
W rozwiązaniu można użyć kombinacji generowania sztucznej inteligencji i dyskryminacyjnych modeli sztucznej inteligencji, aby spełnić wymagania dotyczące obciążenia. Aby uzyskać więcej informacji na temat danych szkoleniowych, zobacz Trenowanie projektu danych.
Zalecenia
Poniżej przedstawiono podsumowanie zaleceń przedstawionych w tym artykule.
Zalecenie | opis |
---|---|
Przewidywanie zapytań użytkowników. | Zapoznaj się z oczekiwanymi typami pytań związanych z danymi źródłowymi i ich oczekiwaniami dotyczącymi świeżości. Ta wiedza pomaga zaprojektować potoki danych i indeksy w celu zapewnienia odpowiednich danych uziemowych. |
Zewnętrzne dane do indeksu wyszukiwania. | Zamiast wykonywać zapytania bezpośrednio z systemu źródłowego, użyj indeksu wyszukiwania. Ocena różnych technologii indeksowania na podstawie wymagań dotyczących obciążeń. Utwórz macierz możliwości, aby ocenić najlepsze dopasowanie do Twoich potrzeb. Rozważ zaawansowane technologie indeksowania wyszukiwania, takie jak Elasticsearch lub AI Search. ▪ Indeksowania |
Opracowywanie strategii pozyskiwania. | Opracuj kompleksową strategię zarządzania indeksami, która obejmuje pozyskiwanie danych i przetwarzanie wstępne. Usuń hałaśliwe lub nieistotne dane, zajmując się niespójnościami i duplikatami oraz standaryzacją wspólnego schematu. Konwertowanie formatów i typów źródłowych na typy danych, które ułatwiają wykonywanie zapytań i analizowanie. ▪ Przygotowywanie danych ▪ Rescoping woluminu danych |
Zaprojektuj indeks pod kątem maksymalnej istotności. | Włącz funkcje, takie jak filtrowanie, sortowanie i obsługa metadanych w określonych polach, aby zwiększyć wydajność zapytań. Na przykład pola etykiet można wyszukiwać tylko wtedy, gdy zamierzasz je wyszukać. Aby uniknąć niepotrzebnych kosztów magazynowania, nie należy pobierać każdego pola bez konkretnego przypadku użycia. ▪ Projekt schematu ▪ Możliwości indeksowania ▪ Wydajne wykonywanie zapytań |
Zaktualizuj indeks, aby zapobiec wnioskowaniu na nieaktualnych danych. | Podczas aktualizowania indeksu rozważ wdrożenie strategii wdrażania równoległego na potrzeby konserwacji. Ponowne kompilowanie indeksu zapewnia obsługę usuwania i aktualizacji, ponieważ indeks staje się nowym zestawem danych. Takie podejście umożliwia dokładne testowanie danych przed udostępnieniem indeksu na żywo. Po wprowadzeniu zmian w indeksach należy koordynować modyfikacje schematu za pomocą aktualizacji kodu. Ta praktyka zapewnia bezproblemowe przejścia. ▪ Konserwacja indeksu |
Typy danych
Modele sztucznej inteligencji można rozszerzyć przy użyciu danych kontekstowych podczas wnioskowania lub zoptymalizować je dalej za pomocą procesu dostrajania. Oba podejścia wymagają dodatkowych danych, które zapewniają modelowi więcej kontekstu. Model używa tego kontekstu do odpowiadania na zapytanie użytkownika i tworzy odpowiedź zgodnie z oczekiwaniami. Zazwyczaj są używane następujące typy danych:
Dane źródłowe to istniejące dane w środowisku produkcyjnym. Te dane mogą być ustrukturyzowane, takie jak dane w bazach danych lub częściowo ustrukturyzowane, takie jak pliki JSON. Może być również nieustrukturyzowany, taki jak dokumenty, obrazy i pliki audio.
Dane uziemienia pochodzą z danych źródłowych, które zawierają informacje o tematach, które nie zostały omówione w danych początkowych trenowania modelu. Dane uziemienia są łączone z zapytaniem użytkownika w celu utworzenia monitu wysyłanego do dużego modelu językowego w kontekście określonego wywołania wnioskowania. Inne dane, które można uwzględnić w wywołaniu wnioskowania, to przykładowe monity systemowe, jednorazowe lub kilka strzałów oraz dane kontekstowe, takie jak poprzednie interakcje.
Te dane powinny być łatwe do przeszukiwania i szybkiego pobierania. Ze względu na to wymaganie należy przechowywać dane w indeksie zoptymalizowanym pod kątem wyszukiwania. Ten indeks jest dostępny w czasie rzeczywistym, gdy użytkownik czeka na odpowiedź. Bez tych danych model może wygenerować nieprawidłowe wyniki lub nie mieć zastosowania do tego, czego szuka użytkownik.
Precyzyjne dostrajanie danych to informacje używane do wpływania na model, dzięki czemu mogą dostosowywać się do określonych zadań, domen lub stylów odpowiedzi na potrzeby przyszłych żądań wnioskowania. Jeśli na przykład model ma dostarczyć odpowiedzi w określonym stylu gramatycznym, ten przewodnik stylu będzie służyć jako szczegółowe dane dostrajania.
Dane użytkownika zawierają informacje udostępniane przez użytkowników podczas interakcji z aplikacją. W przypadku interakcji z modelami generowania występują interakcje stanowe. Te modele nie mają pamięci nieodłącznej i traktują każdą interakcję jako niepodzielne.
Podczas zarządzania interakcjami stanowymi, nazywanymi również danymi TURN w aplikacjach czatów, ważne jest, aby przechowywać dane przez najkrótszy czas. Najlepiej, aby te dane zostały zniszczone po zakończeniu sesji. Jednak może istnieć przyczyna działania lub zgodności, które wymagają przechowywania pewnych danych, takich jak oryginalne pytanie lub odpowiedź modelu, poza czasem trwania sesji. Jeśli to możliwe, unikaj przechowywania tych danych poza sesją.
Indeksowanie
Podstawą projektowania danych jest efektywne przechowywanie podstawowych danych i zarządzanie nimi. Takie podejście gwarantuje, że dane można rozszerzyć w celu osiągnięcia najwyższego poziomu istotności.
Prosta strategia sztucznej inteligencji może obejmować wykonywanie zapytań dotyczących danych źródłowych dla każdej interakcji użytkownika. Jednak takie podejście nie jest praktyczne ze względu na wysokie koszty i złożoność bezpośrednich interakcji ze źródłem danych. Zamiast tego należy ponownie zastosować dane źródłowe jako kopię w indeksie zoptymalizowanym pod kątem wyszukiwania i pobierania. Celem tego podejścia jest ulepszenie zrozumienia modelu i jego zdolności do generowania odpowiednich odpowiedzi.
Rozważ obciążenie bankowe, które przechowuje szczegółowe informacje dotyczące kont bankowych i preferencji użytkowników oraz transakcji finansowych w magazynie danych. W scenariuszu generowania sztucznej inteligencji, który używa wzorca RAG, dane uziemienia są tworzone i indeksowane z kontekstem, aby model mógł udzielić odpowiednich odpowiedzi. Na przykład, podając odpowiednie dane dotyczące transakcji użytkownika na potrzeby kontekstu podczas wnioskowania, model może odpowiedzieć na pytania związane ze wzorcami wydatków użytkownika w ostatnim kwartale.
Wyspecjalizowana technologia indeksowania
Rozważ zewnętrzną zmianę danych uziemienia do indeksu wyszukiwania. Użyj tej metody zamiast wykonywania zapytań bezpośrednio z systemu źródłowego.
Istnieją korzyści wynikające z używania indeksu wyszukiwania. Możesz modelować i przekształcać kopię danych zgodnie z oczekiwaną kwerendą. Zapytania bezpośrednie do źródła podstawowego są problematyczne, ponieważ istnieje możliwość, że dane źródłowe nie są dostępne. Indeks gwarantuje, że dane pozostają dostępne tak długo, jak długo uznasz je za istotne dla aplikacji. Należy również unikać przeciążenia systemu danych źródłowych. Ta strategia zapewnia, że zapytania związane ze sztuczną inteligencją nie mają wpływu na jej podstawowy przypadek użycia.
Niektóre opcje technologiczne mają możliwości samodzielnego indeksowania. Indeksy mogą uzyskiwać dostęp do źródeł danych i uwzględniać ich dane. W przypadku tej opcji istotne są zagadnienia dotyczące sieci. Jeśli indeks musi nawiązać połączenie z bazami danych, mogą wystąpić potencjalne problemy, takie jak opóźnienie sieci i niezawodność.
Istnieje początkowy koszt importowania danych. Gdy dane znajdują się w indeksie, nie trzeba ich przenosić ponownie, chyba że istnieją zmiany lub aktualizacje. Zarządzanie danymi w czasie jest kluczowym aspektem projektowania indeksu. Aby uzyskać więcej informacji, zobacz Konserwacja indeksu.
Indeks domyślny lub niestandardowy
Niektóre technologie obsługują automatyczne tworzenie domyślnego indeksu danych. Ten indeks jest generowany w przypadku pozyskiwania danych z minimalnymi danymi wejściowymi. Indeks ma gotowe możliwości. Domyślny indeks może być akceptowalny w przypadku weryfikacji koncepcji i niektórych scenariuszy produkcyjnych.
W niektórych scenariuszach może być wymagane posiadanie niestandardowego schematu indeksu w celu poprawy trafności w oparciu o określone wymagania dotyczące obciążenia. Te wymagania określają sposób projektowania schematu, włączania możliwości indeksu i uwzględnienia odpowiednich metadanych.
Projekt schematu
Indeksy można traktować jako struktury, które organizują i optymalizują dane do pobierania. W szczególności organizują dane w dokumentach i polach tabeli. Rozważ następujące punkty:
Topologia indeksu. Oceń, czy kolokować wszystkie dane w jednym indeksie, czy dystrybuować je między wieloma indeksami. Ta decyzja znacząco wpływa na wydajność zapytań, konserwację indeksu, prostotę zapytań i różne konfiguracje pól (lub schemat) między dokumentami.
Rozważmy na przykład zapytania użytkowników, które żądają zawartości w określonym języku. Najprostszym wyborem projektu danych jest prawdopodobnie tłumaczenie wszystkich języków na jeden język i przechowywanie ich w jednym indeksie. Dane można również przechowywać we wszystkich językach w jednym indeksie. Ten wybór powoduje wyświetlenie wielu dokumentów dla każdego języka. Możliwość filtrowania indeksu może służyć do ograniczenia wyników do żądanego języka. Alternatywnie każdy indeks może zawierać przetłumaczone wersje dla danego języka zgodnie z oczekiwaniami w zapytaniu.
W niektórych sytuacjach może być potrzebnych wiele indeksów wyszukiwania. Takie podejście umożliwia niezależne optymalizowanie każdego indeksu pod kątem maksymalnej istotności zapytań wyszukiwania. Na przykład podręcznik pracownika działu kadr i podręcznik konserwacji produktu służą różnym celom i grupom odbiorców. Indeksując je oddzielnie, można dostosować schemat i wyszukiwać zapytania dla każdego, co poprawia środowisko użytkownika. Takie podejście może być złożone do zaimplementowania i wymaga orkiestratora w celu ułatwienia wywołań do każdego indeksu. Składnik aranżacji został opisany w temacie Projektowanie aplikacji dla obciążeń sztucznej inteligencji na platformie Azure.
Uwaga
Wybór między dwiema topologiami a strategią segmentacji danych zależy od wymagań dotyczących obciążeń, przypadków użycia i oczekiwań użytkowników.
Wykonywanie zapytań między indeksami może być trudne i może mieć wpływ na trafność wyszukiwania. W najgorszych scenariuszach może istnieć ręczne przesiewanie wyników, decydując, które spełniają kryteria. Ten proces wprowadza opóźnienie i zwiększa złożoność. Z kolei podejście do pojedynczego indeksu jest prostsze i prostsze. Trafność można poprawić przy użyciu funkcji indeksowania, takich jak filtrowanie.
W niektórych przypadkach zagadnienia dotyczące zgodności prowadzą do potrzeby oddzielnych indeksów. Jeśli na przykład wymagania biznesowe wymagają, aby dane były izolowane między Europą a Ameryką, wiele indeksów może być nieuniknionych.
Projekt dokumentu. Dopasuj projekt danych do oczekiwanych zapytań użytkownika, aby zoptymalizować trafność. Zastanów się, jak każdy dokument powinien obsługiwać zapytania. W przypadku indeksów wyszukiwania określ priorytety odpowiednich dokumentów i uściślij wyniki do zwięzłego zestawu, który jest gęsto pełen odpowiednich informacji.
Projekt pola. Skonfiguruj pola indeksu, aby obsługiwały wydajność i istotność wyszukiwania. Pola indeksu powinny być mapowane na atrybuty dokumentu, które mają być możliwe do przeszukiwania, pobieranie, filtrowanie i sortowanie. Obejmują one osadzanie, identyfikatory lub inne dane, które mogą zwiększyć wyszukiwanie.
Możliwości indeksowania
Skonfiguruj pola indeksu wyszukiwania, aby zwrócić najbardziej odpowiedni zestaw dokumentów. Decyzja zależy od możliwości, które obsługują technologie indeksowania wyszukiwania i wymagania dotyczące obciążenia.
Opcje filtrowania, wyszukiwania i sortowania. Rozważ te opcje, ponieważ są one bezpośrednio związane z przypadkami użycia na potrzeby rozszerzania. Na przykład funkcja filtrowania określa wartość true lub false względem wartości podanej w zapytaniu i zwraca odpowiednie dokumenty. Aby uzyskać możliwość wyszukiwania, atrybut wskazuje, czy zapytanie wyszukiwania może odwoływać się do pola. Możesz na przykład sprawdzić, czy pole tekstowe zawiera określony tekst lub czy jest on matematycznie powiązany z innym wektorem. Opcjonalnie możesz przypisać względną wagę do tego pola w ramach zapytania wyszukiwania. Zestawy wyników można również sortować, wyświetlając wyniki według istotności.
Kompromis. Włączenie możliwości indeksowania pól zwiększa wymagania dotyczące miejsca, wpływając na koszty. Dodaj tylko możliwości, których zamierzasz użyć.
Metadane. Indeksy zwykle mają metadane skojarzone z polami indeksu. Metadane pomagają nam zrozumieć dane i zarządzać nimi, podając odpowiednie informacje o nim. Podczas projektowania indeksów należy rozważyć, czy metadane są możliwe do pobrania, czy używane tylko do określania istotności. Decyzja ma wpływ na koszty obliczeniowe, ponieważ podstawowy proces indeksowania jest inny. Nadmierne metadane mogą niepotrzebnie zwiększyć rozmiar indeksu.
Istnieje wiele opcji technologicznych indeksowania. Wiele ma podobne cechy, takie jak wymienione wcześniej. Niektóre indeksy mogą mieć dodatkowe funkcje, takie jak przetwarzanie tekstu i analizy języka podczas indeksowania. Aby tekst był bardziej odpowiedni do indeksowania i wyszukiwania, podziel tekst na tokeny, przekonwertuj go na małe litery lub usuń wyrazy zatrzymania.
Wydajne wykonywanie zapytań
Dane uziemienia są używane w aplikacjach generowania sztucznej inteligencji w celu zwiększenia dokładności i istotności odpowiedzi na zapytania użytkowników. Rozważ zapytanie użytkownika z góry. Dowiedz się, jakie pytania można zadać, kto je zadaje i jak często są zadawane. Te informacje ułatwiają kontekst formularza aplikacji i zrozumienie, jaki wynik może być istotny.
Typowe typy wyszukiwań to:
Zapytania wektorowe wyszukują podobne elementy na podstawie ich reprezentacji wektorów lub punktów danych w przestrzeni wielowymiarowej.
Wyszukiwanie słów kluczowych w całej zawartości dokumentów tekstowych. Indeksuje i wykonuje zapytania o duże ilości danych tekstowych i jest często używany w wyszukiwarkach, bazach danych i systemach zarządzania dokumentami.
Ranking semantyczny poprawia istotność wyników wyszukiwania, zmieniając ich kolejność na podstawie ich semantycznego znaczenia zapytania, promując najbardziej semantycznie istotne dopasowania na początku listy.
Wyszukiwanie hybrydowe łączy różne typy wyszukiwania, takie jak wyszukiwanie wektorów, wyszukiwanie pełnotekstowe i klasyfikacja semantyczna, aby jeszcze bardziej poprawić trafność wyników wyszukiwania.
Aby jeszcze bardziej zwiększyć wydajność modelu, połącz typy wyszukiwania.
Sposób przechowywania i przetwarzania danych wpływa na wydajność zapytań. Za każdym razem, gdy dane są dodawane do indeksu, do indeksowania potrzebne są cykle obliczeniowe. Jeśli indeksowanie i reagowanie na zapytania są wykonywane na tych samych zasobach obliczeniowych, może być rywalizacja. W idealnym przypadku indeks powinien skupić się na podstawowym celu efektywnego odpowiadania na zapytania i znajdowaniu odpowiednich dokumentów, a nie nadmiernego indeksowania.
Koszt i wydajność są kluczowymi elementami projektowania indeksów. Techniki, takie jak tworzenie kopii w tle, mogą przyspieszyć wykonywanie zapytań. Jednak duplikowanie danych odbywa się za pośrednictwem indeksów, co wiąże się z kosztami.
Kompromis. Projekt indeksu powinien uwzględniać zarówno koszty, jak i wydajność. Przekreślij równowagę, optymalizując magazyn i ustalając priorytety wydajnego odpowiadania na zapytania i pobierania odpowiedniego dokumentu w przypadku nadmiernego indeksowania.
W przypadku opcji technologicznych magazynu danych indeksy wyszukiwania, takie jak Elasticsearch lub AI Search, zapewniają zaawansowane funkcje wyszukiwania, w tym wektoryzowane i trafne wyszukiwania. Alternatywnie rozważ opcje bazy danych, które obsługują typ posiadanych danych i typy potrzebnych zapytań, ponieważ są one zoptymalizowane pod kątem wykonywania zapytań. Ostatecznie chodzi o możliwości oferowane przez opcje i inwestycje w tworzenie nowych zestawów umiejętności w zespole.
Przygotowywanie danych
Dane uziemienia są oparte na istniejących danych, które muszą być odpowiednie do wykonywania zapytań semantycznych. Niektóre zapytania umożliwiające znalezienie odpowiednich dokumentów w indeksie mogą być zgodne literałami. Inne zapytania wymagają dopasowania rozmytego.
Zanim dane kontekstowe będą gotowe do obsługi wnioskowania żądań do modelu, istnieje wstępny krok przetwarzania, który ma na celu czyszczenie, przekształcanie i tworzenie struktury danych. Celem jest zmniejszenie szumu i stronniczości, wydajne wyszukiwanie i maksymalizacja trafności wyszukiwania indeksów. Wybór narzędzi lub logiki przetwarzania wstępnego zależy od zespołu obciążeń, ale istnieją pewne szerokie zagadnienia.
Rescoping woluminu danych
Zmiana rozmiaru danych polega na dostosowaniu zakresu danych przez rozszerzenie lub zawężenie go w celu utworzenia ścisłego indeksu w celu zwiększenia istotności. Wydajność zapytań jest kolejnym istotnym problemem. Przechowywanie niepotrzebnych danych negatywnie wpływa na oba te cele. Rozważmy na przykład dane lokalizacji dla użytkownika. Jeśli tylko część miasta jest odpowiednia, zoptymalizuj, przechowując tylko tekst miasta zamiast pełnego tekstu reprezentującego adres.
Poniżej przedstawiono kilka ogólnych zagadnień.
Eliminacja danych. Zachowaj tylko to, co jest niezbędne dla funkcjonalności produktu, odrzucając niepotrzebne szczegóły. Oto kilka typowych przykładów.
Eliminacja jakościowa. Jednym ze sposobów przejścia z szerokiego zakresu do węższego bardziej względnego jest wyeliminowanie danych o niskiej jakości przez selektywne wybieranie tylko indeksowania odpowiednich danych źródłowych. Wyzwanie polega na programowej identyfikacji zawartości, która nie jest odpowiednia dla scenariuszy sztucznej inteligencji. Zawartość może być przydatna w przypadku innych intencji, takich jak inspekcja lub kompletność, w tym w obciążeniu sztucznej inteligencji, co zmniejsza istotność. Jednym ze sposobów flagowania takiej zawartości jest użycie metadanych, które mogą być używane w czasie populacji indeksu, jeśli zawartość musi zostać dodana do indeksu.
Poufne dane. Kopiowanie danych ze źródłowych danych do indeksu może również spowodować przeniesienie poufnych informacji. Należy przestrzegać etykiet klasyfikacji danych stosowanych w źródle i zachować ten sam poziom poufności dla tego zestawu danych. Jeśli zajmujesz się danymi, które zawierają dane osobowe, nie przechowuj danych osobowych, chyba że potrzebujesz odpowiedzi na zapytanie. Na przykład zastosuj klasyfikację danych podczas indeksowania wiadomości e-mail. Jeśli wiadomość e-mail jest oznaczona jako wrażliwa, unikaj ich przechowywania w ogólnym magazynie danych poufności.
Normalizacja i standaryzacja tekstu. Adresowanie literówek i standaryzacji tekstu ma kluczowe znaczenie dla indeksów opartych na słowach kluczowych. Potencjalny przypadek użycia to tłumaczenia, szczególnie w przypadku obsługi zawartości wielojęzycznej.
Ten typ przetwarzania wstępnego jest również potrzebny do osadzania, co umożliwia porównywanie wyrazów na podstawie ich kontekstu i istotności. Jednak jedno wyzwanie występuje w przypadku wrażliwości słów. Kontekst ma znaczenie, a mogą istnieć niuanse, takie jak semantyczne różnice między przymiotnikowym "obywatelem" a właściwym dzielnikiem "(Honda) Civic".
Dodawanie danych. Kontekst rozszerzony często opiera się na metadanych, które zwykle nie są obecne w danych źródłowych. Rozważmy na przykład fragment tekstu. Człowiek w pętli lub sztucznej inteligencji tworzy odpowiednie pytania, na które można odpowiedzieć przy użyciu kontekstu fragmentu kodu. Podczas przechowywania tych pytań wraz z danymi uziemienia zapytania użytkowników mogą być porównywane z wygenerowanymi zapytaniami w celu oceny trafności dokumentu. Kolokacja tych nowych danych z danymi uziemienia to zaawansowany sposób wzbogacania fragmentowanych danych.
Innym przypadkiem użycia jest dodanie jednostek znalezionych podczas analizowania danych bez struktury. Te jednostki można dodać do indeksu i użyć do wyszukiwania i filtrowania systemów zewnętrznych lub do wykonywania złożonych obliczeń. Jeśli na przykład zidentyfikujemy nazwę firmy, możemy wyszukać jej branżę lub inne istotne informacje z zewnętrznej bazy danych i dodać je do naszego indeksu.
Rozważ utrzymanie pochodzenia danych. Ważne jest, aby obciążenia sztucznej inteligencji śledzić źródło danych, ponieważ te informacje mogą być utracone, gdy system agreguje różne składniki w jednym indeksie. Te informacje mogą nie być nigdy widoczne dla użytkowników, ale informacje o źródłach danych mają kluczowe znaczenie dla wewnętrznych zespołów ds. zapewniania ładu w danych. Te metadane nie muszą być przeznaczone dla modelu. Pomaga to zachować przejrzystość i odpowiedzialność.
Kompromis. Z jednej strony dodanie nowych danych zwiększa prawdopodobieństwo znalezienia trafności w zestawie danych. Jednak ta korzyść wiąże się z kosztami. W szczególności zasoby obliczeniowe wymagane do przetwarzania tego pola i zarządzania nim. Czas spędzony na zbieraniu i przechowywaniu danych może być istotny. Należy pamiętać, że przeciążenie niepotrzebnymi polami może przeciążać zasoby.
Przetwarzanie danych tekstowych. Rozważ techniki, takie jak synonimy, stemming i semantyczna bliskość, aby zwiększyć trafność. Deleguj te techniki do narzędzi, jeśli to możliwe. Niektóre technologie, takie jak wyszukiwanie elasticsearch lub AI, oferują takie funkcje do wstępnego przetwarzania danych podczas tworzenia indeksu.
Morfowanie typu danych
Pola indeksu w magazynie danych są typizowane do określonego celu. Pola liczbowe ułatwiają wydajne wykonywanie zapytań, pola tekstowe umożliwiają wyszukiwanie oparte na tekście, a pola logiczne obsługują informacje binarne.
Dane źródłowe zwykle istnieją w różnych typach danych, takich jak tekst, obrazy i tabele, i przetwarzanie tych danych może być złożone. Może być konieczne wyodrębnienie par klucz-wartość, zidentyfikowanie nagłówków sekcji dotyczących fragmentów semantycznych, rozpoznawanie określonych identyfikatorów itd.
Jeśli na przykład dane źródłowe zawierają obrazy, nie są one z natury możliwe do przeszukiwania. Należy je przekonwertować na reprezentacje wektorów, aby umożliwić wydajne wyszukiwanie semantyczne i porównania. Jeśli trafność jest powiązana z danymi w tych formatach, zainwestuj w wyodrębnianie danych. Przekształcanie typów danych źródłowych na funkcjonalne typy danych, które ułatwiają wykonywanie zapytań i analizowanie.
Fragmentowanie i osadzanie
Dane uziemienia często zawierają dużą ilość informacji, ale model może tokenizować tylko określoną ilość. Fragmentowanie jest ważną strategią projektowania danych, ponieważ obejmuje podzielenie dokumentu na mniejsze elementy, które mogą być indywidualnie przetwarzane i indeksowane. Ta strategia umożliwia efektywne wyszukiwanie i pobieranie pomimo ograniczeń tokenu. Sprawdź maksymalną liczbę tokenów, które można obsłużyć do wyboru dużego modelu językowego. Fragmenty nie powinny przekraczać tego limitu.
Istnieje wiele technik implementowania fragmentów. Aby uzyskać więcej informacji, zobacz Metody fragmentowania.
Osadzanie to również kolejna strategia projektowania, która umożliwia wyszukiwanie wektorów. Osadzanie to matematyczna reprezentacja obiektu generowanego przez modele sztucznej inteligencji na podstawie danych uziemienia. Są one przechowywane w indeksie i dodaj więcej kontekstu, który pomaga złożonym zapytaniom uzyskać wyniki z lepszymi trafnościami. Aby uzyskać więcej informacji, zobacz Generowanie osadzania.
Konserwacja indeksu
Konserwacja w czasie jest kluczowym aspektem projektowania indeksu. W przypadku danych statycznych, w których dokumenty pozostają niezmienione, konserwacja indeksu jest prosta. Jednak większość indeksów jest dynamiczna. W czasie mogą być dodawane nowe dane, a schemat indeksu może wymagać nowych pól. Z drugiej strony niektóre dane i pola mogą wymagać usunięcia, jeśli nie są już istotne. Często używane opcje technologii dla indeksatorów mają funkcje do obsługi aktualizacji automatycznie. Aby uzyskać informacje o zalecanych cechach indeksu, zobacz Zagadnienia dotyczące indeksu wyszukiwania.
Kryteria konserwacji
Aktualizacje funkcji. Indeks może być konieczne zaktualizowanie, jeśli nastąpiła zmiana funkcji aplikacji. Taka sytuacja występuje w przypadku zadawanych nowych pytań. Aby uwzględnić te zmiany, może być konieczne dodanie nowych pól do indeksu lub zmodyfikowanie opcji filtrowania, wyszukiwania lub przetwarzania tekstu w istniejących polach.
Usuwanie danych. Usuwanie danych jest trudne, ponieważ musisz przeanalizować dostępne i brakujące dane, aby określić, co jest nieistotne. Aby wykluczyć nieaktualną zawartość z indeksu, rozważ użycie metadanych, które uniemożliwiają indeksowanie określonych stron lub zawartości przez aparaty wyszukiwania. Ponadto po wybraniu opcji magazynowania wybierz technologię, która skutecznie obsługuje usuwanie. Na przykład usługa Blob Storage obsługuje usuwanie nietrwałe. Jeśli używasz wyszukiwania i ładowania dokumentów ze sztucznej inteligencji z magazynu, usługa Blob Storage może wykrywać usunięte dokumenty i usuwać odpowiednie wpisy. Takie podejście nie jest idealne, ale jest konieczne, gdy ponowne indeksowanie jest kosztowne z powodu dużego rozmiaru indeksu.
Pojęcie prawa do zapomnienia odnosi się do prawa osoby fizycznej do usunięcia ich danych osobowych z platform online lub baz danych. Upewnij się, że masz zasady usuwania danych osobowych, jeśli zostały użyte do szkolenia. To wymaganie można rozwiązać, ponownie indeksując zestaw danych. Jeśli dane zostaną usunięte z transakcyjnej bazy danych, kolejne aktualizacje indeksu odzwierciedlają te zmiany.
Utrzymywanie zgodności. Aplikacje często wymagają określonych struktur danych, a każde odchylenie może zakłócić ich funkcjonalność. Jeśli na przykład pole zostanie usunięte, a aplikacja zażąda tego pola, może wystąpić warunek niepowodzenia. Podobnie jak w przypadku tradycyjnej bazy danych, należy przyjąć sposób myślenia o zgodności do przodu dla indeksów i utrzymać poziom rygoru. Po wprowadzeniu zmian w indeksie, takich jak dodawanie lub usuwanie pól, koordynowanie zmian schematu za pomocą aktualizacji kodu.
Kompromis. Akcje dodawania, aktualizowania i usuwania względem indeksu są kosztowne. Rozważ częstotliwość aktualizacji i koszt wydajności na podstawie rozmiaru i wydajności magazynu danych. Przechowywanie przestarzałych dokumentów w indeksie wiąże się z kosztami magazynowania, konserwacji i wykonywania zapytań.
Strategia wdrażania
Strategia wdrażania. Istnieją dwie główne strategie aktualizowania indeksu.
Wdrożenia równoległe. W tym podejściu nowy indeks, który zawiera aktualizacje, znajduje się obok istniejącego. Po przetestowaniu i pełnym uruchomieniu nowego indeksu zapytania są przełączane w celu korzystania ze zaktualizowanego indeksu. Aplikacja pozostaje nieświadoma tego przełącznika, ponieważ współdziała tylko z nowym indeksem. Jeśli wykryjesz inne problemy po wdrożeniu nowego indeksu w środowisku produkcyjnym, możesz przywrócić stary indeks. Takie podejście minimalizuje przestoje i zapewnia ciągłą dostępność.
Aktualizacje side-by-side działają dobrze, gdy koszt odbudowy indeksu jest rozsądny i może zostać ukończony w rozsądnym przedziale czasu. Ogólnie rzecz biorąc, staraj się, aby indeksy były tak wydajne, jak to możliwe, ponieważ większe indeksy zużywają więcej zasobów. Regularnie monitoruj i konserwuj indeksy, aby uniknąć niepotrzebnego wzrostu.
Napiwek
Podczas wykonywania zadań przetwarzania wstępnego danych intensywnie korzystających z zasobów, takich jak rozpoznawanie jednostek, wyszukiwanie i obliczenia, rozważ zapisanie kopii wyników. Takie podejście gwarantuje, że w przypadku konieczności ponownego skompilowania indeksu można uniknąć ponownego wykonania wszystkich obliczeń. Niektóre obliczenia mogą nie być już stosowane z powodu usunięcia lub aktualizacji, ale wiele z nich pozostanie istotnych.
Wdrożenia aktualizacji w miejscu. Takie podejście bezpośrednio modyfikuje istniejący indeks. Oszczędność kosztów duplikacji może być korzystna, ale wprowadza również ryzyko z powodu potencjalnych przestojów i operacji intensywnie korzystających z zasobów. Jeśli indeks jest duży i ponowne kompilowanie go od podstaw przekracza żądaną częstotliwość aktualizacji, możesz rozważyć użycie aktualizacji w miejscu. Jednak takie podejście jest trudne i wiąże się z ryzykiem naruszenia celu poziomu usług (SLO).
Kompromis. Oceń koszt równoległych wdrożeń indeksów przed wykonywaniem aktualizacji w miejscu, które wdrażają dodatki, aktualizacje i usunięcia. W większości przypadków należy używać aktualizacji równoległych zamiast aktualizacji w miejscu. Po ponownym utworzeniu indeksu proces skutecznie obsługuje usunięcia i aktualizacje, ponieważ tworzy zupełnie nowy zestaw danych. Ta strategia zapewnia możliwość testowania danych. Mimo że wdrożenia równoległe tymczasowo duplikować dane i ponosić dodatkowe koszty, korzyści z testowania i oceny wydajności często uzasadniają to wymaganie dotyczące magazynu. Przed utworzeniem indeksu na żywo sprawdź dane, aby upewnić się, że są zgodne z oczekiwaniami.
Zaplanowane aktualizacje. Zamiast utrzymywać ciągłą komunikację w czasie rzeczywistym ze źródłami danych, można okresowo odświeżać dane uziemieniowe. Takie podejście zapewnia, że dane pozostają istotne za pośrednictwem zaplanowanych aktualizacji, co eliminuje potrzebę ciągłej interakcji.
Aktualizacje awaryjne. Mogą wystąpić nieoczekiwane sytuacje, takie jak przypadkowe wyciek niechcianych danych do indeksu wyszukiwania. W przypadku wystąpienia tego problemu może być konieczne podjęcie natychmiastowych działań, takich jak usunięcie określonych dokumentów lub dostosowanie danych w indeksie. Niezależnie od wybranej strategii wdrażania, takiej jak aktualizacje równoległe lub aktualizacje w miejscu, zawsze zaplanuj możliwość operacji awaryjnych.
Indeks aktualizacji samodzielnej. Jeśli technologia indeksowania obsługuje automatyczne aktualizowanie indeksu w celu zachowania synchronizacji z zewnętrznym źródłem danych, może być w stanie automatycznie przetwarzać zmiany w danych. Zmiany danych obejmują dodatki lub usunięcia bez ręcznej interwencji. Należy pamiętać, że każda zmiana wyzwala operację w indeksie, która zużywa zasoby. Indeks może nadal odpowiadać na zapytania, ale jego pojemność do ich obsługi może zostać zmniejszona podczas procesu aktualizacji.
Operacje świeżości
Mierzenie przedziału czasu między tworzeniem lub modyfikowaniem danych źródłowych oraz dodawaniem indeksu jako wskaźnika i śledzeniem go względem celów SLO. Ten wskaźnik umożliwia podejmowanie decyzji dotyczących aktualizowania projektu potoku danych w celu zapewnienia, że dane są dostępne w indeksie, gdy są potrzebne. Indeks powinien być tylko tak świeży, jak jest to wymagane.
Aby zachować świeżość, można całkowicie ponownie skompilować indeks lub przyrostowo zaktualizować go, aby zachować synchronizację z oryginalnymi źródłami danych. Obie metody zapewniają, że indeks pozostaje aktualny i dokładny.
Inwestycje z góry w precyzyjne dostrajanie modelu mogą być tańsze niż implementacja wzorca RAG, inżynierii monitu i metod rozszerzania danych.