본문으로 건너뛰기

© 2026 Molayo

Lilian헤드라인2026. 05. 07. 00:34

오픈 도메인 질문 답변 시스템 구축 방법

요약

본 기사는 오픈 도메인 질문 답변(ODQA) 시스템을 구축하기 위한 일반적인 접근 방식을 검토하며, 특히 외부 지식원과의 연동이 필수적인 '오픈북' QA에 초점을 맞춥니다. ODQA는 임의의 사실적 질문에 답하는 작업으로, 정답이 객관적이어서 평가가 용이합니다. 시스템 구축은 크게 관련 컨텍스트를 검색(Retriever)하고 이를 기반으로 답변을 추출(Reader)하는 '리트리버-리더' 프레임워크로 분해할 수 있습니다.

핵심 포인트

  • ODQA는 임의의 사실적 질문에 대해 객관적인 정답을 생성하는 언어 작업이다. (읽기 이해(RC)와 구별됨)
  • 오픈북 QA 시스템은 외부 지식 저장소에서 관련 컨텍스트를 검색하고, 이를 기반으로 답변을 추출하는 '리트리버-리더' 구조로 설계된다.
  • Retriever는 TF-IDF 같은 고전적인 정보 검색(IR) 방식이나 밀집 임베딩 벡터를 사용하는 신경망 방식을 사용할 수 있다.
  • QA 모델 파인튜닝 시 훈련/시험 데이터셋 간의 질문 중복 및 패러프레이징 문제가 발생할 수 있으므로 주의가 필요하다.

[2020-11-12 업데이트: OpenAI API (beta) 를 사용하여 클로즈드북 사실적 QA 에 대한 예제 추가.

어떤 사실적 지식에 대해든 질문에 답할 수 있는 모델은 채팅봇이나 AI 어시스턴트🤖 와 같은 유용하고 실용적인 응용 프로그램을 만들 수 있습니다. 이 글에서는 이러한 오픈 도메인 질문 답변 시스템을 구축하는 일반적인 접근 방식을 몇 가지 검토하겠습니다.

野外의 많은 논문이 있으므로 다음 사항을 명시합니다:

  • 강력한 사전 훈련된 언어 모델에 접근할 수 있다고 가정합니다.
  • 여기서는 구조화된 지식베이스 (예: Freebase, WikiData) 를 사용하는 방법을 다루지 않습니다.
  • 우리는 다중 턴 대화 스타일의 QA 가 아닌 단일 턴 QA 에만 집중합니다.
  • 우리는 대부분 신경망을 포함하는 QA 모델에 집중하며, 특히 Transformer 기반 언어 모델을 다룹니다.
  • 2017-2019 년 사이 QA 작업에专门为 설계된 아키텍처를 가진 논문을 많이 놓쳤음을 인정합니다😔

오픈 도메인 질문 답변 (ODQA) 이란?

오픈 도메인 질문 답변 (ODQA) 는 자연어에서 사실적 질문에 답을 생성하는 모델을 요청하는 언어 작업의 한 유형입니다. 정답은 객관적이므로 모델 성능 평가는 간단합니다.

예를 들어,

질문: 알버트 아인슈타인은 노벨상을 어떤 분야에 수상했나요?
답변: 광전 효과 법칙.

"오픈 도메인" 부분은 임의의 사실적 질문에 대해 관련 컨텍스트가 부족함을 의미합니다. 위의 경우, 모델은 질문만 입력으로 받지만 "아인슈타인이 상대성 이론을 위해 노벨상을 수상하지 않은 이유"에 대한 기사는 제공되지 않으며, 여기서 "광전 효과 법칙"이라는 용어가 언급될 가능성이 높습니다. 질문과 컨텍스트가 모두 제공되는 경우, 해당 작업은 읽기 이해 (RC) 로 알려져 있습니다.

ODQA 모델은 외부 지식원 (예: 위키백과) 에 대한 접근 여부와 함께 작동할 수 있으며, 이 두 조건은 각각 오픈북 또는 클로즈드북 질문 답변으로 지칭됩니다.

다른 유형의 오픈 도메인 질문을 고려할 때, Lewis, et al., 2020 의 분류를 선호합니다 (난이도 증가 순서):

  • 모델은 훈련 시간 동안 본 질문의 정답을 올바르게 기억하고 답할 수 있습니다.
  • 모델은 시험 시간에서 새로운 질문에 답할 수 있으며, 훈련 기간 동안 본 답안 집합에서 답을 선택할 수 있습니다.
  • 모델은 훈련 데이터셋에 포함된 답이 아닌 새로운 질문에 답할 수 있습니다.

표기법

질문 $x$ 와 정답 스페인 $y$ 가 주어지면, 해당 정답을 포함하는 컨텍스트 패스는 $z \in \mathcal{Z}$ 로 표시되며, 여기서 $\mathcal{Z}$ 는 외부 지식 코퍼스입니다. 위키백과는 이러한 외부 지식원의 일반적인 선택지입니다.

QA 데이터 파인튜닝의 문제점

아래 많은 모델의 세부 사항을 논의하기 전에, 일반적인 QA 데이터셋으로 모델을 파인튜닝하는 것의 한 가지 우려를 지적하고 싶습니다. 이는 여러 ODQA 모델의 파인튜닝 단계 중 하나로서 나타납니다. 이는 우려할 수 있는 사항일 수 있으며, 몇 가지 공개된 QA 데이터셋에서 훈련 세트와 시험 세트 간의 질문에는 상당한 중복이 있기 때문입니다.

Lewis, et al., (2020) (코드) 는 58-71% 의 시험 시간 답변이 훈련 세트의 어느何处에 존재하며, 28-34% 의 시험 세트 질문은 해당 훈련 세트에서 거의 동일한 패러프레이즈를 가지고 있음을 발견했습니다. 그들의 실험에서, 몇 가지 모델은 훈련 세트에서 중복되거나 패러프레이즈된 질문을 제거했을 때 현저히 더 나빠졌습니다.

Open-book QA: Retriever-Reader

주어진 사실적 질문 (factoid question)에 대해, 언어 모델이 컨텍스트가 없거나 학습 데이터셋에 존재하는 컨텍스트를 기억하기에 충분히 크지 않은 경우 정확한 답을 추측하기는 어렵습니다. 오픈북 시험 (open-book exam)에서는 학생들에게 노트나 책과 같은 외부 자원을 참조하여 시험 문제를 풀 수 있는 권한이 부여됩니다. 마찬가지로, ODQA 시스템은 관련 문서를 답안으로의 증거로 식별하기 위해 풍부한 지식 베이스와 결합될 수 있습니다.

주어진 질문에 대한 답을 찾는 과정은 두 단계로 분해할 수 있습니다.

  • 외부 지식 저장소에서 관련 컨텍스트를 찾다;
  • 검색된 컨텍스트를 처리하여 답을 *추출 (extract)*하다.

이러한 리트리버 + 리더 (retriever + reader) 프레임워크는 DrQA (Chen et al., 2017; 코드) 의 "문서 리트리버 질문-답변" (Document retriever Question-Answering) 에서 처음 제안되었습니다. 리트리버와 리더 구성 요소는 독립적으로 설정하고 훈련하거나, 엔드 투 엔드 (end-to-end) 로 함께 훈련할 수 있습니다.

리트리버 모델

리트리버를 구현하는 데 널리 사용되는 두 가지 접근 방식은 정보 검색 (IR) 시스템을 사용하는 것입니다. 이는 (1) 고전적인 학습 기반이 아닌 TF-IDF 특징을 기반으로 하거나, 또는 (2) 신경망으로 생성된 텍스트의 밀집 임베딩 벡터 (dense embedding vectors of text) 를 기반으로 합니다.

고전적 IR (Classic IR)

DrQA (Chen et al., 2017) 는 벡터 공간 모델 (vector space model) 을 기반으로 한 효율적인 학습 기반이 아닌 검색 엔진을 채택했습니다. 모든 쿼리 및 문서는 단어의 모음 (bag-of-word) 벡터로 모델링되며, 각 항은 TF-IDF (단어 빈도 $ imes$ 역문서 빈도) 로 가중치화됩니다.

여기서 $t$ 는 문서 $d$ 의 단어나 이그람 (bigram) 단어로, 문서 집합 $\mathcal{D}$ 에서의 $t$ 를 나타냅니다. $ ext{freq}(t, d)$ 는 항 $t$ 가 $d$ 에 몇 번 등장하는지를 측정합니다. 여기서 단어 빈도는 이그람 카운트까지 포함되며, 이는 이그람을 통해 지역 단어 순서가 고려되기 때문에 매우 유용하다고 밝혀졌습니다. 구현의 일부로 DrQA 는 2^24 개의 비너 (bins) 를 무부호 murmur3 해시 (unsigned murmur3 hash) 를 사용하여 이그람을 매핑합니다.

정확히 말하면, DrQA 는 위키백과를 지식원으로 구현했으며, 이는 이후 많은 ODQA 연구에서 기본 설정이 되었습니다. 학습 기반이 아닌 문서 리트리버는 주어진 질문에 대해 상위 $k=5$ 개의 가장 관련성 높은 위키백과 문서를 반환합니다.

BERTserini (Yang et al., 2019) 는 오픈 소스 Anserini IR 툴킷을 리트리버로, 세밀하게 튜닝된 사전 훈련된 BERT 모델을 리더로 결합했습니다. 상위 $k$ 개의 문서 ($k=10$) 는 쿼리를 단어의 모음 (bag of words) 으로 취급하여 Anserini 의 post-v3.0 분지를 통해 검색됩니다. 검색된 텍스트 섹션은 BM25, 즉 고전적인 TF-IDF 기반 검색 점수 함수에 의해 순위가 매겨집니다. 텍스트粒度 (granularity) 의 성능 효과에 대해 그들은 단락 검색 > 문장 검색 > 기사 검색을 발견했습니다.

ElasticSearch + BM25Multi-passage BERT QA 모델 (Wang et al., 2019) 에서 사용됩니다. 그들은 sliding window 를 사용하여 100 단어 길이의 단락으로 기사를 나누어 4%의 개선 효과를 얻었으며, 문서의 단락을 겹침 없이 나누면 일부 경계 근처 증거가 유용한 컨텍스트를 잃을 수 있기 때문입니다.

신경 IR (Neural IR)

텍스트의 저차원 표현을 학습하는 데에는 긴 역사가 있으며, 원본 단어 기반 벡터보다 밀도가 높습니다 (Deerwester et al., 1990; Yih, et al., 2011). Dense representations 는 행렬 분해나 신경망 구조를 통해 학습될 수 있습니다 (예: MLP, LSTM, bidirectional LSTM 등). 신경망을 포함하는 경우 이러한 접근법은

모든 가능한 $(i,j,k)$ 튜플에 대해 $j-i < J$ 인 경우, 텍스트 스페인 임베딩은 사전 계산되어 phrase index 로 저장됩니다. 최대 스페인 길이 $J$ 는 미리 정의된 스칼라 상수입니다.

추론 시간 (inference time) 에는 질문이 동일한 벡터 공간으로 매핑되며 $x=[d', s'] \in \mathbb{R}^{d^d + d^s}$ 입니다. 여기서 밀도 벡터 $d'$ 는 BERT 임베딩의 특수한 [CLS] 기호에서 추출됩니다. 질문과 문장을 모두 인코딩하는 데 동일한 BERT 모델이 공유됩니다. 최종 답변은 $k^, i^, j^* = \arg\max x^\top z_k^{(i:j)}$ 로 예측됩니다.

리더 모델 (Reader Model)

리더 모델은 읽기 이해 (reading comprehension) 작업을 해결하도록 학습합니다 — 주어진 문맥 문서에서 주어진 질문에 대한 답변을 추출하는 것입니다. 여기서는 신경망을 사용한 기계적 해법 (machine comprehension) 접근법에 대해서만 논의합니다.

양방향 LSTM (Bi-directional LSTM)

DrQA(Chen et al., 2017) 의 답변 감지 (answer detection) 리더 모델은 숨김 크기 128 을 가진 3 층 양방향 LSTM 입니다. 검색된 위키백과 문서의 모든 관련 단락은 특징 벡터 시퀀스 $\ ilde{\mathbf{z}}_1, \dots, \tilde{\mathbf{z}}_m$ 로 인코딩됩니다. 각 특징 벡터 $\hat{\mathbf{z}}_i \in \mathbb{R}^{d_z}$ 는 토큰 $z_i$ 주변에 유용한 문맥 정보를 포착할 것으로 기대됩니다. 특징은 여러 범주의 특징을 포함합니다:

  • 단어 임베딩: 800B 웹 크롤링 데이터에서 훈련된 300d Glove 단어 임베딩, $f_\text{embed} = E_g(z_i)$.
  • 정밀 매칭 (Exact match): 단어 $z_i$ 가 질문 $x$ 에 나타나는지 여부, $f_\text{match} = \mathbb{I}(z_i \in x)$.
  • 토큰 특징: POS (품사), NER (명사 인식), TF (단어 빈도) 를 포함하며, $f_\text{token}(z_i) = (\text{POS}(z_i), \text{NER}(z_i), \text{TF}(z_i))$.
  • 정렬된 질문 임베딩: 주문 간 매칭과 유사성을 포착하기 위해 문단 토큰 $z_i$ 와 질문 단어 $x_j$ 간의 주의 점수 (attention score) $y_{ij}$ 가 설계되었습니다. 이 특징은 유사하지만 동일하지 않은 단어 사이의 부드러운 정렬을 추가합니다.

여기서 $\alpha$ 는 ReLU 와 함께 단일 밀도 레이어이며, $E_g(.)$ 은 Glove 단어 임베딩입니다.

$m$ 개의 토큰으로 이루어진 단락의 특징 벡터는 LSTM 에 입력되어 최종 단락 벡터를 얻습니다:

질문은 질문의 모든 단어 임베딩의 가중합으로 인코딩됩니다:

여기서 $\mathbf{w}$ 는 학습할 수 있는 가중치 벡터입니다.

질문과 관련된 모든 단락에 대해 특징 벡터를 구성한 후, 리더는 각 문단 내 위치가 답변 스페인의 시작점과 끝점이 될 확률을 예측해야 합니다, $p_\text{start}(i_s)$ 와 $p_\text{end}(i_s)$ 각각입니다. 모든 단락에 걸쳐, 최대 $p_\text{start}(i_s) \times p_\text{end}(i_e)$ 를 가진 최적의 스페인이 최종 답변으로 반환됩니다.

여기서 $\mathbf{W}_s$ 와 $\mathbf{W}_e$ 는 학습된 파라미터입니다.

BERT-universe

BERT (Devlin et al., 2018) 의 성공을 따라, 많은 QA 모델은 BERT 를 기반으로 기계적 이해 구성 요소를 개발합니다. BERT 모델을 하나 또는 여러 개의 문자열 ([SEP]로 연결됨) 을 입력으로 받아 특수 [CLS] 토큰과 모든 입력 토큰의 BERT 인코딩 벡터 세트를 출력하는 함수로 정의합시다:

여기서 $\mathbf{h}^\texttt{[CLS]}$ 는 특수 [CLS] 토큰의 임베딩 벡터이고, $\mathbf{h}^{(i)}$ 는 $i$ 번째 토큰의 임베딩 벡터입니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Lilian Weng Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
1

댓글

0