💡 RAG란?

RAG (Retrieval-Augmented Generation) =
👉 “검색 기반 생성형 AI” 또는 “정보 보강 생성”

✅ LLM이 기억 못하는 내용을 검색 시스템과 연동하여
실시간으로 찾아보고,
✅ 그걸 바탕으로 정확한 답변을 생성하는 방식입니다.

 

📊 전통적인 LLM의 한계

문제점설명
❌ 최신 정보 부족 학습 시점 이후의 정보는 모름
❌ 기업 데이터 없음 내부 문서, DB, FAQ 접근 불가
❌ 헛소리 위험 “모르는 건 그럴듯하게 지어냄” (Hallucination)

이걸 해결하는 게 RAG!

 

🔧 RAG 구조 한눈에 보기

[사용자 질문]
       ↓
[Retriever] 🔍 내 문서/DB/웹 등에서 관련 정보 검색
       ↓
[Generator (LLM)] 💬 검색된 문서를 바탕으로 정답 생성
       ↓
[답변 출력]
 
 

📦 사용법 요약 (LangChain 기준)

1. 📁 데이터 준비

PDF, txt, csv, 벡터DB 등.

 
from langchain.document_loaders import TextLoader
 
docs = TextLoader("my_file.txt").load()

2. 📐 문서 쪼개기

from langchain.text_splitter import CharacterTextSplitter
 
splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = splitter.split_documents(docs)

3. 🧠 벡터 DB에 임베딩

from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
 
db = FAISS.from_documents(chunks, OpenAIEmbeddings())

4. 🎣 질문 → 관련 문서 검색 → LLM에 넣기

from langchain.chains import RetrievalQA
from langchain.chat_models import ChatOpenAI
 
qa = RetrievalQA.from_chain_type(
    llm=ChatOpenAI(),
    retriever=db.as_retriever(),
    return_source_documents=True
)
 
result = qa("우리 회사 반품 정책은 뭐야?")
 
print(result['result'])
 

🧠 핵심 요점 요약

구성 요소설명
Retriever 문서, DB 등에서 관련 내용 검색
LLM (Generator) 검색된 문서를 기반으로 답 생성
임베딩/벡터DB 검색을 위해 문서를 벡터화해 저장

🌍 RAG 응용 분야

분야활용 예
💼 기업 사내 문서 기반 지식봇, 고객 FAQ
🧑‍⚖️ 법률 판례/법령 기반 Q&A 시스템
🧪 의료 의학 논문 기반 진단 보조
🧾 세무/회계 최신 규정/회계 지침 기반 질의응답
📚 교육 교재 기반 학습 도우미
🧑‍💻 개발자 도구 내부 기술문서 + 코드 리딩 챗봇
📰 언론/뉴스 최신 기사 기반 Q&A

🔮 전망

RAG는 앞으로도 계속 중요해집니다. 이유는:

  • LLM은 사실을 모름 (단지 확률 기반 생성)
  • 현실 정보는 검색 + 구조화 + 연결이 필요함
  • RAG는 이를 동적으로 처리할 수 있는 구조

요약: LLM의 기억력을 현실의 DB로 보완하는 구조 = RAG

'생성형AI프로그래밍' 카테고리의 다른 글

AI 에이전트란 ?  (1) 2025.04.19
파인튜닝 개념  (0) 2025.04.19
VectorDB 와 청크(Chunk) 에 대하여  (0) 2025.04.19
OpenAI API 연동  (2) 2025.04.19
생성형AI 개발자는 무얼하는 사람인가요  (0) 2025.04.16

+ Recent posts