Soyeon Park 님의 블로그
RAG ; Retrieval-Augmented Generation 본문
1. RAG란?
RAG는 Retrieval Augmented Generation의 약자로, 검색 증강 생성으로 해석할 수 있다.
대형언어모델(LLM)이 새로운 정보를 검색하고 통합할 수 있도록 하는 기술이다.
RAG를 사용하면, LLM이 지정된 문서를 참조하며 기존 데이터의 정보를 보완할 수 있게 된다.
이를 통해서 훈련 데이터에서 사용할 수 없는 도메인의 정보나 실시간으로 업데이트되는 정보를 사용할 수 있게 된다.
따라서, 할루시네이션을 방지하는 효과가 있다.
예를 들어, LLM 기반 챗봇이 회사 내부 데이터에 접근하여 응답을 생성하게 되는 것이다. 일반적인 LLM은 회사 내부의 데이터를 알 수 없기 때문에 맞춤형 서비스는 제공할 수 없는 반면, RAG를 사용하면 가능해진다.
*할루시네이션 : 생성형 AI가 사실이 아닌 정보를 마치 사실인 것처럼 답변하는 현상
2. RAG 동작 과정

임베딩 ; Embedding
참조할 데이터를 임베딩한다.
데이터를 벡터 공간의 수치로 표현하는 것이다.
이 임베딩 값을 벡터 데이터베이스에 저장하고, 문서 검색에 사용한다.
1) Reference documents : LLM에게 가르쳐주고 싶은 문서 준비
2) LLM embedding : 참조 문서들을 벡터로 변환한다.
3) Vector database : 벡터로 변환된 문서들을 벡터디비에 저장한다. LLM은 벡터디비에 접근하여 검색을 한다.
검색 ; Retrieve
사용자의 쿼리가 주어지면, 질문도 문서와 같은 방식으로 임베딩을 한다.
1) User query
2) LLM embedding : 사용자의 질문 또한 문서와 동일한 방식의 벡터로 변환하여 Query vector로 만든다.
3) Find relevant documents by comparing embeddings : 사용자의 질문인 Query vector와 가장 비슷한 벡터를 벡터디비에서 찾는다. (유사도 검색)
4) Retrieve context from relevant documents : 가장 관련성 높은 내용 context chunks를 뽑아온다.
생성 ; Augmented
사용자의 질문과 context chunks를 합쳐서 증강된 프롬포트를 만든다.
1) Augmented query : 사용자의 질문 + context chunks
ex. "RAG가 뭐야?" → (증강) → "참고 자료(<chunk1>, <chunk 2>..)를 바탕으로 RAG가 뭔지 대답해줘"
2) LLM generation : LLM이 위에서 증강된 질문을 읽고, 참고 자료 내용을 바탕으로 답변을 생성한다.
3) Response : 사용자에게 응답을 한다.
3. Vector Database 작동 원리
1) Word Embeddings : 표에서 미리 정의된 숫자 임베딩을 보고, Data의 단어를 벡터로 바꾼다.
2) Text Embeddings & Encoding : 단어들을 인코더 신경망에 통과시킨다. 이 과정에서 단어의 문맥적 의미가 계산된다.
행렬곱 → 음수제거(ReLU) → 평균(Mean Pooling)
3) Projection : 만들어진 벡터의 차원을 축소하여, 저장공간을 아끼고 검색 속도를 높이기 위해 데이터를 한번더 정제하여 최종 벡터디비에 저장한다.
4) Retrieval(검색) : 사용자의 쿼리도 벡터로 변환되었다. 질문 벡터와 저장된 벡터들을 내적한다. 값이 클수록 의미가 비슷하다는 뜻이다.
5) Augmented(증강) : 결과가 증강되었다.

4. LLM-based agents
Non-agentic vs. Agentic workflow
Non-agentic workflow
zero-shot 방식을 사용한다. 답변을 시작해서 한번에 끝내는 방식이다.
빠르지만 복잡한 문제에서 실수가 나올 수 있으며, 수정과정이 없다.
우리가 보통 지피티에게 한번 질문하고 답을 얻는 방식이다.
ex. LLM workflow, RAG
Agentic workflow
답변을 한번에 끝내는 것이 아니라, 생각을 하고, 수정하는 과정을 반복한다.
결과물의 품질을 계속 높이는 과정이다.
ex. AI Agent, Agentic AI

5. LangChain, LangGraph, LangSmith
LangChain : LLM을 가지고 앱을 쉽게 만들 수 있게 도와주는 도구 모음
- 질문 입력 → 검색 → 답변 생성 등의 과정을 사슬처럼 일직선으로 연결해서 쓴다.
- 루프나 복잡한 판단을 짜기에는 유연성이 부족하다.
LangGraph : 랭체인 블록들을 가지고, 순환 구조나 복잡한 흐름을 만들 수 있게 해주는 상위 도구
- Agent를 위해 사용된다.
LangSmith : 랭체인과 랭그래프로 만든 AI의 작동, 에러, 토큰 사용량 등을 감시하고 기록하는 도구
'데이터베이스' 카테고리의 다른 글
| 검색 엔진의 발전 과정 (0) | 2025.11.25 |
|---|---|
| 함수 종속성 (0) | 2025.11.12 |
| 데이터베이스 정규화 (0) | 2025.11.12 |