diff --git a/K2-Search.md b/K2-Search.md index 0e6ed30..127436a 100644 --- a/K2-Search.md +++ b/K2-Search.md @@ -89,27 +89,10 @@ Továbbá a chunk építés során gyűjtünk egy listát ami alias-okat tartalm # Vektoros keresés -## Embedding Modellek -- Llama 3.2 72B - - Backend: Ollama - - Tapasztalat: az egyes embeddingek vektorai túl hasonlóak, ezért nem alkalmasak keresésre -- gte-Qwen2-7B-instruct - - Backend: Ollama - - Tapasztalat: - Ez a modell specifikusan embedding célokra van tanítva, ezért a generált vektorok között nagyobb a távolság, jól kereshető. - A kisebb paraméterszám ellenére is jobb találatokat ad, mint a Llama3.2 modell. - Ezen felül sokkal gyorsabb a vektorok generálása, az előzetes embedding generálás és a felhasználó keresések során egyaránt. -- bge-multilingual-gemma2 - - Backend: egyedi (SentenceTransformer) - - Tapasztalat: - A Qwen embedding modellhez hasonlóan szintén jól összehasonlítható vektorokat generál. -- nv-embed-v2 - - backend: egyedi (SentenceTransformer) - - Tapasztalat: - - Nem generál megfelelő vektorokat 16bit precízió mellett GPU-n, 32bites módban nincs elég VRAM - - Érdemes visszatérni hozzá, amennyiben elterjedtebb lesz és rendelkezésre áll megfelelő tooling, vagy nagyobb hardverkapacitás +## Embedding +Az embedding során egy adott modellel előállítjuk egy *chunk* szemantikai vektoros reprezentációját, amit később felhasználunk a kereséshez. ## Embedding Backendek @@ -128,10 +111,46 @@ Továbbá a chunk építés során gyűjtünk egy listát ami alias-okat tartalm - CPU/GPU support - ONNX formátum szükséges, csak támogatott architektúrákkal megy +## Embedding Modellek + +A vektorok előállításához használt modellek nagyban befolyásolják a keresési találatok minőségét. +Jellemzően a kevesebb paraméteres, de specifikusan embedding célra tanított modellek jobban teljesítenek, mint a komplexebb modellek. +További előny, ha a modell tanító adathalmaza a célnyelvnek megfelelő szöveget tartalmazott. + +- Llama 3.2 72B + - Backend: Ollama + - Tapasztalat: + Az egyes embeddingek vektorai túl hasonlóak, ezért nem alkalmasak keresésre +- gte-Qwen2-7B-instruct + - Backend: Ollama + - A töbnyelvű embedding rangsorban 2. helyezett jelenleg + - Tapasztalat: + Ez a modell specifikusan embedding célokra van tanítva, ezért a generált vektorok között nagyobb a távolság, jól kereshető. + A kisebb paraméterszám ellenére is jobb találatokat ad, mint a Llama3.2 modell. + Ezen felül sokkal gyorsabb a vektorok generálása, az előzetes embedding generálás és a felhasználó keresések során egyaránt. +- bge-multilingual-gemma2 + - Backend: egyedi (SentenceTransformer) + - A töbnyelvű embedding rangsorban 1. helyezett jelenleg + - Tapasztalat: + A Qwen embedding modellhez hasonlóan szintén jól összehasonlítható vektorokat generál. +- nv-embed-v2 + - Backend: egyedi (SentenceTransformer) + - Új modell (2024. 09.) + - Az embedding modell rangsor élén áll jelenleg + - Tapasztalat: + - Nem generál megfelelő vektorokat 16bit precízió mellett GPU-n, 32bites módban nincs elég VRAM + - Érdemes visszatérni hozzá, amennyiben elterjedtebb lesz és rendelkezésre áll megfelelő tooling, vagy nagyobb hardverkapacitás + ## Vektoros keresés -- Qdrant +A korábban elkészített embedding vektorokat a felhasználó által keresett kifejezésből, hasonlóan képzett vektorokkal hasonlítja össze. +A vektorok irányát és/vagy távolságát kiszámítva megállapítható, hogy mely *chunk*-ok relevánsak a kereséshez. + +- Vektor adatbázis: Qdrant - nagyobb méretű vektorok támogatása + - webes kezelőfelület +- csak az embedding vektort és a szükséges metaadatokat tárolja + - egyéb adatok a normál adatbázisban - hivatalos Docker image ## Reranking