1. 🔍 RAG (Retrieval-Augmented Generation)
RAG란?
기존의 LLM(Large Language Model)이 문서나 데이터에 대해 잘못된 정보를 "지어내는(Hallucination)" 문제를 해결하기 위해 등장한 방법입니다.
Retrieval-Augmented Generation은 말 그대로 **외부 지식(Retrieval)**을 생성(Generation) 전에 검색해 사용하는 방식입니다.
어떻게 작동할까?
- 사용자의 질문 →
- 벡터 DB에서 관련 문서 검색 (retriever) →
- 검색된 문서를 LLM에 넣어 응답 생성 (generator)
예시
"회사 휴가 정책 알려줘"
→ 내부 규정집 PDF에서 관련 파트를 찾아 →
→ LLM이 해당 내용을 기반으로 자연어 응답 생성
실전 팁
- 단순히 LLM에 모든 문서를 넣는 방식보다 훨씬 정확도와 확장성이 좋음
- GPT-4, Claude, Mistral 등 다양한 모델에 적용 가능
2. ✂️ 문서 전처리와 청킹(Chunking)
왜 필요한가?
LLM에 넣을 수 있는 컨텍스트(token)가 제한되어 있어 긴 문서를 **작은 조각(Chunk)**으로 나누는 것이 필수입니다.
청킹의 기본 전략
- 크기: 보통 500~1000 token
- 겹침(Sliding Window): 20~30% 정도 겹쳐야 문맥 손실 방지
전처리 과정 예시
- PDF, DOCX → 텍스트 추출
- 불필요한 공백/특수문자 제거
- 문단 기준 또는 헤딩 기준으로 Chunk 분할
실전 팁
- 너무 작게 나누면 검색 시 문맥 부족
- 너무 크게 나누면 LLM 입력 초과
→ 프로젝트에 따라 Chunk 크기 튜닝 필요
3. 🧲 벡터 임베딩과 검색
벡터 임베딩이란?
문자열을 수학적으로 표현한 고차원 벡터로 바꾸는 과정입니다.
이 벡터는 문장 간 의미 유사도를 수치로 비교할 수 있게 합니다.
임베딩 도구 예시
- OpenAI ada-002
- Cohere, HuggingFace Transformers
- bge, e5, instructor 모델 등
벡터 DB 예시
- FAISS (로컬용, 빠름)
- Weaviate, Pinecone, Qdrant (클라우드 기반)
실전 검색 흐름
- 사용자의 질문을 벡터로 변환
- 기존 문서 Chunk들과 유사도 비교
- 가장 유사한 top-k 문서 반환
실전 팁
- 임베딩 모델 선택이 품질 좌우
- 벡터 DB의 필터링 기능도 잘 활용해야 정확한 결과 가능
4. 🧾 컨텍스트 전달 방식
컨텍스트란?
LLM에 넣는 정보의 묶음입니다.
사용자의 질문 + 관련 문서 Chunk → 함께 넣어야 정확한 응답이 나옵니다.
Prompt 구성 방식
You are a helpful assistant.
Answer the question based on the context below.
Context:
[문서 chunk 1]
[문서 chunk 2]
...
Question:
[사용자 질문]
실전 팁
- Prompt가 단순해도 LLM은 강력하게 응답함
- 문서 기반 QA에서는 사용자 질문을 반드시 포함시켜야 함
- 필요한 경우 system prompt를 따로 커스터마이징 가능 (예: "HR 업무 도우미로 행동해")
5. 🛠️ 실전 응용 프로젝트 예시
예시 1: 기업 내부 문서 QA 챗봇
- HR 정책, 복지 제도, 연차 신청 등 사내 문서 기반 Q&A
- PDF → 전처리 → Chunk → 벡터 임베딩 → 검색 → LLM 응답
예시 2: 논문 요약 챗봇
- 논문 내용을 chunk로 나누고, 유저가 질문하면 관련 chunk만 기반으로 요약 생성
- TrOCR + PDFMiner + LangChain 조합으로 구현 가능
예시 3: 상품 정보 고객센터 챗봇
- 상품 카탈로그, FAQ, 리뷰 등을 벡터로 저장
- 고객 질문에 따라 제품 설명서에서 바로 인용 응답
실전 팁
- 파일 업로드 → 자동 청킹 및 임베딩 → 챗봇 연결까지 자동화하는 파이프라인 구성
- FastAPI + LangChain + FAISS + Streamlit or ChatUI 구성으로 MVP 제작 가능
본 후기는 [카카오엔터프라이즈x스나이퍼팩토리] 카카오클라우드로 배우는 AIaaS 마스터 클래스 (B-log) 리뷰로 작성 되었습니다.
'학습일지 > K-Digital Traing' 카테고리의 다른 글
| [KDT] AIaaS 마스터클래스 14주차 - AI 실습 (이미지 세그멘테이션) (0) | 2025.06.26 |
|---|---|
| [KDT] AIaaS 마스터클래스 13주차 - AI 실습 (OCR) (0) | 2025.06.20 |
| [KDT] AIaaS 마스터클래스 11주차 - 머신러닝 입문 (0) | 2025.06.04 |
| [KDT] AIaaS 마스터클래스 10주차 - Rest API와 FastAPI 활용 (2) | 2025.05.28 |
| [KDT] AIaaS 마스터클래스 9주차 - Python 입문 (0) | 2025.05.19 |