LangChain을 활용한 LLM 애플리케이션 개발

김두환 (라도)·2025년 9월 19일

1. 대규모 언어 모델(LLM)의 발전과 한계

1.1 LLM 발전의 타임라인

LLM의 발전은 Transformer 아키텍처(2017)의 등장 이후 가속화되었습니다.

  • 주요 모델: BERT, GPT, GPT-2, GPT-3, FLANseq2seq, T5, T0, BART, GPT-3.5, LLaMA, InstGPT, 그리고 GPT-4 (2023) 등이 이 기간 동안 개발되었습니다.
  • Seq2Seq 모델: 순차적인 데이터를 입력받아 순차적인 데이터를 출력하는 모델로, Encoder(입력 시퀀스의 문맥을 반영하여 Context vector 생성)와 Decoder(Context vector를 시드로 사용하여 순차적으로 출력 생성)로 구성됩니다.
  • Attention 메커니즘: Seq2Seq 모델의 단점을 개선하기 위해 Bahdanau Attention이 도입되었으며, 문맥 벡터(cic_i)를 구하여 디코더의 Hidden State(sts_t)를 업데이트하는 데 사용됩니다.
  • Transformer: Attention 메커니즘만을 사용하여 모델을 구성하며, 쿼리(query), 키(key), 값(value) 개념을 활용해 연관도를 계산합니다.

1.2 LLM의 근본적인 한계

LLM은 내부적인 파라미터 메모리(Parametric memory)에 의존하여 답변을 생성하기 때문에 다음과 같은 문제가 발생합니다:

한계설명예시
Hallucination (환각)사실과 다르거나 근거가 없는 정보를 생성함.'머그샷'을 '머그컵에 내린 에스프레소 샷'이라고 잘못 설명.
Outdated Knowledge (구식 지식)학습 데이터 이후의 최신 정보를 반영하지 못함.'최신 맥 OS 버전'이나 '2024년 최저 시급'에 대해 구식 정보를 제공.
Untraceable Reasoning Process답변이 도출된 근거를 명확히 알기 어려움.-
Bias (편향)학습 데이터에 내재된 편향이 결과에 반영될 수 있음.여성에 대한 편향된 특성 목록 제시.

2. RAG(Retrieval-Augmented Generation) 개요

RAG는 LLM의 한계를 극복하기 위해 외부의 신뢰할 수 있는 비파라미터 메모리(Non-parametric memory)인 문서를 활용하여 답변의 정확성과 최신성을 높이는 방법론입니다.

2.1 Naive RAG 파이프라인

가장 기본적인 RAG 파이프라인은 세 단계로 구성됩니다:

  1. Indexing (색인): 외부 문서들을 작은 청크(chunks)로 나누고 임베딩(embedding)을 생성하여 저장합니다.
  2. Retrieval (검색): 사용자 쿼리(User query)를 임베딩하여 벡터 저장소에서 관련된 문서(Relevant documents)를 검색합니다.
  3. Generation (생성): 검색된 문서 조각(예: chunk1, chunk2)을 Frozen LLM의 프롬프트(prompt)에 포함하여 최종 답변을 생성합니다.

Naive RAG는 LLM의 환각 및 구식 지식 문제를 완화하는 데 효과적이지만, 낮은 검색 정밀도/재현율(low precision/low recall), 편향, 독성 등의 문제를 여전히 가질 수 있습니다.

2.2 RAG의 근본 논문

모델연도특징구성 요소
kNN-LM2019추론(inference) 시 explicit memory를 사용하며, decoder-only Transformer 기반입니다. 다음 단어 예측에 kNN 모델을 사용하며, 드물게 등장하는 패턴을 다루는 데 유용합니다.Generative LM + Nearest Neighbor LM (kNN 모델).
REALM2020Retrieval-Augmented Pre-training을 수행하며 BERT 기반입니다. Retrieve-then-predict 방식으로 동작하며, BERT 기반의 Neural Knowledge Retriever를 사용하여 관련성 점수 $p(zx)$를 계산합니다.
RAG2020Retrieval-Augmented Generator이며, fine-tuning만 수행합니다. BERT 인코더와 BART 생성기(generator, Seq2Seq 모델)를 사용합니다.Retriever (DPR) + Generator (BART).
RAG 모델 유형RAG-Sequence Model과 RAG-Token Model이 있으며, RAG-Token 모델은 각 토큰을 생성할 때마다 검색된 문서를 기반으로 확률을 계산합니다.-

3. 고급 RAG 및 모듈형 RAG 기법

Naive RAG의 한계를 극복하기 위해 Advanced RAGModular RAG가 발전했습니다.

3.1 Advanced RAG: 최적화 단계

Advanced RAG는 주로 Pre-retrieval (검색 전), Retrieval (검색), Post-retrieval (검색 후) 단계에서 최적화를 수행합니다.

단계목표 및 기법세부 내용
Pre-retrieval데이터 색인 최적화 및 품질 향상.데이터 품질 향상: 관련성이 적은 정보 삭제, 용어 모호성 해소, 데이터 최신성 확보, 메타데이터 추가. 임베딩 모델 파인튜닝: 특정 도메인 성능 향상 (LLM을 통해 학습 데이터 생성 가능). 동적 임베딩: 맥락을 고려한 임베딩 생성 (예: BERT, OpenAI ADA).
Post-retrieval검색된 문서의 효과 극대화.Re-Ranking: 검색된 문서에 대해 다양성(DiversityRanker) 또는 관련성(Relevance Score)을 기준으로 순위를 재조정. Lost-In-The-Middle Ranker는 가장 정확한 문서를 프롬프트의 처음과 끝에 배치하여 성능을 개선합니다.
Prompt Compression프롬프트 길이를 줄여 LLM의 처리 효율성을 높임.RECOMP (Extractive/Abstractive Compressor), MemWalker (Memory Tree 활용) 등의 압축기를 활용.

3.2 Modular RAG

Modular RAG는 Retrieve, Read, Rerank, Rewrite, Search, Predict, Fusion, Memory, Routing 등 다양한 모듈을 조합하여 복잡한 태스크에 대응합니다.

  • Search Module: 임베딩 유사도 기반 검색 대신, LLM이 쿼리를 생성하여 활용하는 방식 (예: KnowledGPT는 PoT 방식으로 쿼리 생성).
  • Memory Module (Selfmem): LLM이 생성한 텍스트를 메모리(memory)로 활용하여 생성 품질을 높입니다 (Better generation prompts better memory).
  • Fusion (RAG-Fusion): LLM이 사용자 쿼리로부터 여러 개의 Multi-query를 생성하여 검색에 활용하고, 결과를 융합하여 사용.
  • Routing: LLM 호출을 통해 사용자 쿼리에 따라 후속 행동(데이터 스토어 접속, 요약 등)을 결정합니다.

3.3 RAG의 최신 발전 동향 (2021년 이후)

최근 연구들은 검색 모델 자체의 성능 향상과 LLM의 지식 활용도를 높이는 데 초점을 맞추고 있습니다.

모델연도핵심 기법특징 요약
Contriever2021Contrastive learning, MoCo (Momentum Encoder).비지도 학습 기반의 bi-encoder 아키텍처. 쿼리 임베딩과 문서 임베딩의 Dot product로 관련성 점수 계산.
ATLASContriever + T5 FiD.Contriever를 Retriever로, T5 FiD를 LM으로 사용하는 RAG 모델. Attention Distillation 및 Perplexity Distillation 같은 학습 목표 사용.
PROMPTAGATORLLM을 사용한 Query-Document 쌍 생성.LLM이 태스크에 적합한 쿼리를 생성하게 하여 리트리버를 개선 (Round-trip consistency 확보).
HyDELLM을 사용한 Hypothetical Document 생성.사용자 쿼리를 기반으로 가상의 문서를 생성하고, 이 가상 문서의 임베딩을 사용하여 실제 문서 검색.
Selfmem메모리 모듈, 메모리 셀렉터 도입.Better memory prompts better generation, Better generation prompt better memory의 상호작용을 통해 메모리 활용도를 높임.
SANTAStructured/Unstructured Data Alignment.Structured Data Alignment(SDA) 및 Masked Entity Prediction(MEP)을 통해 정형/비정형 데이터에 모두 대응할 수 있도록 모델을 학습.

4. RAG 프레임워크와 응용

4.1 RAG 프레임워크 (LangChain & LlamaIndex)

RAG를 활용한 완성도 높은 LLM 서비스를 구축하기 위해 LangChainLlamaIndex 같은 프레임워크가 사용됩니다. 이들은 RAG 파이프라인의 핵심 구성 요소를 제공합니다:

  • Document loader (문서 로딩)
  • Embedding model (임베딩 생성)
  • Vectorstore (벡터 저장소)
  • Chain (체인), Agent (에이전트)
  • Tool (도구), Memory (메모리)

4.2 페르소나 챗봇 응용

RAG는 챗봇에 일관된 페르소나를 통합하는 데 활용될 수 있습니다.

  • Speaker Consistency: LLM은 대화 중에 화자 일관성을 유지하는 데 어려움을 겪을 수 있습니다.
  • Ranking Profile Memory Networks: 페르소나 문장(persona sentences)을 벡터화하고 쿼리 임베딩과 결합하여 답변 후보 세트(candidate response set)를 생성하는 데 활용됩니다.
  • ChatHaruhi: 원작 캐릭터 스크립트 데이터베이스를 Non-parametric memory로 사용하여, 사용자 쿼리에 대해 관련 플롯을 검색(extract)하고 이를 기반으로 캐릭터의 톤, 매너, 어휘를 유지한 답변을 생성(generate)하여 역할극 챗봇을 구현합니다. 이는 시스템 프롬프트만 사용하는 기존 방식의 더 많은 할루시네이션 및 데이터 확보의 어려움 같은 한계를 극복합니다.

5. RAG와 Fine-tuning의 비교

RAG와 모델 Fine-tuning(재훈련)은 지식을 활용하는 방식과 서비스 구현 측면에서 차이가 있습니다.

특징RAG (Retrieval-Augmented Generation)Fine-Tuning (재훈련)
지식 소스파라미터 + 비파라미터 메모리 (데이터베이스)파라미터 메모리만 사용
지식 업데이트데이터베이스 업데이트모델 재훈련 (Retraining)
모델 맞춤화완전히 맞춤화되지는 않음완전히 맞춤화됨
Hallucinations적음 (less)발생 가능 (O)
추론 과정 해석가능 (O)어려움 (X)
지연 시간 (Latency)상대적으로 높음 (higher)상대적으로 낮음 (lower)

6. RAG 평가 지표

RAG 모델의 평가는 크게 검색 품질과 생성 품질로 나뉩니다.

  • Retrieval Quality (검색 품질): 리트리버가 얼마나 효과적인 문서를 전달하는지 검증합니다. Hit Rate, MRR (Mean Reciprocal Rank), NDCG 등의 지표를 사용합니다.
  • Generation Quality (생성 품질): 제너레이터가 논리적이고 관련성 있으며 유해하지 않은 답변을 생성하는지 검증합니다. Faithfulness (충실도), Relevance (관련성), Non-harmfulness (비유해성) 등을 평가합니다.
profile
20세기소년

0개의 댓글