말씀선집 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에서는 임베딩을 "답을 쓰는 기술"이 아니라 "근거를 고르는 기술"로 이해하는 것이 중요하다. 따라서 공부의 목표도 모델 구조 이해보다 검색 품질 평가와 운영 기준 수립에 둔다. [[분류:말씀선집 GraphRAG 연구]] [[분류:GraphRAG]] [[분류:RAG]] [[분류:임베딩]] [[분류:동우공부]]
말씀선집 GraphRAG 연구/임베딩 공부 방향과 실습 계획
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
한국어
보기
읽기
원본 보기
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의 문서로
미디어위키 도움말
특수 문서 목록
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보