요즘 트렌드에서 자주 같이 등장하는 RAG, 임베딩, 온톨로지를 엔지니어 관점에서 정리해봄

비유로 감을 잡고, 실제 동작에서 어떤 구성요소가 하는 일을 분리해서 보면 이해가 빠름


임베딩 Embedding. 텍스트를 고차원 벡터로 변환

임베딩은 텍스트 같은 비정형 데이터를 컴퓨터가 계산 가능한 수치형 벡터로 매핑하는 기술임

  • 기본 개념은 단어뿐 아니라 문장, 문서, 이미지 같은 다양한 입력을 공통의 의미 공간 semantic space에 배치하는 표현 방식임
  • 흔히 23차원 예시로 설명하지만, 실제 임베딩 차원 수는 모델마다 다르고 수백수천 차원을 쓰는 경우가 많음. 다만 성능이 차원 수만으로 결정되진 않음
  • 유사도 계산은 단순히 숫자 비슷함을 보는 수준을 넘어, 벡터 간 각도를 기준으로 코사인 유사도 Cosine Similarity 같은 지표를 사용해 의미적 거리를 계산함

간단히 말하면 임베딩은 의미를 담아 숫자로 옮기는 도구임


RAG 검색 증강 생성과 Vector DB. 찾고 근거를 붙이는 흐름

RAG는 LLM이 학습한 데이터만 쓰지 않고 외부 데이터베이스에서 실시간으로 정보를 찾아와 답변을 생성하는 프레임워크임

RAG에서 검색 단계는 벡터 검색이 대표적이지만, 실제 서비스에서는 키워드 검색이나 하이브리드 검색을 함께 쓰는 경우도 많음

핵심 인프라는 Vector DB임. 임베딩 벡터는 그냥 저장만 하는 게 아니라 Vector DB에 체계적으로 저장되고 인덱싱됨

일반적인 프로세스는 아래 순서로 정리할 수 있음

  1. 저장. 문서 조각들을 임베딩해서 Vector DB에 미리 인덱싱함
  2. 쿼리 변환. 사용자 질문을 실시간으로 임베딩해서 Vector DB 검색에 사용함
  3. 검색 Retrieval. 질문 벡터를 Vector DB에 넣고 코사인 유사도 기준으로 Top-K 문서 조각을 찾음
    • 일부 시스템은 검색 결과를 reranker 모델로 재정렬한 뒤 LLM에 전달하기도 함
  4. 생성 Generation. 찾아낸 원문을 LLM에 전달하고 이 내용을 근거로 답변하라고 명령함

정리하면 임베딩은 번역, 실제 검색 행위는 Vector DB가 담당하는 구조임

예시로 복지 챗봇을 생각하면, 사용자가 질문하면 질문을 임베딩해서 Vector DB에서 관련 문단을 찾아오고, LLM은 찾아온 문구를 근거로 답변하는 형태가 됨


온톨로지 Ontology. 개념과 관계를 명시적으로 설계한 지식 모델

온톨로지는 지식의 대상들을 정의하고 그들 사이의 논리적 관계를 명시적으로 설계한 지식 모델임

온톨로지는 개념과 관계를 정의하는 형식적 지식 모델이고, 실제 추론은 지식 그래프 및 별도의 추론 엔진과 함께 수행되는 경우가 많음

표현 방식은 보통 RDF/OWL 같은 시맨틱 웹 표준을 많이 사용함

  • 명시적 논리라는 게 포인트임. LLM이 확률적으로 다음 단어를 예측하는 쪽이라면, 온톨로지는 Symbolic AI처럼 명시적 논리를 제공함
  • 추론 엔진 Reasoner는 지식 그래프 Knowledge Graph 안에서 Is-a 같은 규칙, Has-a 같은 규칙을 바탕으로 논리적 결론을 도출함
  • 최근에는 벡터 기반 RAG의 한계를 보완하려고 지식 그래프를 결합한 GraphRAG 계열 접근도 주목받고 있음

의료 예시로 보면, 타이레놀과 해열제 사이의 관계, 해열제가 발열을 Treats 한다 같은 온톨로지 관계를 두면 사용자가 열나는데 뭐 먹어라고 물었을 때 온톨로지 기반으로 후보를 논리적으로 필터링하는 식으로 동작할 수 있음


한 줄로 연결하면. 좌표계, 지도 검색, 길찾기, 도로 규칙

  • 임베딩은 텍스트를 고차원 벡터 공간에 찍는 좌표계임
  • Vector DB는 벡터 공간에서 유사한 데이터를 빠르게 찾는 검색 엔진임
  • RAG는 질문을 현재 위치로 보고, 지도에서 근거를 찾아 목적지까지 가는 길찾기 시스템처럼 답변을 생성함
  • 온톨로지는 데이터 사이의 엄격한 약속, 즉 도로 규칙임. 규칙이 없으면 논리적 오류가 생길 수 있고, 규칙이 있으면 오류를 줄이면서 더 정확한 경로로 안내하는 데 도움이 될 수 있음