RocketQA: 오픈 도메인 질의응답을 위한 최적화된 밀집 구절 검색
“누가 전기를 발명했나요?”라고 묻고, 다양한 주제와 형식에 걸친 수십억 개의 비정형 문서에서 가장 관련성 높은 구절을 시스템이 정확히 찾아내길 기대한다고 상상해 보세요. 이는 오픈 도메인 질의응답(QA)의 과제를 보여줍니다. 여기서 시스템은 Wikipedia나 웹 아카이브처럼 대규모의 정제되지 않은 데이터셋에서 관련 정보를 빠르게 검색하고 순위를 매겨야 합니다. 초기 QA 시스템은 질문 분석과 문서 검색 같은 작업을 위한 복잡한 파이프라인을 통해 이 문제를 해결했습니다. 이후 2단계 접근법은 구절을 검색하고 dense retrieval 기법을 사용해 정확한 답변을 추출함으로써 과정을 단순화했습니다.
듀얼 인코더 아키텍처를 사용하는 Dense retrieval은 효율적인 의미적 매칭을 위해 질문과 구절을 dense embeddings로 표현합니다. 그러나 이러한 모델을 학습시키는 과정에는 학습과 추론 간의 불일치, 잘못 라벨링된 양성 사례, 제한된 주석 데이터셋 등 여러 문제가 발생합니다. 이러한 장애물을 해결하기 위해 논문 Optimized Training of Dense Retrieval Models with Hard Negatives에서 소개된 RocketQA는 cross-batch negatives, denoising hard negatives, data augmentation을 포함한 일련의 전략을 제시합니다. 이러한 방법은 듀얼 인코더 학습의 견고성을 향상시키고 구절 검색 정확도를 높입니다.
이 글에서는 RocketQA의 아키텍처와 학습 전략을 포함하여, 오픈 도메인 QA를 위한 dense retrieval에 대한 RocketQA의 기여를 논의합니다.
오픈 도메인 QA의 과제 이해하기
오픈 도메인 QA 시스템은 방대한 문서 코퍼스에서 가장 관련성 높은 구절을 찾아 사용자 질의에 답하는 것을 목표로 합니다. 이러한 문서는 일반적으로 검색과 retrieval을 더 효율적으로 만들기 위해 더 작은 구절로 나뉩니다. 검색된 각 관련 구절에 대해, 시스템은 질문에 답하는 정확한 텍스트 범위도 식별해야 합니다.
이 작업은 데이터의 규모와 복잡성 때문에 특히 어렵습니다. 시스템은 세 가지 핵심 측면의 균형을 맞춰야 합니다: 실시간 retrieval을 위한 속도 보장, 가장 관련성 높은 구절을 정확히 식별하기 위한 정밀도 유지, 중요한 정보를 놓치지 않기 위한 재현율 극대화. 이러한 균형을 맞추는 것은 효과적인 오픈 도메인 QA에 필수적입니다.
Dense retrieval 시스템은 키워드 기반 접근법에만 의존하기보다 semantic matching에 초점을 맞춤으로써 이러한 과제를 해결하는 데 상당한 진전을 이루었습니다. 그러나 특정 영역에서 효율성과 정확도를 향상시키는 한편, 성능을 제한하는 특정 장애물에도 직면합니다.
전통적인 Dense Retrieval의 격차
Dense retrieval 시스템은 몇 가지 주요 한계에 직면합니다:
학습과 실제 환경 간의 불일치: 모델은 종종 작고 정제된 데이터셋으로 학습되는 반면, 실제 시스템은 수십억 개의 구절을 처리해야 합니다. 이러한 불일치는 더 크고 복잡한 데이터셋 전반에서 일관되게 수행하는 능력을 저하시킵니다.
희소한 주석: 많은 QA 데이터셋은 라벨링된 데이터가 제한적이며, 질의를 단 하나 또는 두 개의 양성 구절과만 연결하는 경우가 많습니다. 이는 학습 중 false negatives로 이어지며, 관련 구절이 관련 없는 것으로 잘못 처리됩니다.
Hard Negatives: 이러한 시스템은 관련 있어 보이지만 실제로는 질의에 답하지 않는 구절을 처리하는 데 종종 어려움을 겪습니다. 예를 들어, “누가 전기를 발견했나요?”라는 질의는 관련은 있지만 부정확한 Benjamin Franklin의 실험에 관한 구절을 검색할 수 있습니다. 이러한 구절이 학습 중 잘못 관리되면 모델을 혼란스럽게 하고 retrieval 정확도를 낮출 수 있습니다.
RocketQA가 학습 전략을 개선하고 모델이 데이터를 처리하는 방식을 정교화하는 기법을 도입함으로써 이러한 과제를 어떻게 해결하는지 살펴보겠습니다.
RocketQA란 무엇인가?
RocketQA는 오픈 도메인 질의응답(QA) 시스템을 향상하도록 설계된 고도로 최적화된 밀집 구절 검색 프레임워크입니다. Baidu가 개발한 RocketQA는 관련 구절을 검색하기 위해 듀얼 인코더 모델 아키텍처를 사용하며, 여기서 쿼리와 문서 인코더는 검색 성능을 개선하기 위해 협력적으로 학습됩니다. 이 프레임워크는 cross-batch negative sampling 및 denoising과 같은 혁신적인 학습 기법을 도입하여 희소한 negative sample 및 노이즈가 있는 학습 데이터와 같은 일반적인 문제를 해결합니다.
RocketQA가 밀집 검색을 개선하는 방식
RocketQA는 듀얼 인코더 아키텍처를 기반으로 하며, 이는 질문과 구절에 대한 밀집 임베딩을 미리 계산함으로써 효율적인 의미 매칭을 가능하게 합니다. 듀얼 인코더는 두 개의 별도 인코더로 구성됩니다:
질문 인코더(Eq(q)): 쿼리를 밀집 벡터 표현으로 변환합니다.
구절 인코더(Ep(p)): 각 구절을 밀집 벡터 표현으로 변환합니다.
질문과 구절 간의 유사도는 해당 임베딩의 내적으로 계산됩니다:
sim(q, p) = Eq(q) ⋅ Ep(p)
이 미리 계산된 구조를 통해 모든 구절의 임베딩을 인덱스에 저장하고 여러 쿼리에 재사용할 수 있으므로 빠른 검색이 가능합니다. 그러나 듀얼 인코더는 확장성을 제공하지만, 쿼리와 구절 간의 미묘한 관계를 포착하는 성능에는 한계가 있습니다.
이를 해결하기 위해 RocketQA는 학습 품질을 개선하기 위해 크로스 인코더를 통합합니다. 크로스 인코더는 쿼리와 구절을 함께 처리하여 더 풍부한 문맥적 상호작용을 가능하게 합니다. 듀얼 인코더의 확장성과 크로스 인코더의 정교화를 결합함으로써 RocketQA는 효율성과 정확성 간의 균형을 달성합니다. 듀얼 인코더와 크로스 인코더가 작동하는 방식은 다음과 같습니다.
그림: 듀얼 인코더 및 크로스 인코더 아키텍처의 도해
듀얼 인코더는 쿼리와 구절을 독립적으로 밀집 임베딩으로 인코딩합니다. 예를 들어, 쿼리 “누가 전기를 발명했는가?”는 그 의미적 뜻을 기반으로 벡터 표현으로 인코딩되는 반면, “Michael Faraday는 전자기학에 중대한 기여를 했다” 및 “Benjamin Franklin의 연 실험”과 같은 구절도 벡터로 인코딩됩니다. 시스템은 이러한 벡터를 비교하여 어떤 구절이 쿼리와 가장 유사한지 판단합니다. 이 과정은 구절 임베딩을 미리 계산하고 재사용할 수 있기 때문에 매우 효율적입니다.
반대로, 크로스 인코더는 쿼리와 구절을 함께 처리합니다. 이를 별도로 인코딩하는 대신, 둘 사이의 관계를 검사합니다. 예를 들어, 동일한 쿼리와 구절을 평가할 때, 크로스 인코더는 Benjamin Franklin의 연 실험을 언급하는 구절이 전기와 관련이 있지만 쿼리에 직접 답하지는 않는다는 점을 더 잘 이해할 수 있습니다. 이러한 더 풍부한 이해는 계산 효율성을 희생하는 대가로 얻어지므로, 파인튜닝 및 학습 데이터 생성에 더 적합합니다.
Cross-Batch Negative를 통한 더 스마트한 샘플링
밀집 검색의 과제 중 하나는 다양한 negative example(쿼리에 답하지 않는 구절) 집합으로 모델을 학습시키는 것입니다. 기존 접근 방식은 동일한 배치 내의 구절로 제한되는 in-batch negative를 사용합니다. RocketQA는 학습 중 여러 GPU에 걸쳐 negative example을 공유하는 cross-batch negative를 도입하여 이러한 한계를 해결합니다.
이 접근 방식은 negative sample의 풀을 크게 확장하여 실제 시나리오를 더 잘 대표하도록 만듭니다. 모델을 더 다양하고 도전적인 negative에 노출함으로써 RocketQA는 과적합을 줄이고 관련 구절과 관련 없는 구절을 구별하는 능력을 향상시킵니다.
그림: 멀티 GPU 학습에서 인배치 네거티브와 크로스배치 네거티브의 비교. 여기서 A는 GPU 수이고 B는 배치 크기입니다.
네거티브 샘플링을 배치 수준으로 제한하는 기존 방법과 달리, RocketQA는 각 질문이 다른 배치의 네거티브와 짝지어질 수 있게 하여 추가 메모리 없이 다양성을 높입니다.
최적화된 학습 목표
RocketQA의 학습 과정은 손실 함수를 최적화하여 주어진 쿼리에 대해 관련 문서를 식별하는 모델의 능력을 향상하는 데 초점을 둡니다. 이 손실 함수는 모델이 긍정 쿼리-문서 쌍(관련 문서)에 더 높은 유사도 점수를 부여하고 부정 쿼리-문서 쌍(관련 없는 문서)에 더 낮은 점수를 부여하도록 유도합니다.
손실 함수는 다음과 같이 표현됩니다:
L(qi, p⁺i, {p⁻i,j}) = - log ( exp(sim(qi, p⁺i)) / ( exp(sim(qi, p⁺i)) + Σj=1^m exp(sim(qi, p⁻i,j)) ) )
최적화가 작동하는 방식은 다음과 같습니다:
긍정 문서 (p⁺i): 각 쿼리 qi에 대해, 모델은 관련 있다고 레이블링된 긍정 문서를 식별합니다. 목표는 쿼리와 긍정 문서가 얼마나 밀접하게 일치하는지를 측정하는 유사도 점수 sim(qi, p⁺i)를 최대화하는 것입니다.
부정 문서 (p⁻i,j): 동일한 쿼리 qi에 대해, 여러 부정 문서(쿼리와 관련 없는 문서)가 도입됩니다. 모델은 이러한 문서에 더 낮은 유사도 점수 sim(qi, p⁻i,j)를 부여하도록 학습됩니다.
점수 균형 맞추기: 손실 함수의 분모에는 긍정 문서와 부정 문서의 유사도 점수가 모두 포함됩니다. 이 손실을 최소화함으로써, 모델은 부정 문서에 비해 긍정 문서의 유사도 점수를 높이는 방법을 학습합니다.
과정 시각화: 이 최적화를 의미 공간을 재구성하는 과정으로 생각해 보세요. 관련 문서의 임베딩은 의미 공간에서 쿼리에 더 가까이 당겨지고, 관련 없는 문서의 임베딩은 더 멀리 밀려납니다.
순위 개선: 이 최적화의 결과는 주어진 쿼리에 대해 긍정 문서를 부정보다 더 높게 순위화하는 모델이며, 관련 정보를 정확하게 검색하는 시스템의 능력을 향상합니다.
이 손실 함수를 최적화함으로써, RocketQA는 네거티브가 문맥적으로 유사한 시나리오에서도 밀집 검색 모델이 관련 문서와 관련 없는 문서를 더 효과적으로 구별하도록 보장합니다. 이러한 개선은 검색 시스템의 정밀도와 재현율을 직접적으로 향상하여 오픈 도메인 QA 작업에서 더 나은 성능을 가능하게 합니다.
RocketQA 학습: 4단계 최적화 파이프라인
RocketQA의 학습 과정은 검색 역량을 향상하기 위해 듀얼 인코더를 체계적으로 정제하는 구조화된 4단계 파이프라인을 통해 구현됩니다. 각 단계는 이전 단계를 기반으로 하여 하드 네거티브 처리, 학습 예제 다양화, 희소한 주석 보완과 같은 앞서 논의한 핵심 과제를 해결합니다.
그림: RocketQA 학습 파이프라인의 네 단계:
각 단계의 내용은 다음과 같습니다:
1. 크로스배치 네거티브 샘플링
듀얼 인코더는 먼저 GPU 간에 부정 문서를 공유하는 크로스배치 네거티브를 사용하여 학습됩니다. 이는 학습에 사용할 수 있는 네거티브의 다양성을 높여 모델이 실제 환경을 더 효과적으로 시뮬레이션하도록 돕습니다. 이 기법을 활용함으로써 RocketQA는 모델을 더 어려운 네거티브에 노출시켜 관련 문서와 관련 없는 문서를 구별하는 능력을 정제합니다.
2. 크로스 인코더 파인튜닝
초기 학습 이후, 크로스 인코더는 쿼리-패시지 쌍을 더 높은 문맥적 이해로 평가하도록 파인튜닝됩니다. 크로스 인코더는 까다로운 하드 네거티브를 식별하고, 이는 이후 듀얼 인코더를 추가로 개선하는 데 사용됩니다. 이 단계는 듀얼 인코더가 크로스 인코더의 더 깊은 관계적 통찰을 활용할 수 있도록 보장합니다.
3. 하드 네거티브 디노이징
듀얼 인코더는 크로스 인코더가 선별한 디노이징된 하드 네거티브로 재학습됩니다. 이 과정은 잘못 라벨링되었거나 정보성이 낮은 네거티브를 제외함으로써 학습 데이터의 노이즈를 줄입니다. 그 결과, 모델은 관련 패시지와 관련 없는 패시지 사이의 의미 있는 차이에 집중하여 정밀도를 향상시킵니다.
4. 데이터 증강
마지막 단계에서 크로스 인코더는 학습 데이터셋을 풍부하게 하기 위해 의사 라벨을 생성합니다. 이러한 의사 라벨은 추가 라벨링 데이터를 생성함으로써 희소한 어노테이션 문제를 해결하는 데 도움을 주며, 듀얼 인코더가 다양한 쿼리에 대해 더 잘 일반화할 수 있도록 합니다.
이 구조화된 과정은 RocketQA가 앞서 논의한 개선 사항을 응집력 있고 최적화된 워크플로로 효과적으로 통합하도록 보장하며, 궁극적으로 밀집 검색 작업에서의 성능을 향상시킵니다.
벤치마크에서의 RocketQA 성능
학습 파이프라인을 최적화한 후, RocketQA는 다양한 오픈 도메인 질의응답(QA) 벤치마크에서 강력한 성능을 보여줍니다. 이러한 벤치마크는 RocketQA가 서로 다른 데이터셋 전반에서 관련 패시지를 얼마나 잘 검색하는지 평가하며, 각 데이터셋은 복잡한 쿼리, 희소한 어노테이션, 또는 오해를 유발하는 네거티브와 같은 고유한 과제를 제시합니다.
이는 MS MARCO, Natural Questions, TriviaQA에서 테스트되었습니다. MS MARCO는 사용자 쿼리를 관련 및 비관련 패시지와 매칭하는 데 초점을 맞추며, 검색 정확도를 강조합니다. Natural Questions는 Google Search의 실제 사용자 쿼리를 포함하며, 시스템이 Wikipedia에서 관련 패시지를 식별해야 합니다. TriviaQA는 정확한 답을 검색하기 위해 종종 문맥적 추론과 더 깊은 이해가 필요한 퀴즈 스타일의 질문을 제시합니다.
이는 MS MARCO 데이터셋에서 평균 역순위(MRR@10) 37.0을 달성하여, 각각 32.7과 33.0을 기록한 DPR 및 ANCE와 같은 다른 밀집 검색기보다 우수한 성능을 보입니다. 이 모델은 Natural Questions (NQ) 데이터셋에서도 좋은 성능을 보이며, ANCE의 87.5 및 DPR의 85.4와 비교해 재현율(R@100) 88.5에 도달합니다. 이러한 결과는 RocketQA가 최적화 이후 더 높은 정밀도와 재현율로 관련 패시지를 검색할 수 있는 능력을 갖추고 있음을 보여줍니다.
RocketQA의 향후 방향
다양한 벤치마크에서의 RocketQA의 성공은 밀집 검색 시스템으로서의 강점을 잘 보여줍니다. 그러나 오픈 도메인 질의응답이 더 복잡해짐에 따라, 그 역량을 개선하고 한계를 해결하며 새로운 과제와 사용 사례에 대응하도록 기능을 확장할 명확한 기회가 있습니다.
멀티모달 검색 통합
텍스트를 넘어 이미지, 비디오, 구조화된 데이터와 같은 멀티모달 데이터를 포함하도록 확장하면 RocketQA가 더 풍부하고 다양한 쿼리를 처리할 수 있습니다. 예를 들어, 지구 온난화에 대한 이 차트의 정보를 설명해줘와 같은 쿼리는 시각적 이해와 텍스트 이해의 통합을 필요로 합니다. 모달리티를 결합하면 RocketQA를 의료 진단, 과학 연구, 멀티미디어 검색과 같은 영역에 적용할 수 있게 됩니다.
문맥 인식 개인화
RocketQA의 검색 과정에 사용자별 문맥을 통합하면 결과의 관련성을 향상시킬 수 있습니다. 사용자 이력이나 선호도에서 신호를 임베딩함으로써, 모델은 개인의 필요에 맞게 답변을 조정할 수 있습니다. 예를 들어, 에너지를 조사하는 학생은 단순화된 설명을 선호할 수 있는 반면, 도메인 전문가는 상세하고 출처가 풍부한 결과에서 이점을 얻을 수 있습니다.
도메인별 맞춤화
법률 문서나 의학 문헌과 같은 도메인 특화 데이터셋에서 RocketQA를 파인튜닝하면 전문 분야에서의 성능을 향상시킬 수 있습니다. 지식 그래프와 통합하면 구조화된 관계(예: 의료 분야의 증상 → 질병)를 활용하여 정확도도 개선할 수 있습니다. 이러한 접근 방식은 RocketQA를 법률, 의학, 공학과 같은 산업에서 더욱 효과적으로 만들 것입니다.
결론
RocketQA는 희소한 주석, 어려운 네거티브, 대규모 검색 요구와 같은 과제를 극복함으로써 오픈 도메인 질의응답을 위한 밀집 검색을 재정의했습니다. 듀얼 인코더와 크로스 인코더 아키텍처의 조합은 크로스 배치 네거티브 및 최적화된 학습과 같은 전략과 함께 확장성과 정밀도를 모두 제공합니다.
입증된 벤치마크 성과와 멀티모달 검색, 도메인 특화 애플리케이션, 개인화 시스템으로 확장할 잠재력을 바탕으로 RocketQA는 질의응답 분야의 발전을 이끌 준비가 되어 있습니다. 오픈 도메인 QA의 요구가 진화함에 따라, RocketQA는 복잡한 질의를 정확하고 효율적으로 처리하기 위한 강력하고 적응력 있는 기반을 제공합니다.
추가 자료
계속 읽기

How to Choose the Best Embedding Model for RAG in 2026: 10 Models Benchmarked
We benchmarked 10 embedding models on cross-modal, cross-lingual, long-document, and dimension compression tasks. See which one fits your RAG pipeline.

Zilliz Cloud Now Available in Azure North Europe: Bringing AI-Powered Vector Search Closer to European Customers
The addition of the Azure North Europe (Ireland) region further expands our global footprint to better serve our European customers.

OpenAI o1: What Developers Need to Know
In this article, we will talk about the o1 series from a developer's perspective, exploring how these models can be implemented for sophisticated use cases.


