> 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.
>
> Web page: https://balazscsorba.com/hu/blog/contextual-retrieval-late-chunking · Language: Magyar · Also available in: [English](https://balazscsorba.com/blog/contextual-retrieval-late-chunking.md) · [Deutsch](https://balazscsorba.com/de/blog/contextual-retrieval-late-chunking.md)
> Author: Balázs Csorba · Published: 2026-10-17 · Keywords: 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

[Blog](https://balazscsorba.com/hu/blog)/Retrieval és keresés

# 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.

[Balázs Csorba](https://balazscsorba.com/hu/about)·2026\. október 17.·10 perc olvasás

-   RAG
-   Chunking
-   Embeddings
-   Contextual retrieval
-   Late chunking

![Négy szabad négyzet, alul széles kapocs fogja össze, mindegyik felfelé egy nagy laphoz kapcsolódik.](https://balazscsorba.com/images/blog/contextual-retrieval-late-chunking/cover.webp?v=e58c30cd75)

## A lényeg röviden

-   Az Anthropic kontextuális visszakeresése minden chunk elé 50–100 token LLM által írt kontextust tesz, és 35%-kal csökkentette a top 20 találat hibaarányát, kontextuális BM25-tel 49%-kal, rerankerrel 67%-kal.
-   Prompt-gyorsítótárazással a kontextus előállítása egyszeri indexelési költség: 2024-ben kb. 1,02 dollár millió dokumentumtokenenként, a mai Haiku-listaárakkal saját számításom szerint nagyjából 0,38–3,84 dollár.
-   A késleltetett chunkolás előbb a teljes dokumentumot embeddeli, majd chunkonként átlagolja a tokenvektorokat; nem kell hozzá LLM, de kell egy hosszú kontextusú embedding-modell, amelynek a tokenkimeneteihez hozzáférsz.
-   A late chunking tanulmányban az átlagos javulás a naiv chunkoláshoz képest kb. 1,5–1,9 nDCG@10 pont volt, kis chunkoknál a legnagyobb, és nulla, ha a környező szöveg nem kapcsolódik a tartalomhoz.
-   Kezdd az olcsó alapvonallal, a dokumentum címével és a szakasz útvonalával minden chunk előtt, és mérj, mielőtt a három módszer bármelyikéért fizetsz.

Ezen az oldalon

1.  [Miért veszítik el a chunkok a kontextusukat?](https://balazscsorba.com/#context-loss)
2.  [Hogyan működik a kontextuális visszakeresés?](https://balazscsorba.com/#contextual-retrieval)
3.  [Mennyibe kerül a kontextus előállítása?](https://balazscsorba.com/#cost)
4.  [Hogyan működik a késleltetett chunkolás?](https://balazscsorba.com/#late-chunking)
5.  [Mi a helyzet a kontextusos embedding API-kkal?](https://balazscsorba.com/#contextual-models)
6.  [Hogyan viszonyul egymáshoz a három megközelítés?](https://balazscsorba.com/#comparison)
7.  [Mikor nem éri meg a plusz kontextus?](https://balazscsorba.com/#when-to-skip)
8.  [Mire figyelj a megvalósításnál?](https://balazscsorba.com/#implementation)
9.  [Melyiket válaszd?](https://balazscsorba.com/#which-to-pick)
10.  [Források](https://balazscsorba.com/#sources)

Cikk meghallgatása

0:000:00

A chunkolás veszteséges lépés. Egy chunk, amely azt mondja, hogy „a maximális terhelés 40 kg”, a kézikönyvben teljesen egyértelmű volt, ahol a két oldallal korábbi címsor megnevezte a terméket. Kivágva és önmagában embeddelve már nem említi sem a terméket, sem a változatot, sem a forrásdokumentumot, így egy terméknévvel feltett kérdés talán soha nem találja meg.

2024 óta háromféle megoldás jelent meg: a kontextuális visszakeresés, amely minden chunkot egy LLM-mel egészít ki; a késleltetett chunkolás, amely darabolás előtt a teljes dokumentumot embeddeli; és az API-ként árult kontextusos embedding-modellek. Ez a cikk összeveti, mit változtat mindegyik, mit mondanak a közzétett számok, mennyibe kerülnek, és melyik olcsó alapvonalat próbálom ki először. A korábban leírt [chunkolási és hibrid keresési pipeline-ra](https://balazscsorba.com/hu/blog/rag-pipeline-chunking-hybrid-search-reranking) épít.

## Miért veszítik el a chunkok a kontextusukat?

Az embedding-modellek csak azt a szöveget látják, amelyet átadsz nekik. Ha a dokumentumot előbb feldaraboljuk, és minden darabot külön embeddelünk, a chunkon kívülre mutató hivatkozások, például „ez”, „ez a változat”, „a fenti táblázat” vagy egy ki nem mondott terméknév, értelmüket vesztik. A BM25 ugyanígy szenved: az egyező kulcsszó a címsorban van, nem a chunkban.

A nagyobb chunk a kézenfekvő kerülőút, de felhígítja a vektort, és több irreleváns szöveget küld a modellnek. Az okosabb határok kevésbé segítenek, mint remélnénk: Qu, Tu és Bao 2024-es tanulmánya szerint a szemantikus chunkolás többletköltségét nem igazolja következetes javulás a fix méretű chunkokhoz képest. Az alábbi megoldások békén hagyják a határokat, és helyette kontextust adnak hozzá.

## Hogyan működik a kontextuális visszakeresés?

Az Anthropic 2024. szeptember 19-én tette közzé a kontextuális visszakeresést. Minden chunknál egy kis modell megkapja a teljes dokumentumot és a chunkot, és rövid, a chunkot a kereséshez elhelyező kontextust kell írnia, csak ezzel válaszolva. Az eredményt, ami általában 50–100 token, a chunk elé fűzik. Az összefűzött szöveget embeddelik, és BM25-höz is indexelik; az Anthropic ezt kontextuális embeddingnek és kontextuális BM25-nek nevezi.

Az LLM indexeléskor chunkonként egyszer fut; a lekérdezési útvonalon semmi sem változik.

A közölt hatás jelentős. Az Anthropic a top 20 találat hibaarányát mérte, vagyis egy mínusz recall@20 értéket, kódbázisok, szépirodalom, arXiv-cikkek és tudományos cikkek átlagában:

Konfiguráció

Hibaarány

Csökkenés

Alap embeddingek

5.7%

–

Kontextuális embeddingek

3.7%

35%

Kontextuális embeddingek + kontextuális BM25

2.9%

49%

Mindkettő, rerankeléssel

1.9%

67%

Ugyanabból a cikkből két részlet könnyen elsikkad. A chunkok elé fűzött általános dokumentum-összefoglalók csak nagyon csekély javulást hoztak, tehát a kontextusnak chunkspecifikusnak kell lennie. A rerankelt beállítás pedig kb. 150 jelöltet kért le, újrarangsorolta őket, és a top 20-at tartotta meg, ami jobban teljesített, mint 5 vagy 10 chunk átadása.

```
import anthropic

client = anthropic.Anthropic()

def chunk_context(document: str, chunk: str) -> str:
    """One call per chunk; the document block is cached and reused for every chunk."""
    msg = client.messages.create(
        model="claude-haiku-4-5",
        max_tokens=150,
        messages=[{"role": "user", "content": [
            {"type": "text", "text": f"<document>\n{document}\n</document>",
             "cache_control": {"type": "ephemeral"}},
            {"type": "text", "text": (
                f"Here is a chunk from the document:\n<chunk>\n{chunk}\n</chunk>\n"
                "Write a short context that situates this chunk within the document "
                "to improve search retrieval. Answer only with the context.")},
        ]}],
    )
    return msg.content[0].text.strip()

# Index context and chunk together, but keep both fields for display and re-runs.
record = {"context": ctx, "chunk": chunk, "index_text": f"{ctx}\n\n{chunk}"}
```

## Mennyibe kerül a kontextus előállítása?

Az Anthropic kb. 1,02 dollárra becsülte millió dokumentumtokenenként, egyszeri költségként, 8000 tokenes dokumentumokkal, 800 tokenes chunkokkal, chunkonként 50 token utasítással és 100 token kontextussal, gyorsítótárazott dokumentummal számolva. Ez a szám a Claude 3 Haiku 2024-es árain alapult. Ugyanezekkel a feltevésekkel és az Anthropic árlistájának jelenlegi áraival újraszámoltam: millió dokumentumtokenre ez 125 dokumentum és 1250 chunk, dokumentumonként egy gyorsítótár-írás, kilenc gyorsítótár-olvasás, a chunk és az utasítás normál bemenetként, a kontextus kimenetként.

Tétel 1 millió dokumentumtokenre

Token

Haiku 4.5

Haiku 5.5 (100k-ig)

Gyorsítótár-írás, dokumentumok

1.0M

$1.25

$0.13

Gyorsítótár-olvasás, dokumentumok

9.0M

$0.90

$0.09

Bemenet, chunk és utasítás

1.06M

$1.06

$0.11

Kimenet, kontextus

0.125M

$0.63

$0.06

**Összesen**

**$3.84**

**$0.38**

Így vagy úgy, indexelési költség, amelyet csak dokumentumváltozáskor kell újra megfizetni, és a fejlesztési időhöz képest kicsi. A buktató a változás: ha egy dokumentum egy bekezdése módosul, a benne lévő összes chunk kontextusa megváltozhat, ezért a teljes dokumentumot kontextualizáld újra, ne csak a szerkesztett chunkot.

## Hogyan működik a késleltetett chunkolás?

A késleltetett chunkolás, amelyet Günther és kollégái javasoltak a Jina AI-nál 2024 szeptemberében, a darabolást a folyamat végére teszi. A hosszú kontextusú embedding-modell elolvassa a teljes dokumentumot, vagy amennyi belefér, és tokenenként egy vektort állít elő. Az attention révén minden tokenvektor már tükrözi a környező szöveget. Csak ezután alkalmazzuk a chunkhatárokat: az egyes chunkokon belüli tokenvektorokat átlagolással egy chunk-embeddinggé vonjuk össze. A tanulmány szavaival: chunkolás a transformer után, közvetlenül az átlagoló pooling előtt.

A naiv chunkolás minden chunkon külön futtatná a transformert, így egyik chunk sem látná a szomszédait.

A Jina eredeti cikke egy Berlinről szóló Wikipédia-szöveggel mutatja be a hatást: a lakosságszámról szóló mondat koszinusz-hasonlósága a „Berlin” lekérdezéshez naiv chunkolással 0,708, késleltetett chunkolással 0,825 volt, mert a „lakossága” szó most már magában hordozta a várost. A tanulmány benchmarkjai szerényebbek. Három modell és négy BeIR-adatkészlet átlagában a késleltetett chunkolás kb. 1,8 ponttal javította az nDCG@10 értéket fix méretű chunkoknál, 1,9-cel mondatalapú és 1,5-tel szemantikus chunkoknál. A legnagyobb egyedi ugrás az NFCorpuson volt, 23,5-ről 30,0-ra a jina-embeddings-v2-small modellel.

A tanulmány a korlátokról is őszintén ír. A javulás kis chunkoknál a legnagyobb, és néhány szövegértési adatkészleten nagy chunkokkal a naiv chunkolás nyert. A szintetikus needle és passkey feladatoknál, ahol a környező szöveg összefüggéstelen töltelék, a késleltetett chunkolás nem segített. A modell ablakánál hosszabb dokumentumokat a szerzők átfedő makrochunkokra bontják, és mindegyikre külön alkalmazzák a módszert.

```
import torch
from transformers import AutoModel, AutoTokenizer

# Any mean-pooling, long-context embedding model whose token outputs you can read.
tok = AutoTokenizer.from_pretrained(MODEL)
model = AutoModel.from_pretrained(MODEL)

def late_chunk(text: str, spans: list[tuple[int, int]]) -> list[torch.Tensor]:
    """spans are character ranges from your normal chunker."""
    enc = tok(text, return_offsets_mapping=True, truncation=True,
              max_length=8192, return_tensors="pt")
    offsets = enc.pop("offset_mapping")[0].tolist()
    with torch.no_grad():
        tokens = model(**enc).last_hidden_state[0]      # one vector per token
    out = []
    for start, end in spans:
        idx = [i for i, (s, e) in enumerate(offsets) if e > s and s >= start and e <= end]
        v = tokens[idx].mean(dim=0)                     # pool only this chunk's tokens
        out.append(v / v.norm())
    return out
```

## Mi a helyzet a kontextusos embedding API-kkal?

A harmadik lehetőség modellként csomagolja az ötletet. A Voyage 2025 júliusában adta ki a voyage-context-3, 2026 júniusában a voyage-context-4 modellt: egy dokumentum összes chunkját együtt küldöd el, és chunkonként egy vektort kapsz, mindegyiket a teljes dokumentumot látva kiszámítva. Az API dokumentumok listáját fogadja, mindegyik chunkok listája, kérésenként legfeljebb 1000 bemenettel, összesen 120 000 tokennel és 16 000 chunkkal. A lekérdezések ugyanazon a végponton, egyelemű listaként mennek. A voyage-context-4 millió tokenenként 0,12 dollárba kerül, maga is tud chunkolni, a 32 000 tokennél hosszabb dokumentumokat pedig feldarabolja.

```
import voyageai

vo = voyageai.Client()

docs = [["Chunk 1 of manual A ...", "Chunk 2 of manual A ..."],
        ["Chunk 1 of manual B ..."]]
res = vo.contextualized_embed(inputs=docs, model="voyage-context-4",
                              input_type="document")
chunk_vectors = [r.embeddings for r in res.results]   # one list per document

q = vo.contextualized_embed(inputs=[["maximum load of the X200 shelf"]],
                            model="voyage-context-4", input_type="query")
query_vector = q.results[0].embeddings[0]
```

A Voyage szerint a voyage-context-3 chunkszintű visszakeresésben 6,76%-kal verte az Anthropic-stílusú kontextuális visszakeresést és 23,66%-kal a Jina late chunkingot. Ezeket szolgáltatói számként kezeld, és figyelj arra, hogy a voyage-context-3 cikk az összefoglalóban és az eredmények részben két különböző százalékkészletet közöl. Az architekturális lényeg ettől függetlenül áll: dokumentumkontextust kapsz chunkonkénti LLM-hívás nélkül, cserébe szolgáltatóhoz kötöd az indexelést és a lekérdezést is.

## Hogyan viszonyul egymáshoz a három megközelítés?

Megközelítés

Mi változik

Mi kell hozzá

Segít a BM25-nek

Fő költség

Cím- és címsor-előtag

Chunkszöveg

Feldolgozott szerkezet

Igen

Szinte semmi

Kontextuális visszakeresés

Chunkszöveg

Chunkonként LLM-hívás

Igen

LLM-tokenek indexeléskor

Késleltetett chunkolás

Csak a vektorok

Hosszú kontextusú modell, tokenkimenet

Nem

Saját inferencia

Kontextusos embedding API

Csak a vektorok

Egy szolgáltató indexhez és lekérdezéshez

Nem

Tokenalapú API-ár

**Először az olcsó alapvonalat próbáld ki**

A három módszer bármelyike előtt fűzd minden chunk elé a dokumentum címét és a címsorok útvonalát, például: „X200 polc kézikönyv > Műszaki adatok > Terhelés”. Lekérdezéskor semmibe sem kerül, a BM25-nek és a vektoroknak egyaránt segít, és ha a feldolgozód megőrzi a címsorokat, ahogy a [PDF-feldolgozás RAG-hoz](https://balazscsorba.com/hu/blog/pdf-document-parsing-for-rag) cikkben tárgyaltam, néhány sor kód. Ezt mérd le, aztán a kontextuális visszakeresést ehhez mérd, ne a csupasz chunkokhoz.

## Mikor nem éri meg a plusz kontextus?

-   **Önmagukban érthető rekordok.** A termékadatok, GYIK-bejegyzések és jegyek már megnevezik a tárgyukat. A plusz kontextus csak megismétli, ami ott van.
-   **Kis tudásbázisok.** Az Anthropic megjegyzi, hogy kb. 200 000 token, nagyjából 500 oldal alatt egyszerűbb lehet mindent a promptba tenni, mint visszakeresést építeni. Ezt a kompromisszumot a [RAG 2026-ban](https://balazscsorba.com/hu/blog/rag-2026-hybrid-agentic-long-context) cikkben mérlegeltem.
-   **Független környezet.** Egy fájlban gyűjtött, egymástól független jegyzetek semmi hasznosat nem adnak át a modellnek, ahogy a late chunking tanulmány needle-eredményei is mutatják.
-   **Gyorsan változó dokumentumok.** Ha a dokumentumok naponta változnak, a kontextuális visszakeresés azt jelenti, hogy naponta teljes dokumentumokon kell újrafuttatni az LLM-et. A late chunking vagy egy kontextusos API csak egy embedding-futásba kerül.

## Mire figyelj a megvalósításnál?

1.  **Tárold külön a kontextust és a chunkot.** Az összefűzött szöveget indexeld, de mindkét mezőt őrizd meg. Az Anthropic szerint a generálás javulhat, ha a modell meg tudja különböztetni a hozzáadott kontextust az eredeti szövegtől, a hivatkozásokhoz pedig a nyers chunk kell.
2.  **Verziózd a kontextusprompt.** A prompt mostantól az index része. Ha módosítod, újra kell kontextualizálni, ezért adj neki verziót, és tárold ezt minden chunk mellett.
3.  **Szabd a saját területedre.** Az Anthropic szerint a szakterületre szabott promptok, például szójegyzékkel, felülmúlhatják az általánosat. Egy B2B-katalógusnál arra utasítanám a modellt, hogy mindig nevezze meg a termékcsaládot és a változatot.
4.  **A visszakeresést mérd, ne a benyomásaidat.** Hasonlítsd össze a recall@20 és az nDCG@10 értéket címkézett kérdéseken előtte és utána, ahogy a [RAG értékelése](https://balazscsorba.com/hu/blog/rag-evaluation-metrics) cikkben. A közzétett javulások mások adatain számolt átlagok.

## Melyiket válaszd?

Ökölszabályom: ha hibrid keresést futtatsz, a kontextuális visszakeresés az alapértelmezés, mert ez az egyetlen lehetőség, amely a kulcsszavas találatokat is javítja, és bármely embedding-modellel működik. Ha a korpusz nagy és gyakran változik, vagy a dokumentumok nem kerülhetnek LLM-szolgáltatóhoz, egy saját hosztolású, hosszú kontextusú modellel végzett késleltetett chunkolás embedding-költségen hozza a haszon egy részét. Ha már olyan szolgáltatót használsz, amely kontextusos embeddinget kínál, és elfogadod a kötöttséget, az a legkevesebb fejlesztéssel jár. Mindhárom esetben a cím- és címsor-előtaggal kezdj, és tartsd meg a rerankert, amely az Anthropic számaiban az utolsó lépést hozta 49%-ról 67%-ra.

## Források

1.  [Anthropic: Introducing Contextual Retrieval (Sep 2024)](https://www.anthropic.com/news/contextual-retrieval)
2.  [Günther et al.: Late Chunking, Contextual Chunk Embeddings Using Long-Context Embedding Models (2024, rev. 2025)](https://arxiv.org/abs/2409.04701)
3.  [Jina AI: Late Chunking in Long-Context Embedding Models (Aug 2024)](https://jina.ai/news/late-chunking-in-long-context-embedding-models/)
4.  [Voyage AI: Introducing voyage-context-3 (Jul 2025)](https://blog.voyageai.com/2025/07/23/voyage-context-3/)
5.  [Voyage AI: voyage-context-4 (Jun 2026)](https://blog.voyageai.com/2026/06/29/voyage-context-4/)
6.  [Voyage AI: Contextualized chunk embeddings documentation](https://docs.voyageai.com/docs/contextualized-chunk-embeddings)
7.  [Anthropic: Claude API pricing](https://platform.claude.com/docs/en/about-claude/pricing)
8.  [Qu, Tu and Bao: Is Semantic Chunking Worth the Computational Cost? (2024)](https://arxiv.org/abs/2410.13070)

## Gyakori kérdések

Mi a kontextuális visszakeresés?

Az Anthropic által 2024 szeptemberében közzétett előfeldolgozási lépés. Egy LLM elolvassa a teljes dokumentumot és minden chunkot, rövid kontextust ír, amely elhelyezi a chunkot, és ezt a kontextust a chunk elé fűzik az embeddelés és a BM25-indexelés előtt.

Mi a késleltetett chunkolás (late chunking)?

A Jina AI kutatóinak módszere: az embedding-modellt a teljes dokumentumon futtatod, aztán a tokenembeddingeket chunkokra bontod, és chunkonként átlagolod. Minden chunkvektor a dokumentum többi részét is látva készül, külön LLM-hívás nélkül.

Drága a kontextuális visszakeresés?

Indexeléskor chunkonként egy LLM-hívásba kerül, nem lekérdezésenként. A dokumentumra alkalmazott prompt-gyorsítótárazással az Anthropic 2024-ben kb. 1,02 dollárra becsülte millió dokumentumtokenenként; a jelenlegi Claude Haiku listaárakkal újraszámolva nagyjából 0,38 és 3,84 dollár közé esik.

Segít a late chunking a kulcsszavas keresésnek?

Nem. A late chunking csak a vektorokat változtatja meg. A BM25 továbbra is a nyers chunkszöveget látja. A kontextuális visszakeresés magát a szöveget módosítja, így egyszerre javítja a BM25-öt és a vektoros keresést.

Mikor hagyjam ki mindezt?

Ha a chunkok már önmagukban is érthetők, például termékrekordok vagy GYIK-bejegyzések, vagy ha a teljes tudásbázis belefér a promptba. Az Anthropic szerint kb. 200 000 token alatt egyszerűbb lehet mindent a kontextusba tenni, mint RAG-ot építeni.

Írta: Csorba Balázs

Senior fullstack és AI mérnök Stájerországban – több mint 10 év Vue, Nuxt, Node.js és PHP, ma AI-ügynököknek építek eszközöket.

[AI fejlesztés és MCP szerverek →](https://balazscsorba.com/hu/expertise/ai-engineer)[Rólam →](https://balazscsorba.com/hu/about)

## További cikkek

-   [Embedding-modell választása 2026-ban: ranglisták, költségek és összehasonlító teszt a saját adatokon](https://balazscsorba.com/hu/blog/embedding-model-selection-2026)
-   [Hozzáférés-kezelés RAG-hoz: jogosultságtudatos visszakeresés dokumentumszivárgás nélkül](https://balazscsorba.com/hu/blog/rag-access-control-permissions)
-   [PDF-feldolgozás RAG-hoz: layout-pipeline-ok, OCR és vizuális modellek összevetve](https://balazscsorba.com/hu/blog/pdf-document-parsing-for-rag)
-   [Többnyelvű RAG német és magyar tartalomra: embeddingek, összetett szavak és nyelvek közötti keresés](https://balazscsorba.com/hu/blog/multilingual-rag-german-hungarian)

## Pont erre van szükséged?

Írj a projektedről vagy a pozícióról – szívesen hallok felőled.

[Lépj velem kapcsolatba](mailto:contact@balazscsorba.com) [Kapcsolódjunk LinkedInen](https://www.linkedin.com/in/balazs-csorba)
