Udostępnij za pośrednictwem


Platforma danych dla obciążeń sztucznej inteligencji na platformie Azure

Platforma danych to zintegrowany zestaw technologii, które są przeznaczone do zarządzania wymaganiami dotyczącymi obciążeń przez pozyskiwanie danych źródłowych, a następnie filtrowanie, agregowanie i przygotowywanie ich do użycia.

Dane mają odrębne cechy, które są oparte na zamierzonym użyciu. Zdecydowanie zalecamy zapoznanie się z zasadami projektowania dobrego potoku danych przed zapoznaniem się z możliwościami technologicznymi opisanymi w tym artykule. Aby uzyskać więcej informacji, zobacz Projektowanie danych treningowych i Projektowanie danych uziemienia.

Platforma spełnia również potrzeby magazynu, gdy dane są przechowywane w określonych punktach potoku. Jeśli obciążenie jest złożone i obsługuje dane na dużą skalę, możesz dystrybuować zadania potoku między różnymi składnikami. W przypadku prostszych przypadków użycia należy ocenić, czy możesz użyć danych źródłowych w magazynie, który oferuje te połączone możliwości.

Zadaj sobie następujące pytania, aby uniknąć projektowania nadmiernie złożonej architektury dla platformy danych. Zawsze najlepiej jest zachować proste rzeczy, kiedy to możliwe.

  • Czy aplikacja może mieć oczekiwaną moc predykcyjną, pozyskiwając dane z jednego źródła?
  • Czy twój początkowy wybór magazynu danych obsługuje możliwości magazynowania danych?
  • Czy dane źródłowe są już zoptymalizowane pod kątem wyszukiwania w sztucznej inteligencji?

Jeśli odpowiesz na te pytania tak, możesz uprościć architekturę, zezwalając aplikacji na bezpośredni dostęp do źródła danych. Takie podejście eliminuje potrzebę składników architektury danych big data, takich jak pozyskiwanie danych, integracja magazynu analitycznego i zewnętrzne przetwarzanie danych. Jeśli źródłowa baza danych może obsługiwać wymagane wyszukiwania, zintegrowanie funkcji indeksu wyszukiwania bezpośrednio z źródłową bazą danych może być praktycznym podejściem. Upewnij się, że źródło może efektywnie skalować w celu spełnienia nowych wymagań.

Na przykład usługa Azure Cosmos DB obsługuje wyszukiwanie wektorowe, więc być może nie potrzebujesz innego indeksu. Innym przypadkiem użycia jest użycie replik do odczytu jako punktów końcowych dla operacji wyszukiwania. W przypadku baz danych SQL, które mają repliki do odczytu, bezpośrednie wyszukiwania w tych replikach mogą zoptymalizować wydajność. Korzystaj z wbudowanych funkcji bazy danych, aby jak najwięcej uprościć architekturę.

Architektura platformy danych dla obciążeń na dużą skalę jest bardziej złożona.

Pozyskiwanie danych z wielu źródeł danych i organizowanie wyszukiwań na różnych platformach może stać się złożone i nieefektywne. Ponadto nadal potrzebne są pewne wyodrębnianie, przekształcanie i ładowanie (ETL); wyodrębnianie, ładowanie i przekształcanie (ELT); lub wyodrębnianie i ładowanie procesów (EL) w celu zmiany danych w magazynie danych. Scenariusz staje się bardziej złożony, ponieważ dane wymagają większego przetwarzania. Należy dodać wiele składników do architektury w celu obsługi kompleksowego potoku z pozyskiwania do obsługi zapytań. Wiele technologii danych big data jest wysoce wyspecjalizowanych i utworzonych w celu efektywnego obsługi tych zadań przetwarzania.

Jedną z takich technologii jest indeks wyszukiwania. Główną zaletą dodawania oddzielnego indeksu jest możliwość wydajnego zarządzania zapytaniami i przetwarzania dużych ilości danych o wysokiej przepływności. Ta funkcja odciąża możliwości sztucznej inteligencji z oryginalnego źródła danych, dzięki czemu indeks może skupić się na głównej funkcji obsługującej zapytania.

Wybierz platformę na podstawie jej konkretnej funkcjonalności i celu, a następnie zastanów się nad wymaganiami funkcjonalnymi i technicznymi. Jeśli twoja architektura ewoluuje w celu obsługi złożonych przypadków użycia, skoncentruj się na poniższych sekcjach dotyczących zagregowanych magazynów danych, potoków przetwarzania i indeksów wyszukiwania.

Zalecenia

Poniżej przedstawiono podsumowanie zaleceń przedstawionych w tym artykule.

Zalecenie opis
Twórz bezpieczne, wydajne i ekonomiczne magazyny danych. Kluczową częścią platformy danych jest magazyn danych, który agreguje dane z wielu źródeł i umożliwia integrację z różnymi zadaniami integracji. Ułatwia to wykonywanie obciążeń na dużą skalę. Pamiętaj, aby przejrzeć różne wymagania funkcjonalne i niefunkcjonalne magazynu danych, aby zapewnić ekonomiczne wdrożenie.

Zagadnienia dotyczące przechowywania zagregowanych danych
Postępuj zgodnie z najlepszymi rozwiązaniami dotyczącymi pozyskiwania i przetwarzania danych. Dane wysokiej jakości pomagają zwiększyć niezawodność obciążenia i środowisko użytkownika końcowego. Weź pod uwagę wymagania obciążenia, a także najważniejsze najlepsze rozwiązania dotyczące tworzenia wydajnych procesów pozyskiwania i przenoszenia danych, które pomagają utrzymać pasek wysokiej jakości.

Zagadnienia dotyczące przetwarzania danych
Projektowanie niezawodnych i odpowiednich indeksów wyszukiwania. Celem jest wysoce wydajny, jednorazowy magazyn danych do odczytu i wielu do odczytu, który efektywnie obsługuje improwizowane i rozmyte zapytania, dostarczając odpowiednie wyniki do bazy użytkowników, nawet jeśli zapytania nie są precyzyjne.

Zagadnienia dotyczące indeksu wyszukiwania
Upewnij się, że funkcjonalne magazyny danych działają na dużą skalę. W zależności od wymagań funkcjonalnych obciążenia może być konieczne utworzenie funkcjonalnych magazynów danych, na przykład w przypadku wnioskowania w trybie offline. Ważne jest, aby utworzyć magazyny danych z myślą o wyznaczonej funkcji i zastosować najlepsze rozwiązania dotyczące funkcji.

Zagadnienia dotyczące magazynu funkcji
Zagadnienia dotyczące magazynu danych wnioskowania w trybie offline

Zagadnienia dotyczące przechowywania zagregowanych danych

W przypadku obciążeń sztucznej inteligencji dane przechodzą przez różne etapy magazynowania i przetwarzania za pomocą potoków, które organizuje przepływ pracy między tymi etapami. Jednym z kluczowych etapów jest magazyn danych zawierający dane pozyskiwane i agregowane z wielu źródeł. Ten magazyn jest potrzebny do przeprowadzenia przetwarzania, dopóki dane nie osiągną odpowiedniego stanu trenowania lub indeksowania. Głównym celem jest zapewnienie, że dane dokładnie odzwierciedlają jego źródło.

Uwaga

Alternatywną metodą jest bezpośredni dostęp do źródeł danych. Jednak takie podejście może prowadzić do problemów z wydajnością, ponieważ może przeciążyć systemy źródłowe za pomocą funkcji sztucznej inteligencji. Mogą również występować problemy z dostępem do danych. Aby uniknąć tych problemów, zalecamy skopiowanie danych do tego magazynu.

Platforma danych dla tego magazynu powinna spełniać standardy zabezpieczeń stosowane w źródłach danych, ekonomiczne i obsługiwać integrację z zadaniami przetwarzania ETL, ELT i EL. Opcje różnią się od magazynu podstawowego do technologii danych big data na podstawie ilości danych. Wybierz ekonomiczny magazyn, który pomaga osiągnąć wystarczającą niezawodność i wydajność.

Poniższa sekcja zawiera wskazówki dotyczące możliwości, które należy wziąć pod uwagę podczas wybierania technologii magazynu danych. Aby uzyskać więcej informacji, zobacz Potoki przetwarzania danych.

Wymagania funkcjonalne

  • Czy platforma może obsługiwać różne formaty danych?

    Magazyn danych powinien być w stanie przechowywać różne formaty danych i przekształcać je w inne formaty w razie potrzeby.

    Załóżmy, że dane potoku pozyskiwania pochodzą z relacyjnej bazy danych i pliku Parquet, więc obsługują zarówno dane ustrukturyzowane, jak i częściowo ustrukturyzowane. Chcesz przekonwertować dane relacyjne na format Parquet zgodnie z definicjami schematu. Platforma danych powinna mieć wbudowane możliwości, aby wykonać tę transformację bez konieczności pisania niestandardowego kodu.

  • Czy oczekujesz, że będziesz przechowywać wiele wersji danych?

    Wartości danych i schematy mogą się zmieniać w miarę upływu czasu, a zarządzanie wieloma wersjami danych staje się ważne.

    Systemy źródłowe zwykle przechowują tylko bieżące dane, a nie dane historyczne. Jeśli ważne jest zachowanie danych historycznych, może być konieczne zduplikowanie dużych zestawów danych z systemów źródłowych. W takim przypadku przechowywanie wersji może uściślać bieżące dane z danych historycznych.

    W niektórych przypadkach może być konieczne utrzymywanie kopii danych w różnych przypadkach użycia. Aby obsługiwać ten scenariusz, może być konieczne rozwidlenie danych. Każde rozwidlenie może niezależnie mutować, aby zwiększyć jego jakość i użyteczność. Platforma danych powinna mieć możliwość utrzymania prawidłowej wersji tych rozwidlenia.

    Platforma danych powinna mieć możliwość przechowywania wersji danych w czasie w celu zapewnienia kontekstu historycznego. Ten contetxt jest korzystny dla przetwarzania i trenowania modeli sztucznej inteligencji, ponieważ oferuje wiele obserwacji, a nie tylko jeden punkt w czasie.

  • Czy platforma ma wbudowane funkcje zarządzania cyklem życia danych?

    Zarządzanie cyklem życia danych (DLM) to proces zarządzania danymi od ich tworzenia do usuwania, z etapami takimi jak zbieranie danych, przechowywanie, użycie, archiwizowanie i usuwanie.

    Bez biblioteki DLM dane mogą rosnąć niekontrolowanie, często powodując wiele kopii podczas przechodzenia przez warstwy jakości. Platforma danych powinna mieć funkcje DLM, aby zapobiec niezwiązanym wzrostowi danych.

    Rozważmy ten scenariusz. Krok przetwarzania wstępnego musi być powtarzany, aby uściślić dane, dopóki nie osiągnie akceptowalnej jakości w celach szkoleniowych. Platforma danych powinna mieć możliwość usunięcia pośrednich kopii danych.

    W niektórych przypadkach może być konieczne przechowywanie danych na potrzeby inspekcji regulacyjnych. Platforma danych powinna mieć możliwości magazynowania zimnego dla rzadko używanych danych, dzięki czemu można je zarchiwizować przy niższych kosztach.

  • Czy platforma obsługuje funkcje zapewniania ładu danych?

    Inspekcja jest ważnym aspektem obciążeń sztucznej inteligencji. Magazyn danych powinien utrzymywać ślady inspekcji, które mogą śledzić dostęp do danych, zapewnić prywatność i zrozumieć źródła danych.

    Funkcja słownika danych umożliwia zarządzanie metadanymi, typami danych, celami i pochodzeniem danych. Ta funkcja jest szczególnie ważna, gdy dane są pozyskiwane z wielu źródeł.

  • Czy planujesz przeprowadzić szkolenie z danymi produkcyjnymi?

    Istnieją dwa podejścia do wdrożeń, wdrażania modelu i wdrażania kodu. We wdrożeniu modelu dane produkcyjne są używane podczas opracowywania, co wymaga rygorystycznych środków zabezpieczeń. We wdrożeniu kodu model nie widzi danych produkcyjnych, dopóki nie będzie w środowisku produkcyjnym. Chociaż wdrażanie kodu upraszcza problemy związane z zabezpieczeniami w środowisku projektowym, może zwiększyć koszty obliczeń. Niezależnie od wybranego podejścia platforma danych powinna obsługiwać oddzielne środowiska na potrzeby programowania i produkcji.

  • Czy ustalasz priorytety funkcji wygody nad kluczowymi funkcjami funkcjonalnymi?

    Jeśli wybierzesz platformę danych dla sztucznej inteligencji lub uczenia maszynowego, nie polegaj tylko na jej możliwościach notesu. Mimo że notesy są przydatne do eksploracyjnej analizy danych, nie powinny być czynnikiem decydującym. Zasoby obliczeniowe notesów są zwykle poza zakresem magazynu danych agregacji. Są one zwykle zintegrowane z innymi zasobami, takimi jak usługa Azure Machine Learning.

Wymagania niefunkcjonalne

  • Ile danych chcesz przechowywać?

    Obciążenia sztucznej inteligencji generują dużo danych. Wolumin może znacznie wzrosnąć z powodu wielu wersji i dodatkowych metadanych.

    Skalowalność magazynu i przepływności jest ważna. Platforma danych musi efektywnie korzystać z danych z potoku pozyskiwania, gdy obsługuje wolumin danych, zarządza równoczesnych zapisów i zapewnia wydajność pojedynczego zapisu bez obniżenia wydajności. Te kryteria dotyczą również potoku przetwarzania, który odczytuje, przetwarza, a nawet zapisuje z powrotem do magazynu.

    Podczas podejmowania decyzji należy wziąć pod uwagę cały proces, ponieważ pozyskiwanie i przetwarzanie często występuje jednocześnie. Projekt musi być w stanie zarządzać częstym przenoszeniem i przetwarzaniem danych. Platforma danych powinna oferować wysoki poziom równoległości do efektywnego przetwarzania danych.

    Technologia platformy powinna emitować dane telemetryczne, które zapewniają znaczący wgląd w przepływność i wydajność operacji odczytu i zapisu.

  • Czy ten magazyn danych jest krytycznym składnikiem, który przyczynia się do celu niezawodności obciążenia?

    Wybierz magazyn danych, który zwiększa niezawodność i skalowalność przy użyciu wielu wystąpień. Magazyny danych big data często mają wbudowany kontroler, który organizuje przetwarzanie danych między wystąpieniami. Jeśli jedna kopia nie powiedzie się, można użyć innego.

    Należy pamiętać, że dane nie służą jej celowi, jeśli nie są poprawne ani dostępne. Platforma danych powinna zagwarantować trwałość i upewnić się, że dane pozostają nienaruszone. Upewnij się, że interfejsy API, które wysyłają zapytania dotyczące danych, są dostępne. Ponadto rozważ magazyny danych, które mają funkcje tworzenia kopii zapasowych.

    Ogólnie rzecz biorąc, nie trzeba tworzyć kopii zapasowych tych danych. Jeśli jednak koszt agregowania danych za każdym razem od podstaw jest znacznie wysoki, możesz rozważyć ponowne wypełnianie danych z kopii zapasowej.

  • Czy masz jakieś ograniczenia kosztów?

    Jeśli niezawodność i wydajność danych są wystarczające, rozważ wpływ kosztów.

    System powinien być zoptymalizowany pod kątem zapisu raz, odczytując wiele , aby uniknąć nadmiernego nakładu pracy w magazynie danych. Dane trenowania lub uziemienia są ważne, ale nie krytyczne jak produkcyjna baza danych, która wymaga natychmiastowego reagowania. Koncentruje się na równoważeniu kosztów z wystarczającą wydajnością, aby zmaksymalizować zwrot z inwestycji.

Powyższe wymagania mogą naturalnie prowadzić do rozważenia użycia usługi Data Lake, ponieważ oferuje ona bibliotekę DLM, warstwy jakości, możliwość obserwacji i obsługę różnych formatów plików. Jeśli obciążenie korzysta już z usługi Data Lake, skorzystaj z tego zasobu, aby zaspokoić potrzeby sztucznej inteligencji. Alternatywnie możesz wybrać inne opcje magazynu, takie jak Usługa Azure Blob Storage, która zapewnia pewien poziom biblioteki DLM, możliwości monitorowania i wysokie stawki transakcji.

Zagadnienia dotyczące przetwarzania danych

Aby zwiększyć swoje narzędzie podrzędne, należy przetwarzać dane w zagregowanym magazynie danych. Potoki ETL wykonują to zadanie, co jest najważniejsze w następujących kwestiach:

  • Warstwa pozyskiwania

    Potok jest odpowiedzialny za zbieranie danych z różnych źródeł i przenoszenie ich do zagregowanego magazynu danych. W trakcie tego procesu potok zazwyczaj wykonuje podstawowe przetwarzanie wstępne, a nawet może strukturę danych w formacie z możliwością wykonywania zapytań.

    Aby zminimalizować potrzebę niestandardowego kodu, zalecamy odciążenie dużej części tej odpowiedzialności za platformę danych. Po wybraniu technologii należy wziąć pod uwagę cechy ETL wymagane do obsługi trenowania i rozszerzania modelu.

  • Warstwa przetwarzania

    Dane z zagregowanego magazynu danych przechodzą obszerne przetwarzanie, zanim będą mogły być używane do indeksowania lub trenowania modeli przypadków użycia. Potok przetwarzania wymaga poziomów niezawodności i skalowania, które są podobne do potoku pozyskiwania. Główną różnicą jest typ przetwarzania wykonywanego na danych.

    Proces obejmuje znaczne ponowne tworzenie i restrukturyzację danych. Ten proces obejmuje zadania, takie jak rozpoznawanie jednostek, integrowanie dodatkowych danych z zestawem danych i wykonywanie wyszukiwań. Ten proces może również obejmować usuwanie niepotrzebnych danych i stosowanie logiki danych za pośrednictwem platformy aranżacji danych.

Etap przetwarzania danych może generować różne dane wyjściowe, które trafiają do różnych miejsc docelowych dla różnych intencji. Jego głównym celem jest przygotowanie i transferowanie danych z zagregowanego magazynu danych do użycia przez końcowe miejsce docelowe. Użytkownik może ściągać dane w razie potrzeby lub warstwa przetwarzania może wypychać dane, gdy są gotowe.

Uwaga

W kontekście uczenia maszynowego i generowania sztucznej inteligencji ważne jest rozróżnienie między procesami ETL, ELT i EL. Tradycyjny proces ETL ma kluczowe znaczenie dla magazynowania danych i mapowań relacyjnych obiektów, gdzie ze względu na ograniczenia schematu dane muszą zostać przekształcone przed załadowaniem ich do systemu docelowego. ELT obejmuje wyodrębnianie danych, ładowanie ich do magazynu typu data lake, a następnie przekształcanie ich przy użyciu narzędzi, takich jak Python lub PySpark. W przypadku generowania sztucznej inteligencji, szczególnie w przypadku generowania rozszerzonego pobierania (RAG), proces często obejmuje wyodrębnianie i ładowanie dokumentów do magazynu, a następnie przekształcenia, takie jak fragmentowanie lub wyodrębnianie obrazów.

Poniższa sekcja zawiera wskazówki, które należy wziąć pod uwagę podczas wybierania technologii przetwarzania danych z funkcjami ETL.

Wymagania funkcjonalne

  • Jaka jest obsługa nawiązywania połączenia ze źródłami danych?

    Dane, które należy przetworzyć, mogą być przechowywane w relacyjnych bazach danych, źródłach danych big data lub różnych rozwiązaniach magazynu.

    Większość technologii przetwarzania danych obsługuje wstępnie utworzone integracje, które umożliwiają łączenie się z różnymi źródłami danych bez konieczności pisania kodu. Łączniki mają funkcje, takie jak możliwość kopiowania danych ze źródła do ujścia, wykonywania odnośników i stosowania jakiejś formy ładu danych. Istnieją narzędzia, które oferują funkcje przeciągania i upuszczania, aby uniknąć niepotrzebnego kodowania.

    Wybierz platformę danych, która ułatwia integrację z oczekiwanymi źródłami danych.

  • Czy platforma może przetwarzać różne formaty danych?

    Dane mogą być dostępne w różnych formatach, takich jak dane ustrukturyzowane, takie jak bazy danych i dane JSON, dane bez struktury, takie jak obrazy i dokumenty, lub dane przesyłane strumieniowo, takie jak dane z urządzeń Internetu rzeczy. Potoki powinny mieć możliwość obsługi oczekiwanych typów plików.

  • Czy platforma oferuje funkcje przygotowywania i ponownego tworzenia danych?

    Musisz przetwarzać dane, które mają być używane do trenowania lub rozszerzania, dopóki nie będą odpowiednie do trenowania, dostrajania lub indeksowania. Strategie projektowania danych powinny jawnie przedstawić wymagania.

    W poniższych artykułach opisano konkretne zagadnienia:

    W ramach podstawowego czyszczenia platforma usuwa duplikaty, wypełnia brakujące wartości i eliminuje nadmiarowy szum podczas pozyskiwania. W przypadku niektórych przypadków użycia, takich jak implementacja wzorca RAG, zalecamy używanie fragmentów z małymi literami.

    Mimo że te kroki przetwarzania wstępnego są niezbędne, platforma musi również obsługiwać zaawansowane manipulowanie danymi, które są specyficzne dla Twoich potrzeb. Ten proces obejmuje ładowanie, ponowne ładowanie i przekształcanie danych. W przypadku niektórych modeli platforma musi mieć możliwość wykonywania zapytań dotyczących źródeł zewnętrznych na potrzeby analizy dokumentów, takich jak analiza dokumentów lub inne narzędzia sztucznej inteligencji. Ta praca jest wymagana do przygotowania danych i wzbogacenia danych.

    Jeśli magazyn danych obsługuje ten poziom przetwarzania, możesz zlokalizować ten etap w magazynie bez przenoszenia go w innym miejscu. W przeciwnym razie potrzebujesz technologii zewnętrznej, takiej jak Azure Databricks lub Azure Data Factory. Te technologie są odpowiednie do przenoszenia danych i wykonywania manipulacji, takich jak filtrowanie, wypełnianie brakujących wartości i standaryzacja wielkości liter ciągu. W przypadku bardziej złożonych zadań platforma hostingu zadań jest zwykle wymagana. Pule platformy Spark można używać do orkiestracji danych big data.

    W niektórych przypadkach użycia możesz chcieć zewnętrznie wykorzystać tę odpowiedzialność użytkownikowi danych. Na przykład modele sztucznej inteligencji korzystające z uczenia maszynowego oferują możliwości przetwarzania zadań w celu odczytywania, manipulowania danymi i zapisywania ich przy użyciu niestandardowego kodu w języku Python.

    Innym przykładem jest implementacja RAG. Typowym krokiem przetwarzania jest fragmentowanie, w którym dokument jest podzielony na wiele fragmentów, a każdy fragment staje się wierszem w indeksie. Przechowuje również osadzanie, które często generuje usługa OpenAI dla tych fragmentów. W wyszukiwaniu sztucznej inteligencji ten proces jest zorganizowany w przepływie pracy indeksowania, niezależnie od tego, czy jest używany interfejs OpenAI, czy usługa Azure AI Search.

  • Czy istnieje wbudowany koordynator do zarządzania przepływami pracy?

    Zadania przetwarzania są modułowe i uruchamiane jako zadania. Platforma powinna mieć możliwości orkiestracji, które dzielą przepływ pracy na kroki lub zadania. Każde zadanie powinno być definiowane niezależnie, uruchamiane i monitorowane.

    W złożonych przepływach pracy niektóre kroki zależą od pomyślnego ukończenia poprzednich. Orkiestrator powinien obsługiwać zależności zadań i upewnić się, że zadania są wykonywane w odpowiedniej kolejności.

    Projekt danych jest procesem iteracyjnym, więc narzędzie orkiestratora powinno być wystarczająco elastyczne, aby łatwo modyfikować przepływy pracy. Należy mieć możliwość wstrzykiwania nowych kroków lub dostosowywania istniejących bez ponownego zapisywania dużych fragmentów kodu.

    Usługa Data Factory jest popularnym wyborem, ponieważ udostępnia bogaty zestaw funkcji do zarządzania przepływami pracy danych. Usługa Azure Databricks może również zarządzać złożonymi przepływami pracy oraz planować i monitorować zadania. Należy również wziąć pod uwagę implikacje dotyczące kosztów. Na przykład funkcje usługi Azure Databricks mogą być rozbudowane, ale są również kosztowne. Alternatywna opcja typu open source, taka jak Apache NiFi, może być bardziej opłacalna.

    Ostatecznie wybrane narzędzie zależy od tego, co pozwala twoja organizacja, oraz umiejętności, z którymi zespół ds. obciążeń jest komfortowo.

Wymagania niefunkcjonalne

Wybranie potoku przetwarzania ma kluczowe znaczenie dla zrównoważenia przepływności i możliwości obserwacji. Potok musi niezawodnie przetwarzać i lądować niezbędne dane dla modeli lub indeksów w odpowiednim przedziale czasu. Powinno być wystarczająco lekkie, aby obsługiwać bieżące potrzeby i być skalowalne na potrzeby przyszłego wzrostu. Zespoły muszą zdecydować, ile muszą podjąć w przyszłości, aby uniknąć długu technicznego później. Kluczowe zagadnienia obejmują częstotliwość i ilość pozyskiwania danych, niezawodność procesu oraz potrzebę szybkiego monitorowania i rozwiązywania problemów.

  • Ile danych oczekujesz na pozyskiwanie?

    W przypadku etapów pozyskiwania i przetwarzania należy wziąć pod uwagę skalowalność i szybkość platformy do obsługi zadań. Można na przykład załadować 10 terabajtów danych dziennie do indeksu lub na potrzeby trenowania modelu. Platforma pozyskiwania danych powinna mieć możliwość przetworzenia tej ilości woluminu i oczekiwanej przepływności. W takim przypadku użycie usługi Azure Logic Apps może nie być możliwe, ponieważ może zakończyć się niepowodzeniem w takim obciążeniu. Zamiast tego usługa Data Factory lepiej nadaje się do tej skali przetwarzania danych.

    Jednym ze sposobów obsługi dużej ilości jest równoległość, ponieważ pozwala na bardziej wydajną obsługę i przetwarzanie danych. Platformy, takie jak Azure Databricks, mogą organizować zadania, tworząc wiele wystąpień dla tego samego zadania i efektywnie rozkładając obciążenie.

    Należy również wziąć pod uwagę tolerowane opóźnienie i złożoność zadań. Na przykład czyszczenie danych obejmuje weryfikowanie i potencjalnie zastępowanie nieprawidłowych pól lub maskowanie poufnych informacji. Te zadania, choć podstawowe, wymagają znaczących zasobów, ponieważ każdy wiersz jest przetwarzany indywidualnie, co zwiększa całkowity czas.

  • Jakie funkcje monitorowania są potrzebne?

    Potoki przetwarzania danych powinny mieć możliwości monitorowania i zapewnić wgląd w wydajność i stan zadań potoku.

    Musisz mieć możliwość śledzenia postępu zadań. Załóżmy, że potok uruchamia zadanie czyszczenia danych, które nie zostało ukończone lub częściowo zakończone. Może to mieć wpływ na jakość danych, za pomocą których trenowany jest model, co może mieć wpływ na moc predykcyjną.

    Podobnie jak w przypadku innych składników obciążenia, należy włączyć dzienniki, metryki i alerty w potoku danych, aby zrozumieć jego zachowanie. Zbieranie i analizowanie metryk wydajności w celu zrozumienia aspektów wydajności i niezawodności.

    Zidentyfikuj wszelkie luki w wbudowanych danych telemetrycznych i określ, jakie dodatkowe monitorowanie należy zaimplementować. To monitorowanie może obejmować dodawanie niestandardowego rejestrowania lub metryk w celu przechwycenia szczegółowych informacji o krokach zadania.

  • Ile niezawodności oczekujesz od platformy przetwarzania danych?

    Niezawodność potoku przetwarzania danych zależy od wybranej platformy. Mimo że usługa Logic Apps ma możliwości orkiestracji, może nie być tak niezawodna, jak usługa Data Factory. Usługa Data Factory hostowana w klastrze usługi Azure Kubernetes Service (AKS) może mieć różne cechy niezawodności.

    Konfiguracje pojedynczego wystąpienia są uznawane za punkty awarii. Wybierz platformę, która obsługuje funkcje niezawodności, takie jak wiele wystąpień, aby spełnić wymagania.

    Platforma powinna również obsługiwać funkcje odporności. Na przykład orkiestrator powinien automatycznie ponowić próbę wykonania zadania, które nie powiodło się, co zmniejsza potrzebę ręcznego ponownego uruchamiania.

    Przetwarzanie wsadowe może być mniej niezawodne niż wnioskowanie, w zależności od wymagań dotyczących aktualności i opóźnień danych. Jeśli szkolenie odbywa się co tydzień i przetwarzanie trwa jeden dzień, okazjonalne błędy są dopuszczalne, ponieważ jest wystarczająco dużo czasu, aby ponowić próbę.

  • Czy istnieją jakieś ograniczenia kosztów?

    Jeśli wziąć pod uwagę opłacalność potoku przetwarzania danych, ważne jest, aby wybrać rozwiązanie spełniające Twoje potrzeby bez niepotrzebnych wydatków. Jeśli wymagania nie uzasadniają zaawansowanych funkcji usługi Azure Databricks, bardziej ekonomiczne rozwiązanie, takie jak Data Factory, może być wystarczające. Ponadto narzędzia typu open source, takie jak Apache Airflow lub Apache NiFi, mogą zapewniać niezawodne możliwości przy niższych kosztach. Kluczem jest uniknięcie nadmiernego wykorzystania funkcji, których nie potrzebujesz, i wybranie platformy, która równoważy funkcjonalność i efektywność kosztową.

  • Jakie są wymagania dotyczące zabezpieczeń przepływów pracy i danych, które przetwarzasz?

    Należy jasno zapoznać się z wymaganiami dotyczącymi zabezpieczeń, prywatności i rezydencji danych. Rozważmy na przykład wszelkie wymagania prawne dotyczące geograficznych przepisów. Spełnij wymagania dotyczące rezydencji danych, zapewniając, że dane są przechowywane i przetwarzane w określonych regionach. Aby spełnić lokalne przepisy dotyczące zgodności, może być konieczne uruchomienie oddzielnych potoków dla różnych regionów, takich jak jeden dla Europy i drugi dla Ameryki.

    Platforma potoku danych powinna obsługiwać zarządzanie tożsamościami i dostępem, aby zapewnić, że tylko autoryzowane tożsamości mają dostęp do określonych zadań lub kroków w ramach przepływów pracy. Jeśli na przykład proces ETL składa się z kilku przepływów pracy, a jeden z nich obsługuje wysoce poufne dane, platforma powinna zezwolić na ograniczenie dostępu do tego przepływu pracy przy zachowaniu dostępu do innych. Ta funkcja pomaga spełnić wymagania dotyczące zabezpieczeń bez konieczności używania oddzielnych platform dla różnych poziomów poufności danych. W idealnym przypadku platforma powinna zapewnić wbudowaną obsługę takiej izolacji, która umożliwia efektywne i bezpieczne zarządzanie danymi.

Potoki przetwarzania danych mogą zwracać dane do indeksu wyszukiwania lub potoku trenowania modelu. W zależności od przypadku użycia zobacz sekcje dotyczące indeksów wyszukiwania lub magazynów funkcji.

Zagadnienia dotyczące indeksu wyszukiwania

Indeks wyszukiwania jest przeznaczony do przechowywania danych kontekstowych lub uziemienia wysyłanych do punktu końcowego wnioskowania modelu wraz z monitem. Oba wywołania, zapytanie indeksu i wywołanie punktu końcowego wnioskowania mają miejsce w kontekście obsługi tych samych żądań HTTP klienta. W przeciwieństwie do procesów ETL obsługujących zadania offline i wsadowe ten indeks obsługuje wnioskowanie w czasie rzeczywistym, co wymaga wysokiej wydajności i niezawodności. Jest wyspecjalizowany w przypadku zapytań sztucznej inteligencji i oferuje funkcje, takie jak indeksowanie i filtrowanie słów kluczowych, które nie są typowe dla magazynów danych big data. Celem jest posiadanie wysoce wydajnego, jednokrotnego magazynu danych do odczytu i wielu do odczytu, który obsługuje improwizowane i rozmyte zapytania. Ten magazyn danych może dostarczać odpowiednie wyniki bez precyzyjnych zapytań.

Wymagania funkcjonalne

  • Jakie typy wyszukiwania obsługuje indeks wyszukiwania?

    Zapytania odbierane przez system są zasadniczo wyszukiwane, a indeks musi obsługiwać zaawansowane funkcje wyszukiwania. W przypadku funkcji RAG wyszukiwanie wektorów nie jest negocjowane, ponieważ dane są przechowywane jako wektory obliczeniowe lub osadzanie, które są używane do wyszukiwania.

    Wyszukiwanie wektorowe jest zaawansowane i łączy je z filtrowaniem i wyszukiwaniem pełnotekstowym zwiększa skuteczność indeksu wyszukiwania. Projekt danych powinien uwzględniać łączenie tych typów wyszukiwań, takich jak wektor, wyszukiwanie pełnotekstowe, filtrowanie i specjalne typy danych, takie jak lokalizacja geograficzna.

    Projekt danych powinien jawnie określać te wymagania. Aby uzyskać więcej informacji, zobacz Wydajne wykonywanie zapytań w projekcie danych.

  • Czy indeks obsługuje dane wielomodalne?

    Wybierz technologie indeksowania, które obsługują dane wielomodalne. Na przykład wyszukiwanie sztucznej inteligencji umożliwia analizowanie wiadomości e-mail, konwertowanie obrazu w nim na wektory i przechowywanie opisu w indeksie. Ta funkcja umożliwia wyszukiwanie różnych modalności zawartości, w tym obrazów, wideo i plików audio.

  • Czy indeks obsługuje funkcje automatycznej aktualizacji, gdy dane w źródłach danych się zmieniają?

    Wybierz indeks zawierający funkcje automatycznej aktualizacji. Jeśli taki nie jest dostępny, musisz ręcznie wykryć i wypchnąć zmiany do indeksu. Dzięki tym funkcjom indeksator może automatycznie wykrywać zmiany w źródłach danych i ściągać aktualizacje. Odciążając tę odpowiedzialność za platformę, można zmniejszyć nakład pracy operacyjnej i uprościć proces konserwacji.

Wymagania niefunkcjonalne

  • Czy indeks może działać z dużą ilością danych?

    Indeks powinien być w stanie obsłużyć duże ilości danych, być skalowalne i działać dobrze w przypadku dużych obciążeń wyszukiwania. Indeks przechowuje nieprzetworzone dane i wszystkie metadane, wzbogacanie i skojarzone z nim jednostki. W kontekście wzorca RAG pojedynczy dokument podzielony na wiele fragmentów może spowodować znaczny wzrost ilości danych.

  • Czy indeks ma wbudowane funkcje niezawodności?

    Rozważ dopasowanie między niezawodnością punktu końcowego wnioskowania lub modelu oraz magazynem danych, ponieważ zależą one od siebie nawzajem.

    Proces wyszukiwania obejmuje dwa kroki: wykonywanie zapytań względem magazynu danych, a następnie wykonywanie zapytań względem punktu końcowego wnioskowania. Oba kroki muszą mieć podobne cechy niezawodności. Zrównoważ cele niezawodności między obydwoma składnikami w celu zapewnienia skuteczności wyszukiwania.

    Aby zapewnić odporność, obciążenie powinno obsługiwać oczekiwaną liczbę współbieżnych użytkowników i mieć wystarczającą przepustowość do obsługi wzrostów ruchu. W idealnym przypadku platforma powinna przetrwać awarie strefowe.

    Platforma danych powinna być zaprojektowana tak, aby zapobiec używaniu uszkodzonego indeksu do wnioskowania. W takich przypadkach należy łatwo skompilować indeks. Indeks powinien również obsługiwać niezawodną zamianę między indeksami przy użyciu takich funkcji, jak aliasowanie, aby zminimalizować przestoje podczas zamian indeksu. Bez tej funkcji może być konieczne użycie kopii zapasowej indeksu. Zarządzanie kopią zapasową wiąże się z większą złożonością.

    Z perspektywy obciążenia zapoznaj się z potencjalnymi trybami awarii lub wskaźnikami obciążenia, takimi jak ograniczanie przepustowości. Na przykład mimo że system może normalnie obsługiwać 50 równoczesnych użytkowników, może obsługiwać tylko 30 użytkowników podczas procesu ponownego indeksowania, który jest uruchamiany jako zadanie w tle. W takim przypadku czas zadania w tle staje się ważny. Podczas oceniania przepływności indeksu uwzględnij zarówno zapytania frontonu, jak i zadania zaplecza.

  • Jakie są główne czynniki kosztowe tej technologii?

    Podczas modelowania kosztów szacuj wydatki skojarzone z ilością danych, liczbą zapytań i oczekiwaną przepływnością indeksu. Należy pamiętać, że indeksy są głównie platformą jako usługą (PaaS), gdzie ceny są abstrakcyjne. Warstwy badawcze i ich możliwości, aby uniknąć nadmiernej opłaty za nieużywaną pojemność lub funkcje.

    Na przykład wyszukiwanie sztucznej inteligencji jest rozliczane jako jednostki, które mogą obejmować pojemność, przepływność i magazyn. Dodatkowe funkcje mogą prowadzić do zwiększenia opłat. Na przykład szerokie wykorzystanie funkcji wyodrębniania obrazów może spowodować wysokie rachunki. Zależności, takie jak funkcja zestawu umiejętności, które wykraczają poza zakres indeksu, ale są częścią przetwarzania danych, mogą wiązać się z dodatkowymi kosztami.

    Płacenie za warstwę bez korzystania z pełnej pojemności może prowadzić do przepłacenia. Podobnie liczba tabel w indeksie i możliwość obsługi ruchu współbieżnego wpływa na koszty.

    Aby zrozumieć koszty związane z wyszukiwaniem sztucznej inteligencji, zobacz Planowanie kosztów usługa wyszukiwania sztucznej inteligencji i zarządzanie nimi.

  • Czy funkcje zabezpieczeń indeksu spełniają projekt danych zabezpieczeń?

    Projekt danych powinien jasno określać wymagania dotyczące zabezpieczeń i prywatności. W środowiskach programistycznych i testowych, w których są używane rzeczywiste dane produkcyjne, indeks powinien obsługiwać możliwości zgodne ze wszystkimi mechanizmami kontroli dostępu i miarami śledzenia. Przejrzyj funkcje zabezpieczeń, takie jak maskowanie danych i usuwanie danych osobowych w indeksie.

    Wybierz indeks, który ma możliwość unikatowego identyfikowania klientów za pomocą identyfikatora Entra firmy Microsoft. Indeks wyszukiwania powinien również obsługiwać mechanizmy kontroli dostępu na poziomie dokumentu, aby umożliwić wykonywanie zapytań na podstawie tożsamości. Jeśli indeks nie oferuje tych funkcji, dostosuj projekt, aby osiągnąć podobne możliwości za pomocą filtrów zapytań. Aby uzyskać więcej informacji, zobacz Filtry zabezpieczeń dotyczące przycinania wyników w wyszukiwaniu sztucznej inteligencji.

    Najlepiej, aby indeks wyszukiwania był zgodny z wymaganiami dotyczącymi zabezpieczeń sieci. Jeśli na przykład musisz filtrować ruch wychodzący do witryn innych niż Microsoft i zachować możliwość obserwowania, indeks powinien oferować kontrolki ruchu wychodzącego. Powinna również obsługiwać segmentację sieci. Jeśli zasoby obliczeniowe zaplecza są w sieci wirtualnej, łączność prywatna dla kluczowych składników, w tym indeksu, jest niezbędna do uniknięcia narażenia na publiczny Internet. Indeks powinien łatwo integrować się z sieciami prywatnymi i obsługiwać tożsamości zarządzane na potrzeby uwierzytelniania za pośrednictwem identyfikatora Entra firmy Microsoft.

Zagadnienia dotyczące magazynu funkcji

W przypadku modeli dyskryminacyjnych projekt danych może obejmować pośredni magazyn danych, który buforuje dane w celu uzyskania dodatkowego uściślenia. Ten magazyn, znany jako magazyn funkcji, umożliwia analitykom danych przechowywanie funkcji w ostatnim kroku poza zagregowanym magazynem danych.

Magazyn funkcji ułatwia katalogowanie danych dla wielu zastosowań przez dodanie metadanych, takich jak czas generowania i źródło. To pośrednie miejsce docelowe jest idealne dla złotych danych treningowych.

Magazyn zarządzanych funkcji w usłudze Machine Learning to opcja magazynu danych, która integruje się z biblioteką MLflow i innymi narzędziami. Pobiera i szkoli dane z zagregowanego magazynu danych, dodając warstwę wielokrotnego użytku w celu uzyskania lepszej pochodzenia danych i formalnej identyfikacji w usłudze Machine Learning.

W przypadku korzystania z magazynu funkcji należy traktować go jak magazyn danych z zagadnieniami dotyczącymi zabezpieczeń i dostępu.

Zagadnienia dotyczące magazynu danych wnioskowania w trybie offline

W niektórych scenariuszach użycie oddzielnego magazynu jest odpowiednie do szybszego wyszukiwania w przyszłości, ponieważ wnioskowanie odbywa się na wstępnie zebranych i wstępnie obliczonych danych z wyprzedzeniem. W tym procesie żądanie użytkownika nigdy nie dociera do modelu sztucznej inteligencji. Istnieje kilka korzyści:

  • Zwiększona wydajność i środowisko użytkownika dzięki zmniejszeniu opóźnienia. Wyniki są obsługiwane szybciej w przypadku częstych zapytań, takich jak generowanie często zadawanych pytań w wyniku.
  • Wywołania wnioskowania można łatwiej skalować w poziomie jako proces wsadowy bez ograniczeń przetwarzania w czasie rzeczywistym.
  • Umożliwia wstępne sprawdzanie dokładności przed produkcją.
  • Ponieważ żądanie nie jest kierowane do punktu końcowego interferencji, zmniejsza obciążenie, przyczyniając się do niezawodności obciążenia.
  • Może być bardziej opłacalne, ponieważ zmniejsza potrzebę sprzętu o wysokiej wydajności wymaganego do przetwarzania w czasie rzeczywistym.

Jednak takie podejście jest skuteczne tylko wtedy, gdy można przewidzieć możliwe żądania , a znaczna część przewidywań będzie żądana przez użytkowników. W przypadku scenariuszy z mniejszą liczbą powtarzających się żądań magazyn wnioskowania w trybie offline może być mniej skuteczny.

Magazyn danych dla tego scenariusza powinien być zoptymalizowany pod kątem operacji odczytu, musi mieć możliwość obsługi dużych ilości danych i zapewnienia wydajnego pobierania. Powinna być również w stanie zintegrować się z zagregowanym magazynem danych. Każdy magazyn z tymi możliwościami można rozważyć, taki jak usługa Azure Cosmos DB, a nawet magazyn tabel.

Zasoby

Te artykuły zawierają więcej szczegółowych informacji na temat produktów platformy Azure, które zalecamy jako opcje technologii dla zagadnień omówionych w tym artykule.

Następne kroki