
AI(언어 모델) 이용 기술 조사: 검색 확장 기술 관련 (2020~2024년경)
요약
LLM의 지식 컷오프와 할루시네이션 문제를 해결하기 위한 RAG(검색 증강 생성) 기술의 발전 과정을 정리했습니다. 외부 데이터베이스를 활용하여 모델의 파라미터 외 지식을 참조함으로써 신뢰성을 높이는 다양한 연구 사례를 다룹니다.
핵심 포인트
- LLM의 한계인 지식 컷오프, 할루시네이션, 컨텍스트 길이 문제를 RAG로 해결 가능
- kNN-LM 방식을 통해 모델 학습 없이 외부 지식 베이스 참조 가능
- 사전 학습 단계부터 검색 엔진을 포함하는 End-to-End 학습 방식 제안
- 파라미터 메모리와 비파라미터 메모리의 결합을 통한 지식 확장
2022년경부터 모델의 가중치(Weights)를 변경하지 않고 입력을 고안하는 「프롬프트 엔지니어링 (Prompt Engineering)」 접근 방식이 크게 보급되었다1. 하지만 AI의 실용화(특히 비즈니스 도입)가 진행됨에 따라, LLM의 「내부 지식(파라미터 내의 기억)」에만 의존하는 접근 방식의 한계가 명확해지기 시작했다.
- 지식의 컷오프(Knowledge Cutoff)와 폐쇄성: 사전 학습(Pre-training)한 시점 이후의 최신 정보나 기업의 비공개 데이터(사내 문서 등)에는 답할 수 없다.
- 할루시네이션 (Hallucination, 환각): 확률적으로 단어를 예측하는 LLM의 성질상, 모르는 정보에 대해서도 그럴듯한 「거짓말」을 자신만만하게 출력해 버린다.
- 컨텍스트 길이(Context Length)의 한계: 모든 사내 자료를 프롬프트에 집어넣으려 해도 입력 상한이 있으며, 무리하게 입력하더라도 중간 정보의 누락(Lost in the Middle)이나 계산 비용의 증대를 초래한다.
이에 주목받은 것이, 「인간은 자신의 기억에 없는 전문적인 질문을 받았을 때, 적당히 추측해서 답하는 것이 아니라 「사전이나 자료를 검색해서」 답변을 작성한다. AI 모델도 이와 마찬가지로 외부 데이터베이스에서 정확한 지식을 검색(Retrieval)하게 하고, 그 사실에 기반하여 답변을 생성(Generation)하게 해야 한다」라는 사상에 기반한 RAG(Retrieval-Augmented Generation: 검색 증강 생성)라는 접근 방식이다. 본 기사에서는 이 RAG를 중심으로 한 검색 확장 관련 기술을 정리했다.
모델의 거대화에 따른 지식의 통암기는 최신 정보의 업데이트 비용, 니치(Niche)한 기억의 효율, 할루시네이션 제어에 한계가 있다는 사실이 알려져 있었다. 이에 고도의 추론 능력과 구체적인 사실 데이터를 분리하여, 효율적이고 신뢰성 높은 지능 시스템을 구축할 목적으로, 외부에서 정보를 검색(Retrieval)하여 언어 모델(LM)을 강화하는 수법의 연구가 진행되어 왔다.
통상 언어 모델이 「다음 단어」를 예측할 때는 파라미터 내의 확률을 따른다고 한다. 하지만 2019년경 Stanford 대학과 Facebook AI Research로부터 「텍스트를 생성하는 바로 그 순간, 외부 데이터베이스에서 가장 유사한 문장(Nearest Neighbor: kNN)을 검색하여 그 단어의 출현 확률을 블렌딩(Blend)한다」라는 접근 방식이 제안되었다2.
이를 통해 모델을 추가 학습(Fine-tuning)시키지 않고도 외부 지식 베이스를 「참조」시키는 것만으로 언어 모델의 예측 정밀도(Perplexity)가 극적으로 향상됨이示되었다.
2020년경 Google Research로부터, 지금까지는 「완성된 AI 모델에 사후적으로 검색을 결합하는 것」이 주류였던 것에 반해, 「AI의 사전 학습(Pre-training) 단계부터 검색 엔진(Retriever)을 포함시켜 함께 트레이닝(End-to-End 학습)해 버리자」라는 제안이 이루어졌다3.
BERT와 같은 언어 모델이 Wikipedia에서 스스로 지식을 검색하며 똑똑해지는 메커니즘을 만들어, 오픈 도메인 QA(Open-domain QA)에서 당시 최고 정밀도(SOTA)를 달성했다.
모델의 파라미터에 저장된 지식(파라미터 메모리)과 외부 문서군을 벡터화한 지식(비파라미터 메모리)을 결합함으로써, 지식의 직접적인 수정이나 확장, 액세스 추적을 가능하게 한다는 발상에 기반하여, 2020년에 Facebook AI Research 팀이 외부 지식을 검색하여 이용하는 수법을 태스크에 유연하게 적용할 수 있는 범용적인 파인튜닝(Fine-tuning) 레시피로 확장했다4.
제로(Zero)부터 구조를 학습시키는 것이 아니라, 검색기(Retriever)와 생성기(Generator) 양측 모두에 광범위한 지식을 보유한 「사전 학습된 모델(Pre-trained Model)」을 채택함으로써 추가 훈련 없이 처음부터 지식에 액세스할 수 있는 능력을 갖추게 하고 있으나, 이 시점에서는 검색기(Retriever)와 생성기(Generator)라는 두 개의 모듈을 엔드 투 엔드(End-to-End, 일기통관)로 동시에 파인튜닝할 수 있다는 점이 포인트로 꼽힌다.
검색 확장의 중요한 요소인 「검색」 기술에 관해서는 다음과 같은 연구가 수행되었다.
-
DPR (Dense Passage Retrieval for Open-Domain Question Answering)
5- 기존의 주류였던 전통적인 키워드 검색에 대해, 두 개의 BERT (Dual-Encoder)를 사용하여 문장을 벡터화하고, 그 유사도(내적)만으로 검색하는 「밀집 벡터 검색 (Dense Retrieval)」이 BM25를 압도적인 정밀도로 능가한다는 것을 증명했다. -
이 DPR의 메커니즘이 그대로, 같은 해 말에 발표되는 초대 RAG 논문
4의 검색 엔진 (Retriever)에 채택되었다. -
BEIR (BEnchmarking-Information Retrieval)
6- 기존에 단일 태스크나 특정 도메인 (Wikipedia 등)에 치우치기 쉬웠던 정보 검색 (IR) 모델의 평가 환경에 대해, 9개의 서로 다른 검색 태스크 (사실 검증, 중복 질문 탐지, 의료 정보 검색 등)에서 엄선된 18개의 데이터셋으로 구성된, 다양하고 이질적인 「제로샷 평가 (Out-of-Distribution의 일반화 성능 검증)」를 위한 표준 벤치마크를 제안했다. -
검증 결과, MS MARCO 등에서 사전에 대량 학습시킨 DPR을 비롯한 고정밀 밀집 벡터 검색 (Dense Retrieval) 모델이라 하더라도, 미지의 도메인이나 태스크 (제로샷 환경)에서는 전통적인 키워드 검색인 「BM25」의 정밀도를 크게 밑도는 경우가 있음 (일반화 성능에 과제가 있음)을 실증했다.
2022년 말 ChatGPT (OpenAI)가 등장한 것을 기점으로, 다양한 언어 계열 생성 AI가 API를 통해 이용되게 된 가운데, 특정 분야의 지식을 결합하고 싶지만 API를 통해 이용하므로 모델을 건드릴 수 없어 기존의 RAG 수법을 사용할 수 없다는 과제가 발생했다. 이에 따라, 모델의 파라미터(Parameter)는 단 1mm도 건드리지 않는 (Frozen) 제약 조건 하에서도 기능하는 검색 확장 시스템이 요구되기 시작했다78.
기존의 LLM을 그대로 이용하며, 검색한 관련 문서를 프롬프트(Prompt)의 선두에 단순히 결합하여 입력하는 것만으로 성능이 향상된다는 연구2.
「LLM을 전혀 건드리지 않고도, 검색 빈도나 쿼리(Query) 길이의 최적화, 그리고 경량 리랭커 (Re-ranker)의 배치라는 「주변 시스템 측의 고안 (document selection의 정교화)」만으로, 파인튜닝 (Fine-tuning)에 필적하거나 혹은 그 이상의 압도적인 RAG 효과를 끌어낼 수 있다」는 것을 실증했다.
LLM을 완전한 「블랙박스 (API 모델)」로 간주하고, 모델의 가중치(Weight)에는 단 1mm도 손대지 않으면서, 외부 검색기 (Retriever) 측만을 「LLM 협조형」으로 진화시키는 검색 확장 시스템에 관한 연구8
- 병렬 앙상블을 통한 컨텍스트 (Context) 제한 돌파: 검색한 상위 $k$개의 문서를 모두 한꺼번에 프롬프트에 채워 넣는 것이 아니라, 문서를 1개씩 개별적으로 쿼리의 선두에 결합하여 병렬 (Parallel)로 LLM에 입력한다. 각각의 출력 확률을 가중 평균 (Ensemble)함으로써, LLM의 문맥 길이 제한 (Context Window)에 얽매이지 않고 대량의 외부 지식을 반영하는 시스템을 구축했다.
- LLM을 교사로 하는 검색기의 자율 튜닝 (REPLUG LSR): 「어떤 문서를 삽입했을 때 LLM의 출력 성능 (Perplexity)이 가장 향상되었는가」를 스코어화하고, 이를 교사 시그널 (KL 다이버시티의 최소화)로 삼아 검색기 측의 파라미터만을 최적화한다 (LSR: LM-Supervised Retrieval). LLM 측을 전혀 건드리지 않고, 주변 시스템 (검색기) 측을 LLM의 「선호하는 지식」에 맞추는 고안만으로, GPT-3 (175B)나 Codex와 같은 초거대 모델의 성능을 추가로 수 % 대폭 끌어올리는 데 성공했다.
앞 절의 흐름에서, 모델을 프리즈 (Freeze)한 채 「뇌 (추론)」와 「책장 (검색)」을 완전히 분리하는 이 스타일은, LLM의 파라미터를 새로 쓰는 파라메트릭 (Parametric)한 수법 (파인튜닝 등)에 비해 개발 비용을 극적으로 낮출 수 있기 때문에, 현재의 LLM 애플리케이션 개발에서 주요 기술로서 그 지위를 확립했다9.
이후 다양한 RAG에 관한 연구가 가열된다.
LLM 자체가 문장 생성 프로세스 도중에 「검색이 필요한가」, 「취득한 정보가 유효한가」, 「생성한 답변이 정확한가」를 스스로 판단·평가 (자기 성찰)하기 위해 출력하는 특수 토큰인 리플렉션 토큰 (Reflection Token)을 생성함으로써, 자율적으로 제어를 수행하는 RAG10.
주요 4종류의 리플렉션 토큰은 다음과 같다.
Retrieve
(검색의 필요성)
역할: 입력된 질문에 대해 외부 지식을 검색해야 할지 여부를 판단 -
값의 예: [Yes]
(검색함), [No]`
(검색하지 않고 자신의 지식으로 답변함)
IsRel
(검색 결과의 관련성)
역할: 검색을 통해 얻은 각 문서가 질문에 대해 정말로 도움이 되는 정보(관련성이 있는지)를 평가
값의 예: [Relevant]
(관련 있음), [Irrelevant]
(관련 없음)
IsSup
(사실의 뒷받침 = 에비던스 (Evidence))
역할: 검색 문서를 바탕으로 생성한 답변의 한 구절이, "정말로 그 문서에 쓰여 있는 내용(사실)에 기반하고 있는가" (할루시네이션 (Hallucination)을 일으키지 않았는가)를 평가
값의 예: [Fully Supported]
(완전히 뒷받침됨), [Partially Supported]
(일부 뒷받침됨), [No Support]
(뒷받침되지 않음)
IsUse
(답변의 유용성)
역할: 최종적으로 생성된 답변이 사용자의 질문에 대한 직접적인 답으로서 얼마나 유익한지를 5단계 등으로 종합 평가
값의 예: [Utility: 5]
(매우 유익함)~ [Utility: 1]
(무관함·불충분함)
"검색 결과가 틀렸을(또는 불충분할) 가능성"을 전제로 두고, 외부의 평가기 (Evaluator)를 사용하여 검색 결과를 자동 수정 (Self-Correction)하는 RAG11.
평가 결과는 다음과 같음.
-
Correct (맞음)
-
상태: 검색 결과에 확실히 옳은 정보가 포함되어 있다고 판단.
-
처리: 문서를 그대로 사용하는 것이 아니라, 노이즈를 배제하기 위해 "지식의 정제 (Refinement)"를 수행. 문서를 몇 문장 단위의 "스트립 (Strip, 잘게 나누기)"으로 분해하여, 무관한 부분을 필터링하고 중요한 부분만 재구성함.
-
Incorrect (틀림)
-
상태: 검색 결과가 모두 빗나감 (무관함)이라고 판단.
-
처리: 로컬의 검색 결과를 모두 폐기. 대신 LLM에게 검색용 키워드를 생성하게 하여, Google 등의 외부 웹 검색 (Web Search API)을 통해 인터넷에서 최신·최적의 정보를 보충함.
-
Ambiguous (모호함)
-
상태: 맞는지 틀린지 평가기가 확신할 수 없는 그레이 존 (Gray Zone).
-
처리: 안전책으로서 로컬의 검색 결과 (정제된 상태)와 웹 검색을 통해 얻은 정보 모두를 블렌딩(Blending)하여 LLM에 전달함.
기존의 RAG 대부분은 사용자의 입력 (프롬프트 (Prompt))에 대해 "한 번만 검색하여 생성한다 (Single-time Retrieval)"는 접근 방식을 취했으나, 장문 생성에 있어서는 생성 도중에 새로운 정보가 필요하게 됨. 이 과제에 대해, 생성 프로세스 도중에 "언제" "무엇을" 검색해야 할지를 모델 스스로가 능동적으로 판단하고, 반복적으로 외부 지식을 검색·흡수하며 문장을 생성하는 RAG 연구 사례12.
알고리즘 흐름 (Direct FLARE)
-
초기 검색: 사용자 입력을 쿼리 (Query)로 하여 초기 검색을 수행하고, 제1문을 생성
-
가문 (Hypothetical sentence) 생성: 외부 지식을 참조하지 않고, 다음 문장의 예측 (가상의 다음 문장 $\hat{s}_t$)을 생성
-
신뢰도 체크:
- 모든 토큰의 확률이 임계값 $\theta$ 이상 $\rightarrow$ 그대로 문장을 확정하고 다음 단계로 이동.
- 임계값 미만의 토큰이 있음 $\rightarrow$ 검색을 트리거 (Trigger).
-
쿼리 작성 및 재생성: 가문을 베이스로 (마스킹(Masking)이나 질문 생성을 통해) 쿼리를 구축하고, 외부에서 도큐먼트 (Document)를 취득. 취득한 도큐먼트를 문맥에 더하여 다음 문장을 올바르게 재생성.
-
문장의 종단에 도달할 때까지 2~4를 반복.
기존의 RAG 모델은 코퍼스 (Corpus)에서 연속되는 짧은 텍스트 청크 (Chunk)만을 검색하기 때문에, 문서 전체의 문맥이나 테마에 따른 "매크로한 이해"가 어렵다는 과제가 있었다. 이에 대해, 텍스트 청크를 재귀적으로 임베딩 (Embedding)하고, 클러스터링 (Clustering)하며, 요약함으로써, 서로 다른 추상도의 요약으로 구성된 트리 구조 (RAPTOR 트리)를 바텀업 (Bottom-up) 방식으로 구축하는 RAG 연구13.
LLM을 사용하여 외부의 프라이빗한 문서군으로부터 "지식 그래프 (Knowledge Graph)"를 사전에 구축하고, 나아가 그 그래프의 구조 (커뮤니티 (Community))별로 서머리 (Summary)를 자동 생성해 두는 GraphRAG라는 기법이 제안되었다14.
기존의 RAG가 텍스트를 단순한 문장의 덩어리(Chunk)로서 개별적으로 벡터 데이터베이스(Vector Database)에 저장하는 것과 달리, GraphRAG는 데이터 내의 실체(Entity)를 '노드(Node)'로, 이들의 관계성을 '에지(Edge)'로 하는 그래프 구조(지식 그래프 (Knowledge Graph) 등)로서 정보를 관리 및 검색한다.
지식 그래프를 이용한 QA(질문 응답)나 팩트 체크(Fact Check)뿐만 아니라, 문서 요약, 분자·의약품 데이터 분석(사이언스 영역), 소셜 네트워크 분석, 의사결정 계획 등 폭넓은 도메인에 응용되고 있다15.
LLM(대규모 언어 모델 (Large Language Model))의 진화에 따라, 외부 지식을 심리스(Seamless)하게 통합하는 메커니즘으로서 'RAG(검색 확장 생성 (Retrieval-Augmented Generation))'는 시스템 구축에 있어 데파크토 스탠다드(De facto standard, 사실상의 표준)가 되었다. 그러나 현장에서의 운용이 진행됨에 따라, 단순히 '관련 문서를 검색하여 LLM에 채워 넣는' 기존의 표준 RAG 접근 방식이 구조적인 한계에 직면하기 시작했다1617.
- 노이즈 정보 혼입으로 인한 저정밀도화
- 불충분한 근거로 인한 할루시네이션 (Hallucination)
즉, 정보가 너무 많아도 혹은 너무 적어도 정밀도가 저하될 가능성이 있다는 점이다.
이러한 점들로 인해, 수동적인 컨텍스트 주입을 배제하고 LLM에 자율적인 사고 루틴을 결합하는 에이전트(Agent) 기술에 주목이 모이는 계기가 되었다.
Generalization through Memorization: Nearest Neighbor Language Models ↩ ↩
2↩3 -
Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks ↩ ↩
2↩3 -
Dense Passage Retrieval for Open-Domain Question Answering ↩
BEIR: A Heterogenous Benchmark for Zero-shot Evaluation of Information Retrieval Models ↩
REPLUG: Retrieval-Augmented Black-Box Language Models ↩ ↩
2↩3 -
Retrieval-Augmented Generation for Large Language Models: A Survey ↩ ↩
2 -
Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection ↩ ↩
2 -
RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval ↩ ↩
2 -
From Local to Global: A Graph RAG Approach to Query-Focused Summarization ↩
From RAG to Agentic RAG for Faithful Islamic Question Answering ↩
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기