REALM: 검색을 더한 언어 모델 사전학습
빈칸 맞히기 신호만으로 위키백과 검색기와 언어 모델을 함께 사전학습한 논문
먼저 알아야 할 것
다루는 내용
REALM은 언어 모델이 예측 전에 위키백과 문서를 검색해 읽도록 하고, 검색 결과를 잠재 변수로 주변화한 가능도를 최대화해 검색기까지 라벨 없이 사전학습합니다. 기대보다 정답에 도움 된 문서의 점수가 오르는 원리로 학습되며, 1,300만 문서 색인은 비동기로 새로 고치고, 핵심 구간 가리기 · 빈 문서 · 뻔한 검색 금지 · ICT 초기화로 학습을 안정시켰습니다. 3억 3천만 파라미터로 NQ · WebQuestions · CuratedTrec에서 T5-11B와 ORQA를 4~16%p 앞섰습니다.
초록
언어 모델 사전학습은 질의응답 같은 NLP 과제에 꼭 필요한 세상 지식을 놀라울 만큼 많이 담아낸다는 것이 알려져 있습니다. 하지만 이 지식은 신경망의 파라미터 속에 암묵적으로 저장되어 있어, 더 많은 사실을 담으려면 점점 더 큰 신경망이 필요합니다. 지식을 더 모듈화되고 해석 가능한 방식으로 담기 위해, 우리는 언어 모델 사전학습에 잠재 지식 검색기를 더했습니다. 이 검색기 덕분에 모델은 사전학습 · 미세조정 · 추론 동안 위키백과 같은 대규모 말뭉치에서 문서를 검색해 주의를 기울일 수 있습니다. 우리는 처음으로, 마스크 언어 모델링을 학습 신호로 삼고 수백만 개 문서를 고려하는 검색 단계를 거쳐 역전파함으로써, 이런 지식 검색기를 비지도 방식으로 사전학습하는 방법을 보입니다. 검색 증강 언어 모델 사전학습(REALM)의 효과를 어려운 과제인 오픈 도메인 질의응답(Open-QA)에 미세조정해 보여 줍니다. 세 가지 대표적인 Open-QA 벤치마크에서 지식을 명시적으로 저장하는 모델과 암묵적으로 저장하는 모델 양쪽의 최신 방법들과 비교했고, 모든 이전 방법을 큰 차이(절대 정확도 4~16%)로 앞서면서 해석 가능성과 모듈성 같은 질적인 이점도 제공함을 확인했습니다.
해설
REALM: 검색을 더한 언어 모델 사전학습
언어 모델이 빈칸을 맞히기 전에 위키백과에서 문서를 검색해 읽도록 만들고, 그 검색기까지 '빈칸 맞히기' 신호만으로 함께 사전학습한 논문입니다. 지식을 파라미터에 다 외우는 대신 바깥 문서에서 꺼내 쓰는 길을 열었고, 오픈 도메인 QA 세 벤치마크에서 이전 최고보다 4~16%p 높았습니다.
| 항목 | 내용 |
|---|---|
| 원제 | REALM: Retrieval-Augmented Language Model Pre-Training |
| 저자 | Kelvin Guu 외 4명 (Google Research) |
| 발표 | 2020 · arXiv 2002.08909 |
| 트랙 · 수준 | RAG·검색 · 심화 |
| 먼저 알면 좋은 것 | BERT의 마스크 언어 모델(MLM), 밀집 검색(내적 · MIPS), 소프트맥스, 잠재 변수와 주변화(marginalization), 오픈 도메인 QA |
들어가기 전에
이 해설은 아래 내용을 안다고 보고 씁니다. 처음이라면 먼저 읽고 오면 수식과 손계산을 훨씬 쉽게 따라올 수 있습니다.
- RAG 평가와 고급 패턴: 검색 지표 · 충실도 · GraphRAG · 에이전틱 RAG — 고급 RAG 논문을 읽기 전에 평가 기준과 패턴 지도를 정리하는 수업
- 오픈 도메인 질의응답을 위한 밀집 문단 검색 (DPR) — 질문 · 문단을 BERT 두 개로 벡터화해 내적으로 찾는 검색기로 BM25를 앞선 논문
- BERT: 양방향 트랜스포머 사전학습 — 가린 언어 모델로 깊은 양방향 트랜스포머 인코더를 사전학습해 11개 과제를 휩쓴 BERT
한눈에 보기
- 언어 모델의 지식이 '파라미터 속에 숨어 있다'는 것이 왜 문제인지, 바깥 문서를 꺼내 쓰는 방식이 무엇을 바꾸는지 알게 됩니다.
- 검색 → 예측 을 하나의 확률식 로 묶는 방법을 손계산으로 이해합니다.
- 정답 라벨 없이 검색기가 "도움이 되는 문서"를 배우는 원리(기울기 분석)를 압니다.
- 수백만 문서 색인을 학습 중에 어떻게 갱신하는지(비동기 MIPS 새로 고침), 그리고 학습을 성공시킨 요령들을 알게 됩니다.
초록 (번역)
언어 모델 사전학습은 질의응답 같은 NLP 과제에 꼭 필요한 세상 지식을 놀라울 만큼 많이 담아낸다는 것이 알려져 있습니다. 하지만 이 지식은 신경망의 파라미터 속에 암묵적으로 저장되어 있어, 더 많은 사실을 담으려면 점점 더 큰 신경망이 필요합니다. 지식을 더 모듈화되고 해석 가능한 방식으로 담기 위해, 우리는 언어 모델 사전학습에 잠재 지식 검색기를 더했습니다. 이 검색기 덕분에 모델은 사전학습 · 미세조정 · 추론 동안 위키백과 같은 대규모 말뭉치에서 문서를 검색해 주의를 기울일 수 있습니다. 우리는 처음으로, 마스크 언어 모델링을 학습 신호로 삼고 수백만 개 문서를 고려하는 검색 단계를 거쳐 역전파함으로써, 이런 지식 검색기를 비지도 방식으로 사전학습하는 방법을 보입니다. 검색 증강 언어 모델 사전학습(REALM)의 효과를 어려운 과제인 오픈 도메인 질의응답(Open-QA)에 미세조정해 보여 줍니다. 세 가지 대표적인 Open-QA 벤치마크에서 지식을 명시적으로 저장하는 모델과 암묵적으로 저장하는 모델 양쪽의 최신 방법들과 비교했고, 모든 이전 방법을 큰 차이(절대 정확도 4~16%)로 앞서면서 해석 가능성과 모듈성 같은 질적인 이점도 제공함을 확인했습니다.
무엇을 풀었나
BERT · T5 같은 사전학습 모델은 "The ___ is the currency of the UK" 같은 빈칸에 'pound'를 맞힐 만큼 세상 지식을 담고 있습니다. 하지만 문제가 세 가지 있었습니다.
- 어디에 무엇이 저장됐는지 알 수 없습니다. 지식이 수억 개 파라미터에 흩어져 있어, 모델이 왜 그렇게 답했는지 근거를 보여 줄 수 없습니다.
- 더 많이 알려면 모델을 키워야 합니다. 저장 공간이 곧 파라미터 수라서, 지식을 늘리려면 학습 · 추론 비용이 같이 커집니다.
- 지식을 고치기 어렵습니다. 세상이 바뀌면 모델 전체를 다시 학습해야 합니다.
검색을 쓰는 질의응답 시스템은 이미 있었지만, 대부분 TF-IDF 같은 학습하지 않는 검색기 를 썼습니다. 직전 연구 ORQA는 학습하는 밀집 검색기를 썼으나 사전학습 단계에는 검색을 넣지 않았습니다. REALM의 질문은 이것입니다. 사전학습 단계부터 검색기를 언어 모델과 함께, 라벨 없이 학습할 수 있을까?
핵심 아이디어
flowchart LR
X["입력 x (빈칸 문장 또는 질문)"] --> R[지식 검색기: 내적으로 문서 점수]
Z[(위키백과 문서 약 1,300만 개 · MIPS 색인)] --> R
R --> TOP[상위 k개 문서 + 빈 문서]
TOP --> E["지식 증강 인코더: [x; z]를 함께 읽음"]
X --> E
E --> Y[빈칸 단어 또는 답 구간 y]
Y -->|정답 가능도 역전파| R
Y -->|역전파| E
R -.->|수백 스텝마다 문서 다시 임베딩| Z1. 검색 → 예측을 하나의 확률로
직관. 시험 볼 때 오픈북을 허용하되, 어느 책을 펼칠지까지 학생이 정합니다. 펼친 책이 정답에 도움이 됐다면 "그 책을 고른 판단"도 칭찬받습니다.
단계별 설명.
- 입력 (빈칸이 있는 문장, 또는 질문)가 들어옵니다.
- 검색기가 문서 마다 점수를 매기고, 소프트맥스로 '문서 를 고를 확률' 를 만듭니다.
- 인코더가 와 를 함께 읽고 정답 의 확률 를 냅니다.
- 어떤 문서가 도움이 될지는 정답이 없으므로, 를 잠재 변수 로 보고 모든 문서에 대해 가중 평균합니다(주변화).
수식.
| 기호 | 뜻 |
|---|---|
| 입력 (사전학습: 빈칸 문장 / 미세조정: 질문) | |
| 출력 (빈칸에 들어갈 토큰 / 답) | |
| , | 문서 하나, 지식 말뭉치 전체(위키백과) |
| 관련도 점수. 입력 벡터와 문서 벡터의 내적 | |
BERT의 [CLS] 출력에 투영 행렬을 곱해 차원을 줄인 벡터 |
숫자로 해 보기 (설명용 예시, 논문 수치 아님). 문서가 3개뿐이라고 합시다. 검색 확률이 이고, 각 문서를 읽었을 때 정답을 맞힐 확률이 라면,
입니다. 좋은 문서(첫째)에 검색 확률을 더 몰아주면 이 값이 커집니다.
논문의 실제 예. "정삼각형은 3이 ___ 소수이기 때문에 자와 컴퍼스로 작도할 수 있다"에서 정답 'Fermat'의 확률이 검색 없는 BERT는 , "257은 페르마 소수…" 문서를 읽은 REALM은 1.0, 상위 8개 문서로 주변화한 REALM은 0.129였습니다.
2. 검색기는 무엇을 배우나: '기대보다 나은 문서'를 올린다
직관. 여러 참고서 중 하나를 펼쳤더니 평소보다 답을 잘 맞혔다면, 다음에는 그 참고서를 더 먼저 꺼내게 됩니다.
수식 (논문의 기울기 분석). 검색기 파라미터 에 대한 기울기를 정리하면, 각 문서의 점수 는 다음 만큼 움직입니다.
| 기호 | 뜻 |
|---|---|
| 문서 를 읽었을 때 정답 확률 | |
| 검색 확률대로 문서를 골랐을 때의 '평균' 정답 확률 | |
| 양수면 점수를 올리고, 음수면 내림 |
일 조건은 , 즉 그 문서가 평균보다 정답에 더 도움이 될 때 입니다.
숫자로 해 보기 (위 예 이어서). 평균 입니다. 첫 문서는 라 로 점수가 올라갑니다. 둘째 문서는 라 으로 내려갑니다. 라벨 없이도 '쓸모 있는 문서'가 위로 올라오는 이유입니다.
3. 수백만 문서를 학습 중에 검색하기: 비동기 MIPS 새로 고침
직관. 도서관 색인 카드를 매일 새로 쓸 수는 없으니, 사서 한 명이 뒤에서 계속 새 색인을 만들고 완성될 때마다 교체합니다.
단계별 설명.
- 모든 문서를 더하는 것은 불가능하므로, 확률이 높은 상위 개 문서만 더합니다(나머지는 확률이 0에 가깝다고 봄).
- 상위 개는 내적 순서와 같으므로 최대 내적 검색(MIPS) 색인으로 빠르게 찾습니다.
- 문제는 검색기가 학습되면 문서 벡터도 바뀌어 색인이 '낡는다'는 점입니다.
- 그래서 두 작업을 동시에 돌립니다. 학습 작업은 계속 파라미터를 고치고, 색인 작업은 그 시점의 파라미터 사본으로 모든 문서를 다시 임베딩해 새 색인을 만듭니다. 완성되면 교체하고 다시 반복합니다(수백 스텝마다).
- 색인은 후보를 고를 때만 쓰고, 고른 개 문서의 확률과 기울기는 최신 파라미터로 다시 계산합니다.
왜 이렇게 했나. 절제 실험에서 색인을 30배 덜 자주 새로 고치면 NQ 정확도가 38.2에서 28.7로 크게 떨어졌습니다. 색인 신선도가 학습 안정성에 중요하다는 뜻입니다. 미세조정 때는 단순하게 색인을 한 번만 만들고 문서 인코더는 고정했습니다(질문 인코더는 계속 학습).
4. 학습을 성공시킨 요령들
- 핵심 구간 가리기(salient span masking): 아무 단어나 가리면 문맥만으로 맞힐 수 있는 빈칸이 많습니다. 그래서 개체명(예: "United Kingdom")이나 날짜(예: "July 1969")처럼 세상 지식이 필요한 구간 을 골라 가립니다. 개체명은 CoNLL-2003으로 학습한 BERT 태거, 날짜는 정규식으로 찾습니다.
- 빈 문서(null document): 검색이 필요 없는 빈칸도 있으므로, 후보에 '빈 문서'를 하나 넣어 그쪽으로 확률을 보낼 수 있게 합니다.
- 뻔한 검색 막기: 사전학습 문장과 지식 말뭉치가 둘 다 위키백과면, 가린 문장이 원래 들어 있던 문서를 그대로 찾아 답을 베낄 수 있습니다. 이러면 검색기가 '글자 그대로 일치'만 배우므로, 그 문서는 후보에서 뺍니다.
- 좋은 출발점: 처음부터 검색이 엉망이면 인코더가 문서를 무시하는 법을 배우고, 그러면 검색기는 신호를 못 받는 악순환이 생깁니다. 그래서 검색기는 역 클로즈 과제(ICT)로, 인코더는 BERT-base로 미리 데워 둡니다.
5. 설정 (논문 기준)
- 지식 말뭉치: 2018년 12월 20일 영어 위키백과를 최대 288 워드피스로 잘라 1,300만 개 남짓의 후보
- 사전학습: TPU 64개로 20만 스텝, 배치 512, 학습률 , 예시마다 빈 문서 포함 8개 후보로 주변화
- 미세조정 · 추론: 상위 5개 후보, 12GB GPU 한 대로 모델 전체 실행 가능
- 미세조정(Open-QA)에서는 를 문서 속 답 구간의 시작 · 끝 위치 확률로 정의합니다.
결과
오픈 도메인 QA (테스트 세트, 완전 일치 정확도 %)
| 시스템 | NQ | WebQuestions | CuratedTrec | 파라미터 |
|---|---|---|---|---|
| T5-base | 27.0 | 29.1 | — | 2억 2,300만 |
| T5-large | 29.8 | 32.2 | — | 7억 3,800만 |
| T5-11B | 34.5 | 37.4 | — | 113억 |
| ORQA | 33.3 | 36.4 | 30.1 | 3억 3,000만 |
| REALM (사전학습 = 위키백과) | 39.2 | 40.2 | 46.8 | 3억 3,000만 |
| REALM (사전학습 = CC-News) | 40.4 | 40.7 | 42.9 | 3억 3,000만 |
- REALM은 30배 큰 T5-11B보다 높았습니다. 미세조정 설정 · 하이퍼파라미터 · 데이터가 같은 ORQA와의 차이는 순수하게 사전학습 덕분입니다.
- 다른 검색 기반 시스템이 문서 20~80개를 쓰는 데 비해 5개만 검색하고도 가장 좋았습니다.
절제 실험 (NQ 개발 세트, 완전 일치 / 미세조정 전 상위 5개 검색에 정답이 있는 비율)
| 설정 | 완전 일치 | 미세조정 전 검색 |
|---|---|---|
| REALM | 38.2 | 38.5 |
| REALM 검색기 + 기본 인코더 | 37.4 | 38.5 |
| 기본 검색기 + REALM 인코더 | 35.3 | 13.9 |
| 기본 (ORQA) | 31.3 | 13.9 |
| 무작위 토큰 가리기 | 32.3 | 24.2 |
| 무작위 구간 가리기 | 35.3 | 26.1 |
| 색인 30배 덜 갱신 | 28.7 | 15.1 |
- 향상의 대부분은 검색기 를 사전학습한 데서 왔고, 인코더 사전학습도 도움이 됐습니다. 핵심 구간 가리기가 무작위 가리기보다 확실히 나았습니다.
왜 중요한가 · 이후 영향
- '검색 증강 사전학습'의 출발점입니다. 지식을 파라미터에 다 외우지 않고 바깥 문서에서 꺼내 쓰는 설계를 사전학습 수준에서 처음 보였습니다. 바로 뒤를 이어 같은 해 RAG가 생성 모델로 이 생각을 확장했습니다.
- 해석 가능성과 모듈성: 모델이 어떤 문서를 보고 답했는지 보여 줄 수 있고, 지식 말뭉치를 바꿔 끼울 수 있다는 장점을 실제로 제시했습니다.
- 작은 모델 + 검색이 큰 모델을 이길 수 있다 는 증거가 됐습니다(3억 3천만 대 113억). 이 흐름은 RETRO 등으로 이어집니다.
한계 · 주의할 점
- 학습 비용이 큽니다. TPU 64개에 색인 재구축용 TPU 16개, 수백 스텝마다 1,300만 문서를 다시 임베딩해야 합니다.
- 답을 뽑아내는 방식(extractive) 입니다. 미세조정에서 답은 문서 속 구간이어야 하므로, 자유로운 문장 생성에는 바로 쓰기 어렵습니다(RAG가 이 부분을 다룹니다).
- 상위 근사: 모든 문서를 더하는 대신 상위 몇 개만 더하므로, 색인이 낡거나 검색이 빗나가면 학습 신호가 약해집니다.
- T5는 사전학습에 SQuAD 데이터를 추가로 썼고 REALM은 쓰지 않았다는 점 등, 비교 조건 차이를 감안해서 읽어야 합니다.
스스로 점검
- 문서 2개, 검색 확률 , 정답 확률 일 때 는? 어느 문서의 점수가 올라가나요?
입니다. 둘째 문서()의 점수가 올라가고, 첫째()는 내려갑니다.
- 사전학습 중 색인을 계속 새로 고쳐야 하는 이유는?
검색기가 학습되면 문서 벡터가 바뀌어 기존 색인이 실제 점수 순서와 어긋나기 때문입니다. 갱신을 30배 줄이면 정확도가 크게 떨어졌습니다.
- '뻔한 검색'을 막지 않으면 어떤 문제가 생기나요?
가린 문장의 원래 문서를 찾아 답을 그대로 베끼게 되어, 검색기가 뜻의 관련성 대신 글자 일치만 배우게 됩니다.
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 마스크 언어 모델(MLM) | 문장 일부를 가리고 원래 단어를 맞히게 하는 사전학습 방식 |
| 잠재 변수(latent variable) | 정답이 주어지지 않아 모델이 스스로 정하는 중간 선택(여기서는 '어떤 문서를 볼지') |
| 주변화(marginalization) | 가능한 모든 선택에 대해 확률을 가중합해 하나의 확률로 합치는 것 |
| MIPS | 최대 내적 검색. 내적이 가장 큰 벡터를 빠르게 찾는 방법 |
| 비동기 새로 고침 | 학습을 멈추지 않고 뒤에서 색인을 새로 만들어 교체하는 방식 |
| 핵심 구간 가리기(salient span masking) | 개체명 · 날짜처럼 지식이 필요한 구간을 골라 가리는 방법 |
| 빈 문서(null document) | 검색이 필요 없을 때 확률을 보낼 수 있게 넣는 비어 있는 후보 |
| 역 클로즈 과제(ICT) | 문장 하나로 그 문장이 나온 문서를 찾게 하는 사전 과제 |
| 오픈 도메인 QA | 정답 문서를 주지 않고 거대한 말뭉치에서 찾아 답하는 과제 |
| 완전 일치(EM) | 예측 답이 정답과 글자 그대로 같은 비율 |
이어서 읽을 것
다음에 볼 것
이 글을 이해했다면 이어서 보면 좋은 항목입니다.
- 검색 증강 생성 (RAG) — 검색기(DPR)와 생성기(BART)를 함께 미세조정해 문서를 보고 답을 생성하는 RAG의 원조 논문
- 검색한 문단을 생성 모델에 결합하기 (Fusion-in-Decoder) — 문단을 인코더에서 따로, 디코더에서 함께 읽어 100개 근거를 합치는 생성형 QA 구조
출처
- 원문: arxiv.org/abs/2002.08909 (2020 · Kelvin Guu 외)
AI 원리부터 이해하기 · RAG·검색 모듈
RAG·검색 모듈 학습
이 글은 RAG·검색 모듈의 학습 자료입니다. 전체 21개 자료 중 13번째입니다.
출처·원문
원문 보기요약만