말씀선집 GraphRAG 연구/임베딩 공부 방향과 실습 계획 문서 원본 보기
←
말씀선집 GraphRAG 연구/임베딩 공부 방향과 실습 계획
둘러보기로 이동
검색으로 이동
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
== 문서 목적 == 이 문서는 말씀선집 GraphRAG 프로젝트에서 임베딩을 공부해야 하는 방향과 실습 방법을 정리한 개인 학습용 문서이다. 목표는 임베딩 모델을 직접 학습시키는 것이 아니라, 말씀선집 RAG에서 어떤 임베딩 모델이 좋은 근거를 잘 찾아오는지 판단할 수 있게 되는 것이다. == 핵심 관점 == 임베딩은 문장이나 문단을 숫자 벡터로 바꾸어 의미적으로 가까운 내용을 찾게 해주는 기술이다. 답변 생성 모델이 "찾아온 근거를 읽고 답을 쓰는 모델"이라면, 임베딩 모델은 "수많은 청크 중 어떤 근거를 찾아올지 결정하는 모델"이다. 말씀선집 RAG에서는 생성 모델보다 먼저 임베딩 검색 품질을 검증해야 한다. 잘못된 근거를 가져오면 아무리 좋은 LLM을 사용해도 답변 품질이 흔들린다. == 공부 방향 == === 1단계: 개념 이해 === 처음에는 수학을 깊게 보지 말고 다음 개념을 먼저 이해한다. * <code>embedding</code>: 문장이나 문단을 숫자 벡터로 바꾸는 것 * <code>vector</code>: 숫자 배열 * <code>dimension</code>: 벡터 길이. 예: 768차원, 1024차원, 1536차원 * <code>cosine similarity</code>: 두 벡터가 얼마나 비슷한지 보는 방식 * <code>chunk</code>: 검색 단위로 잘라놓은 문서 조각 * <code>top-k</code>: 가장 비슷한 결과 몇 개를 가져올지 정하는 값 핵심 이미지는 "문장을 좌표로 바꾸고, 가까운 좌표를 찾는다"이다. === 2단계: RAG에서 임베딩 역할 이해 === RAG 검색 흐름은 다음과 같다. # 사용자가 질문을 입력한다. # 질문을 임베딩 벡터로 변환한다. # DB에 저장된 청크 임베딩들과 비교한다. # 가장 가까운 청크 Top5~Top10을 가져온다. # LLM이 검색된 근거를 읽고 답변을 작성한다. 이 과정에서 임베딩 검색이 틀리면 LLM은 틀린 근거를 바탕으로 답변하게 된다. 따라서 임베딩은 "답변 작성"이 아니라 "근거 선택"의 핵심 기술이다. === 3단계: 좋은 임베딩 평가법 배우기 === 좋은 임베딩 모델은 공개 벤치마크 점수만으로 정하지 않는다. 현 프로젝트에서는 말씀선집 문장, 교리어, 설교체, 한자어, 반복 표현을 잘 처리하는지가 더 중요하다. 평가 방법은 다음 순서로 잡는다. # 질문 30~50개를 준비한다. # 각 질문에 대해 실제로 나와야 할 근거 청크를 사람이 확인한다. # 모델별로 Top10 검색 결과를 비교한다. # Top10 안에 실제 답변 근거가 몇 개 들어오는지 확인한다. # 엉뚱한 근거, 일반어 중심 오검색, 고유 핵심어 누락을 기록한다. 확인할 지표는 다음과 같다. * Top1이 맞는가 * Top5 안에 좋은 근거가 있는가 * Top10이 답변 작성에 충분한가 * 단어가 달라도 의미가 가까운 청크를 찾는가 * 비슷한 표현이지만 다른 주제를 구분하는가 * 한국어 교리 문장과 설교체를 잘 잡는가 === 4단계: pgvector와 연결 === PostgreSQL + pgvector에서는 청크마다 임베딩 벡터를 저장하고, 질문 벡터와 가까운 청크를 SQL로 찾는다. 공부해야 할 항목은 다음과 같다. * <code>vector</code> 컬럼 * 임베딩 차원과 테이블 설계 * cosine distance 또는 inner product 검색 * HNSW 인덱스 * IVFFlat 인덱스 * 검색 결과 Top-k 쿼리 * 키워드 검색과 벡터 검색의 혼합 모델마다 벡터 차원이 다르므로, 전체 임베딩 전에 모델을 먼저 정해야 한다. 차원이 바뀌면 테이블 구조와 인덱스도 달라진다. == 1주 학습 계획 == {| class="wikitable" ! 날짜 !! 주제 !! 목표 |- | 1일차 || 임베딩, 벡터, 코사인 유사도 || 문장을 숫자 좌표로 바꾸어 의미 검색한다는 개념 이해 |- | 2일차 || RAG 검색 흐름 || 질문 임베딩, 청크 임베딩, Top-k 검색 흐름 이해 |- | 3일차 || pgvector 기초 || PostgreSQL에 벡터를 저장하고 검색하는 방식 이해 |- | 4일차 || 한국어 임베딩 모델 후보 || bge-m3, multilingual-e5, Gemini/OpenAI 계열 등 후보 비교 관점 정리 |- | 5일차 || 검색 결과 평가 || 질문 20개로 Top10 검색 결과를 사람이 읽고 평가 |- | 6일차 || 하이브리드 검색 || 키워드 검색, 임베딩 검색, 혼합 검색의 차이 비교 |- | 7일차 || 프로젝트 적용 기준 || 말씀선집 전체 임베딩으로 넘어갈지 판단 기준 정리 |} == 첫 실습 과제 == 처음부터 전체 178,690개 청크를 임베딩하지 않는다. 다음과 같이 작은 표본으로 시작한다. # 청크 1,000개를 표본으로 뽑는다. # 질문 20개를 만든다. # 임베딩 모델 하나로 Top10 검색을 수행한다. # 결과를 사람이 읽고 "답변 근거로 쓸 수 있는가"를 표시한다. # 같은 질문으로 다른 임베딩 모델을 비교한다. # 키워드 검색만 사용한 결과와 임베딩 검색 결과를 비교한다. # 키워드 + 임베딩 혼합 검색 결과가 더 나은지 확인한다. == 모델 비교 기준 == 후보 모델은 다음 관점으로 비교한다. * 한국어 의미 검색 품질 * 교리 용어와 설교체 처리 능력 * 문장 단위와 문단 단위 검색 품질 * 벡터 차원과 저장용량 * 전체 재임베딩 비용 * pgvector 인덱스 크기와 검색 속도 * 키워드 검색과 혼합했을 때의 품질 후보군은 다음과 같이 나눌 수 있다. {| class="wikitable" ! 구분 !! 후보 !! 검토 이유 |- | 로컬/오픈소스 || bge-m3 || 한국어 포함 다국어 검색에 강한 편이며 로컬 테스트가 가능하다. |- | 로컬/오픈소스 || multilingual-e5 계열 || 다국어 의미 검색 비교 후보로 적합하다. |- | API형 || Gemini embedding 계열 || 비용과 품질 균형 후보로 검토할 수 있다. |- | API형 || OpenAI embedding 계열 || 품질 비교 기준선으로 사용할 수 있다. |} == 피해야 할 공부 방향 == 초기에는 다음 주제로 바로 들어가지 않는다. * 트랜스포머 구조 전체 * 어텐션 수식 * 임베딩 모델 직접 학습 * 파인튜닝부터 시작하는 접근 * 전체 데이터 즉시 임베딩 이 주제들은 나중에 필요할 수 있지만, 현재 단계의 목표는 운영 판단이다. 먼저 어떤 모델이 우리 자료에서 좋은 근거를 찾는지 평가할 수 있어야 한다. == 말씀선집 GraphRAG 적용 기준 == 전체 임베딩으로 넘어가기 전 최소 기준은 다음과 같다. * FAQ 질문 30~50개에 대해 Top10 근거 품질을 사람이 확인한다. * 키워드 검색 대비 임베딩 검색이 실제로 보완 효과를 보여야 한다. * 고유 핵심어 누락과 일반어 오검색이 기록되어야 한다. * 모델별 비용, 차원, 재임베딩 부담을 비교한다. * 최종 후보 1개와 백업 후보 1개를 정한다. == 보강이 필요한 학습 지점 == 대화 과정에서 앞으로 보강하면 좋은 지점은 다음과 같다. 이는 부족함을 지적하기 위한 목록이 아니라, 말씀선집 RAG를 직접 판단하고 지휘하기 위해 먼저 잡아야 할 개념 축이다. === 1. 실행 도구, 모델, 하드웨어 용어 구분 === Ollama, llama.cpp, vLLM은 모델을 실행하는 도구 또는 추론 서버에 가깝다. Qwen, Gemma, Llama는 실제 언어 모델이다. VRAM은 모델이 올라가는 GPU 메모리이고, 맥미니 M4는 별도 VRAM이 아니라 통합 메모리를 쓴다. 이 구분이 잡히면 "어떤 모델을 쓸 것인가", "어디에서 돌릴 것인가", "어떤 서버로 제공할 것인가"를 분리해서 결정할 수 있다. === 2. 생성 모델과 임베딩 모델의 역할 분리 === 생성 모델은 검색된 근거를 읽고 답변을 작성한다. 임베딩 모델은 많은 청크 중에서 질문과 의미가 가까운 근거를 찾아온다. 말씀선집 RAG에서는 답변 모델만 좋아도 충분하지 않다. 임베딩 검색이 흔들리면 좋은 LLM도 잘못된 근거를 읽고 답하게 된다. 따라서 "답변 품질"을 보기 전에 "근거 검색 품질"을 먼저 봐야 한다. === 3. 전체 임베딩 전 샘플 평가 습관 === 178,690개 청크 전체를 바로 임베딩하면 모델 변경 비용이 커진다. 먼저 1,000개 또는 10,000개 표본으로 질문 세트를 돌리고, Top10 근거가 실제로 쓸 만한지 사람이 확인해야 한다. 이 습관이 잡히면 비용을 줄이고, 나중에 모델을 바꿀 때도 판단 근거가 남는다. === 4. 키워드 검색과 벡터 검색의 차이 === 키워드 검색은 단어가 들어간 문장을 잘 찾는다. 벡터 검색은 단어가 달라도 의미가 가까운 문장을 찾는 데 유리하다. 말씀선집처럼 교리어, 설교체, 반복 표현, 한자어가 많은 자료는 둘 중 하나만 쓰기보다 혼합 검색이 필요하다. 향후 학습에서는 BM25, PostgreSQL full-text search, pgvector 검색, 하이브리드 랭킹을 함께 이해해야 한다. === 5. reranker와 근거 충분성 평가 === 임베딩 검색은 후보를 넓게 가져오는 역할이고, reranker는 후보 중 어떤 근거가 더 적합한지 다시 정렬하는 역할이다. 종교 질문처럼 근거 충실성이 중요한 영역에서는 Top10을 가져온 뒤 충분한지, 부족한지, 엉뚱한지 평가하는 단계가 필요하다. 이 지점은 [[말씀선집 GraphRAG 연구/FAQ Top10 랭킹 보정 재테스트|FAQ Top10 랭킹 보정 재테스트]]와 직접 연결된다. === 6. 논문과 시스템 구현의 연결 === 논문은 이론 설명으로 끝나면 안 되고, 실제 시스템 결정과 연결되어야 한다. 예를 들어 Microsoft GraphRAG 논문은 전역 질의와 커뮤니티 요약의 근거가 되고, 종교 RAG 논문은 출처 기반 답변과 답변 보류 정책의 근거가 된다. 따라서 임베딩 공부도 "개념 이해"에서 멈추지 말고, 어떤 논문이 어떤 설계 결정을 뒷받침하는지 함께 연결해 보아야 한다. == 관련 연구와 논문 링크 == 나중에 종합적으로 볼 수 있도록 이 문서는 다음 연구 문서와 함께 읽는다. === 프로젝트 내부 문서 === * [[말씀선집 GraphRAG 연구|말씀선집 GraphRAG 연구 상위 문서]] * [[말씀선집 GraphRAG 연구/DB 구축 방향|DB 구축 방향]] * [[말씀선집 GraphRAG 연구/DB 구조 설계와 테스트 결과|DB 구조 설계와 테스트 결과]] * [[말씀선집 GraphRAG 연구/문장 경계 보정 전략과 결과|문장 경계 보정 전략과 결과]] * [[말씀선집 GraphRAG 연구/FAQ Top10 랭킹 보정 재테스트|FAQ Top10 랭킹 보정 재테스트]] * [[말씀선집 GraphRAG 연구/완료 작업 목록과 산출물 보존 계획|완료 작업 목록과 산출물 보존 계획]] * [[AI 친화형 교리 FAQ|AI 친화형 교리 FAQ]] === RAG·GraphRAG 관련 논문 문서 === * [[말씀선집 GraphRAG 연구/논문 02 - From Local to Global: A Graph RAG Approach to Query-Focused Summarization|논문 02 - Microsoft GraphRAG 기본 방법론]] * [[말씀선집 GraphRAG 연구/논문 03 - Improving LLM Reliability with RAG in Religious Question-Answering: MufassirQAS|논문 03 - 종교 질의응답 RAG와 출처 기반 답변]] * [[말씀선집 GraphRAG 연구/논문 04 - FARSIQA: Faithful and Advanced RAG System for Islamic Question Answering|논문 04 - 반복 검색과 근거 충분성 평가]] * [[말씀선집 GraphRAG 연구/논문 09 - Retrieval-Augmented Generation with Graphs: A Survey|논문 09 - GraphRAG 구성요소 서베이]] * [[말씀선집 GraphRAG 연구/논문 10 - 한국어 Hybrid RAG 기반 질의응답 시스템 구축에 관한 연구|논문 10 - 한국어 Hybrid RAG 적용]] === 종합 검토할 때의 질문 === * 임베딩 모델 선택이 논문 방법론에서 어떤 위치를 차지하는가? * 키워드 검색, 벡터 검색, GraphRAG 검색은 각각 어떤 질문 유형에 강한가? * 종교 문헌 RAG에서 답변 보류와 근거 충분성 평가는 어떻게 설계해야 하는가? * 한국어 말씀선집 자료에서는 어떤 평가셋을 만들어야 논문 실험으로 인정받을 수 있는가? * 로컬 LLM, 외부 DB, pgvector, 위키 산출물을 어떻게 하나의 연구 파이프라인으로 설명할 것인가? == 현재 판단 == 말씀선집 RAG에서는 임베딩을 "답을 쓰는 기술"이 아니라 "근거를 고르는 기술"로 이해하는 것이 중요하다. 따라서 공부의 목표도 모델 구조 이해보다 검색 품질 평가와 운영 기준 수립에 둔다. [[분류:말씀선집 GraphRAG 연구]] [[분류:GraphRAG]] [[분류:RAG]] [[분류:임베딩]] [[분류:동우공부]]
말씀선집 GraphRAG 연구/임베딩 공부 방향과 실습 계획
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
한국어
보기
읽기
원본 보기
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의 문서로
미디어위키 도움말
특수 문서 목록
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보