ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AI 트렌드 – RAG (Retrieval-Augmented Generation) 완전 정리
    카테고리 없음 2025. 8. 31. 13:38

    목적: **RAG(Retrieval-Augmented Generation)**을 처음 접하는 사람도 쉽게 이해할 수 있도록, ‘정의 → 동작원리 → 구성요소 → 장점/한계 → 응용사례 → 시험 포인트’ 순으로 정리.


    0) 한눈에 핵심

    • 정의: 질문에 답할 때, 모델이 **외부 지식(검색된 문서)**을 가져와 프롬프트에 삽입 후 생성하는 방식.
    • 왜?: 사전학습 모델은 최신/도메인 지식 부족 → 검색 결합으로 정확성·근거성 향상.
    • 공식: Retrieval(검색) + Augmentation(문맥 보강) + Generation(LLM 출력).

    1) 직관적 비유

    • 큰 시험을 치는데, **머릿속 지식(LLM 파라미터)**만 쓰지 않고, **참고서(외부 문서)**를 옆에 두고 답을 쓰는 것.
    • 모델은 검색된 문서 일부를 인용/참조하여 답변.

    2) 동작 원리

    1. Query Encoding: 질문을 임베딩(벡터)으로 변환.
    2. Retrieval: 벡터DB/검색엔진에서 관련 문서 조각 검색.
    3. Augmentation: 검색 결과를 프롬프트에 삽입.
    4. Generation: LLM이 해당 맥락 기반으로 답 생성.

    3) 구성 요소

    • 벡터 임베딩 모델: 질문·문서를 같은 공간으로 매핑.
    • Vector DB: FAISS, Pinecone, Milvus 등.
    • Retriever(검색기): k-NN, BM25+Dense Hybrid.
    • Reranker(선택적): Cross-Encoder로 검색 결과 재정렬.
    • Orchestrator: 검색된 문서 + 질문 → LLM 입력으로 조립.

    4) 장점

    • 최신성: 모델 파라미터 업데이트 없이 최신 문서 반영.
    • 근거성: 답변에 인용·출처 포함 가능.
    • 도메인 특화: 기업 내부 문서/FAQ 활용.
    • 효율성: 전체 모델 파라미터 재학습보다 훨씬 저렴.

    5) 한계

    • 검색 품질 의존: 잘못 검색하면 답변도 오류.
    • 긴 문맥 한계: LLM 입력 길이 제한.
    • 비용/지연: 검색 + LLM 호출 병합 비용.
    • 프롬프트 주입 공격: 외부 문서가 의도적으로 모델 동작 교란.

    6) 응용 사례

    • 챗봇: 사내 문서 기반 QA.
    • 법률/의료 도메인: 최신 규정/논문 반영.
    • 검색엔진+LLM: Bing Chat, Perplexity.
    • 멀티모달: 이미지 검색 후 텍스트 답변.

    7) 시험장 포인트

    • RAG = 검색 + LLM.
    • 구성 요소: 임베딩, 벡터DB, Retriever, Augmenter, Generator.
    • 장점: 최신성, 근거성, 도메인 적용.
    • 한계: 검색 품질 의존, 문맥 길이 제한.
    • 실무 키워드: Hybrid search, Reranker, Prompt Injection 방어.

    8) 실전 체크리스트

    • 내 태스크에 필요한 외부 지식 소스 정의했는가?
    • 문서 청크 크기·중복 최소화 설계했는가?
    • 임베딩 모델이 언어/도메인 특화인가?
    • Retriever 성능 검증했는가?(리콜/정확도)
    • Prompt에 출처 표시 규칙 포함했는가?
    • 보안(Injection 방어/PII 제거) 점검했는가?

    9) 미니 연습(정답은 접어서)

    1. RAG의 핵심 아이디어를 한 줄로 설명해보세요.
    2. 검색 품질이 나쁘면 어떤 문제가 생기나?
    3. 프롬프트 주입 공격이란 무엇인가?
    정답 보기 1) 외부 문서를 검색해 프롬프트에 넣고 LLM이 답하도록 한다. 2) 잘못된 문서가 답변에 반영되어 오류/환각 발생. 3) 외부 입력 문서에 모델 지시를 덮어쓰는 텍스트를 넣어 오작동 유도하는 것.
Designed by Tistory.