Skip to content

행 분할된 EU 조각 간 max-pool dedup 필요 #26

Description

@dnjsgkfka

문제

export.langchain/export.llamaindexdedupe_by_chunk_id()chunk_id(=eu_id)가 같은 항목끼리만 그룹핑해서 재랭킹한다.

그런데 512토큰 초과로 행 분할된 표는 split.py에서 각 조각이 f"{eu_id}-s{n}" 형태로 서로 다른 eu_id(=chunk_id)를 받는다.
그 결과 같은 원본 표에서 나온 분할 조각들은 서로 다른 그룹으로 취급되어, max-pool dedup이 이 조각들 사이의 중복을 걸러내지 못한다.

영향

EU + max-pool 재랭킹 적용 시 R@5는 baseline보다 여전히 높지만(+1.3pp), R@10은 baseline이 근소하게 앞선다(0.885 vs 0.904, -1.9pp).
분할된 표가 많을수록(=토큰 한도를 자주 넘는 문서일수록) 이 격차가 더 벌어질 수 있다. 자세한 수치는 Wiki의 Benchmark 페이지 참고.

우선순위는 낮다. R@5까지는 여전히 baseline을 앞서고, R@10만 근소하게 밀리는 정도라 핵심 지표(EM)나 서비스 품질에 미치는 영향은 제한적이다.

재현 조건

  • 표가 512토큰을 초과해 여러 조각으로 행 분할됨
  • 그 조각들이 top-10 검색 결과 안에 여러 개 동시에 걸림

제안 수정

분할 조각에 원본 표 식별자(예: original_eu_id)를 추가하고,
dedupe_by_chunk_id()의 그룹핑 키를 chunk_id 대신 이쪽으로
확장한다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions