[{"data":1,"prerenderedAt":714},["ShallowReactive",2],{"blog-splade-learned-sparse-retrieval-hu":3},{"slug":4,"published":5,"updated":6,"minutes":7,"category":8,"tags":9,"keywords":15,"about":25,"sources":35,"cover":66,"og":67,"expertise":68,"locales":69,"lang":72,"title":73,"description":74,"coverAlt":75,"metaTitle":76,"takeaways":77,"faq":83,"toc":99,"blocks":127,"others":460},"splade-learned-sparse-retrieval","2026-09-28","2026-10-01",8,"rag",[10,11,12,13,14],"SPLADE","Sparse retrieval","BM25","Hybrid search","Elasticsearch",[16,10,17,18,19,20,21,22,23,24],"learned sparse retrieval","SPLADE++ vs BM25","neural sparse search","Elasticsearch sparse_vector","ELSER","rank_features","OpenSearch neural sparse","learned sparse retrieval index size","sentence-transformers sparse encoder",[26,29,32],{"name":27,"url":28},"Okapi BM25","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOkapi_BM25",{"name":30,"url":31},"Inverted index","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInverted_index",{"name":33,"url":34},"BERT (language model)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBERT_%28language_model%29",[36,39,42,45,48,51,54,57,60,63],{"title":37,"url":38},"naver\u002Fsplade on GitHub","https:\u002F\u002Fgithub.com\u002Fnaver\u002Fsplade",{"title":40,"url":41},"SPLADE++ (arXiv 2205.04733)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2205.04733",{"title":43,"url":44},"naver\u002Fsplade-v3 model card","https:\u002F\u002Fhuggingface.co\u002Fnaver\u002Fsplade-v3",{"title":46,"url":47},"Static pruning for learned sparse indexes (arXiv 2304.12702)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2304.12702",{"title":49,"url":50},"OpenSearch blog: faster semantic sparse retrieval in 2.12","https:\u002F\u002Fopensearch.org\u002Fblog\u002FA-deep-dive-into-faster-semantic-sparse-retrieval-in-os-2-12\u002F",{"title":52,"url":53},"OpenSearch docs: sparse encoding processor","https:\u002F\u002Fdocs.opensearch.org\u002Flatest\u002Fingest-pipelines\u002Fprocessors\u002Fsparse-encoding\u002F",{"title":55,"url":56},"Elastic docs: sparse_vector field type","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Freference\u002Felasticsearch\u002Fmapping-reference\u002Fsparse-vector",{"title":58,"url":59},"Elastic docs: ELSER","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fexplore-analyze\u002Fmachine-learning\u002Fnlp\u002Fml-nlp-elser",{"title":61,"url":62},"Elastic Search Labs: ELSER v2, part 2","https:\u002F\u002Fwww.elastic.co\u002Fsearch-labs\u002Fblog\u002Fintroducing-elser-v2-part-2",{"title":64,"url":65},"Sentence Transformers: sparse encoder usage","https:\u002F\u002Fsbert.net\u002Fdocs\u002Fsparse_encoder\u002Fusage\u002Fusage.html","\u002Fimages\u002Fblog\u002Fsplade-learned-sparse-retrieval\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fsplade-learned-sparse-retrieval\u002Fog.jpg","ai-engineer",[70,71,72],"en","de","hu","SPLADE és tanult ritka visszakeresés a gyakorlatban: BM25, indexméret, késleltetés","Tanult ritka visszakeresés: hogyan bővít a SPLADE, a modellcsalád és licencei, indexméret és késleltetés, motortámogatás, és mikor jobb a BM25-nél.","Egy szócsík sok vékony oszlopra bomlik, a kevés magas egy kartotékdobozt táplál.","SPLADE és tanult ritka visszakeresés · Balázs Csorba",[78,79,80,81,82],"A tanult ritka visszakeresés megtartja a BM25 invertált indexét, de tanult kifejezéssúlyokat használ, és bővítő kifejezéseket ad hozzá, így a dokumentumok más szavakat használó lekérdezésekre is illeszkednek.","A 13 adathalmazos BEIR-részhalmazon a SPLADE++ átlagosan kb. 50,5–50,7 nDCG@10-et ért el a BM25 43,7-ével szemben, a SPLADE++ és a BM25 összege pedig 52,1-et, vagyis az összefésülés továbbra is javít.","A Naver saját SPLADE-checkpointjai CC BY-NC-SA 4.0 licencűek, ami kizárja a kereskedelmi használatot; az Apache-2.0 alatti újrakiadások és az ELSER a szokásos kerülőutak.","A költség valós, de kezelhető: az OpenSearch mérése szerint a csak dokumentumoldali ritka visszakeresés indexbejárása kb. 1,8-szorosa a BM25-ének, a statikus metszés pedig legfeljebb 2 százalékos minőségvesztéssel kétszeres gyorsulást ad.","Az Elasticsearch és az OpenSearch is az invertált indexen futtatja a tanult ritka vektorokat, és BM25- vagy sűrű találatokkal fésüli össze őket; második visszakereső bevezetése előtt mérjen a saját lekérdezésein.",[84,87,90,93,96],{"q":85,"a":86},"Mi az a tanult ritka visszakeresés?","Olyan visszakeresési módszer, amely a szöveget szókincsbeli kifejezések tanult súlyú ritka vektoraként ábrázolja, olyan bővítő kifejezésekkel együtt, amelyek nem szerepelnek a szövegben. Hagyományos invertált indexen fut, mint a BM25, de a sűrű modellekhez hasonlóan illeszti a rokon megfogalmazásokat.",{"q":88,"a":89},"Jobb a SPLADE a BM25-nél?","Területen kívüli benchmarkokon általában igen: a SPLADE++ 13 BEIR-adathalmazon átlagosan kb. 50,7 nDCG@10-et ért el a BM25 43,7-ével szemben. Nem mindenhol jobb, és a BM25-tel kombinálva még magasabb pontszámot ért el. A saját lekérdezésein teszteljen, főleg ha pontos azonosítók dominálnak.",{"q":91,"a":92},"Használhatom a SPLADE-et kereskedelmi célra?","A Naver hivatalos SPLADE-checkpointjai és a repó CC BY-NC-SA 4.0 licencűek, vagyis nem kereskedelmi célúak. Léteznek Apache-2.0 alatti közösségi újrakiadások, például a Qdrant\u002FSplade_PP_en_v1, alternatíva pedig az Elasticsearch ELSER-je és az OpenSearch saját ritka modelljei. Pontosan annak a checkpointnak a licencét ellenőrizze, amelyet telepít.",{"q":94,"a":95},"Mennyivel lassabb a tanult ritka visszakeresés a BM25-nél?","Az OpenSearch benchmarkjában a csak dokumentumoldali neurális ritka keresés millió dokumentumonként kb. 5,15 ms alatt járta be az indexet, szemben a BM25 2,80 ms-ával, ami nagyjából 1,8-szoros. A lekérdezésenként modellt futtató bi-encoder mód jóval lassabb volt. A tokenmetszés és a kétfázisú lekérdezés csökkenti a különbséget.",{"q":97,"a":98},"Támogatja az Elasticsearch a SPLADE-szerű visszakeresést?","Igen. Az Elasticsearchben van sparse_vector mezőtípus és saját tanult ritka modell, az ELSER, amely csak angolul működik, és egy mező első 512 tokenjét kódolja. A tokenmetszés a 9.1 óta alapból be van kapcsolva, és az RRF összefésülheti az ELSER-t a BM25-tel vagy sűrű visszakeresőkkel.",[100,103,106,109,112,115,118,121,124],{"id":101,"title":102},"what-learned-sparse-retrieval-is","Mi a tanult ritka visszakeresés",{"id":104,"title":105},"how-splade-expands","Hogyan bővíti a SPLADE a szöveget",{"id":107,"title":108},"the-model-family-and-licenses","A modellcsalád és a licenccsapda",{"id":110,"title":111},"the-efficiency-reality","A hatékonyság a gyakorlatban: indexméret és késleltetés",{"id":113,"title":114},"engine-support","Támogatás az Elasticsearchben és az OpenSearchben",{"id":116,"title":117},"when-learned-sparse-beats-bm25","Mikor jobb a BM25-nél, és mikor nem",{"id":119,"title":120},"training-and-domain-adaptation","Tanítás és területi adaptáció",{"id":122,"title":123},"a-practical-checklist","Gyakorlati ellenőrzőlista",{"id":125,"title":126},"sources","Források",[128,137,146,149,152,160,163,164,171,177,180,187,190,191,202,214,287,288,293,297,302,315,316,333,352,365,368,369,372,380,381,390,393,401,402,419,427,428],{"type":129,"content":130},"paragraph",[131,132,136],"A ",{"tag":133,"children":134},"strong",[135],"tanult ritka visszakeresés"," megtartja a BM25 működését, a szókincsbeli kifejezések invertált indexét, de a kézzel hangolt kifejezésstatisztikák helyett egy nyelvmodell által tanult súlyokat használ, és olyan bővítő kifejezéseket ad hozzá, amelyek sosem szerepelnek a szövegben. A legismertebb család a SPLADE. Így egy „rozsdamentes golyóscsapról” szóló dokumentum illeszkedhet egy „korrózióálló elzárószelep” lekérdezésre, miközben az index, a lekérdezőmotor és a pontos kifejezésegyezés ugyanaz marad, amit már üzemeltet.",{"type":129,"content":138},[139,140,145],"Ez a cikk bemutatja, hogyan bővíti a SPLADE a szöveget, a modellcsaládot és a licenccsapdáját, mibe kerül az index és a lekérdezés, hogyan futtatja az Elasticsearch és az OpenSearch, és mikor jobb a BM25-nél vagy egy sűrű hibrid keresésnél. Hogy a ritka visszakeresés hol helyezkedik el egy teljes RAG-folyamatban, azt a ",{"tag":141,"to":142,"children":143},"link","\u002Fblog\u002Frag-pipeline-chunking-hybrid-search-reranking",[144],"RAG-folyamatok: darabolás, hibrid keresés és újrarangsorolás"," című cikk írja le; a számok 2026 októberi állapotot tükröznek.",{"type":147,"level":148,"id":101,"text":102},"heading",2,{"type":129,"content":150},[151],"BM25-szerű visszakeresés tanult súlyokkal és tanult szókincsbővítéssel. Minden dokumentum és lekérdezés a modell szókincse fölötti vektorrá válik, nagyrészt nullákkal, pozitív súlyokkal a fontos kifejezéseken, beleértve a modell által hozzáadott rokon kifejezéseket is. Mivel a vektor ritka, és kifejezések szerint kulcsolt, belefér egy invertált indexbe, és megőrzi a kulcsszavas keresés átláthatóságát: látja, mely kifejezések illeszkedtek.",{"type":129,"content":153},[154,155,159],"A javulás főként a tanítási területen kívül jelentkezik. A SPLADE++-tanulmányban 13 BEIR-adathalmazon a BM25 átlaga 43,7 nDCG@10 volt, a Contrieveré 47,5, a ColBERTv2-é 49,7, a SPLADE++-é 50,5–50,7; a SPLADE++ és a BM25 pontszámainak összege 52,1-et ért el, vagyis a kettő továbbra is kiegészíti egymást (",{"tag":156,"href":41,"children":157},"a",[158],"SPLADE++","). A tanítási területen, MS MARCO-n ugyanez a tanulmány a BM25-re 18,4, a SPLADE++-ra 38,0 MRR@10-et közöl.",{"type":129,"content":161},[162],"A sűrű visszakeresők más úton oldanak meg hasonló problémát: néhány száz vagy ezer folytonos dimenzióra képezik le a szöveget, és vektoros hasonlóság alapján illesztenek. Erősek a jelentésben, gyengék a ritka pontos kifejezésekben, és a találataikat nehéz megmagyarázni. A tanult ritka visszakeresés a kettő között áll: megtartja a pontos kifejezésegyezést és az áttekinthető szókincset, a nyelvmodellt pedig csak arra használja, hogy eldöntse, mely kifejezések számítanak, és mely rokon kifejezéseket kell hozzáadni.",{"type":147,"level":148,"id":104,"text":105},{"type":129,"content":165},[166,167,170],"A SPLADE a BERT maszkolt nyelvmodell-fejét használja újra, amely minden bemeneti tokenre már megjósolja, mennyire valószínű az adott helyen a szókincs bármely kifejezése. Ezeket a pontszámokat ReLU-n és logaritmikus telítésen vezeti át, maximum-poolinggal összevonja a bemeneti tokeneken, és szókincsbeli kifejezésenként egy súlyt kap, a BERT szókincsénél 30 522-t (",{"tag":156,"href":44,"children":168},[169],"SPLADE-v3","). Tanítás közben egy ritkasági regularizáló a legtöbb súlyt nullára nyomja, így minden szöveg csak a fontos kifejezéseit és korlátozott számú bővítést tart meg.",{"type":172,"src":173,"alt":174,"wide":175,"caption":176},"image","\u002Fimages\u002Fblog\u002Fsplade-learned-sparse-retrieval\u002Fdiagram-8.webp","Hogyan lesz a SPLADE-ben a szövegből ritka vektor Öt lépés balról jobbra: a bemeneti szöveg; egy BERT maszkolt nyelvmodell-fej minden bemeneti tokenre pontozza a szókincs összes kifejezését; a ReLU és a logaritmikus telítés pozitívan és csillapítva tartja a súlyokat; a tokeneken végzett maximum-pooling szókincsbeli kifejezésenként egy súlyt ad, egy ritkasági regularizáló a legtöbbet nullán tartja; a kapott 30 522 dimenziós ritka vektor pedig egy hagyományos invertált indexbe kerül.",true,"A bővítő kifejezések a nyelvmodellből jönnek, de az index és a lekérdezőmotor ugyanaz, amelyet a BM25 használ.",{"type":129,"content":178},[179],"A bővítésnél romolhat is el valami. Egy webes kérdéseken tanított modell olyan kifejezéseket is hozzáadhat, amelyek az általános angolban hihetők, az Ön területén viszont félrevezetők, például egy termékcsalád nevét egy független köznapi szóhoz rendeli. Ha a lenti kódrészlethez hasonlóan kiírja a legfontosabb bővítő kifejezéseket a saját dokumentumai egy mintájára, az percek alatt megvan, és gyorsan megmutatja, érti-e a modell a szókincsét, vagy adaptálni kell.",{"type":129,"content":181},[182,183,186],"A regularizáló erőssége a fő szabályozó: erősebb regularizálás kevesebb nem nulla kifejezést, kisebb indexet és gyorsabb lekérdezést jelent, némi minőségi áron. A Naver saját repója pontosan ezért írja le a SPLADE-et úgy, mint „inkább modellek egy osztálya, mint egyetlen modell” (",{"tag":156,"href":38,"children":184},[185],"naver\u002Fsplade","). A lekérdezés és a dokumentum eltérően is kódolható, és ezt használják ki a lenti hatékony és csak dokumentumoldali változatok.",{"type":188,"code":189},"code","# Encode with a learned sparse model and inspect the expansion terms (sentence-transformers SparseEncoder)\nfrom sentence_transformers import SparseEncoder\n\nmodel = SparseEncoder(\"Qdrant\u002FSplade_PP_en_v1\")        # Apache-2.0 re-host; check the license you deploy\ndoc = model.encode_document([\"Stainless steel ball valve DN50, PN40, threaded ends\"])\nquery = model.encode_query([\"corrosion resistant shut-off valve 2 inch\"])\n\nfor token, weight in model.decode(doc[0], top_k=12):    # expansion terms that were never in the text\n    print(f\"{token:>14}  {weight:.2f}\")\nprint(model.similarity(query, doc))                     # dot product over the shared vocabulary",{"type":147,"level":148,"id":107,"text":108},{"type":129,"content":192},[193,194,196,197,201],"A SPLADE v2-t a SPLADE++ követte, amely cross-encoderből való desztillációt, bányászott nehéz negatívokat és CoCondenser-inicializálást adott hozzá, majd 2024 márciusában a SPLADE-v3, amely MS MARCO-n 40,2 MRR@10-et, BEIR-13-on 51,7 átlagos nDCG@10-et közöl, legfeljebb 512 bemeneti tokennel (",{"tag":156,"href":44,"children":195},[169],"). 2026-ban a Naver kiadta a SPLADE-Code-06B-t is, egy Qwen3-alapú, 0.6B-s kódmodellt, amelyet a modellkártyája az 1B paraméter alatti legjobb MTEB-modellként mutat be; ezt kezelje gyártói állításként (",{"tag":156,"href":198,"children":199},"https:\u002F\u002Fhuggingface.co\u002Fnaver\u002Fsplade-code-06B",[200],"SPLADE-Code",").",{"type":203,"variant":204,"title":205,"body":206},"callout","warn","A Naver checkpointjai nem kereskedelmi célúak",[207],[208,209,213],"A naver\u002Fsplade repó és a Naver hivatalos checkpointjai, a SPLADE-v3-at is beleértve, CC BY-NC-SA 4.0 licencűek. Ez a legtöbb kereskedelmi termékből kizárja őket. Léteznek Apache-2.0 alatti közösségi újrakiadások, például a Qdrant\u002FSplade_PP_en_v1 (",{"tag":156,"href":210,"children":211},"https:\u002F\u002Fhuggingface.co\u002FQdrant\u002FSplade_PP_en_v1",[212],"Qdrant","), gyártói alternatíva pedig az Elastic ELSER-je és az OpenSearch ritka modelljei. Mielőtt élesbe kerül, ellenőrizze pontosan annak a checkpointnak a licencét.",{"type":215,"head":216,"rows":227},"table",[217,219,221,223,225],[218],"Modell",[220],"Méret",[222],"Licenc",[224],"Hol fut",[226],"Megjegyzés",[228,238,246,257,266,276],[229,230,232,234,236],[169],[231],"BERT-base",[233],"CC BY-NC-SA 4.0",[235],"bármely ritka vektoros motor",[237],"40,2 MRR@10, 51,7 BEIR-13",[239,241,242,243,244],[240],"SPLADE++ (selfdistil)",[231],[233],[235],[245],"50,7 BEIR-13",[247,249,251,253,255],[248],"Qdrant\u002FSplade_PP_en_v1",[250],"BERT-base, ONNX",[252],"Apache-2.0",[254],"Qdrant, FastEmbed és mások",[256],"kereskedelmi célra használható újrakiadás",[258,260,262,263,264],[259],"efficient-SPLADE",[261],"külön lekérdezés- és dok.-kódoló",[233],[235],[265],"BM25-höz képest 4 ms-on belül",[267,269,271,273,274],[268],"ELSER v2",[270],"BERT-base, kb. 100M",[272],"Elastic, előfizetéssel",[14],[275],"csak angol, 512 token",[277,279,281,283,285],[278],"OpenSearch ritka modellek",[280],"különféle",[282],"lásd modellkártya",[284],"OpenSearch",[286],"csak dok. és bi-encoder mód",{"type":147,"level":148,"id":110,"text":111},{"type":129,"content":289},[290,291,201],"A bővítés meghosszabbítja a posting-listákat, így egy tanult ritka index nagyobb és lassabban bejárható, mint egy ugyanarról a szövegről készült BM25-index; hogy mennyivel, az a modell regularizálásának erősségén múlik, és nem találtam erre egyetlen elsődleges arányszámot. A mért költségek viszont konkrétak. Az OpenSearch MS MARCO-n futtatott benchmarkja szerint a BM25 5,4 ms fix késleltetés plusz millió dokumentumonként 2,80 ms, a csak dokumentumoldali neurális ritka keresés 8,7 ms plusz millió dokumentumonként 5,15 ms, ami a BM25 bejárásának nagyjából 1,8-szorosa (",{"tag":156,"href":50,"children":292},[284],{"type":172,"src":294,"alt":295,"wide":175,"caption":296},"\u002Fimages\u002Fblog\u002Fsplade-learned-sparse-retrieval\u002Fdiagram-18.webp","Indexbejárási költség millió dokumentumonként Három vízszintes sáv, OpenSearch 2.12-ben mérve MS MARCO-n. A BM25 millió dokumentumonként 2,80 ms alatt járja be az invertált indexet, 5,4 ms fix késleltetéssel. A csak dokumentumoldali neurális ritka keresés millió dokumentumonként 5,15 ms, 8,7 ms fix késleltetéssel, ami a BM25 nagyjából 1,8-szorosa. A lekérdezésenként modellt futtató bi-encoder mód millió dokumentumonként 20,58 ms, 265,4 ms fix késleltetéssel.","A csak dokumentumoldali tanult ritka keresés millió dokumentumonként nagyjából a BM25 kétszerese; a lekérdezésenkénti modellfuttatás a drága rész.",{"type":129,"content":298},[299,300,201],"A drága mód az, amely minden lekérdezésnél modellt futtat. Ugyanebben a benchmarkban a bi-encoder mód 265,4 ms fix késleltetést és millió dokumentumonként 20,58 ms-ot adott; az OpenSearch kétfázisú processzora, amely először a nagy súlyú tokenekkel pontoz, majd finomít, az átlagos késleltetést csak dokumentumoldali módban 53,56-ról 38,61 ms-ra, bi-encoder módban 300,79-ről 121,64 ms-ra csökkentette. A Naver hatékonysági munkája külön, könnyebb lekérdezéskódolókkal 4 ms-on belül került a BM25 késleltetéséhez, kevesebb mint 10 százalékos MRR@10-veszteséggel (",{"tag":156,"href":38,"children":301},[185],{"type":129,"content":303},[304,305,308,309,312,313,201],"A metszés a legolcsóbb eszköz. A tanult ritka indexek statikus metszése legfeljebb 2 százalékos minőségvesztéssel kétszeres, legfeljebb 8 százalékossal négyszeres gyorsulást adott, a rerankerek pedig a metszett indexekből származó jelölteken is robusztusak maradtak (",{"tag":156,"href":47,"children":306},[307],"statikus metszés","). Az OpenSearch betöltési processzora többféle metszést támogat, és a 0,1-es ",{"tag":188,"children":310},[311],"max_ratio"," kevesebb mint 1 százalékos relevanciaveszteség mellett nagyjából 40 százalékkal csökkenti a tárigényt (",{"tag":156,"href":53,"children":314},[284],{"type":147,"level":148,"id":113,"text":114},{"type":129,"content":317},[318,319,322,323,326,327,330,331,201],"Mindkét motor súlyozott kifejezésekként tárolja a tanult ritka vektorokat az invertált indexen. Az Elasticsearchben a ",{"tag":188,"children":320},[321],"sparse_vector"," a használandó mezőtípus; a tokenmetszés a 9.1 óta alapból be van kapcsolva, a ritka vektorok a 9.2 óta alapból kimaradnak a ",{"tag":188,"children":324},[325],"_source","-ból, a súlyokat pedig 9 értékes biten tárolja, nagyjából 0,4 százalékos relatív hibával (",{"tag":156,"href":56,"children":328},[329],"Elastic","). Az Elastic saját modellje, az ELSER v2 csak angolul működik, egy mező első 512 tokenjét kódolja, és 12 BEIR-adathalmazból 10-en legyőzte a BM25-öt, átlagosan 18 százalékkal jobb nDCG@10-zel (",{"tag":156,"href":59,"children":332},[20],{"type":129,"content":334},[335,336,339,340,343,344,348,349,351],"Az ELSER lekérdezésoldali optimalizálását érdemes elvként átvenni: hagyja el a vártnál sokkal gyakoribb lekérdezéstokeneket, tartsa meg a maximális súly 0,4-szerese fölötti tokeneket, és a top 50-et pontozza újra a teljes tokenkészlettel. Az Elastic átlagosan 3,4-szeres gyorsulást jelent elhanyagolható nDCG@10-változás mellett (",{"tag":156,"href":62,"children":337},[338],"Elastic Search Labs","). Összefésüléshez az Elasticsearch RRF retrievere egy BM25 standard retrievert kombinál egy ELSER retrieverrel, alapértelmezett 60-as ",{"tag":188,"children":341},[342],"rank_constant"," mellett (",{"tag":156,"href":345,"children":346},"https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Freference\u002Felasticsearch\u002Frest-apis\u002Freciprocal-rank-fusion",[347],"RRF","). Az OpenSearch csak dokumentumoldali és bi-encoder módú neurális ritka keresést, kétfázisú processzort, a 3.3 óta pedig közelítő keresést kínál ",{"tag":188,"children":350},[321]," mezőkön.",{"type":129,"content":353},[354,355,359,360,364],"A dedikált vektortárak is támogatják a ritka vektorokat, ami akkor számít, ha már üzemeltet ilyet; ezt az oldalt a ",{"tag":141,"to":356,"children":357},"\u002Fblog\u002Fqdrant",[358],"Qdrant-ismertető"," tárgyalja. A keresőfürtön belüli vektorok általános működését a ",{"tag":141,"to":361,"children":362},"\u002Fblog\u002Felasticsearch-opensearch-vector-search",[363],"vektoros keresés Elasticsearchben és OpenSearchben"," írja le.",{"type":129,"content":366},[367],"A gyakorlatban a motorválasztás a már futó fürtöt követi. Ha Elasticsearchet használ Elastic-előfizetéssel és angol tartalommal, az ELSER a legkevesebb munka. Ha OpenSearchet, akkor annak saját ritka modelljei és a csak dokumentumoldali mód a természetes kezdés. Ha bármelyik motorban nyílt SPLADE-checkpointot szeretne, kódolja a dokumentumokat saját betöltési feladatban, és a tokensúlyokat írja egy ritka mezőbe, amelyet mindkét motor elfogad.",{"type":147,"level":148,"id":116,"text":117},{"type":129,"content":370},[371],"A tanult ritka visszakeresés ott segít a legtöbbet, ahol a lekérdezések és a dokumentumok mást szóval mondják ugyanazt: felhasználói kérdések műszaki dokumentációval szemben, természetes nyelvű termékkeresések tömör katalógusszöveggel szemben, szinonimák és átfogalmazások angolul. Ráadásul egy második visszakeresőt ad, amelynek találatai kifejezésről kifejezésre magyarázhatók, amit a sűrű vektorok nem tudnak. A Spryker- és Pimcore-munkákból ismert, cikkszámokkal és normalizált attribútumokkal teli B2B katalógusokban éppen a bővítés és a pontos kifejezések kombinációja a fő motiváció.",{"type":129,"content":373},[374,375,379],"Kevésbé segít, ha a lekérdezések többnyire pontos azonosítók, amelyeket a BM25 már megtalál, ha a tartalom nem angol, a modell pedig csak angolul működik, mint az ELSER, vagy ha a korpusz olyan nagy, hogy egy második, hosszabb posting-lista a drága rész. A benchmarkokon sem egyöntetűen jobb; a SPLADE++ eredményei szerint egyes BEIR-adathalmazokon továbbra is a BM25 nyer. Kifejezetten a cikkszámos termékkeresést a ",{"tag":141,"to":376,"children":377},"\u002Fblog\u002Fsemantic-product-search-b2b",[378],"szemantikus termékkeresés B2B-ben"," tárgyalja.",{"type":147,"level":148,"id":119,"text":120},{"type":129,"content":382},[383,384,386,387,201],"Egy ritka modell adaptálása egyetlen GPU-val is elérhető. A naver\u002Fsplade repó tanítási forgatókönyvenként ad konfigurációkat, köztük egy 16 GB-os kártyára szabott, egy GPU-s konfigurációt, amely 37,2 MRR@10-et ér el (",{"tag":156,"href":38,"children":385},[185],"). A Sentence Transformersben ma már teljes értékű SparseEncoder van SPLADE-specifikus veszteségfüggvényekkel, például SpladeLoss, CachedSpladeLoss és FlopsLoss, és támogatja a lekérdezés és a dokumentum aszimmetrikus kódolását (",{"tag":156,"href":65,"children":388},[389],"Sentence Transformers",{"type":129,"content":391},[392],"Az angoltól eltérő nyelveknél gyakran az adaptáció az egyetlen út, mert a legtöbb publikált ritka checkpoint, köztük az ELSER, csak angolul működik. Egy BERT-szerű szókincsű többnyelvű alapmodell ugyanazokkal a veszteségfüggvényekkel ritka kódolóvá tanítható, de maga a szókincs korlátozza, mi bővíthető; a német összetett szavakat például szódarabokra bontja, és a bővítés ezeken a darabokon működik, nem egész szavakon.",{"type":129,"content":394},[395,396,400],"Az adatoldal ugyanaz, mint a sűrű finomhangolásnál: lekérdezés–dokumentum párok naplókból vagy generált lekérdezésekből, bányászott nehéz negatívok és egy befagyasztott kiértékelő készlet; ezt a ciklust a ",{"tag":141,"to":397,"children":398},"\u002Fblog\u002Fembedding-fine-tuning-domain",[399],"beágyazó modellek finomhangolása"," tárgyalja. A ritkasági regularizáló a plusz szabályozó, és érdemes végigpróbálni, mert közvetlenül cseréli a minőséget indexméretre és késleltetésre.",{"type":147,"level":148,"id":122,"text":123},{"type":403,"ordered":175,"items":404},"list",[405,407,409,411,413,415,417],[406],"Először mérje meg a BM25-öt és a jelenlegi hibrid keresését egy címkézett lekérdezéskészleten.",[408],"Ellenőrizze pontosan a checkpoint licencét; a Naveréi nem kereskedelmi célúak.",[410],"Vesse össze a modell nyelvi lefedettségét a tartalmával.",[412],"Csak dokumentumoldali módban kezdjen, és késleltetésmérés előtt metssze a tokeneket.",[414],"RRF-fel fésülje össze BM25- vagy sűrű találatokkal, majd vesse össze nélküle végzett összefésüléssel.",[416],"Mérje az indexméretet és a p95 késleltetést a valós dokumentumszámán.",[418],"Csak akkor tartsa meg, ha a recall a saját k-ja mellett annyit javul, hogy megérje a második index.",{"type":129,"content":420},[421,422,426],"Ha azt mérlegeli, kiérdemli-e egy tanult ritka visszakereső a helyét a BM25 és a sűrű keresés mellett, nézze meg a ",{"tag":141,"to":423,"children":424},"\u002Fexpertise\u002Fai-engineer",[425],"MI-mérnöki munkámat",".",{"type":147,"level":148,"id":125,"text":126},{"type":403,"ordered":175,"items":429},[430,433,436,439,442,445,448,451,454,457],[431],{"tag":156,"href":38,"children":432},[37],[434],{"tag":156,"href":41,"children":435},[40],[437],{"tag":156,"href":44,"children":438},[43],[440],{"tag":156,"href":47,"children":441},[46],[443],{"tag":156,"href":50,"children":444},[49],[446],{"tag":156,"href":53,"children":447},[52],[449],{"tag":156,"href":56,"children":450},[55],[452],{"tag":156,"href":59,"children":453},[58],[455],{"tag":156,"href":62,"children":456},[61],[458],{"tag":156,"href":65,"children":459},[64],[461,537,595,653],{"slug":462,"published":463,"minutes":464,"category":8,"tags":465,"keywords":471,"about":484,"sources":494,"cover":531,"og":532,"expertise":68,"locales":533,"lang":72,"title":534,"description":535,"coverAlt":536},"embedding-model-selection-2026","2026-10-17",9,[466,467,468,469,470],"Embeddings","RAG","MTEB","Vector search","Model selection",[472,473,474,475,476,477,478,479,480,481,482,483],"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",[485,488,491],{"name":486,"url":487},"Word embedding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWord_embedding",{"name":489,"url":490},"Information retrieval","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInformation_retrieval",{"name":492,"url":493},"Discounted cumulative gain","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDiscounted_cumulative_gain",[495,498,501,504,507,510,513,516,519,522,525,528],{"title":496,"url":497},"Enevoldsen et al.: MMTEB, Massive Multilingual Text Embedding Benchmark (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.13595",{"title":499,"url":500},"Hugging Face: Introducing RTEB, a new standard for retrieval evaluation (Oct 2025)","https:\u002F\u002Fhuggingface.co\u002Fblog\u002Frteb",{"title":502,"url":503},"OpenAI: Vector embeddings guide","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fembeddings",{"title":505,"url":506},"OpenAI: API pricing","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fpricing",{"title":508,"url":509},"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":511,"url":512},"Voyage AI: Text embeddings documentation","https:\u002F\u002Fdocs.voyageai.com\u002Fdocs\u002Fembeddings",{"title":514,"url":515},"Voyage AI: Pricing","https:\u002F\u002Fdocs.voyageai.com\u002Fdocs\u002Fpricing",{"title":517,"url":518},"Google: Gemini API embeddings documentation","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fembeddings",{"title":520,"url":521},"Google: Gemini API pricing","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fpricing",{"title":523,"url":524},"Cohere: Embed models documentation","https:\u002F\u002Fdocs.cohere.com\u002Fdocs\u002Fcohere-embed",{"title":526,"url":527},"Qwen: Qwen3-Embedding-8B model card","https:\u002F\u002Fhuggingface.co\u002FQwen\u002FQwen3-Embedding-8B",{"title":529,"url":530},"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",[70,71,72],"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.",{"slug":538,"published":463,"minutes":539,"category":8,"tags":540,"keywords":544,"about":556,"sources":564,"cover":589,"og":590,"expertise":68,"locales":591,"lang":72,"title":592,"description":593,"coverAlt":594},"contextual-retrieval-late-chunking",10,[467,541,466,542,543],"Chunking","Contextual retrieval","Late chunking",[545,546,547,548,549,550,551,552,553,554,555],"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",[557,560,561],{"name":558,"url":559},"Retrieval-augmented generation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRetrieval-augmented_generation",{"name":27,"url":28},{"name":562,"url":563},"Sentence embedding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSentence_embedding",[565,568,571,574,577,580,583,586],{"title":566,"url":567},"Anthropic: Introducing Contextual Retrieval (Sep 2024)","https:\u002F\u002Fwww.anthropic.com\u002Fnews\u002Fcontextual-retrieval",{"title":569,"url":570},"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":572,"url":573},"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":575,"url":576},"Voyage AI: Introducing voyage-context-3 (Jul 2025)","https:\u002F\u002Fblog.voyageai.com\u002F2025\u002F07\u002F23\u002Fvoyage-context-3\u002F",{"title":578,"url":579},"Voyage AI: voyage-context-4 (Jun 2026)","https:\u002F\u002Fblog.voyageai.com\u002F2026\u002F06\u002F29\u002Fvoyage-context-4\u002F",{"title":581,"url":582},"Voyage AI: Contextualized chunk embeddings documentation","https:\u002F\u002Fdocs.voyageai.com\u002Fdocs\u002Fcontextualized-chunk-embeddings",{"title":584,"url":585},"Anthropic: Claude API pricing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fabout-claude\u002Fpricing",{"title":587,"url":588},"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",[70,71,72],"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":596,"published":463,"minutes":464,"category":8,"tags":597,"keywords":601,"about":614,"sources":622,"cover":647,"og":648,"expertise":68,"locales":649,"lang":72,"title":650,"description":651,"coverAlt":652},"rag-access-control-permissions",[467,598,599,600,469],"Access control","Security","Multi-tenancy",[602,603,604,605,606,607,608,609,610,611,612,613],"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",[615,618,621],{"name":616,"url":617},"Access-control list","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAccess-control_list",{"name":619,"url":620},"Multitenancy","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMultitenancy",{"name":558,"url":559},[623,626,629,632,635,638,641,644],{"title":624,"url":625},"OWASP GenAI Security Project: LLM08:2025 Vector and Embedding Weaknesses","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm082025-vector-and-embedding-weaknesses\u002F",{"title":627,"url":628},"PostgreSQL documentation: Row Security Policies","https:\u002F\u002Fwww.postgresql.org\u002Fdocs\u002Fcurrent\u002Fddl-rowsecurity.html",{"title":630,"url":631},"pgvector README: filtering and iterative index scans","https:\u002F\u002Fgithub.com\u002Fpgvector\u002Fpgvector",{"title":633,"url":634},"Qdrant: Multitenancy and partitions guide","https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fguides\u002Fmultiple-partitions\u002F",{"title":636,"url":637},"Pinecone: Implement multitenancy using namespaces","https:\u002F\u002Fdocs.pinecone.io\u002Fguides\u002Findex-data\u002Fimplement-multitenancy",{"title":639,"url":640},"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":642,"url":643},"OpenFGA: RAG authorization use case","https:\u002F\u002Fopenfga.dev\u002Fdocs\u002Fuse-cases\u002Frag-authorization",{"title":645,"url":646},"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",[70,71,72],"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":654,"published":463,"minutes":539,"category":8,"tags":655,"keywords":660,"about":672,"sources":680,"cover":707,"og":708,"expertise":709,"locales":710,"lang":72,"title":711,"description":712,"coverAlt":713},"rag-product-catalog-pim-data",[467,656,657,658,659],"PIM","Product data","B2B e-commerce","Metadata filtering",[661,662,663,664,665,666,667,668,669,670,671],"rag product catalog","rag pim data","llm product data","product catalog chatbot","akeneo rag","pimcore ai search","rag structured data","metadata filtering rag","product attributes embeddings","b2b product assistant","etim classification ai",[673,676,677],{"name":674,"url":675},"Product information management","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FProduct_information_management",{"name":558,"url":559},{"name":678,"url":679},"ETIM (standard)","https:\u002F\u002Fwww.etim-international.com\u002Fclassification\u002F",[681,684,687,690,692,695,698,701,704],{"title":682,"url":683},"Akeneo API: Products, product values, metric values and product models","https:\u002F\u002Fapi.akeneo.com\u002Fconcepts\u002Fproducts.html",{"title":685,"url":686},"Akeneo Help Center: What about products with variants?","https:\u002F\u002Fhelp.akeneo.com\u002Fserenity-take-the-power-over-your-products\u002Fserenity-what-about-products-with-variants",{"title":688,"url":689},"Pimcore documentation: Classification Store","https:\u002F\u002Fdocs.pimcore.com\u002Fplatform\u002FPimcore\u002FObjects\u002FObject_Classes\u002FData_Types\u002FClassification_Store\u002F",{"title":691,"url":679},"ETIM International: Classification",{"title":693,"url":694},"ETIM International: ETIM releases and the IXF format","https:\u002F\u002Fetim-international.com\u002F?p=754",{"title":696,"url":697},"Reddy et al.: Shopping Queries Dataset, a large-scale ESCI benchmark for improving product search (2022)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2206.06588",{"title":699,"url":700},"Amazon Science: esci-data repository","https:\u002F\u002Fgithub.com\u002Famazon-science\u002Fesci-data",{"title":702,"url":703},"Qdrant documentation: Filtering","https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fconcepts\u002Ffiltering\u002F",{"title":705,"url":706},"Sui et al.: Table Meets LLM, can large language models understand structured table data? (WSDM 2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.13062","\u002Fimages\u002Fblog\u002Frag-product-catalog-pim-data\u002Fcover.webp","\u002Fimages\u002Fblog\u002Frag-product-catalog-pim-data\u002Fog.jpg","b2b-ecommerce-developer",[70,71,72],"RAG termékkatalógusra: PIM-adatokból megbízható válaszok","A termékadat strukturált, ezért a PDF-szerű chunkolás itt elbukik. Hogyan sorosítsd a PIM-attribútumokat, és hogyan küldd a specifikációs kérdéseket szűrőkhöz.","Kilenc négyzetből álló keret apró jelekkel, alatta tölcsér egyetlen kártyához.",1792342717135]