Zajímavé. Vrtá mi v hlavě následující - údajně se vektory embeddings mohou zezadu zkracovat, přičemž dochází jen k mírné ztrátě přesnosti významu původního textu (např. model vrátí pole 1500 floatů, ale do DB se uloží jen prvních 700). Z toho mi vyplývá, že relevance významu klesá s indexem vektoru. A tudíž, že by výpočet vzdálenosti vektorů měl brát v úvahu index příslušné dimenze. Mohu poprosit o komentář? Díky.
20. 7. 2025, 14:24 editováno autorem komentáře
Index vektoru s relevancí nesouvisí, modely nejsou takhle učené. Embedding o 1500 floatech si je možné představit jako množinu 1500 features, kdy některé jsou význámné více a jiné méně, ale distribuce "významnosti feature" je náhodná, není vázána na index.
Operace oříznutí vektoru z 1500 floatů na 700 floatů je redukce dimenzionality, která se dá udělat i chytřeji, než vyhozením 800 features, ale zjevně to nějak funguje, i když se vybere 800 náhodných features, které se dají pryč. Vybrat 800 posledních je technicky nejjednodušší, ale pokud by se náhodný výběr udělal nějak jinak, mělo by to dopadnout velmi podobně.
Co z toho plyne? Asi by se dalo říct, že významných features zůstane ve zbylých 700 pořád dost na to, aby hledání nějak fungovalo, i když s nižší přesností.
Ano, jak to píšeš v poslední větě. A proto se klidně může použít float16/bfloat16 a některé modely jdou dokonce dál a využívají pouze bajt/prvek. To pro relevanci může dostačovat.
PS: asi jsi myslel tuto formu vektorizace https://www.root.cz/clanky/vyuziti-knihovny-scikit-learn-pro-zpracovani-a-analyzu-prirozeneho-jazyka-nlp/#k13 ta se taky používá, například při kategorizacích atd.
Nejsem tento odborník, ale z mých chabých znalostí bych řekl, že redukce dimenzionality se ve FAISS neprovádí automaticky, ale musí se explicitně nechat vyžádat. -> faiss.PCAMatrix
Používá se k tomu PCA analýza, která hledá přímkové korelace mezi dimenzemi.
Mějme mrak bodů přibližně ve tvaru přímky... pro jeho popsání bychom potřebovali souřadnice XY. Pokud ale osy trnsformujeme tak, aby X procházela regresní přímkou, rozptyl bodů v Y bude zanedbatelný. Lze pak dimenzi Y zahodit a ponechat pouze informaci o X + znalost transformace. Přijdeme tak o minimum informace.
Tady myslím, velmi výstižný obrázek o velikosti ryb pokud mají zhruba podobný tvar.