Update K2 Search

2024-10-24 22:43:05 +02:00
parent 92744adb11
commit 6459e0afee

@@ -41,7 +41,7 @@ Minden eleme az általunk épített fának tartalmazhat egy Context-et vagy egy
A contextben található minden olyan információ ami az adott content könnyebb megértéséhez és megtalálásához szükséges lehet (pl: a törvénynek a címe, a preambulum, a fejezet címe).
A content pedig minden olyan tartalom ami a keresések megválaszolásához szükséges információkat tartalmazzák (pl: egy paragrafus tartalma, egy táblázat szövege).
A chunkok ebből a fa szerkezetből épülnek fel, ahogy bejárjuk a fát minden context-et összefűzünk egészen addig amíg nem érkezünk egy olyan levélhez ami content-et tartalmaz. Ezáltal a végén kapunk egy olyan egybefüggő szöveget amiben szerkezet szerint a kontextus-ban szerepel minden content-ig vezető információ, és a contentben összefűzve az kereshető rész áll elő. A legvégén pedig eltávolítunk minden HMTL/XML elemet a szövegből.
A chunkok ebből a fa szerkezetből épülnek fel, ahogy bejárjuk a fát minden context-et összefűzünk egészen addig amíg nem érkezünk egy olyan levélhez ami content-et tartalmaz. Ezáltal a végén kapunk egy olyan egybefüggő szöveget amiben szerkezet szerint a kontextusban szerepel minden content-ig vezető információ, és a contentben összefűzve az kereshető rész áll elő. A legvégén pedig eltávolítunk minden HMTL/XML elemet a szövegből.
A `jhId` (NJT-n való anchor linkek előállításához szükséges) hozzárendelése a chunkokhoz egyszerűen a fában való felfele kereséssel lett megoldva, így a chunkhoz legközelebbi `jhId`-t tudjuk meghatározni.
@@ -49,7 +49,7 @@ A `jhId` (NJT-n való anchor linkek előállításához szükséges) hozzárende
## Keresési találatok szövegkiemelése
A beérkező kérést feldaraboljuk szavakra és eltávolítunk belőle minden nem a magyar ABC-ben szereplő karaktert.
Ezeknek a szavaknak megkeressük a szótöveit a Hunspell nevű könyvtárral, majd ezeknek az összegyűjtött szavaknak és szótöveknek megkeressük a szinonímáit egy Thesaurus nevű könyvtárral és ezeket is belerakjuk a lehetséges kiemelendő szavak közé.
Ezeknek a szavaknak megkeressük a szótöveit a Hunspell nevű könyvtárral, majd ezeknek az összegyűjtött szavaknak és szótöveknek megkeressük a szinonimáit egy Thesaurus nevű könyvtárral és ezeket is belerakjuk a lehetséges kiemelendő szavak közé.
A kiemelt szavakat szűrjük egy előre megírt listával ami tartalmazza a kötőszavakat/kérdőszavakat és egyéb szavakat amit nem szeretnénk semmilyen formában látni a kiemelés során.
@@ -107,7 +107,8 @@ Továbbá a chunk építés során gyűjtünk egy listát ami alias-okat tartalm
- 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
- 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 Backendek