M365Con 2027 – bezpłatna konferencja online · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Rozwiązywanie problemu miliarda wektorów w Azure AI Search

By ·

Poznaj unikalne wyzwania techniczne związane z przeszukiwaniem ogromnych zbiorów danych na dużą skalę. Ten wpis wyjaśnia, jak wysoka wymiarowość i ograniczenia pamięci wpływają na obciążenia AI w przedsiębiorstwach.

Automatically translated with AI from the original post. Read the English original

Poznaj unikalne wyzwania techniczne związane z przeszukiwaniem ogromnych zbiorów danych na dużą skalę. Ten wpis wyjaśnia, jak wysoka wymiarowość i ograniczenia pamięci wpływają na obciążenia AI w przedsiębiorstwach.

Problem miliarda wektorów w Azure AI Search

Wyzwania wyszukiwania wektorowego na skali miliardów

Problem miliarda wektorów pojawia się wtedy, gdy trzeba indeksować i przeszukiwać ogromne zbiory danych w AI w przedsiębiorstwie. Obsługa miliardów wektorów wiąże się z wyjątkowymi wyzwaniami technicznymi. Trzeba zbudować wydajne systemy indeksowania, które przetworzą dane na dużą skalę bez spowalniania. Aktualizacje w czasie rzeczywistym są ważne, ponieważ wyniki wyszukiwania muszą pozostać aktualne i trafne. Zarządzanie osadzeniami o wysokiej wymiarowości jest również kluczowe dla dokładnych wyników wyszukiwania.

Pracując z zbiorami danych na skali miliardów, napotykasz kilka ograniczeń:

  • Wysoka wymiarowość zwiększa koszty obliczeniowe i może spowalniać wydajność wyszukiwania.
  • Luka semantyczna między reprezentacjami wektorowymi a rzeczywistym znaczeniem może powodować niedokładności.
  • Odśmiecanie staje się trudne, co utrudnia usuwanie nieaktualnych informacji z indeksów.
  • Jakość wektorów zależy od wybranego modelu osadzania, a to wpływa na dokładność wyszukiwania.
  • Skalowalność zwiększa wymagania pamięciowe i może wydłużać czas wyszukiwania.
  • Problem zimnego startu utrudnia wyszukiwanie nowych elementów bez dobrych reprezentacji wektorowych.
  • Interpretowalność jest niska, więc zrozumienie, dlaczego dany wynik wyszukiwania się pojawił, może być trudne.

Te wyzwania sprawiają, że problem miliarda wektorów należy do najtrudniejszych w nowoczesnej AI.

Dlaczego wybór algorytmu ma znaczenie

Twój wybór algorytmu bezpośrednio wpływa na to, jak rozwiązujesz problem miliarda wektorów. Jeśli wybierzesz algorytm taki jak HNSW, uzyskasz szybki dostęp i wydajne wyszukiwanie w dużych zbiorach danych. Wymaga on jednak dużo pamięci RAM, co może zwiększać koszty. Inne algorytmy, na przykład wyczerpujące KNN, oferują wysoką dokładność, ale wymagają znacznie więcej obliczeń, dlatego lepiej sprawdzają się w mniejszych zbiorach danych. Właściwy algorytm pomaga zrównoważyć szybkość, dokładność i zużycie zasobów. Możesz zoptymalizować wydajność w swoim konkretnym zastosowaniu, dopasowując algorytm do potrzeb. Ta decyzja determinuje, jak dobrze poradzisz sobie z ogromnymi zbiorami danych i ile wydasz na sprzęt.

Przegląd Azure AI Search

Azure AI Search to potężna platforma do rozwiązywania problemu miliarda wektorów. Możesz wstępnie przetworzyć dane za pomocą zaawansowanych narzędzi do czyszczenia i wzbogacania, co poprawia jakość wektorów przed indeksowaniem. Platforma organizuje informacje w bazę wektorową zaprojektowaną z myślą o zadaniach wyszukiwania i nowoczesnych potrzebach wyszukiwawczych. Zyskujesz solidne funkcje wyszukiwania i pobierania, w tym przetwarzanie języka naturalnego na potrzeby rozumienia semantycznego. Bezpieczeństwo jest na wysokim poziomie dzięki szyfrowaniu i kontroli dostępu chroniącym dane.

Azure AI Search płynnie integruje się z innymi usługami Microsoft Azure oraz platformami zewnętrznymi. Możesz używać wyszukiwania hybrydowego, które łączy wyszukiwanie słów kluczowych z wyszukiwaniem wektorowym, aby uzyskać najlepsze wyniki. Rankingi i dostrajanie trafności pozwalają dostosować sposób prezentacji wyników wyszukiwania, dzięki czemu są bardziej przydatne dla użytkowników. Platforma oferuje też inteligentne doświadczenia wyszukiwania, takie jak autouzupełnianie i sugerowane wyniki. Zbudowana na globalnej infrastrukturze Azure usługa Azure AI Search zapewnia skalę i niezawodność potrzebne przy ogromnych zbiorach danych i dużych projektach danych.

Indeks grafowy: HNSW i DiskANN

Graph-Based Index: HNSW and DiskANN

Czym jest HNSW

Być może słyszeliście o hnsw, czyli hierarchical navigable small world. Ten oparty na grafie algorytm indeksowania pozwala szybko znajdować podobne wektory w dużych zbiorach danych. Hnsw buduje wielowarstwową strukturę grafu, która łączy punkty danych w taki sposób, że wyszukiwanie jest szybkie i dokładne. Każda warstwa grafu ma inną gęstość: górne warstwy mają mniej węzłów, a dolne więcej. Dzięki tej konstrukcji wyszukiwanie można zacząć od góry i schodzić w dół, zawężając wyniki na każdym etapie. Hnsw jest zoptymalizowany pod kątem wyszukiwania wektorów w pamięci, dlatego przechowuje cały graf w pamięci RAM. Takie podejście zapewnia wyniki o niskim opóźnieniu, ale oznacza też, że przy rosnącym zbiorze danych potrzebujesz dużo pamięci.

Czym jest DiskANN

Diskann to odpowiedź Microsoftu na wyzwania wyszukiwania wektorów w skali miliardów elementów. Ten oparty na grafie indeks wykorzystuje podejście hybrydowe, łączące pamięć i dyski SSD. Diskann pozwala przechowywać większość indeksu na dyskach SSD, które są znacznie tańsze niż pamięć RAM. W pamięci zostawiasz tylko najważniejsze dane nawigacyjne. Dzięki temu rozwiązaniu zarządzasz ogromnymi zbiorami danych bez wysokich kosztów sprzętu. Diskann wykorzystuje algorytm grafu Vamana, który prowadzi wyszukiwanie przez dane. Stosuje także specjalną metodę przycinania, dzięki której graf pozostaje zróżnicowany i wydajny. Diskann firmy Microsoft zasila Azure AI Search i inne usługi, co czyni go kluczową innowacją w obszarze AI dla przedsiębiorstw.

InnowacjaOpis
Wyszukiwanie ANN o wysokiej prędkościArchitektura Diskann umożliwia wydajne wyszukiwanie ANN na dyskach SSD, co pomaga ograniczać koszty sprzętu.
System pamięci hybrydowejDiskann wykorzystuje połączenie DRAM i SSD, aby zarządzać miliardami punktów na jednej maszynie.
Ekonomiczne przechowywanieDiskann przechowuje indeks ANN na dysku, zapewniając przystępne cenowo rozwiązanie do obsługi danych o wysokim wymiarze.

Jak działa HNSW

Budowa grafu

Hnsw buduje swój oparty na grafie indeks, tworząc hierarchię grafów wyszukiwania. Zaczynasz od pustej struktury. Pierwszy dodany wektor staje się jedynym węzłem w górnej warstwie. Dla każdego kolejnego wektora hnsw losowo decyduje, do ilu warstw powinien należeć. Nowy wektor łączy się ze swoimi najbliższymi sąsiadami w każdej warstwie, aż do przypisanego maksimum. Górna warstwa ma najmniej węzłów, dlatego jest dobrym punktem startowym wyszukiwania. Niższe warstwy mają więcej węzłów, co pozwala na szczegółowe przeszukiwanie. Hnsw może aktualizować swój graf bez pełnej przebudowy, dzięki czemu możesz dodawać nowe dane wraz z rosnącymi potrzebami.

Proces wyszukiwania

Gdy wyszukujesz z użyciem hnsw, zaczynasz od górnej warstwy grafu. Używasz połączeń dalekiego zasięgu, aby szybko zbliżyć się do obszaru, w którym może znajdować się szukany wektor. Schodząc przez kolejne warstwy, coraz gęstsze połączenia pomagają doprecyzować wyszukiwanie i zbliżyć się do najlepszego dopasowania. Na najniższej warstwie hnsw wykorzystuje wyszukiwanie wiązkowe (beam search), aby znaleźć najbliższych sąsiadów. Ten proces zapewnia szybkie i dokładne wyniki, zwłaszcza gdy cały graf mieści się w pamięci.

  • Zasady projektowe hnsw:
    • Zoptymalizowany pod kątem operacji w pamięci, zapewnia niskie opóźnienia i wysoki recall.
    • Wykorzystuje wielowarstwową strukturę grafu opartą na sieciach małego świata.
    • Stosuje strategię przycinania, która usuwa nadmiarowe krawędzie i sprzyja różnorodności.
    • Proces wyszukiwania polega na schodzeniu przez warstwy: od rzadkich połączeń dalekiego zasięgu do wyszukiwania wiązkowego na warstwie bazowej.

Widać, że zarówno hnsw, jak i diskann opierają się na indeksie grafowym, ale ich konstrukcje odpowiadają różnym potrzebom. Hnsw sprawdza się najlepiej, gdy wszystko możesz trzymać w pamięci. Diskann pozwala skalować się do miliardów wektorów dzięki dyskom SSD, co czyni go idealnym wyborem dla obciążeń przedsiębiorstw w Azure AI Search.

Jak działa DiskANN

Architektura hybrydowa: pamięć i SSD

Z DiskANN spotykasz się z unikalnym podejściem, gdy używasz go do wyszukiwania w zbiorach miliardów wektorów. DiskANN łączy pamięć i dyski SSD, tworząc architekturę hybrydową. Dzięki temu większość indeksu wektorów możesz przechowywać na dyskach SSD, które kosztują mniej niż pamięć RAM. W pamięci zostawiasz tylko niezbędne dane nawigacyjne. Taka metoda pozwala skalować wyszukiwanie do miliardów wektorów bez konieczności kupowania drogiego sprzętu.

DiskANN wykorzystuje dwie główne techniki optymalizacji przechowywania danych i szybkości działania:

  • Graf Vamana: Ta struktura służy do wydajnej nawigacji po indeksie.
  • Kwantyzacja produktowa (PQ): Wektory są kompresowane w pamięci, co zmniejsza zużycie RAM.

Korzystasz z dwufazowego procesu wykonywania zapytań. W pierwszej fazie DiskANN używa wektorów skompresowanych metodą PQ, przechowywanych w RAM, aby szybko wskazać zbiór kandydatów. Na tym etapie nie musisz odczytywać danych z dysku. W drugiej fazie DiskANN pobiera z dysku SSD wektory o pełnej precyzji dla zbioru kandydatów. Następnie obliczasz dokładne odległości, aby znaleźć najlepsze dopasowania. Proces ten zapewnia wysoki poziom trafności (recall) i niskie opóźnienia, przy zachowaniu niskich wymagań pamięciowych.

Wskazówka: Hybrydowa architektura DiskANN, łącząca pamięć i dysk SSD, umożliwia wyszukiwanie w skali sieci WWW na zwykłym sprzęcie. Indeksy wektorowe możesz przechowywać na dyskach SSD zamiast w RAM, co sprawia, że aplikacje na dużą skalę są tańsze w utrzymaniu.

Proces wyszukiwania

Wyszukiwanie w DiskANN zaczyna się od nawigacji po grafie Vamana z wykorzystaniem wektorów skompresowanych w pamięci. Dzięki temu szybko znajdziesz obiecujących kandydatów. Na tym etapie unikasz odczytów z dysku, co przyspiesza cały proces. Gdy masz już zbiór kandydatów, DiskANN przechodzi do kolejnej fazy.

Dla każdego kandydata pobierasz z dysku SSD wektory o pełnej precyzji. Obliczasz dokładne odległości między zapytaniem a tymi kandydatami. Ten dwufazowy proces gwarantuje dokładne wyniki bez spowalniania wyszukiwania. Osiągasz wysoki recall, ponieważ DiskANN szczegółowo sprawdza najlepszych kandydatów. Utrzymujesz też niskie opóźnienia, gdyż większość pracy odbywa się w pamięci.

Proces wyszukiwania w DiskANN dobrze sprawdza się przy ogromnych zbiorach danych. Możesz obsługiwać miliardy wektorów bez konieczności posiadania ogromnej ilości RAM. Uzyskujesz szybkie i niezawodne wyniki, nawet gdy dane rosną. Dzięki temu DiskANN jest mocnym wyborem dla przeciążeń AI w przedsiębiorstwach w usłudze Azure AI Search.

KrokCo robiszKorzyść
Faza 1: NawigacjaUżyj wektorów skompresowanych metodą PQ w RAM, aby znaleźć kandydatówSzybkie wyszukiwanie, brak odczytów z dysku
Faza 2: DoprecyzowaniePobierz wektory o pełnej precyzji z dysku SSD i oblicz odległościWysoki recall, niskie opóźnienia

Widzisz, że hybrydowa architektura DiskANN i proces wyszukiwania pomagają efektywnie rozwiązać problem miliardów wektorów. Możesz skalować wyszukiwanie, obniżać koszty i utrzymywać wydajność w miarę wzrostu danych.

Zalety i wady

Zalety i wady HNSW

Często wybierasz hnsw do wyszukiwania wektorowego, ponieważ zapewnia najwyższą klasę szybkości wyszukiwania oraz wysoki recall. Po odpowiednim dostrojeniu hnsw uzyskujesz szybkie wyniki i trafne dopasowania. Dobrze radzi sobie z danymi wektorowymi o wysokiej liczbie wymiarów, co jest istotne w nowoczesnych przeciążeniach AI. Korzystasz też z przyrostowego dodawania, dzięki czemu możesz aktualizować indeks bez przebudowywania wszystkiego.

ZaletyWady
Najwyższa klasa szybkości wyszukiwania i wysoki recall przy odpowiednim dostrojeniu.Duże zużycie pamięci, ponieważ przechowywane są połączenia grafu dla każdego wektora.
Dobrze radzi sobie z danymi o wysokiej liczbie wymiarów.Długi czas budowy indeksu przy parametrach wysokiej jakości konstrukcji.
Efektywnie obsługuje przyrostowe dodawanie.Złożone usuwanie elementów może z czasem pogarszać wydajność.

Skalowanie hnsw jest efektywne, ponieważ budowa indeksu ma złożoność O(N log N). Konstrukcja równoległa pozwala wykorzystać procesory wielordzeniowe, co przyspiesza proces. Zużycie pamięci rośnie liniowo wraz z rozmiarem zbioru danych, dzięki czemu możesz przewidzieć potrzeby w zakresie przechowywania. Musisz jednak trzymać cały graf w RAM, co ogranicza skalowalność dla zbiorów miliardów wektorów.

Zalety i wady DiskANN

Sięgasz po diskann, gdy musisz skalować wyszukiwanie wektorowe ponad to, co mieści się w RAM. Diskann optymalizuje wykorzystanie dysków SSD, co obniża koszty sprzętu i pozwala zarządzać ogromnymi zbiorami danych. Uzyskujesz wysoką dokładność i niskie opóźnienia, łącząc wyszukiwanie w pamięci z grupowymi odczytami z SSD. Diskann obsługuje aktualizacje w czasie rzeczywistym oraz wyszukiwanie hybrydowe, dzięki czemu możesz efektywnie filtrować i pobierać wektory.

Zwróć uwagę na następujące aspekty diskann:

  • Opłacalna skalowalność dzięki użyciu dysków SSD zamiast RAM.
  • Wysoka dokładność i niskie opóźnienia przy dużej skali dzięki wyszukiwaniu w pamięci i odczytom z SSD.
  • Aktualizacje w czasie rzeczywistym oraz wyszukiwanie hybrydowe łączące wektory z filtrowaniem.
  • Wolne czasy budowania indeksu, ponieważ konstrukcja grafu Vamana jest bardzo wymagająca obliczeniowo.
  • Wydajność zależy od przepustowości i opóźnień dysków SSD.
  • Aktualizacje są bardziej kosztowne w porównaniu ze strukturami działającymi w pamięci, takimi jak hnsw.
  • Wdrożenie i strojenie wymagają starannej optymalizacji.

Korzystasz ze zdolności diskann do obsługi wektorów skwantyzowanych, co pozwala kompresować dane i poprawia wyszukiwanie oszczędne pod względem pamięci. Diskann możesz wykorzystać do obciążeń obejmujących miliardy wektorów, nie martwiąc się o limity pamięci RAM.

Efektywność pamięci i pamięci masowej

Przy wyborze między hnsw a diskann do wyszukiwania wektorowego musisz wziąć pod uwagę efektywność pamięci i pamięci masowej. Hnsw dobrze sprawdza się w zbiorach danych mieszczących się w pamięci RAM serwera. Zyskujesz szybki dostęp i wysoką wydajność, ale nie możesz skalować poza limity pamięci. Diskann pozwala zwiększać rozmiar zbioru danych do pojemności dysku, kosztem pewnego spadku szybkości w zamian za większą pojemność. Większość indeksu przechowujesz na dyskach SSD, dzięki czemu diskann idealnie nadaje się do ogromnych zbiorów wektorów.

CechaHNSWDiskANN
Efektywność pamięciBardzo wydajny dla zbiorów danych mieszczących się w pamięci podręcznej (RAM) serwera.Zaprojektowany dla zbiorów danych zbyt dużych, by zmieścić się w pamięci RAM.
Efektywność pamięci masowejOgraniczony dostępną ilością pamięci RAM.Rozszerza rozmiar zbioru danych do pojemności dysku, kosztem pewnego spadku szybkości w zamian za większą pojemność.
Optymalizacja wydajnościWykorzystuje szybki dostęp do pamięci, aby zapewnić szybkość działania.Minimalizuje kary wydajnościowe wynikające z wolniejszej pamięci dyskowej.
Przydatność zbioru danychOdpowiedni dla zbiorów danych mieszczących się w pamięci RAM.Odpowiedni dla ogromnych zbiorów danych przekraczających pojemność pamięci RAM.

Wektory skwantyzowane stosujesz zarówno w hnsw, jak i w diskann, aby ograniczyć potrzeby w zakresie pamięci masowej i przyspieszyć wyszukiwanie. Hybrydowa architektura diskann pozwala skalować wyszukiwanie wektorowe, utrzymując niskie koszty. Wyszukiwanie oszczędne pod względem pamięci uzyskujesz w zadaniach wyszukiwania na dużą skalę, zwłaszcza gdy pracujesz z wektorami skwantyzowanymi i pamięcią masową SSD.

Porównanie algorytmów wyszukiwania wektorowego

Vector Search Algorithm Comparison

Wydajność przy dużej skali

Musisz mierzyć, jak algorytm wyszukiwania wektorowego działa wraz ze wzrostem zbioru danych. HNSW i DiskANN mają na celu zapewnienie wysokiego odsetka trafień (recall) i szybkości, ale ich strategie się różnią. HNSW opiera się na grafach działających w pamięci, co oznacza, że uzyskujesz szybkie wyszukiwanie najbliższych sąsiadów, gdy wektory mieszczą się w pamięci RAM. DiskANN wykorzystuje podejście hybrydowe, łączące pamięć i dyski SSD, dzięki czemu możesz skalować wydajność wyszukiwania bez obaw o limity pamięci.

Gdy uruchamiasz wyszukiwanie najbliższych sąsiadów na milionach wektorów, HNSW zapewnia szybkie wyszukiwanie i niskie opóźnienia. Parametry możesz dostroić pod kątem trafności i szybkości. DiskANN utrzymuje wysoki recall i szybkość nawet wtedy, gdy zbiór danych się powiększa. Większość indeksu przechowujesz na dyskach SSD, co pozwala obsługiwać miliardy wektorów. Stosujesz wyszukiwanie dwuetapowe, aby zrównoważyć szybkość i dokładność. Pierwszy etap znajduje kandydatów w pamięci, a drugi etap udoskonala wyniki, korzystając z dysków SSD.

Z obydwoma algorytmami uzyskujesz wysoki recall i szybkość, ale DiskANN pozwala skalować wydajność wyszukiwania poza granice pamięci RAM.

Skalowalność dla miliardów wektorów

Stajesz przed nowymi wyzwaniami, gdy zbiór danych rośnie od milionów do miliardów wektorów. HNSW dobrze sprawdza się przy liczbie do 50 milionów wektorów. Jako domyślnego algorytmu wyszukiwania wektorowego używasz HNSW i dostrajasz parametry pod kątem recall. Przy 50–500 milionach wektorów wdrażasz sharding oraz kwantyzację skalarną. Dla wydajności możesz zastosować wyszukiwanie dwufazowe. Dla zbiorów danych przekraczających 500 milionów wektorów potrzebujesz wyszukiwania hierarchicznego i architektur wielopoziomowych. Dla danych rzadko używanych (cold data) stosujesz agresywną kwantyzację.

Zakres liczby wektorówStrategia HNSW
1–50 mlnUżywaj HNSW jako domyślnego algorytmu, dbaj o to, aby wektory mieściły się w pamięci RAM, i dostrajaj parametry pod kątem recall.
50–500 mlnWdróż sharding, włącz kwantyzację skalarną i rozważ wyszukiwanie dwufazowe dla zwiększenia wydajności.
500 mln+Stosuj wyszukiwanie hierarchiczne, architektury wielopoziomowe oraz agresywną kwantyzację dla danych rzadko używanych.

DiskANN zmienia zasady gry w wyszukiwaniu wektorowym na skalę miliardów. Większość indeksu przechowujesz na dyskach SSD, więc nie musisz martwić się limitami pamięci RAM. Do kompresji wektorów używasz kwantyzacji produktowej, a dane nawigacyjne trzymasz w pamięci. Skalujesz wyszukiwanie najbliższych sąsiadów do miliardów wektorów bez poświęcania wydajności wyszukiwania. DiskANN obsługuje przybliżone wyszukiwanie oparte na klasteryzacji oraz wyszukiwanie hybrydowe, co ułatwia zarządzanie ogromnymi zbiorami danych.

DiskANN pozwala skalować algorytm wyszukiwania wektorowego do miliardów wektorów, dzięki czemu jest idealnym rozwiązaniem dla obciążeń w przedsiębiorstwach.

Opóźnienie zapytań i przepustowość

Opóźnienie zapytań i przepustowość mają znaczenie, gdy uruchamiasz wyszukiwanie wektorowe na dużą skalę. HNSW zapewnia niskie opóźnienie wyszukiwania najbliższego sąsiada, ponieważ przechowuje cały graf w pamięci. Uzyskujesz szybkie odpowiedzi na zapytania i wysoką przepustowość dla zbiorów danych mieszczących się w pamięci RAM. Gdy zbiór danych rośnie, opóźnienie wzrasta, dlatego trzeba stosować podział na shardy lub architektury wielopoziomowe.

DiskANN wykorzystuje dwuetapowy proces wyszukiwania. Najpierw przeszukujesz skompresowane wektory w pamięci, co pozwala szybko wybrać kandydatów. Następnie doprecyzowujesz zapytanie, pobierając wektory o pełnej precyzji z dysków SSD. Takie podejście utrzymuje niskie opóźnienie i wysoką przepustowość, nawet dla zbiorów danych liczonych w miliardach. Optymalizujesz pobieranie danych, grupując odczyty z dysków SSD i korzystając z wydajnych struktur nawigacyjnych.

Dzięki DiskANN osiągasz wysoką trafność (recall) i szybkość, nawet gdy liczba zapytań rośnie. Nie musisz martwić się limitami pamięci, dzięki czemu możesz skalować wydajność wyszukiwania w aplikacjach przedsiębiorstw.

Dzięki DiskANN uzyskujesz stabilne opóźnienie zapytań i przepustowość, co czyni go mocnym wyborem do wyszukiwania najbliższego sąsiada na dużą skalę.

Koszty i wpływ na zasoby

Przy wyborze algorytmu wyszukiwania wektorowego dla usługi Azure AI Search musisz uwzględnić koszty i wpływ na zasoby. Sposób, w jaki każdy algorytm wykorzystuje pamięć i pamięć masową, wpływa na Twój budżet i zdolność do skalowania.

DiskANN wyróżnia się w obciążeniach obejmujących miliardy wektorów. Większość indeksu możesz przechowywać na dyskach SSD, które są tańsze od pamięci RAM. Taka konstrukcja pozwala skalować od tysięcy do miliardów wektorów bez dużego wzrostu kosztów pamięci. DiskANN dobrze sprawdza się w produkcyjnych obciążeniach AI, ponieważ efektywnie wykorzystuje dyski SSD i zachowuje w pamięci tylko najważniejsze dane.

HNSW najlepiej sprawdza się na zbiorach danych średniej wielkości. Cały indeks musisz trzymać w pamięci RAM. Ten wymóg ogranicza możliwości skalowania. Jeśli zbiór danych urośnie zbyt mocno, mogą pojawić się wysokie koszty operacyjne. HNSW jest ponadto ograniczony do 2000 wymiarów, co może zawęzić zakres zastosowań.

Typ indeksuOdpowiedni dla obciążeń obejmujących miliardy wektorówWymagania dotyczące pamięciKoszty operacyjne
DiskANNTak, zaprojektowany z myślą o wydajności dysków SSDSkaluje się od tysięcy do miliardów wektorówZalecany dla produkcyjnych obciążeń AI
HNSWNie, odpowiedni dla średnich zbiorów danychWymaga, aby indeks mieścił się w pamięci RAMOgraniczony do 2000 wymiarów

Wskazówka: Jeśli chcesz kontrolować koszty i skalować wyszukiwanie do miliardów wektorów, DiskANN daje wyraźną przewagę. Możesz korzystać z przystępnych cenowo dysków SSD i utrzymywać niskie wymagania dotyczące pamięci.

Zastosowania w praktyce

Wartość tych algorytmów widać w rzeczywistych zastosowaniach. Wiele organizacji wykorzystuje DiskANN i HNSW do różnych typów problemów wyszukiwania wektorowego.

  • Do przybliżonego wyszukiwania najbliższego sąsiada możesz zastosować ekonomiczną metodę hybrydową. Podejście to łączy przechowywanie na dyskach SSD ze strukturami grafów w pamięci.
  • DiskANN możesz wdrożyć dla statycznych zbiorów danych, takich jak korpusy badawcze, w których dane nie zmieniają się często.
  • DiskANN możesz wybrać do wdrożeń wrażliwych na koszty. Dobrze sprawdza się w aplikacjach na skalę miliardów, w których musisz kontrolować wydatki.
  • DiskANN możesz wykorzystać do zapytań tolerujących opóźnienia poniżej 10 milisekund. Ta szybkość jest wystarczająca dla wielu zadań wyszukiwania w przedsiębiorstwach.
  • Do wyszukiwania hybrydowego możesz połączyć HNSW z odwróconymi plikami indeksowymi opartymi na dysku (HNSW-IF). Ta metoda zapewnia wysoką trafność i utrzymuje niskie opóźnienie.
Przypadek użyciaOpis
Zbiory statyczneIdealne dla korpusów badawczych, w których dane nie zmieniają się często.
Wdrożenia wrażliwe na kosztyOdpowiedni dla aplikacji na skalę miliardów, gdzie koszt ma znaczenie.
Zapytania tolerujące opóźnieniaDobrze sprawdza się dla zapytań tolerujących opóźnienia poniżej 10 ms.

Uwaga: Wiele organizacji osiąga 90% trafności przy opóźnieniu 10 ms, stosując metody hybrydowe. Ta wydajność spełnia potrzeby większości aplikacji wyszukiwania AI w przedsiębiorstwach.

Możesz dopasować wybór algorytmu do swojego obciążenia. Jeśli potrzebujesz skalowania, kontroli kosztów i niskiego opóźnienia, DiskANN daje Ci elastyczność i efektywność, których potrzebujesz.

Kiedy używać HNSW, a kiedy DiskANN

Wybór właściwego algorytmu dla obciążenia Azure AI Search może znacząco wpłynąć na szybkość, koszty i dokładność. Trzeba przeanalizować dane, sprzęt oraz to, jak często dane się zmieniają. Omówmy główne kryteria decyzyjne, dzięki którym wybierzesz najlepsze narzędzie do wyszukiwania wektorowego.

Kryteria decyzyjne

Rozmiar zbioru danych

Zawsze warto zacząć od rozmiaru zbioru danych. Jeśli pracujesz z milionami wektorów, hnsw zapewni szybkie i dokładne wyniki wyszukiwania. Najlepiej sprawdza się wtedy, gdy dane mieszczą się w pamięci. Gdy zbiór danych urośnie do miliardów wektorów, lepszym wyborem staje się diskann. Wykorzystuje on dyski SSD do przechowywania większości indeksu, dzięki czemu nie musisz martwić się brakiem pamięci RAM.

KryteriumHNSWDiskANN
Rozmiar zbioru danychPrzeznaczony dla milionów wektorówDoskonale sprawdza się przy miliardach wektorów

Widać, że hnsw lepiej pasuje do mniejszych obciążeń, a diskann radzi sobie z ogromnymi zbiorami danych bez spowalniania.

Sprzęt i koszty

Sprzęt i budżet również odgrywają dużą rolę. Hnsw potrzebuje dużej ilości pamięci RAM, ponieważ przechowuje cały graf w pamięci. Może to być kosztowne wraz ze wzrostem bazy wektorowej. Diskann pozwala oszczędzać, przechowując większość indeksu na dyskach SSD, które są tańsze niż pamięć RAM. Potrzebujesz jedynie wystarczającej ilości pamięci dla części nawigacyjnej indeksu.

KryteriumHNSWDiskANN
InfrastrukturaWymagania dotyczące pamięci RAMZmniejsza koszty pamięci

Jeśli chcesz utrzymać niskie koszty i mimo to przeszukiwać miliardy wektorów, diskann daje wyraźną przewagę.

Wymagania dotyczące opóźnień

Warto zastanowić się, jak szybko potrzebujesz wyników wyszukiwania. Hnsw zapewnia bardzo małe opóźnienia, ponieważ wyszukuje w pamięci. Jeśli dane mieszczą się w pamięci RAM, wyniki możesz otrzymać w ciągu zaledwie kilku milisekund. Diskann równoważy szybkość i skalę. Wykorzystuje dwuetapowy proces wyszukiwania, dzięki czemu nawet przy ogromnych zbiorach danych wyniki są szybkie. W większości zastosowań korporacyjnych diskann utrzymuje czas zapytań poniżej 10 milisekund.

  • Hnsw sprawdza się najlepiej w obciążeniach, w których liczy się każda milisekunda.
  • Diskann dobrze działa, gdy trzeba szybko przeszukiwać duże zbiory danych i można zaakceptować niewielki wzrost opóźnień.

Wzorce aktualizacji

Częstotliwość zmian danych wpływa na wybór. Hnsw dobrze sprawdza się w przypadku danych statycznych lub wolno zmieniających się. Jeśli często aktualizujesz wektory, może być konieczne przebudowanie indeksu, co zajmuje czas. Diskann lepiej radzi sobie z częstymi aktualizacjami. Zachowuje stabilną dokładność i czułość (recall), nawet gdy często dodajesz lub zmieniasz wektory.

CechaHNSWDiskANN
Opóźnienie aktualizacjiWymaga pełnej przebudowy indeksuEfektywnie dostosowuje się do zmian
Czułość (recall)Wysoka, ale zależna od zmianStabilna dokładność przy częstych modyfikacjach

Jeśli Twoja aplikacja musi obsługiwać dużo aktualizacji, diskann daje większą elastyczność.

Przykładowe scenariusze

Scenariusze z życia wzięte mogą pomóc w wyborze algorytmu odpowiedniego do Twoich potrzeb.

MetrykaHNSWDiskANN
Średnia czułość (recall)0.60.7
Dokładność end-to-end0.9720.933
Robustness-0.2@100.9980.984
Robustness-0.90.840.81
  • Hnsw zapewnia wysoką czułość i szybką przepustowość zapytań. Na zbiorach danych takich jak SIFT1M można osiągnąć około 95% czułości przy 10 wynikach, w zaledwie 1–2 milisekundy na zapytanie na procesorze CPU.
  • Diskann wykazuje wyższą średnią czułość, co oznacza, że znajduje więcej rzeczywistych trafień w dużych zbiorach danych. Zachowuje wysoką dokładność nawet wtedy, gdy dane rosną.
  • Hnsw najlepiej sprawdza się w systemach rekomendacyjnych lub wyszukiwarkach, gdzie potrzebna jest najwyższa dokładność i szybkość.
  • Diskann pasuje do wyszukiwania na dużą skalę, na przykład przeszukiwania miliardów zdjęć produktów lub dokumentów, gdzie trzeba zrównoważyć szybkość, koszty i skalę.

Hnsw wyróżnia się w obciążeniach wymagających możliwie najszybszego wyszukiwania na mniejszych zbiorach danych. Diskann błyszczy, gdy trzeba przeszukiwać ogromne ilości danych bez przekraczania budżetu.

Migracja i podejścia hybrydowe

Nie musisz wybierać jednego algorytmu na każdą sytuację. Wiele organizacji zaczyna od hnsw dla mniejszych zbiorów danych. Gdy ich baza wektorowa rośnie, przechodzą na diskann, aby obsłużyć więcej danych i utrzymać niższe koszty. Możesz też zastosować podejście hybrydowe. Na przykład najczęściej używane lub najnowsze wektory możesz trzymać w pamięci z użyciem hnsw, a starsze lub rzadziej wykorzystywane przechowywać na dyskach SSD z użyciem diskann.

  • Zacznij od hnsw do szybkiego prototypowania i małych obciążeń.
  • Przejdź na diskann, gdy zbiór danych przekroczy limity pamięci.
  • Połącz obie metody, aby uzyskać najlepszy balans między szybkością a skalą.

Wskazówka: Regularnie przeglądaj obciążenie. Wraz ze zmianą danych i potrzeb możesz dostosowywać podejście, aby uzyskać najlepszą wydajność i wartość.

Znając rozmiar zbioru danych, sprzęt, wymagania dotyczące opóźnień oraz wzorce aktualizacji, możesz świadomie wybrać między hnsw a diskann. Dzięki temu zbudujesz system wyszukiwania wektorowego, który odpowiada Twoim celom i rośnie razem z firmą.

Najlepsze praktyki wyszukiwania wektorowego w usłudze Azure

Wskazówki dotyczące konfiguracji indeksu

Wysoką wydajność w usłudze Azure AI Search osiągniesz, stosując kilka ważnych wskazówek dotyczących konfiguracji. Zacznij od upewnienia się, że rozmiar indeksu mieści się w jednej jednostce wyszukiwania wektorowego. Dzięki temu wyszukiwanie będzie szybkie i niezawodne. Staraj się minimalizować rozmiar osadzeń. Mniejsze osadzenia skracają czas zapytań i zwiększają liczbę zapytań na sekundę. Stosuj zapytania Approximate Nearest Neighbor (ANN), ponieważ przyspieszają wyszukiwanie bez znaczącej utraty dokładności.

Ogranicz liczbę wyników na zapytanie do zakresu od 10 do 100. Ten przedział zmniejsza opóźnienia i utrzymuje responsywność wyszukiwania. Unikaj punktów końcowych modeli, które skalują się do zera, w środowisku produkcyjnym. Zimne starty mogą spowolnić wyszukiwanie i frustrować użytkowników. Planuj skoki liczby zapytań, aby system radził sobie z nagłym wzrostem ruchu wyszukiwania. Używaj jednostek usługi z tokenami OAuth, aby uwierzytelnianie było bezpieczne i wydajne. Zawsze korzystaj z najnowszej wersji SDK dla Pythona, aby czerpać korzyści z usprawnień wydajności. Jeśli potrzebujesz wyższej przepustowości, skaluj punkt końcowy lub rozdziel obciążenie na wiele punktów końcowych.

Wskazówka: Dobrze skonfigurowany indeks to fundament zoptymalizowanego wyszukiwania wektorowego w usłudze Azure.

Monitorowanie i optymalizacja

Monitoruj i optymalizuj system wyszukiwania, aby utrzymać wysoką wydajność, zwłaszcza przy obciążeniach obejmujących miliardy wektorów. Poniższa tabela przedstawia kilka skutecznych technik:

TechnikaOpis
Indeksy wielopoziomoweStosuj szybkie indeksy dla gorących danych i kompresuj dane chłodne, aby oszczędzać miejsce.
Kontrola fan-outZarządzaj interakcjami między shardami a klastrami, aby ograniczyć liczbę przeskoków sieciowych.
KwantyzacjaZmniejsz rozmiar wektorów metodami takimi jak IVF-PQ, aby mieściły się w limitach pamięci.
Dostrajanie centroidówDostosuj liczbę centroidów, aby zrównoważyć czułość wyszukiwania (recall) i narzut.
Asymetryczne obliczanie odległościPrzyspiesz wyszukiwanie, porównując zapytania o pełnej precyzji ze skompresowanymi wektorami.
Celowe kierowanie zapytańWykorzystaj metadane i grupowanie, aby unikać niepotrzebnych rozgłoszeń podczas wyszukiwania.
Minimalizacja ładunków sieciowychMiędzy węzłami przesyłaj tylko identyfikatory i wyniki, a nie pełne wektory.
Agregacja hierarchicznaAgreguj wyniki lokalnie, aby ograniczyć koordynację i ustabilizować opóźnienia.
Dominacja pamięciUpewnij się, że wektory mieszczą się w pamięci, co zapewnia najlepszą wydajność wyszukiwania.
Sytuacyjne użycie procesorów GPUUżywaj procesorów GPU do indeksowania, jeśli jest to potrzebne, ale sprawdź, czy rzeczywiście zwiększają przepustowość wyszukiwania.
Jakość sieciMonitoruj warunki sieciowe, ponieważ wpływają na opóźnienia wyszukiwania.

Uwaga: Regularne monitorowanie pomaga wcześnie wykrywać problemy i utrzymać płynne działanie wyszukiwania.

Typowe pułapki

Podczas konfigurowania lub skalowania systemu wyszukiwania w usłudze Azure możesz napotkać typowe pułapki. Jedną z nich jest dopuszczenie do zbyt dużego wzrostu indeksu w stosunku do jednej jednostki wyszukiwania. Może to spowolnić zapytania i zmniejszyć niezawodność wyszukiwania. Duże osadzenia również mogą pogorszyć wydajność. Zawsze utrzymuj osadzenia jak najmniejsze, odpowiednio do Twojego przypadku użycia.

Kolejną pułapką jest ignorowanie skoków liczby zapytań. Jeśli nie planujesz nagłego wzrostu ruchu wyszukiwania, system może nie wytrzymać obciążenia. Poleganie na punktach końcowych skalujących się do zera może powodować opóźnienia zimnego startu, które spowalniają wyszukiwanie. Brak aktualizacji SDK lub niekorzystanie z tokenów OAuth może prowadzić do zagrożeń bezpieczeństwa i utraty korzyści wydajnościowych.

Pamiętaj: Unikaj tych pułapek, aby wyszukiwanie było szybkie, bezpieczne i niezawodne.

Stosując te najlepsze praktyki, zbudujesz solidne i wydajne rozwiązanie wyszukiwania w usłudze Azure. Z łatwością obsłużysz duże zbiory danych i dostarczysz użytkownikom szybkie, trafne wyniki.


Rozwiązujesz problem miliarda wektorów w usłudze Azure AI Search, wybierając algorytm odpowiedni do swoich potrzeb. DiskANN zapewnia opłacalną skalowalność dla ogromnych zbiorów danych, a HNSW zapewnia szybkie wyniki dla mniejszych obciążeń. Dopasowujesz algorytm do obciążenia, skali i budżetu. Poniższa tabela pomoże Ci wybrać najlepszy punkt końcowy:

Typ SKUPrzypadek użycia i opis
Standardowe punkty końcoweNajlepsze przy krytycznych wymaganiach dotyczących opóźnień i indeksach zawierających poniżej 320 mln wektorów.
Punkty końcowe zoptymalizowane pod kątem magazynowaniaIdealne przy ponad 10 mln wektorów, gdy można tolerować pewne opóźnienia i wymagana jest efektywność kosztowa.
  • Oszacuj potrzeby w zakresie magazynu, testując kilka dokumentów.
  • Zaplanuj aktualizacje i łączną objętość zawartości.

Azure AI Search daje elastyczność i wspiera innowacje Microsoft w obszarze sztucznej inteligencji dla przedsiębiorstw.

Często zadawane pytania

Jaka jest główna różnica między HNSW a DiskANN?

Do wyszukiwania wektorowego w pamięci używasz HNSW. DiskANN pozwala przechowywać większość indeksu na dyskach SSD. Dzięki temu DiskANN lepiej radzi sobie z miliardami wektorów bez wysokich kosztów pamięci.

Czy można użyć DiskANN w aplikacjach czasu rzeczywistego?

Tak. DiskANN zapewnia wyszukiwanie o niskim opóźnieniu, często poniżej 10 milisekund. Możesz go użyć do zadań wyszukiwania AI w czasie rzeczywistym, nawet przy bardzo dużych zbiorach danych.

Jak wybrać algorytm w Azure AI Search?

Wybierasz HNSW dla mniejszych zbiorów danych, które mieszczą się w pamięci RAM. Wybierasz DiskANN dla ogromnych zbiorów danych, które wymagają opłacalnego skalowania. Uwzględnij rozmiar danych, sprzęt i wymagania dotyczące opóźnień.

Czy DiskANN wymaga specjalnego sprzętu?

Nie. DiskANN możesz uruchomić na standardowych serwerach z dyskami SSD. Nie potrzebujesz drogich maszyn z dużą ilością pamięci. Ułatwia to i obniża koszty skalowania.

Jak Azure AI Search chroni Twoje dane?

Azure AI Search stosuje szyfrowanie i kontrolę dostępu. To Ty decydujesz, kto ma dostęp do Twoich danych. Funkcje zabezpieczeń Microsoft pomagają chronić wrażliwe informacje.

Czy można aktualizować indeks wektorowy bez przestojów?

Możesz aktualizować zarówno indeksy HNSW, jak i DiskANN. DiskANN obsługuje wydajne aktualizacje dużych zbiorów danych. Wyniki wyszukiwania pozostają aktualne, a system nie musi być wyłączany.

Jakie są dobre praktyki optymalizacji wydajności wyszukiwania wektorowego?

Używaj mniejszych osadzeń, utrzymuj indeks w obrębie jednej jednostki wyszukiwania i monitoruj opóźnienia zapytań. Zawsze aktualizuj zestaw SDK i planuj szczyty zapytań, aby utrzymać wysoką wydajność.


🎧 Posłuchaj tego odcinka

Chcesz praktycznego wyjaśnienia tematu HNSW vs DiskANN for Vector Search in Azure AI Search? Ten odcinek omawia temat prostym językiem i pokazuje, dlaczego ma on znaczenie dla Microsoft 365, Azure, Power Platform, bezpieczeństwa, AI i nowoczesnej pracy.

Posłuchaj tego odcinka, jeśli chcesz:

  • Zrozumieć kluczowe pojęcia stojące za HNSW vs DiskANN for Vector Search in Azure AI Search
  • Zobaczyć, jak to wpisuje się w szerszy ekosystem technologii Microsoft
  • Dowiedzieć się, gdzie może przynieść praktyczną wartość dla Twojej organizacji

Mogą Cię też zainteresować powiązane odcinki M365 FM:

Odkryj więcej praktycznych rozmów o Microsoft na M365 FM.

Ostatni przegląd: lipiec 2026.

Dla kogo jest ten odcinek

Ten odcinek jest przeznaczony dla administratorów Microsoft, architektów, deweloperów, specjalistów ds. bezpieczeństwa i liderów biznesu, którzy potrzebują praktycznych podstaw przed podjęciem decyzji o wdrożeniu, eksploatacji lub zarządzaniu.

🎧 Warto też posłuchać

Entities in this article

DiskANN Azure AI Search Vector search Hybrid search Microsoft Azure Cold start Embeddings Semantic model

Related articles

RSS