Zyski:
- Zrozum, że osadzanie zamienia tekst w wektor w przestrzeni semantycznej, a podobne znaczenia są bliskimi wektorami
- Wyjaśnienie, jak wyszukiwanie SSN działa z metrykami podobieństwa cosinusów i kropek
- Wybór wspólnych wektorowych baz danych w oparciu o koszt, skalę i potrzebę filtrowania metadanych
Sercem RAG jest jedno pytanie: „Który fragment tekstu jest najbardziej podobny do pytania użytkownika?” Komputer przetwarza tekst za pomocą liczb, a nie dosłownie. Dlatego musimy najpierw przekonwertować tekst na liczby, które niosą ze sobą jego znaczenie. Na tym polega osadzanie: proces przekształcania tekstu w ciąg liczb (wektor), który reprezentuje znaczenie tego tekstu. Po ukończeniu tej części będziesz wiedział, jak działa osadzanie, jak mierzone jest podobieństwo i jak wybrać odpowiednią bazę danych wektorów.
Osadzanie: tłumaczenie znaczenia na współrzędne
Model osadzania (specjalnie wyszkolona sztuczna inteligencja) konwertuje podany przez Ciebie tekst na wektor składający się np. z 1024 liczb. Pomyśl o tym wektorze jako o współrzędnej w przestrzeni wielowymiarowej. Magia polega na tym, że teksty o podobnym znaczeniu układają się w bliskie współrzędne w tej przestrzeni.
Prosty przykład: „urlop roczny”, „prawo urlopowe” i „urlop roczny” używają różnych słów, ale znaczą to samo – ich wektory są blisko siebie. „Rachunek płacowy” to inna sprawa – jego wektor jest odległy. Użytkownik pyta więc „ile mam dni urlopu?” Na zapytanie znajdziemy nawet dokument, który nie zawiera słowa „urlop”, ale mówi, że „urlop roczny wynosi 14 dni”. Tego właśnie nie może zrobić klasyczne wyszukiwanie słów kluczowych (wyszukiwanie dokładnie pasujące do słowa).
Wskazówka: pomyśl o osadzaniu jako o „odcisku palca znaczenia”. Odciski palców dwóch zdań o tym samym znaczeniu wydają się podobne; Nawet jeśli słowa są inne.
Ważna zasada: model, którego używasz podczas osadzania pytania, powinien być tym samym modelem, którego używasz podczas osadzania dokumentów. Różne modele tworzą różne przestrzenie; współrzędne stają się nieporównywalne.
Jak mierzyć podobieństwo?
Istnieje kilka metod pomiaru podobieństwa dwóch wektorów. Najbardziej powszechnym jest podobieństwo cosinus: mierzy kąt między dwoma wektorami. Jeśli kąt jest mały (wektory skierowane są w tym samym kierunku), podobieństwo jest duże. Wartość mieści się w przedziale od –1 do 1; Blisko 1 = bardzo podobne.
kryterium
Co mierzy?
Kiedy jest to preferowane?
Cosinus
Kąt (kierunek) pomiędzy wektorami
Najczęstsze; domyślnie w tekście podobieństwo semantyczne
Produkt kropkowy
Kierunek + wielkość razem
Jeśli wektory są znormalizowane, daje to taki sam wynik jak cosinus; jest szybki
Euklidesowa (odległość euklidesowa)
Prosta odległość między współrzędnymi
W niektórych scenariuszach grupowania; rzadziej używane w tekście
W praktyce większość modeli osadzania tworzy znormalizowane wektory (rozmiar ustawiony na 1); W tym przypadku cosinus i iloczyn skalarny dają tę samą kolejność. Nie bądź sparaliżowany decyzją: zacznij od cosinusa.
Pośród milionów wektorów porównywanie ich jeden po drugim jest powolne. Dlatego też wektorowe bazy danych korzystają z algorytmów ANN (ang. Approximate Nearest Neighbor, Approximate Nearest Neighbor). ANN bardzo szybko znajduje „prawie najbliżej” niż „dokładnie najbliżej”. Na przykład metoda o nazwie HNSW może zwrócić wyniki w ciągu kilku milisekund nawet dla 10 milionów wektorów. Zyskujesz dużą prędkość za niewielkie poświęcenie dokładności.
Do czego służy baza danych wektorowych?
Baza danych wektorów robi trzy rzeczy na raz: (1) przechowuje wektory, (2) szybko znajduje wektory najbardziej podobne do wektora zapytania, (3) filtruje według metadanych obok każdego wektora. Metadane to znaczniki, które dołączasz do tego elementu: plik źródłowy, data, dział, poziom prywatności itp. Filtrowanie metadanych ma kluczowe znaczenie w korporacyjnym RAG; ponieważ musisz mieć możliwość ustawienia ograniczeń, takich jak „szukaj tylko w dokumentach działu finansowego 2025”.
# Zarejestruj się w bazie wektorów (koncepcyjne)vektor_db.add( id="izin-politikasi-parca-3", vektor=embed("Roczny płatny urlop wynosi 14 dni..."), tekst="Roczny płatny urlop wynosi 14 dni...", metadata={"source": "ik_el_kitabi.pdf", "department": "IK", "date": "2025-06", "privacy": "ic"})
# Metadane filtrowane wyszukiwanie (koncepcyjne)result = vektor_db.search( vektor=embed("ile mam dni urlopu?"), top_k=4, filter={"department": "HR", "privacy": ["internal", "on"]})
Wybór właściwej bazy danych
pojazd
Wyróżniony aspekt
Odpowiednia sytuacja
Wbudowana / oparta na plikach (wbudowana biblioteka)
Bez instalacji, pojedyncza maszyna
Prototyp, mały zestaw (< kilkaset tysięcy części)
Zarządzana usługa w chmurze
Skalowanie i konserwacja nie są Twoim obowiązkiem
Produkcja, szybko rosnące dane, mały zespół
Open source na własnym serwerze
Pełna kontrola, Twoje dane pozostają Twoje
Obowiązek prywatności, istniejąca infrastruktura
Dodatek do istniejącej bazy danych
Nie zarządzasz oddzielnymi systemami
Dodanie obsługi wektorów do bazy danych, której już używasz
Przy wyborze zapytaj: Ile sztuk będzie? Jak ważne jest filtrowanie metadanych? Czy dane mogą wyjść poza firmę (poufność)? Czy zespół może obsługiwać infrastrukturę? Często mądrze jest zacząć od czegoś małego i rozszerzać w razie potrzeby.
Słabe podejście/silne podejście
Słabe (przechowywanie zwykłego osadzania, brak metadanych):
Po prostu zapisz tekst i wektor. Szukaj: zwróć 4 najbardziej podobne wektory.# Problem: nie można filtrować według „tylko bieżących dokumentów HR”;# odpowiedź może zawierać także stare/nieautoryzowane części.
Potężny (bogate metadane + filtrowane wyszukiwanie):
Dodaj źródło, datę, dział i znacznik prywatności do każdego elementu. Podczas wyszukiwania filtruj według uprawnień i aktualności użytkownika: filter = {"privacy": user_authority, "date_date": "2024-01"}# Dzięki temu wynik jest zarówno bezpieczny, jak i aktualny.
Trzy mini etui
Przypadek 1 — Zły miks modeli. Zespół umieścił dokumenty z modelem A i pytania z modelem B. Wyszukiwania dały bezsensowne wyniki, a wskaźnik poprawnych odpowiedzi pozostał na poziomie 31%. Kiedy przełączyłem się na jeden model (oba to ten sam model osadzania), wskaźnik wzrósł do 88%. Lekcja: pytanie i dokument powinny znajdować się w tym samym miejscu.
Przypadek 2 – Ryzyko prywatności bez metadanych. W firmie z branży opieki zdrowotnej wszystkie dokumenty wydziałowe zostały wrzucone do jednego zbioru bez metadanych. Kiedy sprzedawca zadał pytanie, system kontekstualizował fragment danych pacjenta. Po dodaniu metadanych + filtru (wg poziomu uprawnień) ryzyko to zostało wyeliminowane; Podczas odzyskiwania 12 nieautoryzowanych elementów w ogóle nie jest przynoszonych.
Przypadek 3 – Wąskie gardło skali. Firma zajmująca się handlem elektronicznym przeszukała 8 milionów opisów produktów za pomocą prostej metody „skanuj wszystko”; Każde zapytanie trwało 6 sekund. Kiedy przeszliśmy na ANN opartą na HNSW, czas spadł do 45 milisekund, przy jedynie 1% utracie dokładności. Lekcja: ANN jest obowiązkowa w dużym zestawie.
Typowe błędy
- Osadzanie pytania i dokumentu w różnych modelach: Wyniki są bez znaczenia; zawsze jeden model.
- Pomijanie metadanych: nie można filtrować; Tracisz kontrolę nad prywatnością i aktualnością.
- Mylenie osadzania z szyfrowaniem: osadzanie przenosi informacje odwracalne; Błędem jest zakładanie, że dane wrażliwe są „ukryte”.
- Budowanie niepotrzebnie dużej infrastruktury na małym zestawie: gigantyczny klaster zarządzany dla 5000 części to niepotrzebna złożoność.
- Nie przejmuj się zbytnio kryterium podobieństwa: zacznij od cosinusa w tekście; Dostrojenie następuje później.
Uwaga: Osadzanie osadza znaczenie tekstu w liczbach, ale nie „niszczy” treści. W przypadku wycieku bazy danych wektorowych, oryginalne zapisane teksty (w większości instalacji tekst jest również przechowywany) również zostaną naruszone. Trzymaj repozytorium wektorów tak poufne, jak znajdujące się w nim dokumenty.
Podsumowując
- Osadzanie zamienia tekst w wektor liczb, który niesie ze sobą znaczenie; Podobne znaczenia są bliskimi wektorami.
- Podobieństwo często mierzy się za pomocą cosinusa; W przypadku znormalizowanych wektorów iloczyn skalarny daje ten sam wynik.
- W przypadku dużych zbiorów danych ANN (np. HNSW) zastępuje wyszukiwanie dokładne: duża prędkość przy niewielkim poświęceniu dokładności.
- Baza danych wektorowych wykonuje przechowywanie wektorów + wyszukiwanie podobieństw + filtrowanie metadanych; metadane są niezbędne dla korporacyjnego RAG.
- Pytanie i dokument muszą być przetłumaczone przy użyciu tego samego modelu osadzania; w przeciwnym razie nie można porównać współrzędnych.
Zadanie aplikacji
Wyodrębnij 10 krótkich fragmentów (po 3–6 zdań każdy) z dokumentu wybranego w poprzedniej części. (1) Zaprojektuj co najmniej trzy znaczniki metadanych dla każdego elementu (źródło, data i trzeci odpowiedni do kontekstu biznesowego: dział, produkt, prywatność itp.). (2) Napisz, który filtr metadanych należy zastosować w przypadku 3 różnych pytań użytkowników. (3) Znajdź 3 pary pytań i części, które wyrażają to samo znaczenie różnymi słowami (np. „prawo do urlopu” ↔ „urlop roczny”) i wyjaśnij w jednym zdaniu, dlaczego nie będą pasować do wyszukiwania słów kluczowych, ale będą pasować do osadzania.
lista kontrolna
- [ ] Widzę, że osadzanie zamienia tekst w wektor w przestrzeni semantycznej i podobne znaczenia są bliskie.
- Wiem, że [ ] Podobieństwo cosinusowe mierzy kąt i jest domyślną preferencją w tekście.
- [ ] Potrafię wyjaśnić, dlaczego ANN jest niezbędna w dużych zbiorach danych.
- [ ] Wiem, dlaczego metadane są krytyczne dla kontroli poufności i świeżości.
- [ ] Kieruję się zasadą tłumaczenia pytania i dokumentu z tym samym modelem osadzania.