[{"data":1,"prerenderedAt":723},["ShallowReactive",2],{"blog-embedding-model-selection-2026-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":27,"sources":37,"cover":74,"og":75,"expertise":76,"locales":77,"lang":80,"title":81,"description":82,"coverAlt":83,"metaTitle":84,"takeaways":85,"faq":91,"toc":107,"blocks":141,"others":497},"embedding-model-selection-2026","2026-10-17",9,"rag",[9,10,11,12,13],"Embeddings","RAG","MTEB","Vector search","Model selection",[15,16,17,18,19,20,21,22,23,24,25,26],"best embedding model 2026","how to choose an embedding model","embedding model comparison","MTEB leaderboard explained","RTEB benchmark","open source embedding model","multilingual embedding model","voyage-4 vs openai embeddings","Qwen3-Embedding","EmbeddingGemma","embedding model for RAG","switching embedding models re-embed",[28,31,34],{"name":29,"url":30},"Word embedding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWord_embedding",{"name":32,"url":33},"Information retrieval","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInformation_retrieval",{"name":35,"url":36},"Discounted cumulative gain","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDiscounted_cumulative_gain",[38,41,44,47,50,53,56,59,62,65,68,71],{"title":39,"url":40},"Enevoldsen et al.: MMTEB, Massive Multilingual Text Embedding Benchmark (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.13595",{"title":42,"url":43},"Hugging Face: Introducing RTEB, a new standard for retrieval evaluation (Oct 2025)","https:\u002F\u002Fhuggingface.co\u002Fblog\u002Frteb",{"title":45,"url":46},"OpenAI: Vector embeddings guide","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fembeddings",{"title":48,"url":49},"OpenAI: API pricing","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fpricing",{"title":51,"url":52},"Voyage AI: The Voyage 4 model family, shared embedding space with MoE architecture (Jan 2026)","https:\u002F\u002Fblog.voyageai.com\u002F2026\u002F01\u002F15\u002Fvoyage-4\u002F",{"title":54,"url":55},"Voyage AI: Text embeddings documentation","https:\u002F\u002Fdocs.voyageai.com\u002Fdocs\u002Fembeddings",{"title":57,"url":58},"Voyage AI: Pricing","https:\u002F\u002Fdocs.voyageai.com\u002Fdocs\u002Fpricing",{"title":60,"url":61},"Google: Gemini API embeddings documentation","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fembeddings",{"title":63,"url":64},"Google: Gemini API pricing","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fpricing",{"title":66,"url":67},"Cohere: Embed models documentation","https:\u002F\u002Fdocs.cohere.com\u002Fdocs\u002Fcohere-embed",{"title":69,"url":70},"Qwen: Qwen3-Embedding-8B model card","https:\u002F\u002Fhuggingface.co\u002FQwen\u002FQwen3-Embedding-8B",{"title":72,"url":73},"Google Developers Blog: Introducing EmbeddingGemma (Sep 2025)","https:\u002F\u002Fdevelopers.googleblog.com\u002Fen\u002Fintroducing-embeddinggemma\u002F","\u002Fimages\u002Fblog\u002Fembedding-model-selection-2026\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fembedding-model-selection-2026\u002Fog.jpg","ai-engineer",[78,79,80],"en","de","hu","Embedding-modell választása 2026-ban: ranglisták, költségek és összehasonlító teszt a saját adatokon","Hogyan válassz embedding-modellt RAG-hoz 2026-ban: mit mond az MTEB és az RTEB, API vagy nyílt súlyok, árak, dimenziók és egy egyhetes összehasonlító teszt.","Három oszlop egymásra rakott kockákból, középen a legmagasabb, mindegyik rövid sávval mérve.","Embedding-modell választása 2026-ban · Balázs Csorba",[86,87,88,89,90],"A különböző modellek vektorterei nem kompatibilisek, így a döntés visszafordítása teljes újraembeddelésbe kerül; a Google ezt a gemini-embedding-001-ről a gemini-embedding-2-re váltásnál kifejezetten leírja.","Az MTEB-helyezés a szűkített lista szűrője, nem döntés; az RTEB privát adatkészleteket ad hozzá, mert a nyilvános benchmarkokra rá lehet tanítani.","Az árak nagyjából tízszeres sávban mozognak, a text-embedding-3-small és a voyage-4-lite millió tokenenkénti 0,02 dollárjától a gemini-embedding-2 0,20 dollárjáig, de az újraindexelés ideje általában többe kerül, mint a tokenek.","A nyílt súlyú modellek, például a Qwen3-Embedding és az EmbeddingGemma, elég erősek egy komoly alapvonalhoz, főleg ha az adatnak a saját szervereiden kell maradnia.","Összehasonlító teszttel dönts: 100–300 valódi kérdés megjelölt releváns chunkokkal, jelöltenként recall@10 és nDCG@10, nagyjából egy hét alatt.",[92,95,98,101,104],{"q":93,"a":94},"Melyik a legjobb embedding-modell 2026-ban?","Nincs egyetlen legjobb. A ranglisták havonta változnak, a szolgáltatók pedig saját maguk által futtatott benchmarkokat közölnek. Válassz három-öt jelöltet, amelyek lefedik a nyelveidet, a kontextushosszt és a hosztolási feltételeket, aztán mérd le őket a saját kérdéseiden.",{"q":96,"a":97},"Megbízható az MTEB-ranglista?","Jó kiindulópont egy szűkített listához. A gyengesége, hogy a nyilvános tesztkészletek bekerülhetnek a tanítóadatokba, ezért vezették be az MTEB karbantartói 2025 októberében az RTEB-et olyan privát adatkészletekkel, amelyeket ők maguk értékelnek ki.",{"q":99,"a":100},"Válthatok embedding-modellt újraembeddelés nélkül?","Általában nem. A különböző modellek vektorai különböző terekben élnek. Kivételt a közös térre épített modellcsaládok jelentenek, például a Voyage 4 család, ahol a voyage-4-large-dzsel embeddelt dokumentumok voyage-4-lite lekérdezésekkel is kereshetők.",{"q":102,"a":103},"Használjak nyílt forráskódú embedding-modellt?","Igen, ha az adatnak a saját infrastruktúrádon kell maradnia, ha a lekérdezések mennyisége drágává teszi az API-hívásokat, vagy alapvonalként az összehasonlító tesztben. A Qwen3-Embedding (Apache 2.0) és az EmbeddingGemma elég kicsi ahhoz, hogy átlagos szervereken fusson.",{"q":105,"a":106},"Hány dimenzióra van szükségem?","Többnyire kevesebbre, mint az alapértelmezett. A Matryoshka-tanítású modelleknél hívásonként csökkentheted a dimenziót; mérd a recallt 256, 512 és 1024 dimenziónál, és a minőségi kereten belüli legkisebb méretet tartsd meg.",[108,111,114,117,120,123,126,129,132,135,138],{"id":109,"title":110},"why-it-is-sticky","Miért hosszú távú döntés az embedding-modell?",{"id":112,"title":113},"leaderboards","Mit mond valójában az MTEB és az RTEB?",{"id":115,"title":116},"shortlist","Mely modellek kerüljenek 2026-ban a szűkített listára?",{"id":118,"title":119},"criteria","Mely szempontok fontosabbak a ranglistás helyezésnél?",{"id":121,"title":122},"hosted-or-open","Hosztolt API vagy nyílt súlyok?",{"id":124,"title":125},"shared-spaces","Mit változtatnak a közös embedding-terek?",{"id":127,"title":128},"details","Mely API-részletek okoznak észrevétlen minőségromlást?",{"id":130,"title":131},"bake-off","Hogyan futtass összehasonlító tesztet a saját adataidon?",{"id":133,"title":134},"migrations","Hogyan készülj fel a következő modellre?",{"id":136,"title":137},"my-defaults","Mik az ésszerű alapválasztások 2026 végén?",{"id":139,"title":140},"sources","Források",[142,146,155,158,161,164,165,168,171,174,175,178,294,302,303,306,349,350,358,361,362,365,368,369,372,402,404,405,408,417,434,441,442,450,451,454,457,458],{"type":143,"content":144},"paragraph",[145],"Az embedding-modell a RAG-rendszer legkevésbé látható része, és az egyik legnehezebben cserélhető. Az index minden chunkját ez állította elő, minden lekérdezésnek ugyanezen a modellen kell átmennie, egy másik modell vektorai pedig nem összevethetők. Ha rosszul választasz, hónapokkal később derül ki, amikor a javítás a teljes korpusz újraembeddelését jelenti.",{"type":143,"content":147},[148,149,154],"Ez az útmutató azt mutatja meg, hogyan választok 2026 októberében: mire jók a ranglisták, mely modellek kerüljenek a szűkített listára, mely tulajdonságok fontosabbak a helyezésnél, és hogyan futtass kis összehasonlító tesztet a saját adataidon. Kiegészíti a lépésenkénti ",{"tag":150,"to":151,"children":152},"link","\u002Fblog\u002Frag-pipeline-chunking-hybrid-search-reranking",[153],"éles RAG-pipeline"," cikket, amely már kiválasztott modellt feltételez.",{"type":156,"level":157,"id":109,"text":110},"heading",2,{"type":143,"content":159},[160],"Az embedding egy pozíció egy olyan térben, amelyet csak egyetlen modell határoz meg. Két modell kimenete lehet egyaránt 1024 szám szövegenként, mégis értelmetlenek egymás számára, mert mindegyik saját geometriát tanult. A Google a saját modelljeiről egyértelműen fogalmaz: a gemini-embedding-001 és a gemini-embedding-2 tere nem kompatibilis, a váltáshoz az összes meglévő adatot újra kell embeddelni.",{"type":143,"content":162},[163],"Az újraembeddelés tokenszámlája ritkán a gond. Egy 50 millió tokenes korpusz egyszeri embeddelése a text-embedding-3-large modellel, millió tokenenként 0,13 dollárért, 6,50 dollár. A valódi költség a pipeline ideje: újrafeldolgozás, újra-chunkolás, indexek újraépítése, értékelések ismétlése és a forgalom leállás nélküli átállítása. Ezért a döntés egyhetes mérést érdemel, nem egy pillantást a ranglistára.",{"type":156,"level":157,"id":112,"text":113},{"type":143,"content":166},[167],"Az MTEB az embedding-modellek szabványos nyilvános benchmarkja. Többnyelvű kiterjesztése, az MMTEB, több mint 500 minőségellenőrzött feladatot fed le több mint 250 nyelven, köztük visszakeresést, osztályozást, klaszterezést, utasításkövetést, hosszú dokumentumokat és kódot. Az MMTEB-tanulmány egyik megállapítását érdemes megjegyezni: a milliárdos paraméterszámú modellek egyes részhalmazokon vezetnek, de a vizsgálat legjobb nyilvánosan elérhető modellje a mindössze 560 millió paraméteres multilingual-e5-large-instruct volt. A méret nem azonos azzal, mennyire illik a modell a feladatodhoz.",{"type":143,"content":169},[170],"A nyilvános benchmark gyengesége éppen az, hogy nyilvános. Ha a tesztkészletek átfednek a tanítóadatokkal, a modellek általánosítás nélkül is jól teljesítenek, ezt a Hugging Face csapata a tesztre tanításnak nevezi. A válaszuk, az RTEB, 2025. október 1-jén indult béta változatban: egy visszakeresési benchmark nyílt és olyan privát adatkészletekkel, amelyeket csak az MTEB karbantartói értékelnek ki, jog, egészségügy, kód és pénzügy területén, 20 nyelven, nDCG@10 szerint rangsorolva.",{"type":143,"content":172},[173],"A szolgáltatói benchmarkok egy harmadik kategóriát alkotnak, és ezekkel kell a legóvatosabban bánni. A Voyage szerint a voyage-4-large az RTEB-adatkészleteken átlagosan 14,05%-kal veri az OpenAI text-embedding-3-large modelljét és 3,87%-kal a Gemini Embedding 001-et, a mérést maga a Voyage végezte. Az ilyen számok abban segítenek, mit tesztelj, nem abban, mit vegyél meg.",{"type":156,"level":157,"id":115,"text":116},{"type":143,"content":176},[177],"A táblázat azokat a modelleket sorolja fel, amelyeket ma egy új RAG-projekthez számításba vennék, a szolgáltatók dokumentációjának vagy modellkártyájának 2026. októberi adataival. Az árak millió bemeneti tokenenként, standard díjszabással értendők.",{"type":179,"head":180,"rows":191},"table",[181,183,185,187,189],[182],"Modell",[184],"Dimenziók",[186],"Kontextus",[188],"Ár \u002F 1 millió",[190],"Megjegyzés",[192,206,218,231,241,253,270,283],[193,198,200,202,204],[194],{"tag":195,"children":196},"code",[197],"text-embedding-3-small",[199],"1536",[201],"8,192",[203],"$0.02",[205],"Olcsó alapmodell, rövidíthető",[207,211,213,214,216],[208],{"tag":195,"children":209},[210],"text-embedding-3-large",[212],"3072, rövidíthető",[201],[215],"$0.13",[217],"Széles körben támogatott, régebbi generáció",[219,223,225,227,229],[220],{"tag":195,"children":221},[222],"voyage-4-large",[224],"256–2048",[226],"32,000",[228],"$0.12",[230],"Közös tér a voyage-4, lite és nano modellel",[232,236,237,238,239],[233],{"tag":195,"children":234},[235],"voyage-4-lite",[224],[226],[203],[240],"Olcsó lekérdezőmodell egy large indexhez",[242,246,248,249,251],[243],{"tag":195,"children":244},[245],"gemini-embedding-2",[247],"128–3072",[201],[250],"0,20 $, batch 0,10 $",[252],"Szöveg, kép, hang, videó, PDF",[254,262,264,266,268],[255,258,259],{"tag":195,"children":256},[257],"embed-v4.0"," \u002F ",{"tag":195,"children":260},[261],"embed-v5.0-pro",[263],"256–1536 \u002F 256–2048",[265],"128k",[267],"lásd a Cohere árlistáját",[269],"Szöveg és kép, hosszú bemenetek",[271,275,277,279,281],[272,274],{"tag":195,"children":273},[23]," 0.6B\u002F4B\u002F8B",[276],"32–4096 (8B)",[278],"32k",[280],"nyílt súlyok",[282],"Apache 2.0, 100+ nyelv",[284,287,289,291,292],[285],{"tag":195,"children":286},[24],[288],"768 → 128",[290],"2k",[280],[293],"308 millió paraméter, kvantálva 200 MB alatt",{"type":143,"content":295},[296,297,301],"A modellkártyák két részlete fontos német vagy magyar tartalomnál. A Qwen3-Embedding-8B 2025. június 5-én 70,58 ponttal az első helyen állt az MTEB többnyelvű ranglistáján, a szerzők pedig azt javasolják, hogy a feladatutasításokat többnyelvű használatnál is angolul írd. A Google az EmbeddingGemmát az MTEB legjobb helyezésű, 500 millió paraméter alatti nyílt többnyelvű szöveg-embedding modelljének nevezi, mindössze kb. 2000 tokenes kontextussal. A ",{"tag":150,"to":298,"children":299},"\u002Fblog\u002Fmultilingual-rag-german-hungarian",[300],"német és magyar nyelvű többnyelvű RAG"," cikkemben leírtam, mi minden változik még ezeknél a nyelveknél.",{"type":156,"level":157,"id":118,"text":119},{"type":143,"content":304},[305],"Egy összesített benchmarkon mért kétpontos különbség eltörpül, ha az alábbi tulajdonságok bármelyikében nincs egyezés:",{"type":307,"items":308},"list",[309,315,324,334,339,344],[310,314],{"tag":311,"children":312},"strong",[313],"Nyelvek és szakterület."," Ellenőrizd, milyen nyelveken kérdeznek ténylegesen a felhasználók, a vegyes nyelvű kérdéseket is beleértve, és hogy a modell látott-e a tiédhez hasonló szöveget: cikkszámokat, jogi németet, forráskódot.",[316,319,320,323],{"tag":311,"children":317},[318],"Kontextushossz és chunkméret."," Egy 2000 tokenes modell elég 400 tokenes chunkokhoz, egy 6000 tokenes szakaszt viszont csendben levág. A Voyage alapértelmezésben levágja a túl hosszú bemenetet, hacsak a ",{"tag":195,"children":321},[322],"truncation"," értékét nem állítod false-ra.",[325,328,329,333],{"tag":311,"children":326},[327],"Dimenziók és kimeneti típusok."," A Matryoshka-modelleknél hívásonként kisebb vektort választhatsz, és több API közvetlenül int8 vagy bináris vektort ad vissza. Mindkettő csökkenti az index memóriaigényét, ahogy az ",{"tag":150,"to":330,"children":331},"\u002Fblog\u002Fembedding-quantization-binary-matryoshka",[332],"embedding-kvantálásról"," szóló cikkben leírtam.",[335,338],{"tag":311,"children":336},[337],"Hosztolás és adattárolási hely."," Az, hogy a dokumentumaid elhagyhatják-e az infrastruktúrádat, és melyik régióba kerülhetnek, még a minőség előtt eldönti, hosztolt API vagy nyílt súlyok.",[340,343],{"tag":311,"children":341},[342],"Lekérdezési késleltetés és mennyiség."," Minden keresés először egy lekérdezést embeddel. Egy hálózati oda-vissza út lekérdezésenként egy chatasszisztensnél elfogadható, gépelés közbeni keresésnél viszont érezhető.",[345,348],{"tag":311,"children":346},[347],"Modellcsalád és élettartam."," Egy közös terű, közzétett kivezetési szabályzattal és több mérettel rendelkező modellcsalád később több mozgásteret ad, mint egyetlen checkpoint.",{"type":156,"level":157,"id":121,"text":122},{"type":143,"content":351},[352,353,357],"A hosztolt modellekkel lehet a leggyorsabban indulni: nincs GPU, nincs kiszolgálási stack, a nagy indexelési futáshoz pedig batch-árazás jár. A Google a Batch API-n keresztül a standard ár feléért kínálja az embedding-modelljeit, a Voyage pedig a standard díjnál 33%-kal olcsóbban számlázza a batch-kéréseket. Az ára az, hogy minden dokumentum és minden lekérdezés egy harmadik félen halad át, így a döntés adatvédelmi kérdéssé válik. A régióbeállításokat és a megőrzési lehetőségeket a ",{"tag":150,"to":354,"children":355},"\u002Fblog\u002Fgdpr-llm-api-eu-data-residency",[356],"GDPR és LLM-adattárolás"," cikkben tárgyaltam.",{"type":143,"content":359},[360],"A nyílt súlyú modelleknél a munka hozzád kerül, de ezek a modellek mára kicsik lettek. Az EmbeddingGemma kb. 308 millió paraméteres, és kvantálva 200 MB RAM alatt marad; a Qwen3-Embedding sorozat 0,6 milliárd paraméternél kezdődik, Apache 2.0 licenccel; a Voyage a voyage-4-nanót Apache 2.0 alatt tette közzé a Hugging Face-en. Egy átlagos CPU-s szerveren ezek kényelmesen elvégzik a lekérdezések embeddelését, a nagy indexelési futás pedig lehet egy egyszeri feladat egy bérelt GPU-n. Még ha végül hosztolt modellt választasz is, egy nyílt modell az összehasonlító tesztben megmutatja, mit kapsz a felárért.",{"type":156,"level":157,"id":124,"text":125},{"type":143,"content":363},[364],"A legújabb változás az egy közös térbe tanított modellcsaládok megjelenése. A négy Voyage 4 modell kompatibilis embeddingeket állít elő, így a voyage-4-large-dzsel egyszer embeddelt dokumentumok a voyage-4-lite vagy a nyílt voyage-4-nano lekérdezéseivel is kereshetők. A Voyage ezt aszimmetrikus visszakeresésnek hívja. Az index minőségét a drága modell adja, a lekérdezésenkénti költséget és késleltetést az olcsó, és a lekérdezőmodell később az index érintése nélkül cserélhető.",{"type":143,"content":366},[367],"A Voyage által dokumentált kompatibilitás a négy Voyage 4 modellre vonatkozik, korábbiakra nem, így a Voyage 3 generációról váltáskor számolj újraembeddeléssel. A közös tér ok arra, hogy egy modellcsaládot válassz, de nem ok arra, hogy ne tárold, melyik modell állította elő az egyes vektorokat.",{"type":156,"level":157,"id":127,"text":128},{"type":143,"content":370},[371],"A rossz összehasonlító eredmények többsége, amit látok, a modell hibás hívásából ered, nem magából a modellből. Három részletet érdemes minden jelöltnél a dokumentációval összevetni:",{"type":307,"ordered":373,"items":374},true,[375,388,397],[376,379,380,383,384,387],{"tag":311,"children":377},[378],"Lekérdezés- és dokumentummód."," A Voyage az ",{"tag":195,"children":381},[382],"input_type"," query és document értékénél más-más promptot fűz a szöveg elé. A gemini-embedding-001 ",{"tag":195,"children":385},[386],"task_type"," paramétert vár, például RETRIEVAL_QUERY, a gemini-embedding-2 pedig feladatelőtagot a szövegben. A Qwen3-Embedding a lekérdezés oldalán utasítást vár, ami a szerzők szerint jellemzően 1–5%-kal javítja az eredményt.",[389,392,393,396],{"tag":311,"children":390},[391],"Normalizálás a vágás után."," Az OpenAI embeddingjei 1 hosszúságúra normalizáltak, és a ",{"tag":195,"children":394},[395],"dimensions"," paraméter ezt megőrzi. Ha magad vágsz le egy vektort, vagy a gemini-embedding-001-et 3072 dimenzió alatt használod, a skalárszorzat előtt újra normalizálnod kell.",[398,401],{"tag":311,"children":399},[400],"Hosszú bemenetek levágása."," Tudd, hogy az API levágja vagy elutasítja-e a túl hosszú bemenetet, és naplózd a chunkonkénti tokenszámot, hogy egy chunkoló-módosítás ne tolja észrevétlenül a határ fölé a chunkokat.",{"type":195,"code":403},"import numpy as np\n\ndef prepare(vec: list[float], dims: int | None = None) -> np.ndarray:\n    \"\"\"Truncate a Matryoshka embedding and re-normalize it for dot-product search.\"\"\"\n    v = np.asarray(vec, dtype=np.float32)\n    if dims is not None:\n        v = v[:dims]               # keep the leading dimensions only\n    return v \u002F np.linalg.norm(v)   # unit length again, so dot product == cosine\n\n# Store the model id next to every vector: vectors from different models never mix.\nrow = {\"chunk_id\": \"doc-42#3\", \"model\": \"voyage-4-large\", \"dims\": 1024,\n       \"embedding\": prepare(raw_vector, 1024).tolist()}",{"type":156,"level":157,"id":130,"text":131},{"type":143,"content":406},[407],"Egy hasznos összehasonlító teszt kicsi, és nagyjából egy hétig tart. Valódi kérdések kellenek, a rájuk válaszoló chunkok, és minden jelöltnél ugyanaz a chunkolás, hogy csak a modell változzon.",{"type":409,"attrs":410,"inner":414,"caption":415},"diagram",{"viewBox":411,"role":412,"aria-labelledby":413},"0 0 720 170","img","emb1-t emb1-d","\u003Ctitle id=\"emb1-t\">Embedding-modellek összehasonlító tesztje\u003C\u002Ftitle>\u003Cdesc id=\"emb1-d\">A megjelölt releváns chunkokkal ellátott valódi kérdéseket minden jelölt modell ugyanazon a chunkolt korpuszon embeddeli. Jelöltenként recallt és nDCG-t számolunk, majd a költséggel és késleltetéssel együtt összevetjük őket, és kiválasztunk egy modellt.\u003C\u002Fdesc>\u003Cdefs>\u003Cmarker id=\"emb1-ah\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\">\u003Cpath d=\"M0 0L10 5L0 10z\" class=\"d-head\" \u002F>\u003C\u002Fmarker>\u003C\u002Fdefs>\u003Crect x=\"20\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"79\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Kérdések\u003C\u002Ftext>\u003Ctext x=\"79\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">100–300, címkézve\u003C\u002Ftext>\u003Cpath d=\"M138 85H158\" class=\"d-line\" marker-end=\"url(#emb1-ah)\" \u002F>\u003Crect x=\"160\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"220\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Azonos chunkok\u003C\u002Ftext>\u003Ctext x=\"220\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">egy chunkoló\u003C\u002Ftext>\u003Cpath d=\"M279 85H299\" class=\"d-line\" marker-end=\"url(#emb1-ah)\" \u002F>\u003Crect x=\"301\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"360\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">3–5 modell\u003C\u002Ftext>\u003Ctext x=\"360\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">1 nyílttal\u003C\u002Ftext>\u003Cpath d=\"M419 85H439\" class=\"d-line\" marker-end=\"url(#emb1-ah)\" \u002F>\u003Crect x=\"441\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"500\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Metrikák\u003C\u002Ftext>\u003Ctext x=\"500\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">recall@10, nDCG@10\u003C\u002Ftext>\u003Cpath d=\"M560 85H580\" class=\"d-line\" marker-end=\"url(#emb1-ah)\" \u002F>\u003Crect x=\"582\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"641\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Döntés\u003C\u002Ftext>\u003Ctext x=\"641\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">+ költség, késés\u003C\u002Ftext>",[416],"A chunkoló, a korpusz és a kérdések rögzítettek; a futások között csak az embedding-modell változik.",{"type":307,"ordered":373,"items":418},[419,421,423,425,432],[420],"Gyűjts 100–300 valódi kérdést keresési naplókból, ügyfélszolgálati jegyekből vagy a felhasználóktól, és jelöld meg az egyes kérdésekre válaszoló chunkokat. Legyenek köztük rövid kulcsszavas kérdések és hosszú kérdések is, minden nyelven, amelyen a felhasználóid írnak.",[422],"Válassz három-öt jelöltet: egy olcsó hosztolt modellt, egy erős hosztolt modellt, egy nyílt súlyú modellt és azt, amit a jelenlegi rendszered használ.",[424],"Embeddeld ugyanazokat a chunkokat mindegyikkel, a helyes lekérdezés- és dokumentummóddal, abban a dimenzióban, amelyet élesben használnál.",[426,427,431],"Mérd jelöltenként a recall@10 és az nDCG@10 értéket, aztán ismételd meg hibrid kereséssel és rerankerrel, mert a reranker elfedheti az első lépcső különbségeit. A metrikákat a ",{"tag":150,"to":428,"children":429},"\u002Fblog\u002Frag-evaluation-metrics",[430],"RAG értékelése"," cikk magyarázza.",[433],"Tedd egy táblázatba a minőséget, az indexméretet, a millió tokenenkénti költséget és a p95 lekérdezési késleltetést, és a minőségi kereten belüli legolcsóbb modellt válaszd.",{"type":435,"variant":436,"title":437,"body":438},"callout","warn","Soha ne keverj modelleket egy indexben",[439],[440],"A vektorkeresés gond nélkül összeveti az A modell lekérdezését a B modell dokumentumaival, és magabiztos zagyvaságot ad vissza. Minden vektor mellé tárold a modell nevét, verzióját és dimenzióját, a lekérdezési útvonal pedig tagadja meg a keresést egy másik modellel épített indexben.",{"type":156,"level":157,"id":133,"text":134},{"type":143,"content":443},[444,445,449],"Lesz még váltás; az elmúlt két év kiadási tempója alapján erre nyugodtan lehet fogadni. Az első naptól tervezz vele: őrizd meg a feldolgozott és chunkolt szöveget, hogy az újraembeddelés ne jelentsen újrafeldolgozást, verziózd az index nevét a modellel, és az új indexet a régi mellé építsd fel. Futtasd le mindkettőn az összehasonlító teszt kérdéseit, tükrözd az éles forgalom egy részét, majd konfigurációváltással válts át, és tartsd meg a régi indexet, amíg az értékelés stabil. Ugyanez a fegyelem érvényes a generáló modellre is, amit az ",{"tag":150,"to":446,"children":447},"\u002Fblog\u002Fllm-model-migration-regression-testing",[448],"LLM-modellváltás regresszió nélkül"," cikkben írtam le.",{"type":156,"level":157,"id":136,"text":137},{"type":143,"content":452},[453],"Ezek a véleményeim, nem benchmarkeredmények. Egy olyan német vagy magyar B2B-tudásbázisnál, amely használhat hosztolt API-t, az összehasonlító tesztet egy közös terű, több méretben elérhető modellcsaláddal, egy Gemini-modellel és nyílt alapvonalként a Qwen3-Embedding-0.6B modellel kezdem. Ha a dokumentumoknak helyben kell maradniuk, a Qwen3-Embedding két méretét vetem össze az EmbeddingGemmával, és a nagyobbat csak akkor választom, ha a mért javulás igazolja a plusz hardvert. Mindkét esetben legfeljebb 1024 dimenzióval élesítek, hacsak a teszt nem mutat egyértelmű veszteséget.",{"type":143,"content":455},[456],"A modell kevésbé számít, mint várnád, ha a chunkolás, a hibrid keresés és a rerankelés már a helyén van. Az első hetet az értékelőkészletre fordítsd, mert az túlél minden modellt, amit kipróbálsz.",{"type":156,"level":157,"id":139,"text":140},{"type":307,"ordered":373,"items":459},[460,464,467,470,473,476,479,482,485,488,491,494],[461],{"tag":462,"href":40,"children":463},"a",[39],[465],{"tag":462,"href":43,"children":466},[42],[468],{"tag":462,"href":46,"children":469},[45],[471],{"tag":462,"href":49,"children":472},[48],[474],{"tag":462,"href":52,"children":475},[51],[477],{"tag":462,"href":55,"children":478},[54],[480],{"tag":462,"href":58,"children":481},[57],[483],{"tag":462,"href":61,"children":484},[60],[486],{"tag":462,"href":64,"children":487},[63],[489],{"tag":462,"href":67,"children":490},[66],[492],{"tag":462,"href":70,"children":493},[69],[495],{"tag":462,"href":73,"children":496},[72],[498,558,616,669],{"slug":499,"published":5,"minutes":500,"category":7,"tags":501,"keywords":505,"about":517,"sources":527,"cover":552,"og":553,"expertise":76,"locales":554,"lang":80,"title":555,"description":556,"coverAlt":557},"contextual-retrieval-late-chunking",10,[10,502,9,503,504],"Chunking","Contextual retrieval","Late chunking",[506,507,508,509,510,511,512,513,514,515,516],"contextual retrieval","anthropic contextual retrieval","late chunking","contextual chunk embeddings","contextual embeddings rag","contextual bm25","chunk context rag","voyage-context-3","voyage-context-4","late chunking vs contextual retrieval","rag chunking context loss",[518,521,524],{"name":519,"url":520},"Retrieval-augmented generation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRetrieval-augmented_generation",{"name":522,"url":523},"Okapi BM25","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOkapi_BM25",{"name":525,"url":526},"Sentence embedding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSentence_embedding",[528,531,534,537,540,543,546,549],{"title":529,"url":530},"Anthropic: Introducing Contextual Retrieval (Sep 2024)","https:\u002F\u002Fwww.anthropic.com\u002Fnews\u002Fcontextual-retrieval",{"title":532,"url":533},"Günther et al.: Late Chunking, Contextual Chunk Embeddings Using Long-Context Embedding Models (2024, rev. 2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2409.04701",{"title":535,"url":536},"Jina AI: Late Chunking in Long-Context Embedding Models (Aug 2024)","https:\u002F\u002Fjina.ai\u002Fnews\u002Flate-chunking-in-long-context-embedding-models\u002F",{"title":538,"url":539},"Voyage AI: Introducing voyage-context-3 (Jul 2025)","https:\u002F\u002Fblog.voyageai.com\u002F2025\u002F07\u002F23\u002Fvoyage-context-3\u002F",{"title":541,"url":542},"Voyage AI: voyage-context-4 (Jun 2026)","https:\u002F\u002Fblog.voyageai.com\u002F2026\u002F06\u002F29\u002Fvoyage-context-4\u002F",{"title":544,"url":545},"Voyage AI: Contextualized chunk embeddings documentation","https:\u002F\u002Fdocs.voyageai.com\u002Fdocs\u002Fcontextualized-chunk-embeddings",{"title":547,"url":548},"Anthropic: Claude API pricing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fabout-claude\u002Fpricing",{"title":550,"url":551},"Qu, Tu and Bao: Is Semantic Chunking Worth the Computational Cost? (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.13070","\u002Fimages\u002Fblog\u002Fcontextual-retrieval-late-chunking\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcontextual-retrieval-late-chunking\u002Fog.jpg",[78,79,80],"Kontextuális visszakeresés és késleltetett chunkolás: a RAG-chunkok visszakapják a kontextusukat","A chunkok elveszítik a dokumentumukat. Hogyan javít ezen a contextual retrieval, a late chunking és a kontextusos embedding, mennyibe kerül, és mikor hagyd ki.","Négy szabad négyzet, alul széles kapocs fogja össze, mindegyik felfelé egy nagy laphoz kapcsolódik.",{"slug":559,"published":5,"minutes":6,"category":7,"tags":560,"keywords":564,"about":577,"sources":585,"cover":610,"og":611,"expertise":76,"locales":612,"lang":80,"title":613,"description":614,"coverAlt":615},"rag-access-control-permissions",[10,561,562,563,12],"Access control","Security","Multi-tenancy",[565,566,567,568,569,570,571,572,573,574,575,576],"rag access control","permission aware rag","document level security rag","rag multi tenancy","vector database access control","pgvector row level security","security trimming azure ai search","openfga rag authorization","qdrant multitenancy","pinecone namespaces multitenancy","owasp llm08 vector and embedding weaknesses","rag data leakage",[578,581,584],{"name":579,"url":580},"Access-control list","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAccess-control_list",{"name":582,"url":583},"Multitenancy","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMultitenancy",{"name":519,"url":520},[586,589,592,595,598,601,604,607],{"title":587,"url":588},"OWASP GenAI Security Project: LLM08:2025 Vector and Embedding Weaknesses","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm082025-vector-and-embedding-weaknesses\u002F",{"title":590,"url":591},"PostgreSQL documentation: Row Security Policies","https:\u002F\u002Fwww.postgresql.org\u002Fdocs\u002Fcurrent\u002Fddl-rowsecurity.html",{"title":593,"url":594},"pgvector README: filtering and iterative index scans","https:\u002F\u002Fgithub.com\u002Fpgvector\u002Fpgvector",{"title":596,"url":597},"Qdrant: Multitenancy and partitions guide","https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fguides\u002Fmultiple-partitions\u002F",{"title":599,"url":600},"Pinecone: Implement multitenancy using namespaces","https:\u002F\u002Fdocs.pinecone.io\u002Fguides\u002Findex-data\u002Fimplement-multitenancy",{"title":602,"url":603},"Microsoft Learn: Document-level access control in Azure AI Search","https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fsearch\u002Fsearch-document-level-access-overview",{"title":605,"url":606},"OpenFGA: RAG authorization use case","https:\u002F\u002Fopenfga.dev\u002Fdocs\u002Fuse-cases\u002Frag-authorization",{"title":608,"url":609},"Morris et al.: Text Embeddings Reveal (Almost) As Much As Text (EMNLP 2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.06816","\u002Fimages\u002Fblog\u002Frag-access-control-permissions\u002Fcover.webp","\u002Fimages\u002Fblog\u002Frag-access-control-permissions\u002Fog.jpg",[78,79,80],"Hozzáférés-kezelés RAG-hoz: jogosultságtudatos visszakeresés dokumentumszivárgás nélkül","Hogyan szivárogtatnak dokumentumot a RAG-asszisztensek, és hogyan állítsd meg: ACL minden chunkon, előszűrés, sorszintű biztonság pgvectorban, jogszinkron.","Hét kártya sorban, haton lakat jelvény, a csupasz kártya nyilat küld kifelé.",{"slug":617,"published":618,"minutes":6,"category":7,"tags":619,"keywords":624,"about":635,"sources":643,"cover":663,"og":664,"expertise":76,"locales":665,"lang":80,"title":666,"description":667,"coverAlt":668},"pdf-document-parsing-for-rag","2026-10-16",[10,620,621,622,623],"PDF parsing","OCR","Docling","Document AI",[625,626,627,628,629,630,631,632,633,634],"pdf parsing for rag","best pdf parser for rag","docling vs marker","marker vs mineru","pdf to markdown for llm","extract tables from pdf for rag","ocr for rag pipeline","olmocr bench","scanned pdf rag","document parsing llm",[636,639,642],{"name":637,"url":638},"PDF","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPDF",{"name":640,"url":641},"Optical character recognition","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOptical_character_recognition",{"name":519,"url":520},[644,647,650,653,656,659,662],{"title":645,"url":646},"Docling: README, features and license (GitHub)","https:\u002F\u002Fgithub.com\u002Fdocling-project\u002Fdocling",{"title":648,"url":649},"Auer et al.: Docling: An Efficient Open-Source Toolkit for AI-driven Document Conversion (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2501.17887",{"title":651,"url":652},"Datalab: Marker README, olmOCR-bench results and license (GitHub)","https:\u002F\u002Fgithub.com\u002Fdatalab-to\u002Fmarker",{"title":654,"url":655},"OpenDataLab: MinerU README and license (GitHub)","https:\u002F\u002Fgithub.com\u002Fopendatalab\u002FMinerU",{"title":657,"url":658},"Poznanski et al.: olmOCR: Unlocking Trillions of Tokens in PDFs with Vision Language Models (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.18443",{"title":660,"url":661},"Claude Platform Docs: PDF support","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fpdf-support",{"title":529,"url":530},"\u002Fimages\u002Fblog\u002Fpdf-document-parsing-for-rag\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fpdf-document-parsing-for-rag\u002Fog.jpg",[78,79,80],"PDF-feldolgozás RAG-hoz: layout-pipeline-ok, OCR és vizuális modellek összevetve","Miért a PDF-feldolgozáson múlik a RAG minősége, miben más a Docling, a Marker, a MinerU és a VLM-OCR, és hogyan teszteld a parsert saját dokumentumokon.","Rendezetlen blokkok egy lapon egyenletes sorrá válnak a második lapon.",{"slug":670,"published":618,"minutes":671,"category":7,"tags":672,"keywords":676,"about":686,"sources":696,"cover":717,"og":718,"expertise":76,"locales":719,"lang":80,"title":720,"description":721,"coverAlt":722},"multilingual-rag-german-hungarian",7,[10,673,9,674,675],"Multilingual","German","Hungarian",[677,678,679,680,21,681,682,683,684,685],"multilingual rag","german rag embeddings","hungarian nlp search","cross-lingual retrieval","bge-m3 german","german compound words search","hungarian stemming postgres","multilingual-e5-large-instruct","qwen3 embedding multilingual",[687,690,693],{"name":688,"url":689},"Cross-language information retrieval","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCross-language_information_retrieval",{"name":691,"url":692},"Agglutinative language","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAgglutinative_language",{"name":694,"url":695},"Compound (linguistics)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCompound_(linguistics)",[697,699,702,705,708,711,714],{"title":698,"url":40},"Enevoldsen et al.: MMTEB: Massive Multilingual Text Embedding Benchmark (2025)",{"title":700,"url":701},"Chen et al.: M3-Embedding (BGE-M3): Multi-Linguality, Multi-Functionality, Multi-Granularity (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.03216",{"title":703,"url":704},"Zhang et al.: Qwen3 Embedding: Advancing Text Embedding and Reranking Through Foundation Models (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2506.05176",{"title":706,"url":707},"Hugging Face: intfloat\u002Fmultilingual-e5-large-instruct model card","https:\u002F\u002Fhuggingface.co\u002Fintfloat\u002Fmultilingual-e5-large-instruct",{"title":709,"url":710},"Elasticsearch Reference: Hyphenation decompounder token filter","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Freference\u002Ftext-analysis\u002Fanalysis-hyp-decomp-tokenfilter",{"title":712,"url":713},"PostgreSQL 18 Documentation: Text search dictionaries","https:\u002F\u002Fwww.postgresql.org\u002Fdocs\u002Fcurrent\u002Ftextsearch-dictionaries.html",{"title":715,"url":716},"Snowball: stemming algorithms by language","https:\u002F\u002Fsnowballstem.org\u002Falgorithms\u002F","\u002Fimages\u002Fblog\u002Fmultilingual-rag-german-hungarian\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fmultilingual-rag-german-hungarian\u002Fog.jpg",[78,79,80],"Többnyelvű RAG német és magyar tartalomra: embeddingek, összetett szavak és nyelvek közötti keresés","RAG német és magyar tartalom fölött: többnyelvű embeddingek, összetett szavak, szótövezés, ékezetek és nyelvenkénti értékelés.","Két sor kis négyzet, mindegyik fölött pont, olvad össze egyetlen magas téglalappá.",1792222774304]