문서 길이 제한(Truncation)이 검색 성능에 미치는 영향

MIRIAD 의료 데이터셋의 지문들은 평균 941 토큰의 길이를 가지며, 이를 범용 모델에 적용했을 때 최대 0.24 NDCG@10의 성능 손실이 발생했다. ColBERT 체크포인트는 문서를 180 또는 300 토큰에서 절단하고, 다수의 밀집 벡터 모델은 256 또는 512 토큰까지만 수용하도록 설정되어 있다. 이러한 길이 제한은 모델 아키텍처의 차이로 발생하는 성능 변화보다 더 큰 영향을 미치며, 검색 점수 계산 전 문서의 뒷부분을 무단으로 삭제하는 결과를 초래한다.

저자는 RTX 3090 GPU 1대를 사용하여 14.5시간 동안 mLateOn-medical 모델을 학습시켰으며, 그 결과 dense, sparse, lexical, multi-vector 방식의 모든 범용 검색 모델보다 높은 성능을 기록했다. 도메인 특화 모델 구축의 핵심은 모델의 지능 향상뿐만 아니라, 데이터의 실제 길이에 맞춰 문서 수용량을 설정함으로써 정보 손실을 원천적으로 방지하는 데 있다. 사용자는 토크나이저의 `model_max_length` 설정을 통해 텍스트 절단 기준을 상향 조정함으로써 전문 도메인 문서의 핵심 정보 유실을 막을 수 있다.

MaxSim 연산 기반의 멀티벡터 아키텍처와 작동 원리

멀티벡터 모델(Late Interaction/ColBERT-style)은 텍스트 전체를 단일 벡터로 압축하지 않고 토큰별로 작은 벡터를 개별 유지하는 방식을 취한다. 문장 전체를 하나의 요약 벡터로 압축해 단 한 번의 내적 연산으로 유사도를 측정하는 밀집 임베딩(Dense Embedding) 모델과 달리, 토큰 수준의 세밀한 신호를 보존한다. 이러한 구조는 단일 벡터 모델이 평균화 과정에서 삭제하는 도메인 특유의 미묘한 맥락이나 희소 키워드를 그대로 유지하여 검색 정밀도를 높인다.

검색 점수 산출 시에는 MaxSim 연산자를 사용하여 쿼리 토큰과 문서 토큰을 일대다로 매칭한다. 쿼리를 구성하는 각 토큰 벡터가 문서 내 모든 토큰 벡터와 비교되어 가장 유사도가 높은 최적의 매칭 토큰을 찾고, 이 최대 유사도 점수들을 모두 합산하여 최종 점수를 결정한다. 다만, 문서 내 모든 토큰에 대응하는 벡터를 저장소에 유지해야 하므로 단일 벡터 방식보다 인덱스 크기가 물리적으로 증가하는 트레이드오프가 발생한다.

도메인 적응을 위한 체크포인트 선택 전략과 실험 결과

저자가 MIRIAD의 의료 질문-지문 쌍 25k개를 사용하여 6개의 시작 지점을 테스트한 결과, 비지도 학습(Unsupervised) 체크포인트가 완결된(Finished) 체크포인트보다 도메인 적응 성능이 훨씬 뛰어났다. 비지도 학습 체크포인트는 대규모 대조 학습을 마친 후 일반 검색 데이터로 지도 학습을 하기 전 단계의 모델로, 일반 목적의 튜닝 내용이 없어 새로운 도메인 데이터를 학습할 때 충돌이 적다. 반면 완결된 체크포인트는 학습률을 어떻게 조정해도 성능이 정체되거나 오히려 하락하는 경향을 보였다.

강력한 dense 임베딩 백본에 새로운 프로젝션 층을 추가하는 방식 또한 유효한 대안으로 확인되었다. Alibaba-NLP/gte-modernbert-base 백본에 랜덤하게 초기화된 토큰 레벨 프로젝션을 추가하고 25k 쌍의 데이터를 학습시킨 결과, 기존 체크포인트 시작점과 0.03 차이 이내의 성능에 도달했다. 이 파이프라인은 트랜스포머가 문맥화된 토큰 임베딩을 생성하고, Dense 층이 이를 128차원으로 압축하며, MultiVectorMask와 Normalize 단계를 거쳐 최종 벡터를 생성하는 ColBERT 구조를 따른다.

MultiVectorEncoderTrainer를 이용한 구현 및 인덱스 최적화

저자는 구두점 토큰을 문서 측 점수 계산과 저장 대상에서 제외하는 punctuation skiplist를 적용하여 문서 인덱스 크기를 9.6% 줄였다. 구두점 제외, 불용어 제외, 두 가지 모두 적용, 미적용의 4가지 조건으로 어블레이션 테스트를 수행한 결과, 구두점 제외 설정이 품질 면에서 소폭 우위를 점했다. 이는 저장 공간을 효율적으로 확보하면서도 검색 정확도를 유지할 수 있는 실질적인 최적화 방법이다.

모델 미세 조정에는 `MultiVectorEncoderTrainer` 클래스를 사용하며, 데이터 형식은 허깅페이스의 `datasets.DatasetDict`를 통해 학습, 검증, 테스트 데이터를 통합 관리한다. 의료 도메인 사례에서는 440만 개의 질문-지문 쌍으로 구성된 MIRIAD 데이터셋을 `load_dataset` 함수로 불러와 학습에 활용했다. 쿼리 확장용 마스크 토큰([MASK])이나 쿼리-문서 구분 접두사([Q]/[D]) 같은 고전적인 ColBERT 토큰화 기법을 4가지 설정으로 실험했으나, 의료 도메인에서는 유의미한 성능 차이가 나타나지 않았다.

전문 도메인 특화 모델 구축을 위한 실무 판단 기준

법률, 금융, 의료와 같이 전문 용어 하나가 전체 문맥의 의미를 결정하는 도메인에서는 텍스트를 단일 벡터로 압축하지 않는 멀티벡터 접근법이 유리하다. 토큰 단위로 대조하여 세밀한 도메인 신호를 보존하는 이 방식은 소량의 도메인 데이터만으로도 튜닝 효과가 빠르게 나타난다. 따라서 엔지니어는 도메인 특성에 맞는 문서 길이 설정을 최우선으로 검토하고, 이후 모델의 시작 지점을 결정해야 한다.

도메인 적응을 위한 체크포인트 선택 시에는 아래의 우선순위 기준을 적용하여 선택한다.

**[도메인 특화 모델 체크포인트 선택 기준]**

1순위: Unsupervised Checkpoint (비지도 학습 모델)

2순위: Fresh Projection on Backbone (강력한 백본에 새 프로젝션 추가)

3순위: Finished Checkpoint (완결된 지도 학습 모델)

이 기준을 적용하면 일반 목적의 튜닝을 다시 되돌려야 하는 비용을 줄이고, 타겟 도메인의 특성을 더 빠르게 모델에 반영할 수 있다.