pile·
AI / ML·스캐터랩스캐터랩 (이루다)·

Deduplication - 학습 데이터에서 중복 제거하기

다양한 출처를 섞어 LLM(Luda Gen 1.5) 학습 데이터를 키우자 중복 문서 문제가 커졌다. 이 글은 중복 제거가 성능을 높인다는 연구를 근거로, 1억을 넘는 문서에서 NearDedup 알고리즘으로 근사 중복을 효율적으로 제거한 과정을 다룬다.

핵심 포인트
  • "거의" 같은 문서까지 중복으로 보려고 편집 거리 유사도를 도입하고 0.8 이상을 중복으로 판단했다.
  • 모든 쌍에 편집 거리를 계산하면 O(L^2)인데 L이 1억을 넘어 나이브 방식은 불가능했다.
  • NearDedup은 LSH로 후보를 좁히고 Jaccard 유사도로 거른 뒤 편집 거리로 최종 확인하는 3단 필터로 연산량을 줄인다.
  • 중복 쌍에서는 더 긴 문서를 지운다(광고 노이즈가 붙어 길어진다는 가정).
  • 병렬 처리가 가능한 각 단계를 Apache Beam 파이프라인으로 구현했다.
상세 정리
  • 배경: Luda Gen 1.5는 파라미터·데이터셋·입력 길이·프롬프트 형식이 개선됐고 외부 문서까지 학습에 넣어 다양성을 확보했다. 대신 출처 간 중복 가능성이 커지고 규모가 커 중복률 파악이 어려웠다. "Deduplicating Training Data Makes Language Models Better" 논문을 근거로 중복 제거를 결정했다.
  • 편집 거리: 한 문서를 다른 문서로 바꾸는 최소 편집(삽입·삭제·치환) 수다. 예로 "반가워요 이루다라고 해요"를 "반갑습니다"로 바꾸면 편집 거리 6이다.
  • 편집 거리 유사도 = 1 - (편집 거리 / 더 긴 문서 길이). 위 예는 1 - 6/14이며, 0.8 이상을 중복으로 본다.
  • 계산 난제: 두 문서 길이 L1·L2면 편집 거리 O(L1L2), 전체는 O(L^2)다. L이 1억 초과라 전수 계산이 불가능했다.
  • NearDedup 1단계 LSH: 유사할 가능성이 높은 문서를 그룹으로 묶어 비교 대상 쌍을 대폭 줄인다.
  • 2단계 Jaccard: 그룹 내 쌍의 단어 집합 교집합/합집합으로 유사도를 계산해 0.8 이상만 통과시킨다.
  • 3단계 편집 거리: 통과한 쌍만 편집 거리 유사도를 계산한다.
  • 4단계 제거: 편집 거리 유사도 0.8 이상 쌍에서 더 긴 문서를 삭제한다(길이가 같으면 ID로 비교). 중복이 대개 광고 문구 노이즈가 붙은 형태라 짧은 쪽이 더 정제됐다고 가정한다.
  • 구현: 각 단계가 병렬 가능해 Apache Beam으로 처리한다. LSHAlgorithm(MinHash로 버킷 key 할당), PairUpDocument(같은 버킷 쌍 생성), CheckDuplication(Jaccard·편집 거리 검사 후 긴 문서 제거 표시), Deduplicate(제거 표시 필터)로 구성한다. 파이프라인은 LSHAlgorithm→GroupByKey→PairUpDocument→Reshuffle→CheckDuplication→GroupByKey→Deduplicate 순이다.
  • 결과: 중복 문서를 제거해 깨끗한 학습 데이터셋을 확보했다.
왜 읽나대규모 코퍼스에서 근사 중복을 제거해야 하는 데이터·ML 엔지니어에게 LSH→Jaccard→편집 거리 3단 필터와 Apache Beam 구현 레퍼런스.
스캐터랩
스캐터랩 (이루다) 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. AI / ML·LY CorporationLY Corporation·

    Grafana에서 자연어로 장애 원인을 분석하기: LLM 에이전트 기반 SRELens 개발기

    LY Corporation Home SRE 팀이 장애 분석 시 메트릭·로그·트레이스가 각각 다른 화면에 흩어져 있는 문제를 해결하기 위해 Grafana 플러그인 SRELens를 개발했다. SRELens는 LLM 에이전트가 자연어 질의를 받아 실제 관측성 데이터를 조회하고, 근거와 함께 장애 원인 후보를 정리해 주는 도구다. LGTM-P 스택(Loki·Grafana·Tempo·Mimir·Pyroscope)과 FlavaMCP 게이트웨이를 통합해 단일 채팅 인터페이스에서 멀티시그널 분석이 가능하다.

    #llm-app#mcp#observability+2