Tách đơn vị đem đi tìm khỏi đơn vị đưa vào prompt. Đây là ý chính của small-to-big (còn gọi là parent document retrieval).
- Index: chunk nhỏ (~200-300 token). Vector của đoạn ngắn đặc trưng hơn nên khớp truy vấn tốt hơn.
- Trả về: chunk cha chứa nó (cả mục, hoặc cửa sổ vài chunk lân cận). Model đọc đủ ngữ cảnh để lập luận.
python
# each small node keeps a pointer to its parent
node.metadata["parent_id"] = section_id
hits = index.search(query_vector, top_k=20)
parent_ids = dedupe(h.metadata["parent_id"] for h in hits)
context = [store.get(pid) for pid in parent_ids[:5]]Hai biến thể hay dùng:
- Sentence-window: index từng câu, khi trúng thì mở rộng ra k câu trước/sau.
- Auto-merging: nếu nhiều chunk con của cùng một cha cùng trúng thì thay bằng chunk cha.
Lưu ý khi triển khai: phải khử trùng lặp theo parent_id trước khi ghép vào prompt, nếu không cùng một mục sẽ bị đưa vào nhiều lần và chiếm hết ngân sách context. Cũng cần đặt trần số parent vì một parent có thể rất dài.