728x90
안녕하세요 오늘은 요즘 AI 분야에서 중요한 개념 중 하나인 RAG(Retrieval-Augmented Generation) 에 대해 소개하고,
간단한 예제를 함께 살펴보겠습니다.
RAG란 무엇일까?
LLM(대규모 언어 모델)은 방대한 데이터를 학습했지만, 실시간 최신 정보나 특정 도메인 데이터에 대해 정확하게 답하지 못할 때가 많습니다.
이때 필요한 것이 바로 RAG입니다.
- Retrieval(검색) : 데이터베이스나 문서 저장소에서 관련 정보를 찾아옵니다.
- Augmented(보강) : 검색된 정보를 모델 입력에 함께 넣어줍니다.
- Generation(생성) : LLM이 그 정보를 참고해 더 정확하고 맥락 있는 답변을 생성합니다.
즉, RAG는 검색 + 생성을 결합해 지식 있는 AI 답변을 만드는 기술입니다.
RAG의 장점
- 최신성 확보 – 모델 학습 시점 이후의 정보를 활용 가능
- 정확성 향상 – 외부 데이터 근거를 바탕으로 답변
- 도메인 특화 – 기업 내부 문서, 논문, 매뉴얼 등 특정 분야에 특화된 답변 가능
간단한 예제를 통해 RAG 을 사용해보겠습니다.
from sentence_transformers import SentenceTransformer
import faiss
import numpy as np
# 1. 임베딩 모델 준비
model = SentenceTransformer("all-MiniLM-L6-v2")
# 2. 문서 저장소 (간단 예시)
documents = [
"파이썬은 인기 있는 프로그래밍 언어입니다.",
"RAG는 검색과 생성을 결합한 AI 기법입니다.",
"Postgres는 오픈소스 관계형 데이터베이스입니다.",
]
# 3. 문서를 벡터로 변환
embeddings = model.encode(documents)
# 4. 벡터 검색 인덱스 생성
dimension = embeddings.shape[1]
index = faiss.IndexFlatL2(dimension)
index.add(np.array(embeddings))
# 5. 질문 입력
query = "RAG가 뭐야?"
query_vector = model.encode([query])
# 6. 검색
k = 1
distances, indices = index.search(np.array(query_vector), k)
# 7. 검색 결과 출력
print("질문:", query)
print("검색된 문서:", documents[indices[0][0]])
RAG는 단순히 AI가 답하는 것을 넘어서, 근거 있는 답변과 최신 정보 반영을 가능하게 해주는 핵심 기술입니다.
앞으로 챗봇, 검색엔진, 지식 기반 서비스에서 더 많이 사용될 것이라 생각됩니다.
'Python' 카테고리의 다른 글
| [Python] collections.Counter 로 데이터 갯수 세기 (0) | 2025.09.30 |
|---|---|
| [Python] 벡터 DB로 문장 검색하기 (Faiss 활용) (0) | 2025.09.29 |
| [Python] 간단한 PDF 파일 만들기 (0) | 2025.09.24 |
| [Python] datetime 사용하여 현재 날짜와 시간 구하기 (0) | 2025.09.23 |
| [Python] qrcode 라이브러리로 QR 코드 만들기 (1) | 2025.09.22 |