말씀선집 GraphRAG 연구/임베딩 공부 방향과 실습 계획

현 아카이브
(토론 | 기여)님의 2026년 7월 4일 (토) 11:10 판 (임베딩 공부 방향과 실습 계획 문서화)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 이동 검색으로 이동

문서 목적

이 문서는 말씀선집 GraphRAG 프로젝트에서 임베딩을 공부해야 하는 방향과 실습 방법을 정리한 개인 학습용 문서이다. 목표는 임베딩 모델을 직접 학습시키는 것이 아니라, 말씀선집 RAG에서 어떤 임베딩 모델이 좋은 근거를 잘 찾아오는지 판단할 수 있게 되는 것이다.

핵심 관점

임베딩은 문장이나 문단을 숫자 벡터로 바꾸어 의미적으로 가까운 내용을 찾게 해주는 기술이다. 답변 생성 모델이 "찾아온 근거를 읽고 답을 쓰는 모델"이라면, 임베딩 모델은 "수많은 청크 중 어떤 근거를 찾아올지 결정하는 모델"이다.

말씀선집 RAG에서는 생성 모델보다 먼저 임베딩 검색 품질을 검증해야 한다. 잘못된 근거를 가져오면 아무리 좋은 LLM을 사용해도 답변 품질이 흔들린다.

공부 방향

1단계: 개념 이해

처음에는 수학을 깊게 보지 말고 다음 개념을 먼저 이해한다.

  • embedding: 문장이나 문단을 숫자 벡터로 바꾸는 것
  • vector: 숫자 배열
  • dimension: 벡터 길이. 예: 768차원, 1024차원, 1536차원
  • cosine similarity: 두 벡터가 얼마나 비슷한지 보는 방식
  • chunk: 검색 단위로 잘라놓은 문서 조각
  • top-k: 가장 비슷한 결과 몇 개를 가져올지 정하는 값

핵심 이미지는 "문장을 좌표로 바꾸고, 가까운 좌표를 찾는다"이다.

2단계: RAG에서 임베딩 역할 이해

RAG 검색 흐름은 다음과 같다.

  1. 사용자가 질문을 입력한다.
  2. 질문을 임베딩 벡터로 변환한다.
  3. DB에 저장된 청크 임베딩들과 비교한다.
  4. 가장 가까운 청크 Top5~Top10을 가져온다.
  5. LLM이 검색된 근거를 읽고 답변을 작성한다.

이 과정에서 임베딩 검색이 틀리면 LLM은 틀린 근거를 바탕으로 답변하게 된다. 따라서 임베딩은 "답변 작성"이 아니라 "근거 선택"의 핵심 기술이다.

3단계: 좋은 임베딩 평가법 배우기

좋은 임베딩 모델은 공개 벤치마크 점수만으로 정하지 않는다. 현 프로젝트에서는 말씀선집 문장, 교리어, 설교체, 한자어, 반복 표현을 잘 처리하는지가 더 중요하다.

평가 방법은 다음 순서로 잡는다.

  1. 질문 30~50개를 준비한다.
  2. 각 질문에 대해 실제로 나와야 할 근거 청크를 사람이 확인한다.
  3. 모델별로 Top10 검색 결과를 비교한다.
  4. Top10 안에 실제 답변 근거가 몇 개 들어오는지 확인한다.
  5. 엉뚱한 근거, 일반어 중심 오검색, 고유 핵심어 누락을 기록한다.

확인할 지표는 다음과 같다.

  • Top1이 맞는가
  • Top5 안에 좋은 근거가 있는가
  • Top10이 답변 작성에 충분한가
  • 단어가 달라도 의미가 가까운 청크를 찾는가
  • 비슷한 표현이지만 다른 주제를 구분하는가
  • 한국어 교리 문장과 설교체를 잘 잡는가

4단계: pgvector와 연결

PostgreSQL + pgvector에서는 청크마다 임베딩 벡터를 저장하고, 질문 벡터와 가까운 청크를 SQL로 찾는다.

공부해야 할 항목은 다음과 같다.

  • vector 컬럼
  • 임베딩 차원과 테이블 설계
  • cosine distance 또는 inner product 검색
  • HNSW 인덱스
  • IVFFlat 인덱스
  • 검색 결과 Top-k 쿼리
  • 키워드 검색과 벡터 검색의 혼합

모델마다 벡터 차원이 다르므로, 전체 임베딩 전에 모델을 먼저 정해야 한다. 차원이 바뀌면 테이블 구조와 인덱스도 달라진다.

1주 학습 계획

날짜 주제 목표
1일차 임베딩, 벡터, 코사인 유사도 문장을 숫자 좌표로 바꾸어 의미 검색한다는 개념 이해
2일차 RAG 검색 흐름 질문 임베딩, 청크 임베딩, Top-k 검색 흐름 이해
3일차 pgvector 기초 PostgreSQL에 벡터를 저장하고 검색하는 방식 이해
4일차 한국어 임베딩 모델 후보 bge-m3, multilingual-e5, Gemini/OpenAI 계열 등 후보 비교 관점 정리
5일차 검색 결과 평가 질문 20개로 Top10 검색 결과를 사람이 읽고 평가
6일차 하이브리드 검색 키워드 검색, 임베딩 검색, 혼합 검색의 차이 비교
7일차 프로젝트 적용 기준 말씀선집 전체 임베딩으로 넘어갈지 판단 기준 정리

첫 실습 과제

처음부터 전체 178,690개 청크를 임베딩하지 않는다. 다음과 같이 작은 표본으로 시작한다.

  1. 청크 1,000개를 표본으로 뽑는다.
  2. 질문 20개를 만든다.
  3. 임베딩 모델 하나로 Top10 검색을 수행한다.
  4. 결과를 사람이 읽고 "답변 근거로 쓸 수 있는가"를 표시한다.
  5. 같은 질문으로 다른 임베딩 모델을 비교한다.
  6. 키워드 검색만 사용한 결과와 임베딩 검색 결과를 비교한다.
  7. 키워드 + 임베딩 혼합 검색 결과가 더 나은지 확인한다.

모델 비교 기준

후보 모델은 다음 관점으로 비교한다.

  • 한국어 의미 검색 품질
  • 교리 용어와 설교체 처리 능력
  • 문장 단위와 문단 단위 검색 품질
  • 벡터 차원과 저장용량
  • 전체 재임베딩 비용
  • pgvector 인덱스 크기와 검색 속도
  • 키워드 검색과 혼합했을 때의 품질

후보군은 다음과 같이 나눌 수 있다.

구분 후보 검토 이유
로컬/오픈소스 bge-m3 한국어 포함 다국어 검색에 강한 편이며 로컬 테스트가 가능하다.
로컬/오픈소스 multilingual-e5 계열 다국어 의미 검색 비교 후보로 적합하다.
API형 Gemini embedding 계열 비용과 품질 균형 후보로 검토할 수 있다.
API형 OpenAI embedding 계열 품질 비교 기준선으로 사용할 수 있다.

피해야 할 공부 방향

초기에는 다음 주제로 바로 들어가지 않는다.

  • 트랜스포머 구조 전체
  • 어텐션 수식
  • 임베딩 모델 직접 학습
  • 파인튜닝부터 시작하는 접근
  • 전체 데이터 즉시 임베딩

이 주제들은 나중에 필요할 수 있지만, 현재 단계의 목표는 운영 판단이다. 먼저 어떤 모델이 우리 자료에서 좋은 근거를 찾는지 평가할 수 있어야 한다.

말씀선집 GraphRAG 적용 기준

전체 임베딩으로 넘어가기 전 최소 기준은 다음과 같다.

  • FAQ 질문 30~50개에 대해 Top10 근거 품질을 사람이 확인한다.
  • 키워드 검색 대비 임베딩 검색이 실제로 보완 효과를 보여야 한다.
  • 고유 핵심어 누락과 일반어 오검색이 기록되어야 한다.
  • 모델별 비용, 차원, 재임베딩 부담을 비교한다.
  • 최종 후보 1개와 백업 후보 1개를 정한다.

현재 판단

말씀선집 RAG에서는 임베딩을 "답을 쓰는 기술"이 아니라 "근거를 고르는 기술"로 이해하는 것이 중요하다. 따라서 공부의 목표도 모델 구조 이해보다 검색 품질 평가와 운영 기준 수립에 둔다.