Co powoduje rozbieżność osadzeń po ponownym zindeksowaniu tej samej biblioteki dokumentów?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Dryf embeddingów pojawia się, gdy ponowne indeksowanie zmienia model, tekst, ustawienia enkodera, ścieżkę numeryczną lub reguły porównywania używane do reprezentowania biblioteki.

Domowa baza wiedzy może zawierać te same pliki PDF, notatki, instrukcje i rodzinne archiwa przed przebudową i po niej, a mimo to zwracać innych najbliższych sąsiadów lub inne wyniki podobieństwa. Niektóre zmiany są rzeczywistym dryfem embeddingów: wektor wygenerowany dla identycznego wejścia uległ zmianie. Inne to dryf pozyskiwania danych, gdy tekst przekazywany do enkodera się zmienił, lub dryf wyszukiwania, gdy identyczne wektory są przeszukiwane przy użyciu innych metryk albo ustawień indeksu. Pierwszą granicą diagnostyczną powinno być zatem porównanie bajtów źródłowych, wyodrębnionego tekstu, tożsamości fragmentów, surowych wektorów i uporządkowanych wyników jako osobnych artefaktów.

Rzeczywisty dryf wektorów i pozorny dryf wyszukiwania to różne zjawiska

Rzeczywisty dryf oznacza, że ten sam znormalizowany tekst tworzy inny wektor. Pozorny dryf oznacza, że wektor pozostaje stabilny, ale zmieniają się przynależność fragmentów, metryka podobieństwa, filtrowanie, kwantyzacja lub przybliżone wyszukiwanie sąsiadów, przez co zmienia się kolejność wyników.

Kolekcje Qdrant definiują rozmiar wektora i metrykę odległości jako parametry na poziomie kolekcji. Przebudowanie indeksu w kolekcji z inną metryką może zmienić wyniki i ich kolejność bez zmiany samych wartości embeddingów.

Porównywanie wyłącznie najlepszych wyników wyszukiwania łączy te przyczyny w jedno zjawisko. Suma kontrolna surowych wektorów dla ustalonych ciągów testowych pozwala oddzielić dryf enkodera od dryfu indeksu lub rankingu.

N przypięta wersja modelu może zastąpić enkoder

Nazwa modelu nie zawsze oznacza niezmienny zestaw wag i plików konfiguracyjnych. Właściciel repozytorium może zaktualizować wagi, pliki tokenizera, konfigurację agregowania lub kod modelu, zachowując publiczną nazwę repozytorium.

Repozytoria Hugging Face są objęte kontrolą wersji, a pobieranie może korzystać z określonej rewizji zamiast stanu najnowszej gałęzi.

Ta przyczyna powoduje szerokie przesunięcie w obrębie stałego zestawu testowego, często wraz ze zmianą zatwierdzenia modelu, ścieżki pamięci podręcznej, skrótu konfiguracji lub zasobu tokenizera. Różni się to od dryfu dotyczącego konkretnych dokumentów, który wpływa tylko na pliki, w których zmieniło się wyodrębnianie treści lub dzielenie na fragmenty.

Opcje enkodera mogą zmieniać długość, skalę i geometrię wektora

Te same wagi mogą generować inne reprezentacje, gdy zmienią się agregowanie, normalizacja, precyzja, prefiksy promptów, maksymalna długość sekwencji lub wymiary wyjściowe.

Sentence Transformers udostępnia elementy sterujące enkoderem, w tym precyzję, normalizację, prompty i skrócone wymiary.

Zmiana normalizacji może zachować kierunek, jednocześnie zmieniając długość wektora; prefiks promptu może przenieść każdy dokument do innej przestrzeni zależnej od zadania; skracanie może usunąć całe wymiary. Są to zmiany konfiguracji, a nie losowa niestabilność.

Tekst przekazywany do enkodera może nie być taki sam

Ponowne indeksowanie może uruchomić inną wersję parsera, inną ścieżkę OCR, normalizację białych znaków, regułę kolejności stron lub strategię dzielenia na fragmenty, nawet gdy oryginalne pliki są identyczne bajt po bajcie.

Unstructured wykonuje dzielenie na fragmenty po podziale dokumentu na elementy i opisuje, jak rozmiar fragmentu, nakładanie i granice sekcji określają, jaki tekst trafia do poszczególnych fragmentów.

Jeśli jeden nagłówek zostanie wykryty na nowo albo jedna strona zostanie inaczej przetworzona przez OCR, granice wszystkich kolejnych fragmentów mogą się przesunąć. Powstałe wektory nie są zmienionymi reprezentacjami identycznego wejścia — reprezentują inne zakresy tekstu.

Niedeterministyczne wykonywanie może powodować niewielkie różnice numeryczne

Równoległe kernele, biblioteki sprzętowe, kolejność operacji i elementy losowe mogą powodować niewielkie różnice w kolejnych uruchomieniach wnioskowania, nawet przy tym samym modelu i wejściu.

PyTorch zaznacza, że pełna powtarzalność nie jest gwarantowana między wydaniami, platformami ani urządzeniami, oraz udostępnia dla obsługiwanych operacji elementy sterujące algorytmami deterministycznymi.

Ta przyczyna zwykle powoduje niewielkie różnice współrzędnych, a nie całkowitą reorganizację przestrzeni semantycznej. Jeśli podobieństwo cosinusowe między starymi i nowymi wektorami testowymi pozostaje wyjątkowo wysokie, zmiana może być szumem numerycznym widocznym wyłącznie w pobliżu remisów w rankingu.

Precyzja i kwantyzacja mogą zmieniać sąsiadów granicznych

Podczas przebudowy można przełączyć się z float32 na float16, int8 lub inny zoptymalizowany profil środowiska uruchomieniowego, aby zmniejszyć zużycie pamięci i zwiększyć przepustowość.

ONNX Runtime wyjaśnia, że konwersja do float16 może powodować różnice w dokładności wymagające testów tolerancji.

Wpływ semantyczny jest często niewielki, ale lokalna biblioteka może zawierać wiele podobnych fragmentów. Małe przesunięcia współrzędnych mogą zmienić kolejność sąsiadów, których początkowe wyniki były niemal identyczne.

Ponowne indeksowanie może łączyć stare i nowe generacje wektorów

Częściowo przebudowana kolekcja może zawierać wektory wygenerowane przy użyciu różnych zatwierdzeń modelu, ustawień fragmentów, wymiarów lub reguł normalizacji.

Wymieszane generacje powodują nieregularne zachowanie: niezmienione dokumenty mogą pozostać stabilne, podczas gdy zmienią się tylko ponownie przetworzone pliki, a wektory zapytań mogą być niezgodne z częścią przechowywanej kolekcji.

Przewodnik ZimaSpace dotyczący semantycznego indeksowania na serwerze NAS wyznacza powiązaną granicę: biblioteka źródłowa, wyodrębnione rekordy, embeddingi i indeks wyszukiwania to osobne warstwy i nie należy traktować ich jako jednego niezmiennego obiektu.

FAQ

Czy identyczny tekst zawsze powinien generować embeddingi identyczne bit po bicie?

Tylko przy przypiętym modelu, identycznej konfiguracji, deterministycznej ścieżce wykonywania oraz zgodnym środowisku sprzętowym i programowym. W przeciwnym razie nadal mogą wystąpić niewielkie różnice zmiennoprzecinkowe.

Czy niezmienione wyniki wyszukiwania dowodzą, że embeddingi nie uległy dryfowi?

Nie. Wektory mogą się przesunąć, nie przekraczając granic rankingu. Porównaj surowe wektory lub ich skróty oraz podobieństwa w ustalonym zestawie testowym.

Czy zmiana najbliższego sąsiada zawsze oznacza dryf modelu?

Nie. Dzielenie na fragmenty, filtry, metryki odległości, kwantyzacja i przybliżona konstrukcja indeksu mogą zmienić wyniki wyszukiwania, nawet gdy wyjście enkodera pozostaje stabilne.

Centrum Technologii i Sztucznej Inteligencji

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.