문서 기반 질의응답 AI 실습 – RAG와 LLM의 이해

SmartBear·2025년 6월 11일

AI

목록 보기
3/9

🎯 목표

  • .txt 문서 기반으로 유저가 자연어 질문을 하면
  • 관련 문장을 찾아주는 시스템을 만든다
  • 이후 LLM으로 자연어 답변을 생성하는 단계로 확장 예정

📌 핵심 개념 정리

🔹 벡터화(Embedding)란?

문장이나 단어를 수치 벡터로 바꾸는 것

  • 벡터 간 거리(유사도)를 이용해 의미적으로 가까운 문장을 찾을 수 있음
  • 예: "파이썬은 무엇인가요?" → [0.12, -0.83, 0.57, ...]

🔹 왜 조합형 의미처리는 어려운가?

  • "나는 고양이를 좋아해" vs "나는 개를 좋아해"는 구조는 비슷하지만
    벡터는 문장 전체 의미를 기준으로 다르게 배치됨
  • 현재 AI는 문장을 부분 조합해서 의미를 정확히 계산하지 못함

🔹 LLM과 RAG의 관계는?

구분설명
LLM자연스러운 문장 생성 담당
RAG외부 정보 검색 및 제공 담당
관계RAG는 LLM의 도우미, 전처리 구조이지 상위 개념은 아님

🔹 최근 트렌드: 문서 → 데이터

  • 실제 서비스에서는 “문서” 대신 “DB, 로그, 코드” 같은 실시간 정보 사용
  • 자연어 → SQL → 응답 같은 Tool-Use LLM이 트렌드
  • RAG는 이러한 LLM 응용의 출발점이자 구조적 핵심

🛠 실습: 간단한 문서 기반 Q&A 시스템

Code: https://github.com/mybeang/sandbox/blob/main/python_projects/ai_study/step1/step1.py


🧠 질문 & 이해 요약

  • ❓ 벡터화는 왜 필요한가?
    → 문장을 AI가 이해할 수 있는 수치로 바꿔서 비교하기 위해

  • ❓ 모든 문장을 벡터화하면 너무 많지 않나?
    → 맞다. 그래서 문단 단위로 나눠서 관리, 검색 엔진으로 최적화

  • ❓ 그럼 결국 LLM만 쓰면 되는 거 아냐?
    → LLM은 지식을 만들어내는 도구
    → 하지만 최신 지식을 반영하려면 RAG로 문서를 먼저 찾아줘야 함

  • ❓ 최근 데이터 기반 LLM은 이 흐름의 확장인가?
    → 그렇다. 문서를 넘어서 DB, 코드, API까지 LLM이 처리하는 방향으로 발전 중


✅ 느낀 점

  • RAG 구조가 생각보다 단순하고 강력함
  • LLM만으로는 부족한 현실에서, RAG는 실전 구조의 기본
  • 나중에 PDF, 웹, DB로 확장할 때도 이 구조가 그대로 재사용됨
profile
Python Dev with Infra -> Game Programmer

0개의 댓글