[{"data":1,"prerenderedAt":875},["ShallowReactive",2],{"blog-rag-evaluation-metrics-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":24,"sources":34,"cover":69,"og":70,"expertise":71,"locales":72,"lang":75,"title":76,"description":77,"coverAlt":78,"metaTitle":79,"takeaways":80,"faq":86,"toc":105,"blocks":136,"others":579},"rag-evaluation-metrics","2026-10-02",12,"rag",[9,10,11,12,13],"RAG evaluation","Retrieval metrics","LLM-as-judge","Golden set","Ragas",[9,15,16,17,18,19,20,21,22,23],"how to evaluate RAG","RAG evaluation metrics","recall@k MRR nDCG","faithfulness vs answer relevance","golden dataset for RAG","LLM as a judge calibration","Ragas vs DeepEval vs TruLens","RAG evals in CI","retrieval vs generation failure",[25,28,31],{"name":26,"url":27},"Retrieval-augmented generation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRetrieval-augmented_generation",{"name":29,"url":30},"Discounted cumulative gain","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDiscounted_cumulative_gain",{"name":32,"url":33},"Mean reciprocal rank","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMean_reciprocal_rank",[35,38,41,44,47,50,53,56,59,62,64,66],{"title":36,"url":37},"Es et al.: RAGAS, Automated Evaluation of Retrieval Augmented Generation (arXiv 2309.15217)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2309.15217",{"title":39,"url":40},"Zheng et al.: Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena (arXiv 2306.05685)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2306.05685",{"title":42,"url":43},"Ragas documentation: available metrics","https:\u002F\u002Fdocs.ragas.io\u002Fen\u002Fstable\u002Fconcepts\u002Fmetrics\u002Favailable_metrics\u002F",{"title":45,"url":46},"Ragas documentation: faithfulness","https:\u002F\u002Fdocs.ragas.io\u002Fen\u002Fstable\u002Fconcepts\u002Fmetrics\u002Favailable_metrics\u002Ffaithfulness\u002F",{"title":48,"url":49},"Ragas documentation: context precision","https:\u002F\u002Fdocs.ragas.io\u002Fen\u002Fstable\u002Fconcepts\u002Fmetrics\u002Favailable_metrics\u002Fcontext_precision\u002F",{"title":51,"url":52},"Ragas documentation: context recall","https:\u002F\u002Fdocs.ragas.io\u002Fen\u002Fstable\u002Fconcepts\u002Fmetrics\u002Favailable_metrics\u002Fcontext_recall\u002F",{"title":54,"url":55},"DeepEval documentation: metrics introduction","https:\u002F\u002Fdeepeval.com\u002Fdocs\u002Fmetrics-introduction",{"title":57,"url":58},"TruLens","https:\u002F\u002Fwww.trulens.org\u002F",{"title":60,"url":61},"Arize Phoenix documentation","https:\u002F\u002Farize.com\u002Fdocs\u002Fphoenix",{"title":63,"url":30},"Wikipedia: Discounted cumulative gain",{"title":65,"url":33},"Wikipedia: Mean reciprocal rank",{"title":67,"url":68},"Wikipedia: Cohen's kappa","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCohen%27s_kappa","\u002Fimages\u002Fblog\u002Frag-evaluation-metrics\u002Fcover.webp","\u002Fimages\u002Fblog\u002Frag-evaluation-metrics\u002Fog.jpg","ai-engineer",[73,74,75],"en","de","hu","RAG kiértékelése: retrieval metrikák, faithfulness, és hogyan derül ki, melyik fele hibázott","Hogyan értékeld ki a RAG-rendszered: recall at k, MRR, nDCG vs. faithfulness és válaszrelevancia, golden set valódi kérdésekből, kalibrált LLM-bíró, evalok a CI-ban.","Ábra: egy RAG-választ két oldalon pontoznak, retrieval metrikákkal, mint a recall at k, az MRR és az nDCG, valamint generálási metrikákkal, mint a faithfulness és a válaszrelevancia, amelyek egy diagnózisba futnak.","RAG kiértékelés: metrikák, golden set, CI · Balázs Csorba",[81,82,83,84,85],"A RAG-rendszernek két fele van, és másképp hibáznak, ezért külön pontozd őket: a retrievalt recall@k, MRR és nDCG metrikával, a generálást faithfulness és válaszrelevancia metrikával.","A recall@k a plafon. Ha a szükséges chunk nincs a top k-ban, semmilyen prompt vagy modell nem tud megalapozott választ adni, ezért rossz válasznál először a retrievalt nézd meg.","A valódi felhasználói kérdésekből épített golden set jobb a szintetikus kérdéseknél. Kezdd kicsiben, rögzítsd, mit igényel a helyes válasz, és minden éles hibával bővítsd.","Az LLM-bíró mérőeszköz, nem alapigazság. Kalibráld mintán emberi címkék ellen, jelents véletlenre korrigált egyezést, és ellenőrizd újra, ha a bírómodell megváltozik.","Az olcsó retrieval-ellenőrzéseket minden pull requestnél futtasd, az LLM-mel pontozott csomagot ütemezve vagy az index, a prompt vagy a modell változásakor, és az alapvonalhoz képesti visszaesésre kapuzz.",[87,90,93,96,99,102],{"q":88,"a":89},"Hogyan értékeljek ki egy RAG-rendszert?","Értékeld ki külön a retrievalt és a generálást ugyanazon a valódi kérdésekből álló golden seten. A retrievalnél azt mérd, hogy a megfelelő chunkok megtalálhatók voltak-e és milyen előkelő helyen (recall@k, MRR, nDCG). A generálásnál azt, hogy a választ alátámasztja-e a lekért kontextus (faithfulness), és hogy megválaszolja-e a kérdést (válaszrelevancia). A két pontszámcsoportból kiderül, melyik fele hibázott.",{"q":91,"a":92},"Mi a különbség a recall@k, az MRR és az nDCG között?","A recall@k azt kérdezi, hogy a releváns anyag megjelenik-e valahol a top k találatban. Az MRR az első releváns találat rangjának reciprokából vett átlag, ezért csak az első találat számít. Az nDCG a teljes rangsort pontozza fokozatos relevanciával, a lejjebb lévő találatokat leértékeli, és 0 és 1 közé normalizált.",{"q":94,"a":95},"Mi a faithfulness a RAG-kiértékelésben?","A faithfulness azt méri, hogy a generált válasz állításait alátámasztja-e a lekért kontextus. A Ragasban ez az alátámasztott állítások száma osztva a válasz összes állításának számával, 0 és 1 közötti érték. Egy faithful válasz is lehet téves, ha a retrieval rossz kontextust hozott vissza.",{"q":97,"a":98},"Megbízhatok egy LLM-ben bíróként?","Részben. Az MT-Bench tanulmány szerint egy erős bíró, mint a GPT-4, több mint 80 százalékos egyezést ért el az emberi preferenciákkal, ugyanannyit, mint az emberek egymás között, de dokumentálta a pozíció-, a hosszúság- és az önpreferencia-torzítást is. Kezeld a bírót műszerként: címkézz kézzel egy mintát, mérd az egyezést, és kalibrálj újra, ha a bírómodell vagy a rubrika változik.",{"q":100,"a":101},"Melyik RAG-kiértékelő eszközt használjam: Ragas, DeepEval, TruLens vagy Phoenix?","A metrikáknál átfedik egymást, a munkafolyamatban különböznek. A Ragas metrikakeretrendszer, a DeepEval pytest-szerű tesztekre és egy CI-parancsra épül, a TruLens a RAG-triád köré szerveződik nyomkövetéssel, az Arize Phoenix pedig az OpenTelemetry-alapú nyomkövetést kiértékelésekkel, datasetekkel és kísérletekkel kapcsolja össze. Én aszerint választanék, hol szeretném, hogy az evalok éljenek, nem a metrikanevek alapján.",{"q":103,"a":104},"Honnan tudom, hogy a retrieval vagy a generálás okozott egy rossz választ?","Nézd meg az adott kérdéshez lekért chunkokat. Ha a szükséges tény sosem volt a korpuszban, tartalmi hiányról van szó. Ha a korpuszban volt, de nem a top k-ban, a retrieval hibázott. Ha a kontextusban volt, de a válasz figyelmen kívül hagyja vagy ellentmond neki, a generálás hibázott, ami alacsony faithfulnessként vagy alacsony válaszrelevanciaként jelenik meg.",[106,109,112,115,118,121,124,127,130,133],{"id":107,"title":108},"two-halves","Két fél, hét szám",{"id":110,"title":111},"retrieval-metrics","Retrieval metrikák: recall@k, MRR és nDCG",{"id":113,"title":114},"generation-metrics","Generálási metrikák: faithfulness és válaszrelevancia",{"id":116,"title":117},"golden-set","A golden set felépítése valódi kérdésekből",{"id":119,"title":120},"diagnosis","Diagnózis: a retrieval vagy a generálás hibázott?",{"id":122,"title":123},"llm-judge","LLM-bíró: kalibráld emberek ellen",{"id":125,"title":126},"tools","Eszközök: Ragas, DeepEval, TruLens és Phoenix",{"id":128,"title":129},"ci","Evalok futtatása CI-ban",{"id":131,"title":132},"first-steps","Mit tennék először",{"id":134,"title":135},"sources","Források",[137,141,144,158,161,177,180,249,252,253,256,274,281,284,285,292,302,305,312,313,316,354,357,358,361,370,389,397,398,401,408,435,443,444,447,482,485,486,489,516,522,523,537,540,541],{"type":138,"content":139},"paragraph",[140],"A legtöbb RAG-rendszer egy demó alapján kerül élesbe. Valaki feltesz öt kérdést, a válaszok jónak tűnnek, a csapat megy tovább. Aztán nő a korpusz, megváltozik a chunkolás, frissítik a modellt, és senki sem tudja megmondani, jobb lett-e a rendszer vagy rosszabb. A „jó ez?” kérdésre az őszinte válasz egy újraszámolható szám, RAG esetén pedig ehhez egynél több szám kell.",{"type":138,"content":142},[143],"Az ok szerkezeti. A RAG-rendszer két, egymás után kötött rendszer: egy retriever, amely eldönti, mit lát a modell, és egy generátor, amely eldönti, mit mond róla. Mindkettő a maga módján hibázik, saját metrikákat igényel, és más munkával javítható. Ha csak a végső választ pontozod, egy rossz válasz azt mondja meg, hogy valami elromlott, de azt nem, hogy hol.",{"type":138,"content":145},[146,147,152,153,157],"Ez a cikk azt mutatja meg, hogyan állítanék fel RAG-kiértékelést egy termékcsapatnak: a metrikákat és azt, hogy mindegyik valójában mit mér, a valódi kérdésekből épített golden setet, az emberekkel ellenőrzött LLM-bírót, a megnézésre érdemes eszközöket, a CI-ban futó evalokat, és egy rövid eljárást annak diagnosztizálására, hogy a retrieval vagy a generálás hibázott. Az ",{"tag":148,"to":149,"children":150},"link","\u002Fblog\u002Fllm-evals-for-product-features",[151],"LLM-es termékfunkciók evaljairól"," és magáról a ",{"tag":148,"to":154,"children":155},"\u002Fblog\u002Frag-pipeline-chunking-hybrid-search-reranking",[156],"RAG-pipeline-ról"," szóló írásaimra épül.",{"type":159,"level":160,"id":107,"text":108},"heading",2,{"type":138,"content":162},[163,164,168,169,173,174],"A ",{"tag":165,"href":37,"children":166},"a",[167],"RAGAS-tanulmány"," a RAG-kiértékelést három dimenzió mentén írja le: a retrieval képessége releváns és fókuszált passzusok megtalálására, a generátor képessége ezek hű felhasználására, és a kimenet minősége. A gyakorlatban a számokat aszerint osztom fel, milyen kérdésre felelnek. A retrieval metrikák azt kérdezik: ",{"tag":170,"children":171},"em",[172],"odaért-e a megfelelő anyag a modellhez, jó sorrendben?"," A generálási metrikák azt: ",{"tag":170,"children":175},[176],"azzal, amit látott, helyesen viselkedett-e a modell?",{"type":138,"content":178},[179],"A táblázat azokat a metrikákat sorolja fel, amelyeket valóban használok. A nevek eszközönként eltérnek, ezért azt írom le, mit mér mindegyik, nem azt, hogyan hívja egy könyvtár.",{"type":181,"head":182,"rows":191},"table",[183,185,187,189],[184],"Metrika",[186],"Réteg",[188],"A kérdés, amelyre felel",[190],"Kell címke?",[192,201,208,216,225,233,242],[193,195,197,199],[194],"recall@k",[196],"Retrieval",[198],"Ott van-e a releváns anyag valahol a top k-ban?",[200],"Releváns chunkok kérdésenként",[202,204,205,207],[203],"MRR",[196],[206],"Milyen előkelő az első releváns találat? A rangja reciprokának átlaga.",[200],[209,211,212,214],[210],"nDCG",[196],[213],"Jó sorrendben van-e az egész rangsor, fokozatos relevanciával és a lejjebb lévők leértékelésével?",[215],"Fokozatos relevancia",[217,219,221,223],[218],"Context precision",[220],"Retrieval (rangsor)",[222],"A modellnek adott kontextusban a releváns chunkok a nem relevánsak előtt állnak-e?",[224],"A Ragasban opcionális referenciaválasz",[226,228,229,231],[227],"Context recall",[196],[230],"A referenciaválasz minden állítását alátámasztja-e a lekért kontextus?",[232],"Referenciaválasz",[234,236,238,240],[235],"Faithfulness",[237],"Generálás",[239],"A válasz minden állítását alátámasztja-e a lekért kontextus?",[241],"Nem",[243,245,246,248],[244],"Válaszrelevancia",[237],[247],"Megválaszolja-e a válasz a feltett kérdést?",[241],{"type":138,"content":250},[251],"Vedd észre, hogy a context precision a retrievalhez tartozik, bár gyakran a generálási metrikák mellett szerepel. A lekért chunkokon számolják, ezért a rangsorolóról mond el valamit, nem a modell fogalmazásáról. A réteg oszlop pontossága teszi lehetővé a cikk későbbi diagnózisát.",{"type":159,"level":160,"id":110,"text":111},{"type":138,"content":254},[255],"A retrieval metrikák a keresés kiértékeléséből származnak, és kell hozzájuk valami, ami a generálási metrikákhoz nem: az, hogy tudjuk, mely chunkok relevánsak az egyes kérdésekhez.",{"type":257,"ordered":258,"items":259},"list",false,[260,265,270],[163,261,264],{"tag":262,"children":263},"strong",[194]," azt kérdezi, hogy a releváns anyag benne van-e a top k-ban. Ez a legfontosabb retrieval szám, mert plafon. Ha a választ tartalmazó chunk nincs benne a modellnek átadott k chunk között, a modell nem tudja arra alapozni a válaszát, bármit is mond a prompt. A k-t ahhoz igazítsd, amennyit valójában a generátornak küldesz.",[266,267,269],"Az ",{"tag":262,"children":268},[203]," (mean reciprocal rank) az első releváns találat rangjának reciprokát átlagolja: 1 az első helyre, 0,5 a másodikra. Jutalmazza, ha egy jó chunk felülre kerül. Dokumentált korlátja, hogy csak az első releváns találat számít, a továbbiakat figyelmen kívül hagyja, ezért egyetlen helyes passzusú kérdéseknél használható, és félrevezet, ha a kérdés többet igényel.",[266,271,273],{"tag":262,"children":272},[210]," a fokozatos relevanciapontokat logaritmikus leértékeléssel összegzi a lejjebb lévő pozíciókra, majd elosztja az ideális sorrenddel, így az eredmény 0 és 1 közé esik. Akkor ez a megfelelő metrika, ha a relevancia nem bináris, például egy chunk teljesen megválaszolja a kérdést, egy másik csak említi a témát, és ha a sorrend számít, mert a kontextusablak vagy egy reranker határértéke megvágja a listát.",{"type":138,"content":275},[276,277,280],"Együtt olvasom őket. Magas recall@k gyenge MRR-rel vagy nDCG-vel azt jelenti: a jó chunkot megtalálja, de eltemeti, amit általában egy reranker javít (a chunkolásról, a hibrid keresésről és a rerankingről lásd a ",{"tag":148,"to":154,"children":278},[279],"pipeline-bejegyzést","). Alacsony recall@k azt jelenti, hogy a jó chunkot sosem találja meg. Ez a chunkolás, az embeddingek, a query rewriting vagy az index problémája, és egy reranker sem javít meg olyan jelöltlistát, amely nem tartalmazza a választ.",{"type":138,"content":282},[283],"Ezekhez a metrikákhoz relevanciacímkék kellenek, és ez a drága rész. A Ragas dokumentációja a context recallnak ír egy azonosító-alapú és egy nem LLM-es változatát, amely a lekért chunkazonosítókat vagy szövegeket hasonlítja a referenciakontextusokhoz LLM-hívás nélkül. Ezek olcsók, determinisztikusak és tökéletesek CI-ba, ha a golden set eltárolja, mely chunkok relevánsak.",{"type":159,"level":160,"id":113,"text":114},{"type":138,"content":286},[287,288,291],"A generálási metrikák a választ aszerint ítélik meg, amit a modell látott. A központi a ",{"tag":262,"children":289},[290],"faithfulness",". A Ragas definíciója szerint ez a válasz azon állításainak száma, amelyeket a lekért kontextus alátámaszt, osztva az összes állítás számával: a választ állításokra bontják, mindegyiket a kontextushoz mérik, és az arány a 0 és 1 közötti pontszám. Nem kell hozzá referenciaválasz, ezért olyan hasznos éles forgalmon.",{"type":138,"content":293},[163,294,297,298,301],{"tag":262,"children":295},[296],"válaszrelevancia"," azt kérdezi, hogy a válasz egyáltalán a kérdéssel foglalkozik-e. Egy válasz lehet tökéletesen hű a kontextushoz, és mégis kikerülheti a kérdést, például egy dokumentumot foglal össze, amikor a felhasználó egy számot kért. A TruLens a megfelelőjét ",{"tag":170,"children":299},[300],"context relevance, groundedness és answer relevance"," hármasnak hívja, a Ragas response relevancynek, a DeepEval answer relevancynek. Ugyanaz az ötlet, más címkék.",{"type":138,"content":303},[304],"Két tulajdonságot könnyű elnézni. Először: a faithfulness a lekért kontextussal való egyezést méri, nem az igazsággal. Ha a retrieval egy elavult szabályzatot hozott, egy tökéletesen faithful válasz téves. Másodszor: magas pontszámot úgy is lehet szerezni, hogy keveset mondunk: az a modell, amely elutasít vagy köntörfalaz, kevés állítást tesz, és kevés állítás mind alátámasztott lehet. A faithfulnesst mindig a válaszrelevancia és a golden válaszhoz mért helyességi ellenőrzés mellett olvasd.",{"type":306,"variant":307,"title":308,"body":309},"callout","note","A faithful nem azonos a helyessel",[310],[311],"A faithfulness csak azt mondja meg, hogy a válasz egyezik a chunkokkal. Hogy a chunkok a megfelelők voltak-e, az retrieval-kérdés, és hogy a végső válasz egyezik-e a golden válasszal, az különálló helyességi pontszám. Mind a hármat követem, mert a kombinációk mutatnak az okra.",{"type":159,"level":160,"id":116,"text":117},{"type":138,"content":314},[315],"Minden fentebbi egy golden setre épül: kérdésekre azokkal az elvárásokkal, amelyekhez pontozol. A dokumentumaidból generált szintetikus kérdések hasznos kezdőlépések, de a dokumentumok szókincsét használják, a valódi felhasználók pedig nem. A valódi kérdésekben van elgépelés, rövidítés, homályos megfogalmazás, termékkód és olyan kérdés, amelyre a korpusz nem tud válaszolni. Ezekből építeném a készletet.",{"type":257,"ordered":317,"items":318},true,[319,329,334,339,344,349],[320,323,324,328],{"tag":262,"children":321},[322],"Valódi kérdések mintavételezése."," Vedd őket keresési naplókból, support jegyekből vagy chat-átiratokból. Előbb távolítsd el a személyes adatokat, és figyelj a jogalapra: lásd a ",{"tag":148,"to":325,"children":326},"\u002Fblog\u002Fgdpr-llm-api-eu-data-residency",[327],"GDPR-ról és az LLM API-król"," írt jegyzeteimet.",[330,333],{"tag":262,"children":331},[332],"Rétegezz, ne csak mintavételezz."," Legyenek benne a gyakori kérdések, a hosszú farok, a több dokumentumra kiterjedő kérdések, a pontos azonosítós kérdések, és olyanok, amelyekre „nem tudom” a helyes válasz, mert a korpuszban nincs válasz.",[335,338],{"tag":262,"children":336},[337],"Rögzítsd, mit igényel a helyes válasz."," Kérdésenként jegyezd fel a releváns chunkokat vagy dokumentumokat (a recall@k-hoz, az MRR-hez és az nDCG-hez), egy rövid referenciaválaszt, és ahol számít, a válaszban kötelezően szereplő tényeket.",[340,343],{"tag":262,"children":341},[342],"Címkéztesd szakértővel, és mérd, hogy ketten egyetértenek-e."," Ha két ember nem ért egyet abban, mi releváns, ezt egyetlen metrika sem oldja meg helyetted.",[345,348],{"tag":262,"children":346},[347],"Verziózd, és tarts vissza egy részt."," Kezeld a készletet kódként. Tarts meg egy szeletet, amelyre sosem hangolsz, hogy a javulás ne csak a megbámult példákra való túlillesztés legyen.",[350,353],{"tag":262,"children":351},[352],"Táplálja az éles üzem."," Minden lájkolás-visszavonás, eszkaláció vagy a reviewban talált rossz válasz új esetté válik a címkéjével együtt. Így marad a készlet reprezentatív, ahogy a termék változik.",{"type":138,"content":355},[356],"Mekkora legyen? Néhány tucat jól címkézett kérdéssel kezdeném, és onnan bővíteném; egy kicsi, tiszta készlet, amelyben megbízol, jobb egy nagynál, amelyet senki sem ellenőrzött. Az elején nem statisztikai erő a cél, hanem hogy a regresszió még aznap látható legyen, amikor megjelenik. Ahogy nő a készlet, rétegenként jelents, mert az átlag elrejti az egyik kérdéstípus összeomlását.",{"type":159,"level":160,"id":119,"text":120},{"type":138,"content":359},[360],"Ha rossz választ jelentenek, állj ellen a kísértésnek, hogy a promptot szerkeszd. Járd végig a láncot alulról, az adott kérdéshez eltárolt retrieval-eredményekkel, és állj meg az első kérdésnél, amelyre „nem” a válasz.",{"type":362,"attrs":363,"inner":367,"caption":368},"diagram",{"viewBox":364,"role":365,"aria-labelledby":366},"0 0 720 380","img","d1-rageval-t d1-rageval-d","\u003Ctitle id=\"d1-rageval-t\">Egy rossz RAG-válasz diagnosztizálása\u003C\u002Ftitle>\u003Cdesc id=\"d1-rageval-d\">Négy kérdésből álló döntési lánc. Ha a tény nincs a korpuszban, tartalmi hiányról van szó. Ha a korpuszban van, de nincs a top k chunkban, a retrieval hibázott. Ha a kontextusban van, de a válasz nem alátámasztott, a generálás nem faithful. Ha alátámasztott, de nem válaszolja meg a kérdést, a válasz mellétrafált. Ha minden ellenőrzés átmegy, ellenőrizd újra a golden címkét vagy a bírót.\u003C\u002Fdesc>\u003Ctext x=\"700\" y=\"22\" text-anchor=\"end\" class=\"d-label\">Fent kezdd, az első nemnél állj meg\u003C\u002Ftext>\u003Crect x=\"20\" y=\"40\" width=\"300\" height=\"52\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"170\" y=\"71\" text-anchor=\"middle\" class=\"d-text\">Benne van a tény a korpuszban?\u003C\u002Ftext>\u003Cpath d=\"M170 92 V102\" class=\"d-line\" \u002F>\u003Cpath d=\"M170 110 l-5 -9 h10 z\" class=\"d-head\" \u002F>\u003Ctext x=\"180\" y=\"105\" class=\"d-label\">igen\u003C\u002Ftext>\u003Cpath d=\"M320 66 H392\" class=\"d-line-accent\" \u002F>\u003Cpath d=\"M400 66 l-9 -5 v10 z\" class=\"d-head-accent\" \u002F>\u003Ctext x=\"332\" y=\"60\" class=\"d-label\">nem\u003C\u002Ftext>\u003Crect x=\"400\" y=\"40\" width=\"300\" height=\"52\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"550\" y=\"62\" text-anchor=\"middle\" class=\"d-text\">Tartalmi hiány\u003C\u002Ftext>\u003Ctext x=\"550\" y=\"83\" text-anchor=\"middle\" class=\"d-small\">A forrást javítsd, ne a modellt\u003C\u002Ftext>\u003Crect x=\"20\" y=\"110\" width=\"300\" height=\"52\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"170\" y=\"141\" text-anchor=\"middle\" class=\"d-text\">Benne van a top k chunkban?\u003C\u002Ftext>\u003Cpath d=\"M170 162 V172\" class=\"d-line\" \u002F>\u003Cpath d=\"M170 180 l-5 -9 h10 z\" class=\"d-head\" \u002F>\u003Ctext x=\"180\" y=\"175\" class=\"d-label\">igen\u003C\u002Ftext>\u003Cpath d=\"M320 136 H392\" class=\"d-line-accent\" \u002F>\u003Cpath d=\"M400 136 l-9 -5 v10 z\" class=\"d-head-accent\" \u002F>\u003Ctext x=\"332\" y=\"130\" class=\"d-label\">nem\u003C\u002Ftext>\u003Crect x=\"400\" y=\"110\" width=\"300\" height=\"52\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"550\" y=\"132\" text-anchor=\"middle\" class=\"d-text\">Retrieval hiba\u003C\u002Ftext>\u003Ctext x=\"550\" y=\"153\" text-anchor=\"middle\" class=\"d-small\">recall@k, MRR, nDCG alacsony\u003C\u002Ftext>\u003Crect x=\"20\" y=\"180\" width=\"300\" height=\"52\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"170\" y=\"211\" text-anchor=\"middle\" class=\"d-text\">Minden állítás alátámasztott?\u003C\u002Ftext>\u003Cpath d=\"M170 232 V242\" class=\"d-line\" \u002F>\u003Cpath d=\"M170 250 l-5 -9 h10 z\" class=\"d-head\" \u002F>\u003Ctext x=\"180\" y=\"245\" class=\"d-label\">igen\u003C\u002Ftext>\u003Cpath d=\"M320 206 H392\" class=\"d-line-accent\" \u002F>\u003Cpath d=\"M400 206 l-9 -5 v10 z\" class=\"d-head-accent\" \u002F>\u003Ctext x=\"332\" y=\"200\" class=\"d-label\">nem\u003C\u002Ftext>\u003Crect x=\"400\" y=\"180\" width=\"300\" height=\"52\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"550\" y=\"202\" text-anchor=\"middle\" class=\"d-text\">Generálás: nem faithful\u003C\u002Ftext>\u003Ctext x=\"550\" y=\"223\" text-anchor=\"middle\" class=\"d-small\">a faithfulness alacsony\u003C\u002Ftext>\u003Crect x=\"20\" y=\"250\" width=\"300\" height=\"52\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"170\" y=\"281\" text-anchor=\"middle\" class=\"d-text\">Megválaszolja a kérdést?\u003C\u002Ftext>\u003Cpath d=\"M170 302 V312\" class=\"d-line\" \u002F>\u003Cpath d=\"M170 320 l-5 -9 h10 z\" class=\"d-head\" \u002F>\u003Ctext x=\"180\" y=\"319\" class=\"d-label\">igen\u003C\u002Ftext>\u003Cpath d=\"M320 276 H392\" class=\"d-line-accent\" \u002F>\u003Cpath d=\"M400 276 l-9 -5 v10 z\" class=\"d-head-accent\" \u002F>\u003Ctext x=\"332\" y=\"270\" class=\"d-label\">nem\u003C\u002Ftext>\u003Crect x=\"400\" y=\"250\" width=\"300\" height=\"52\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"550\" y=\"272\" text-anchor=\"middle\" class=\"d-text\">Generálás: mellétrafált\u003C\u002Ftext>\u003Ctext x=\"550\" y=\"293\" text-anchor=\"middle\" class=\"d-small\">a válaszrelevancia alacsony\u003C\u002Ftext>\u003Crect x=\"20\" y=\"320\" width=\"300\" height=\"44\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"170\" y=\"347\" text-anchor=\"middle\" class=\"d-text\">Minden ok: címke vagy bíró?\u003C\u002Ftext>",[369],"A sorrend számít: minden kérdés feltételezi, hogy a fölötte lévők átmentek. A meglepetések többsége az első kettőnél van.",{"type":138,"content":371},[372,373,376,377,380,381,384,385,388],"Az ágak különböző munkához vezetnek. A ",{"tag":262,"children":374},[375],"tartalmi hiány"," szerkesztői vagy ingestion-probléma: a dokumentum hiányzik, elavult, vagy sosem parsolták rendesen. A ",{"tag":262,"children":378},[379],"retrieval hibát"," a chunkolásban, az embeddingekben, a hibrid keresésben, a query rewritingban vagy a rerankingben javítják. A ",{"tag":262,"children":382},[383],"nem faithful"," válasz generálási probléma: szigorítsd az utasítást, hogy csak a kontextusból válaszoljon, csökkentsd a találgatásra csábító irreleváns kontextust, vagy válts modellt. A ",{"tag":262,"children":386},[387],"mellétrafált"," válasz általában a prompt hibája, vagy álcázott retrieval-probléma, amikor a kontextus témába vág, de nem a kérdésre.",{"type":138,"content":390},[391,392,396],"Az utolsó doboz is számít. Ha minden metrika átmegy, és a válasz mégis téves, előbb a golden címkére, a referenciaválaszra vagy magára a bíróra gyanakodj, nem a rendszerre. Ügynökös felépítéseknél, ahol a modell dönti el, mit kér le, és többször is lekérhet, ugyanez a logika érvényes lekérési lépésenként; lásd ",{"tag":148,"to":393,"children":394},"\u002Fblog\u002Frag-2026-hybrid-agentic-long-context",[395],"RAG 2026-ban: hibrid, ügynökös és hosszú kontextus",".",{"type":159,"level":160,"id":122,"text":123},{"type":138,"content":399},[400],"A faithfulnesst, a válaszrelevanciát és a legtöbb kontextusmetrikát egy LLM pontozza. A Ragas megjegyzi, hogy az LLM-alapú metrikái egy vagy több LLM-hívást használhatnak a pontszámhoz. Ezzel a bíró a mérési összeállításod része, a műszert pedig kalibrálni kell.",{"type":138,"content":402},[403,404,407],"A bizonyítékok biztatók, de nem feltétel nélküliek. Az ",{"tag":165,"href":40,"children":405},[406],"MT-Bench-tanulmány"," szerint egy erős bíró, mint a GPT-4, több mint 80 százalékos egyezést ért el az emberi preferenciákkal, ugyanannyit, mint az emberek egymás között. Ugyanez a tanulmány megnevezi a pozíciótorzítást, a hosszúságtorzítást és az önpreferencia-torzítást, és megjegyzi a korlátozott következtetési képességet. Ezek az eredmények chatválaszok páros preferenciájáról szólnak; nem vihetők át automatikusan a te területedre, rubrikádra vagy bírómodelledre.",{"type":257,"ordered":317,"items":409},[410,415,420,425,430],[411,414],{"tag":262,"children":412},[413],"Címkézz kézzel egy mintát."," Végy néhány tucat esetet, amely jó, rossz és határeset kimeneteket is felölel, és pontoztasd egy emberrel ugyanazzal a rubrikával, amelyet a bíró kap.",[416,419],{"tag":262,"children":417},[418],"Mérj a véletlenen túli egyezést."," A százalékos egyezés hízeleg, ha egy címke dominál. A Cohen-féle kappa korrigál a véletlen egyezésre (a kappa a megfigyelt és a várt egyezés különbsége osztva eggyel mínusz a várt egyezéssel), és −1 és 1 között mozog. Rá is vonatkozik egy figyelmeztetés: az érték függ az előfordulási aránytól és a torzítástól, ezért nincs univerzális küszöb. Nézd a tévesztési mátrixot, ne csak a számot.",[421,424],{"tag":262,"children":422},[423],"Rögzítsd a bíró bemeneteit."," Használj szűk rubrikát, bináris vagy kis skálájú címkéket, és az indoklást kérd a pontszám előtt. Rögzítsd a bírómodell pontos verzióját, mert egy csendes frissítés elmozdítja a trendvonalad.",[426,429],{"tag":262,"children":427},[428],"Kezeld az ismert torzításokat."," Páros összehasonlításnál randomizáld a válaszok sorrendjét, ha lehet, ne ugyanaz a modell generáljon és bíráljon, és nézd meg, korrelálnak-e a pontszámok a válasz hosszával.",[431,434],{"tag":262,"children":432},[433],"Változáskor kalibrálj újra."," Új bírómodell, új rubrika, új terület: ismételd meg az összehasonlítást. Tartsd meg a címkézett mintát állandó kalibrációs készletként.",{"type":138,"content":436},[437,438,442],"A bírói hívások minden futásnál tokenekbe kerülnek, ezért az ",{"tag":148,"to":439,"children":440},"\u002Fblog\u002Fllm-cost-latency-prompt-caching-routing",[441],"LLM-költségről, késleltetésről és prompt cachingről"," írt taktikák az eval-csomagodra is érvényesek. Kisebb bírómodell akkor és csak akkor elfogadható, ha a kalibráció ezt megengedi.",{"type":159,"level":160,"id":125,"text":126},{"type":138,"content":445},[446],"Mindezt megírhatod magad pár száz sorban, és a determinisztikus retrieval metrikáknál gyakran én is ezt teszem. Az LLM-mel pontozott metrikáknál és a nyomkövetésnél a bevett eszközök valódi időt spórolnak. Ezt mondja a saját dokumentációjuk, 2026. október 2-án ellenőrizve:",{"type":181,"head":448,"rows":455},[449,451,453],[450],"Eszköz",[452],"Mi ez",[454],"RAG-metrikák és munkafolyamat",[456,462,469,475],[457,458,460],[13],[459],"A RAGAS-tanulmányból származó metrikakeretrendszer",[461],"Context precision, context recall, noise sensitivity, response relevancy, faithfulness; LLM-alapú és nem LLM-es változatok; egyéni metrikák támogatottak",[463,465,467],[464],"DeepEval",[466],"Tesztszerű kiértékelő keretrendszer",[468],"Contextual relevancy, precision és recall a retrievernek; answer relevancy és faithfulness a generátornak; natív pytest-integráció a deepeval test run paranccsal CI\u002FCD-hez",[470,471,473],[57],[472],"Nyílt forrású kiértékelés és nyomkövetés, OpenTelemetry-natív, a Snowflake gondozza",[474],"A context relevance, groundedness és answer relevance RAG-triád; működik a LangChainnel, a LlamaIndexszel és a LangGraphfal",[476,478,480],[477],"Arize Phoenix",[479],"Nyílt forrású AI-megfigyelhetőség és -kiértékelés OpenTelemetry és OpenInference alapon",[481],"Nyomkövetés, kiértékelések LLM-es, kódos vagy emberi címkékkel, datasetek és kísérletek a változások azonos bemeneteken való összehasonlításához; az Arize AX a menedzselt opció",{"type":138,"content":483},[484],"Gyakorlati tanácsom: aszerint válassz, hol éljenek az evalok. Ha tesztként akarod őket a repóban, a DeepEval vagy egy vékony Ragas-wrapper illik. Ha az éles nyomokat akarod nézni és pontszámokat csatolni hozzájuk, a TruLens vagy a Phoenix. Bármit választasz, a golden setet és a címkéket tartsd a saját repódban, egyszerű formátumban, hogy az eszközváltás egy délutánba kerüljön, ne egy negyedévbe. És ne feledd: az azonos nevű metrikákat eszközönként másképp számolhatják, ezért sosem hasonlíts össze pontszámokat eszközök között.",{"type":159,"level":160,"id":128,"text":129},{"type":138,"content":487},[488],"Az eval, amelyet senki sem futtat, dokumentáció. A cél az, hogy a chunkolás, az embeddingmodell, a prompt vagy a generátor módosítása ne mergelődhessen számok nélkül. Két szintet használok, mert a költségprofilok eltérőek.",{"type":257,"ordered":258,"items":490},[491,496,501,506,511],[492,495],{"tag":262,"children":493},[494],"Minden pull requestnél: csak retrieval."," Futtasd a recall@k, MRR és nDCG metrikát egy rögzített indexpillanatképen vagy fixture-ön. Lehetnek determinisztikusak, LLM-hívás nélkül, így gyorsak, ingyenesek és stabilak.",[497,500],{"tag":262,"children":498},[499],"Ütemezve vagy releváns változáskor: az LLM-mel pontozott csomag."," Futtasd a faithfulnesst, a válaszrelevanciát és a helyességet, ha az index, a prompt, a modell vagy a bíró változik, egyébként éjszakánként. A DeepEval dokumentációja egy tesztparancsot ír le evalok CI\u002FCD-pipeline-ban való futtatására.",[502,505],{"tag":262,"children":503},[504],"Regresszióra kapuzz, ne egy varázsszámra."," Hasonlíts rétegenként az utolsó elfogadott alapvonalhoz, és bukjon a build a zajon túli visszaesésnél, amelyet a csomag többszöri futtatásával mértél.",[507,510],{"tag":262,"children":508},[509],"Fogd meg a zajt."," Rögzítsd a bíró és a generátor verzióját, állítsd alacsonyra a hőmérsékletet, cache-eld a bírói hívásokat változatlan bemenetnél, és tárold minden futás pontszámait és a lekért chunkazonosítókat, hogy a hiba újrafuttatás nélkül diagnosztizálható legyen.",[512,515],{"tag":262,"children":513},[514],"Zárd be a kört."," Egy hibázó éles eset ugyanabban a pull requestben lesz a golden set egy sora, amelyik kijavítja.",{"type":138,"content":517},[518,519,521],"Hogy ez hogyan illeszkedik az LLM-funkciók tesztelésének tágabb gyakorlatába, az online monitorozással és az emberi reviewval együtt, azt lásd az ",{"tag":148,"to":149,"children":520},[151]," szóló írásban.",{"type":159,"level":160,"id":131,"text":132},{"type":257,"ordered":317,"items":524},[525,527,529,531,533,535],[526],"Naplózd minden kéréshez a query-t, a lekért chunkazonosítókat pontszámokkal és a végső választ.",[528],"Gyűjts 30–50 valódi kérdést a rétegeid mentén, és címkézd a releváns chunkokat és egy rövid referenciaválaszt.",[530],"Számold ki még ma a recall@k, MRR és nDCG értékeket. A retrievalt javítsd, mielőtt a promptot megérinted.",[532],"Add hozzá a faithfulnesst és a válaszrelevanciát LLM-bíróval, és kalibráld kézzel címkézett mintán kappával.",[534],"Az olcsó metrikákat kösd a pull requestekhez, a pontozott csomagot egy éjszakai jobhoz.",[536],"Add hozzá minden éles hibát a golden sethez, a döntési láncból kapott diagnózisával együtt.",{"type":138,"content":538},[539],"Ehhez semmi sem igényel platformot. Egy címkézett készlet kell, néhány őszinte szám, és az a szokás, hogy minden rossz válasznál megkérdezed, melyik fele hibázott.",{"type":159,"level":160,"id":134,"text":135},{"type":257,"ordered":317,"items":542},[543,546,549,552,555,558,561,564,567,570,573,576],[544],{"tag":165,"href":37,"children":545},[36],[547],{"tag":165,"href":40,"children":548},[39],[550],{"tag":165,"href":43,"children":551},[42],[553],{"tag":165,"href":46,"children":554},[45],[556],{"tag":165,"href":49,"children":557},[48],[559],{"tag":165,"href":52,"children":560},[51],[562],{"tag":165,"href":55,"children":563},[54],[565],{"tag":165,"href":58,"children":566},[57],[568],{"tag":165,"href":61,"children":569},[60],[571],{"tag":165,"href":30,"children":572},[63],[574],{"tag":165,"href":33,"children":575},[65],[577],{"tag":165,"href":68,"children":578},[67],[580,652,736,803],{"slug":581,"published":5,"minutes":582,"category":7,"tags":583,"keywords":588,"about":599,"sources":607,"cover":646,"og":647,"expertise":71,"locales":648,"lang":75,"title":649,"description":650,"coverAlt":651},"llm-hallucination-grounding-citations",13,[584,585,586,587,235],"Hallucinations","RAG","Citations","Grounding",[589,590,591,592,593,594,595,596,597,598],"reduce LLM hallucinations in production","how to reduce hallucinations in RAG","LLM citations API","Anthropic citations API","RAG faithfulness metric","LLM abstention I don't know","claim-level verification LLM","grounding LLM answers in sources","check grounding API","show sources in AI chatbot UI",[600,603,604],{"name":601,"url":602},"Hallucination (artificial intelligence)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FHallucination_(artificial_intelligence)",{"name":26,"url":27},{"name":605,"url":606},"Large language model","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model",[608,611,614,617,620,623,626,629,632,635,637,640,643],{"title":609,"url":610},"Anthropic: Citations (Claude API documentation)","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcitations",{"title":612,"url":613},"Anthropic: Search results (Claude API documentation)","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fsearch-results",{"title":615,"url":616},"Anthropic: Reduce hallucinations (Claude API documentation)","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Ftest-and-evaluate\u002Fstrengthen-guardrails\u002Freduce-hallucinations",{"title":618,"url":619},"Anthropic: Introducing Citations on the Anthropic API","https:\u002F\u002Fclaude.com\u002Fblog\u002Fintroducing-citations-api",{"title":621,"url":622},"Simon Willison: Anthropic's new Citations API (24 January 2025)","https:\u002F\u002Fsimonwillison.net\u002F2025\u002FJan\u002F24\u002Fanthropics-new-citations-api\u002F",{"title":624,"url":625},"OpenAI: Web search guide (url_citation annotations and display requirement)","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Ftools-web-search",{"title":627,"url":628},"Cohere: Documents and citations","https:\u002F\u002Fdocs.cohere.com\u002Fdocs\u002Fdocuments-and-citations",{"title":630,"url":631},"Google Cloud: Check grounding API","https:\u002F\u002Fdocs.cloud.google.com\u002Fgenerative-ai-app-builder\u002Fdocs\u002Fcheck-grounding",{"title":633,"url":634},"AWS: Amazon Bedrock Guardrails contextual grounding check","https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fguardrails-contextual-grounding-check.html",{"title":636,"url":46},"Ragas: Faithfulness metric",{"title":638,"url":639},"Kalai, Nachum, Vempala, Zhang: Why Language Models Hallucinate (arXiv 2509.04664)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2509.04664",{"title":641,"url":642},"Magesh et al.: Hallucination-Free? Assessing the Reliability of Leading AI Legal Research Tools (arXiv 2405.20362)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2405.20362",{"title":644,"url":645},"Wallat, Heuss, de Rijke, Anand: Correctness is not Faithfulness in RAG Attributions (arXiv 2412.18004)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2412.18004","\u002Fimages\u002Fblog\u002Fllm-hallucination-grounding-citations\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-hallucination-grounding-citations\u002Fog.jpg",[73,74,75],"LLM-hallucinációk csökkentése éles rendszerben: grounding, hivatkozások és a nemet mondás tudománya","Hallucinációk csökkentése éles RAG-ban: hivatkozás-API-k, tartózkodás, állításszintű ellenőrzés, faithfulness-mérés, forrás-UI és ami mégis átcsúszik.","Ábra: egy retrieval lépés evidencia-kapuba, hivatkozásos válaszba és állításellenőrzőbe vezet, a végén forrásokkal ellátott válasz; tartózkodási és jelölési ágak térnek le.",{"slug":653,"published":5,"minutes":582,"category":7,"tags":654,"keywords":659,"about":670,"sources":678,"cover":730,"og":731,"expertise":71,"locales":732,"lang":75,"title":733,"description":734,"coverAlt":735},"pgvector-vs-vector-databases",[655,656,585,657,658],"pgvector","Vector databases","Hybrid search","EU hosting",[660,661,662,663,664,665,666,667,668,669],"pgvector vs vector database","pgvector vs Qdrant","pgvector vs Pinecone","best vector database 2026","pgvector HNSW iterative scan","pgvector halfvec","OpenSearch vs Elasticsearch vector search","vector database EU hosting","hybrid search Postgres","Weaviate vs Milvus",[671,674,677],{"name":672,"url":673},"Vector database","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVector_database",{"name":675,"url":676},"PostgreSQL","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPostgreSQL",{"name":26,"url":27},[679,682,685,688,691,694,697,700,703,706,709,712,715,718,721,724,727],{"title":680,"url":681},"pgvector README (index limits, HNSW defaults, iterative scans, filtering, halfvec)","https:\u002F\u002Fgithub.com\u002Fpgvector\u002Fpgvector\u002Fblob\u002Fmaster\u002FREADME.md",{"title":683,"url":684},"pgvector CHANGELOG (0.4.0 to 0.8.7)","https:\u002F\u002Fgithub.com\u002Fpgvector\u002Fpgvector\u002Fblob\u002Fmaster\u002FCHANGELOG.md",{"title":686,"url":687},"pgvectorscale: StreamingDiskANN, statistical binary quantization, filtered search","https:\u002F\u002Fgithub.com\u002Ftimescale\u002Fpgvectorscale",{"title":689,"url":690},"Qdrant documentation: Filtering","https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fconcepts\u002Ffiltering\u002F",{"title":692,"url":693},"Qdrant documentation: Hybrid queries","https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fconcepts\u002Fhybrid-queries\u002F",{"title":695,"url":696},"Qdrant documentation: Create a cluster (providers, free tier, Hybrid Cloud)","https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fcloud\u002Fcreate-cluster\u002F",{"title":698,"url":699},"Weaviate documentation: Hybrid search","https:\u002F\u002Fdocs.weaviate.io\u002Fweaviate\u002Fconcepts\u002Fsearch\u002Fhybrid-search",{"title":701,"url":702},"Weaviate documentation: Vector index types","https:\u002F\u002Fdocs.weaviate.io\u002Fweaviate\u002Fconcepts\u002Fvector-index",{"title":704,"url":705},"Weaviate Cloud pricing and deployment options","https:\u002F\u002Fweaviate.io\u002Fpricing",{"title":707,"url":708},"Milvus documentation: Overview","https:\u002F\u002Fmilvus.io\u002Fdocs\u002Foverview.md",{"title":710,"url":711},"Pinecone documentation: Database architecture","https:\u002F\u002Fdocs.pinecone.io\u002Fguides\u002Fget-started\u002Fdatabase-architecture",{"title":713,"url":714},"Pinecone documentation: Create an index (clouds, regions, sparse and hybrid)","https:\u002F\u002Fdocs.pinecone.io\u002Fguides\u002Findex-data\u002Fcreate-an-index",{"title":716,"url":717},"OpenSearch documentation: Methods and engines","https:\u002F\u002Fdocs.opensearch.org\u002Flatest\u002Fmappings\u002Fsupported-field-types\u002Fknn-methods-engines\u002F",{"title":719,"url":720},"OpenSearch documentation: Efficient k-NN filtering","https:\u002F\u002Fdocs.opensearch.org\u002Flatest\u002Fvector-search\u002Ffilter-search-knn\u002Fefficient-knn-filtering\u002F",{"title":722,"url":723},"Elasticsearch documentation: Dense vector search","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fsolutions\u002Fsearch\u002Fvector\u002Fdense-vector",{"title":725,"url":726},"Elasticsearch documentation: kNN query (filter as pre-filter)","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Freference\u002Fquery-languages\u002Fquery-dsl\u002Fquery-dsl-knn-query",{"title":728,"url":729},"GitHub releases: Qdrant, Weaviate, Milvus, OpenSearch, pgvectorscale (versions as of 1 October 2026)","https:\u002F\u002Fgithub.com\u002Fqdrant\u002Fqdrant\u002Freleases","\u002Fimages\u002Fblog\u002Fpgvector-vs-vector-databases\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fpgvector-vs-vector-databases\u002Fog.jpg",[73,74,75],"pgvector vagy vektoradatbázis? Így válassz vektortárolót 2026-ban","pgvector, Qdrant, Weaviate, Milvus, Pinecone, OpenSearch vagy Elasticsearch? Gyakorlati útmutató 2026-ra: szűrés, hibrid keresés, skálázás, költség és EU-s hosztolás.","Ábra: döntési út az adataidtól a Postgres-beli pgvectorig, a vektormezős keresőmotorig vagy a dedikált vektoradatbázisig.",{"slug":737,"published":5,"minutes":582,"category":7,"tags":738,"keywords":742,"about":752,"sources":760,"cover":797,"og":798,"expertise":71,"locales":799,"lang":75,"title":800,"description":801,"coverAlt":802},"graphrag-knowledge-graph-rag",[739,740,741,585],"GraphRAG","Knowledge graphs","LightRAG",[739,743,744,745,746,747,748,749,750,751],"knowledge graph RAG","GraphRAG vs vector RAG","Microsoft GraphRAG explained","LightRAG vs GraphRAG","GraphRAG global vs local search","GraphRAG indexing cost","when to use GraphRAG","multi-hop RAG","LazyGraphRAG",[753,756,757],{"name":754,"url":755},"Knowledge graph","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FKnowledge_graph",{"name":26,"url":27},{"name":758,"url":759},"Leiden algorithm","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLeiden_algorithm",[761,764,767,770,773,776,779,782,785,788,791,794],{"title":762,"url":763},"Edge et al.: From Local to Global: A Graph RAG Approach to Query-Focused Summarization (arXiv:2404.16130)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2404.16130",{"title":765,"url":766},"Microsoft GraphRAG documentation: overview","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002F",{"title":768,"url":769},"Microsoft GraphRAG documentation: default dataflow","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002Findex\u002Fdefault_dataflow\u002F",{"title":771,"url":772},"Microsoft GraphRAG documentation: global search","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002Fquery\u002Fglobal_search\u002F",{"title":774,"url":775},"Microsoft GraphRAG documentation: local search","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002Fquery\u002Flocal_search\u002F",{"title":777,"url":778},"Microsoft GraphRAG documentation: DRIFT search","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002Fquery\u002Fdrift_search\u002F",{"title":780,"url":781},"Microsoft GraphRAG documentation: getting started","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002Fget_started\u002F",{"title":783,"url":784},"Microsoft Research: LazyGraphRAG, setting a new standard for quality and cost (25 November 2024)","https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Flazygraphrag-setting-a-new-standard-for-quality-and-cost\u002F",{"title":786,"url":787},"Guo et al.: LightRAG: Simple and Fast Retrieval-Augmented Generation (arXiv:2410.05779)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.05779",{"title":789,"url":790},"HKUDS\u002FLightRAG on GitHub","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FLightRAG",{"title":792,"url":793},"Gutiérrez et al.: HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models (arXiv:2405.14831)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2405.14831",{"title":795,"url":796},"Xiang et al.: When to use Graphs in RAG: A Comprehensive Analysis for Graph Retrieval-Augmented Generation (arXiv:2506.05690)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2506.05690","\u002Fimages\u002Fblog\u002Fgraphrag-knowledge-graph-rag\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fgraphrag-knowledge-graph-rag\u002Fog.jpg",[73,74,75],"GraphRAG és knowledge-graph RAG: mikor veri a gráf a vektoros keresést","Mit csinál valójában a Microsoft GraphRAG és a LightRAG, mennyibe kerül az indexelés, és mikor jobb a tudásgráf a vektoros RAG-nál: multi-hop, globális kérdések, termékkatalógus.","Diagram: egy tudásgráf középen, entitásokhoz, közösségekhez, lokális és globális kereséshez és termékalkatrészekhez kapcsolva.",{"slug":804,"published":5,"minutes":582,"category":7,"tags":805,"keywords":810,"about":821,"sources":829,"cover":868,"og":869,"expertise":870,"locales":871,"lang":75,"title":872,"description":873,"coverAlt":874},"semantic-product-search-b2b",[806,657,807,808,809],"B2B search","Semantic search","Spryker","OpenSearch",[811,812,813,814,815,816,817,818,819,820],"semantic product search B2B","B2B ecommerce search","hybrid search BM25 vector","part number search ecommerce","Spryker search Elasticsearch","OpenSearch hybrid search RRF","multilingual product search German English Hungarian","zero results rate site search","LLM query understanding ecommerce","AI product search for B2B shops",[822,824,827],{"name":807,"url":823},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSemantic_search",{"name":825,"url":826},"Elasticsearch","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FElasticsearch",{"name":809,"url":828},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOpenSearch",[830,833,836,838,841,844,847,850,853,856,859,862,865],{"title":831,"url":832},"Baymard Institute: E-commerce search query types","https:\u002F\u002Fbaymard.com\u002Fblog\u002Fecommerce-search-query-types",{"title":834,"url":835},"Elastic Search Labs: Hybrid search in Elasticsearch","https:\u002F\u002Fwww.elastic.co\u002Fsearch-labs\u002Fblog\u002Fhybrid-search-elasticsearch",{"title":837,"url":726},"Elasticsearch documentation: kNN query (pre-filters and post-filters)",{"title":839,"url":840},"Elasticsearch documentation: Semantic reranking","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fsolutions\u002Fsearch\u002Franking\u002Fsemantic-reranking",{"title":842,"url":843},"Elasticsearch documentation: Word delimiter graph token filter","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Freference\u002Ftext-analysis\u002Fanalysis-word-delimiter-graph-tokenfilter",{"title":845,"url":846},"Elasticsearch documentation: Synonym graph token filter","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Freference\u002Ftext-analysis\u002Fanalysis-synonym-graph-tokenfilter",{"title":848,"url":849},"OpenSearch documentation: Score ranker processor (RRF)","https:\u002F\u002Fdocs.opensearch.org\u002Flatest\u002Fsearch-plugins\u002Fsearch-pipelines\u002Fscore-ranker-processor\u002F",{"title":851,"url":852},"OpenSearch documentation: Normalization processor","https:\u002F\u002Fdocs.opensearch.org\u002Flatest\u002Fsearch-plugins\u002Fsearch-pipelines\u002Fnormalization-processor\u002F",{"title":854,"url":855},"Spryker documentation: Search feature overview","https:\u002F\u002Fdocs.spryker.com\u002Fdocs\u002Fpbc\u002Fall\u002Fsearch\u002Flatest\u002Fbase-shop\u002Fsearch-feature-overview\u002Fsearch-feature-overview",{"title":857,"url":858},"Spryker documentation: Migrate from OpenSearch 1.3 to 3.5","https:\u002F\u002Fdocs.spryker.com\u002Fdocs\u002Fpbc\u002Fall\u002Fsearch\u002Flatest\u002Fbase-shop\u002Finstall-and-upgrade\u002Fmigrate-from-opensearch-1.3-to-3.5.html",{"title":860,"url":861},"Instacart via ZenML: Rebuilding query understanding for e-commerce search with LLMs","https:\u002F\u002Fwww.zenml.io\u002Fllmops-database\u002Frebuilding-query-understanding-for-e-commerce-search-with-llms",{"title":863,"url":864},"arXiv: M3-Embedding, multilingual, multi-functionality, multi-granularity text embeddings","https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.03216",{"title":866,"url":867},"Algolia documentation: Search analytics metrics","https:\u002F\u002Fwww.algolia.com\u002Fdoc\u002Fguides\u002Fsearch-analytics\u002Fconcepts\u002Fmetrics\u002F","\u002Fimages\u002Fblog\u002Fsemantic-product-search-b2b\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fsemantic-product-search-b2b\u002Fog.jpg","b2b-ecommerce-developer",[73,74,75],"Szemantikus termékkeresés B2B webshopokban: cikkszámok, hibrid keresés és amit mérned kell","Szemantikus keresés B2B shopban a cikkszámos keresés tönkretétele nélkül: BM25 és vektorok hibridje, szűrők, DE\u002FEN\u002FHU, LLM-es lekérdezés-értelmezés, reranking, mérőszámok.","Diagram: a keresőkérdés azonosító sávra, lexikális BM25-re és vektoros kNN-re oszlik, összefésülődik, újrarangsorolódik, majd találatként jelenik meg.",1791009036613]