LangChain, RAG, Vector DB 관련 개념 정리

Keno Kim·2025년 12월 8일

LangChain

  1. Chain vs. Agent
  • chain: 사전에 정의한 순서대로 동작한다.
  • agent: LLM 이 추론 엔진이 되어 어떤 tool 을 어떤 순서로 사용할 지 스스로 결정한다.
  1. LCEL
  • | 으로 chain 을 구성하는 language
  • Langgraph 의 각 node 가 하나의 LCEL 체인 or Runnable 함수이다.
  1. Prompt Template
  • few-shot 예제 관리, prompt 버전 관리 용도로 쓸수 있다.
  1. Rag 에서 chunking 의 중요성
  • document 를 쪼개는 방식 (character, token, semantic) 에 따라 retrieval 품질이 달라진다. (RAG 는 검색기가 가장 중요)
  1. mmr 이란?
  • 단순히 query 와 관련된 데이터 뿐 아니라, 유사도와 문서 간의 차이 (다양성) 도 결과에 포함한다.
  1. memory 전략?
  • Buffer (all)
  • BufferWindow (최근 K 개)
  • Summary (LLM 으로 이전 대화 요약)
  1. Long context 를 요약할 때 사용하는 사전 정의된 chain type
  • stuff (전부 LLM 에 넣어서 요약)
  • map-reduce (부분을 병렬로 요약 후 합쳐서 다시 요약)
  • map-refine (첫 청크를 요약하고, 그 결과를 다음 청크와 합쳐서 요약)
  1. Langsmith
  • chain 의 어느 단계에서 오래 걸렸는지, 중간 prompt 가 어떻게 구성 되었는지
  1. Hallucination 을 줄이기 위해
  • grounding, RAG 를 통한 사실 기반 context 제공
  1. 평가 프레임워크
  • RAGAS -> RAG 의 품질을 점수화하는 프레임워크
  • LangSmith -> 개발, 테스트, 모니터링, 트레이싱
  • LangFuse -> 운영, 모니터링, 분석, 트레이싱
  1. Structured Output 코드
    1. model 자체 라이브러리에서 지원할 수 있다. (ex. google genai 라이브러리)
    1. LangChain 을 쓰면 pydantic structured output 을 쓸 수 있다.

RAG

  • semantic cache 와 RAG 의 차이점?
    • 다른 개념으로도 볼 수 있는데, 연관성이 높다.
    • 검색을 해서 결과를 바로 반환하면 semantic cache, LLM 에 한번 더 질의하면 RAG 로 볼 수 있다.
    • 시스템에서 비용 최적화를 할 수 있는 중요한 지점이다.

Vector DB

Vector DB (Pinecone, Qdrant, Milvus 등) 에서는 벡터를 어레이 형태로 저장하고, 그 위에 벡터 인덱스를 생성한다.

  • ANN 기반의 벡터 인덱스 알고리즘이 벡터 DB 의 핵심 컨셉이다.
  • 그냥 어레이로만 저장하는 경우, 벡터 검색을 하면 brute force O(N) 으로 매칭해야 한다.

ANN 알고리즘: 모든 벡터와 거리를 계산하지 않고, 일부와만 계산해서 approximate 하게 원하는 결과를 찾는다.

  • IVF: 벡터를 k-means 클러스터로 나누고, 요청과 가장 가까운 몇개의 cluster 만 탐색한다.
  • HNSW: 그래프 구조로 가까운 벡터들을 위치하고 검색한다.

Case Study

BigQuery


추신

  • 정말 재미있는 분야다. 사용하는 기술을 들여다보면 학교에서 배운 머신러닝 이론들이 나온다.
profile
개발자의 생각 로그

0개의 댓글