티스토리 뷰
https://arxiv.org/abs/2002.08909
REALM 논문은 구글이 발표한 논문으로 Language model에 Retrieval을 적용한 모델입니다. 기존의 언어 모델은 방대한 데이터로 사전 학습을 하더라도, 학습된 데이터 이외의 지식에 접근하지 못하는 한계가 있습니다. 이러한 모델은 학습 단계에서 제공된 정보에만 의존하여 knowledge를 parameter 내에서만 찾을 수 있습니다. 특히 오픈 도메인 질문 응답(Open-Domain QA)과 같은 과제에서는 사용자가 묻는 질문에 대한 답을 정확하게 제공하기 어려웠습니다. 최신 정보나 폭넓은 지식을 참고해야 하기 때문에 기존 언어 모델의 한계를 극복하고자 retrieval-augmented 언어 모델 학습을 하였습니다. 특징은 단순히 학습한 데이터에만 의존하는 것이 아니라 외부 지식을 활용해 답변을 할 수 있기에 기존보다 정확도와 신뢰성을 높이고자 하였습니다.
REALM의 검색 증강 파이프라인을 단계별로 설명하는데, 모델에 입력된 질문에 대해 문서 저장소에서 관련된 문서를 검ㅅ색을 진행합니다. 검색된 문서는 언어 모델과 결합되어 모델이 문서를 참고하여 더 정확한 답변을 생성하게 됩니다.
- 입력된 질문에 대해 관련 문서를 검색합니다.
- 검색된 문서를 언어 모델에 통합합니다. 이 과정에서 문서에서 필요한 정보를 추출하여 모델이 답변을 생성할 수 있도록 지원합니다.
- 모델은 검색된 문서에 기초하여 질문에 대한 답을 생성합니다.
Method
- Retrieval Module: 질문이 주어지면, 모델은 관련 정보를 외부 데이터베이스에서 검색합니다. 이 검색 모듈은 효과적으로 질문과 관련된 문서를 찾아내는 역할을 합니다.
- Document Retrieval and Embedding: 모델은 대규모 문서 데이터베이스에서 관련된 문서를 검색한 후, 이 문서들을 언어 모델에 통합하기 위해 임베딩(embedding)합니다. 이 과정에서 사전 학습된 문서와 검색된 문서가 비교되어 적절한 지식을 바탕으로 답을 형성합니다.
- Pre-Training with Joint Optimization: 사전 학습 과정에서 모델은 두 가지 작업을 동시에 최적화합니다:
- Document Retrieval: 질문에 맞는 문서를 정확히 검색하는 능력을 향상시키는 학습.
- Answer Generation: 검색된 문서를 바탕으로 답변을 생성하는 언어 모델의 학습.
- End-to-End Learning: 검색과 답변 생성 과정을 함께 학습하여, 검색된 정보를 효과적으로 활용할 수 있도록 설계되었습니다.
왼쪽은 Unsupervised pre-training이고, 오른쪽은 Supervised fine-tuning입니다.
knowledge retriever랑 knowledge-augmented encoder는 비지도 언어 모델링 작업에서 함께 사전 학습이 되고, retriever(θ) 와 encoder (φ)의 파라미터가 사전 학습된 후, 관심 있는 주요 작업에 대해 지도 학습 데이터를 사용하여 미세 조정됨.
- knowledge retriever: 주어진 질문에 대해 관련 문서를 검색하는 역할을 합니다. 이 검색기는 비지도 학습 데이터로 훈련되어 문서 데이터베이스에서 관련 문서를 잘 찾는 능력을 개발합니다.
- knowledge-augmented encoder: 검색된 문서를 받아들여, 이를 바탕으로 언어 모델이 답변을 생성하는 데 필요한 정보를 인코딩합니다.
사전 학습이 끝난 후, 모델은 관심 있는 주요 작업에 대해 지도 학습 데이터를 사용하여 미세 조정한다.
Experiments
이 표는 REALM이 검색된 문서를 활용해 마스크된 토큰을 더 잘 예측하는 예시를 보여줍니다. 이 예시는 BERT와 REALM을 비교한 결과로, 빈칸에 들어갈 단어인 "Fermat"의 확률 값을 구합니다.
"An equilateral triangle is easily constructed using a straightedge and compass, because 3 is a ___ prime."
(정삼각형은 직선자와 컴퍼스를 사용하여 쉽게 구성되는데, 그 이유는 3이 ___ 소수이기 때문이다.)
"Fermat"으로 페르마 소수임을 나타내는 문장입니다.
(a) BERT의 결과
- BERT는 외부 정보를 검색하지 않고, 사전 학습된 데이터 내에서만 예측을 수행합니다.
- 빈칸에 "Fermat"가 들어갈 확률 **p(y = "Fermat" | x)**는 1.1 × 10⁻¹⁴로 매우 낮습니다.
- 이는 BERT가 사전 학습된 데이터 내에서만 답을 예측하기 때문에 관련된 정보가 부족해 정확한 예측을 하지 못한다는 것을 보여줍니다.
(b) REALM의 조건부 확률 결과
- REALM은 검색된 문서 z를 활용하여 빈칸에 들어갈 단어를 예측합니다. 여기서 z는 “257 is ... a Fermat prime...”이라는 문서로, 3이 페르마 소수라는 정보를 가지고 있는 문서입니다.
- 이 문서를 바탕으로 REALM이 예측한 결과, p(y = "Fermat" | x, z)는 1.0으로 나타났습니다.
- 검색된 문서의 정보를 활용함으로써 빈칸에 들어갈 단어를 매우 높은 확률로 맞췄습니다.
(c) REALM의 최종 결과
- REALM은 검색된 여러 문서 중 상위 8개의 문서를 기반으로 마스크된 토큰을 예측합니다. 이 경우 p(y = "Fermat" | x)는 0.129로, BERT의 결과보다 훨씬 높은 값을 보입니다.
- 이는 검색된 문서들이 "Fermat"이라는 단어를 포함하고 있으며, 이를 바탕으로 보다 정확한 예측을 할 수 있다는 것을 보여줍니다.
- 최종적으로 다수의 문서를 기반으로 확률을 산출하기 때문에, 완벽한 확률인 1.0보다 조금 낮지만 여전히 BERT에 비해 훨씬 높은 성능을 보입니다.
- BERT는 사전 학습된 데이터만을 사용하여 빈칸에 들어갈 단어를 예측하기 때문에, 이 경우 매우 낮은 확률을 보입니다.
- 반면, REALM은 관련 문서를 검색해 답을 예측하는 구조로, 검색된 문서에서 "Fermat"이라는 정답을 유추해낼 수 있었고, 더 높은 확률로 정답을 맞출 수 있었습니다.
- 이 표는 REALM의 검색 능력이 모델의 답변 정확도를 크게 향상시킨다는 것을 보여줍니다.
Conclusion
REALM은 자연어 처리의 오픈 도메인 질문 응답 과제에서 기존 모델보다 뛰어난 성능을 보였습니다. Natural Questions (NQ), WebQuestions (WQ)의 작업에서 좋은 결과를 보여주었습니다. 검색된 문서 내용 바탕으로 정답을 바로 예측하는 구조 덕분에, 기존의 사전 학습 지식에만 의존하는 것에 벗어나 더 정확한 답변을 추론할 수 있었다. 추후 자연어 처리에서 중요한 패러다임으로 자리 잡을 수 있었음
Contribution
- 외부 지식 활용: 기존 언어 모델과 달리 사전 학습 데이터에 제한되지 않고, 질문에 대해 실시간으로 외부 지식을 검색하여 활용할 수 있는 구조를 제안했습니다. 이로써 학습된 지식과 실시간 정보를 결합하는 새로운 방식의 언어 모델을 제시했습니다.
- Retrieval and Generation의 통합 학습: 문서 검색과 답변 생성을 별도로 수행하는 것이 아니라, 이를 통합하여 동시에 최적화하는 방법을 제안한 것이 큰 기여입니다. 이 방법을 통해 질문 응답의 성능을 극대화했습니다.
- 효율적인 문서 검색 기법: 대규모 데이터베이스에서 실시간으로 문서를 검색하는 것은 매우 비효율적일 수 있는데, REALM은 임베딩과 사전 계산된 데이터 등을 활용하여 실시간 검색 속도를 크게 개선했습니다.
'Review > Paper' 카테고리의 다른 글
- Total
- Today
- Yesterday
- python
- style transfer
- 딥러닝
- 파이썬 클래스 다형성
- prompt learning
- 구글드라이브서버다운
- 파이썬 딕셔너리
- few-shot learning
- vscode 자동 저장
- 구글드라이브다운
- clip
- 프롬프트
- 구글드라이브연동
- 도커
- 서버구글드라이브연동
- 퓨샷러닝
- Unsupervised learning
- 파이썬
- 서버에다운
- support set
- 데이터셋다운로드
- Prompt
- 도커 컨테이너
- 구글드라이브서버연동
- NLP
- CNN
- stylegan
- 파이썬 클래스 계층 구조
- cs231n
- docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |