✈️ RAG 구현 및 학습
작업 설명
LLM이 질문에 바로 답하는 방식과 달리, RAG는 외부 문서나 데이터를 먼저 검색한 뒤 그 내용을 근거로 답변을 생성.
이 과제의 목적은 RAG의 기본 흐름을 이해하고, 간단한 문서 및 이미지 기반 질의응답 시스템을 구현
RAG 개념 학습
필요한 라이브러리 정리 및 예시 코드 정리
생각한 이미지 임베딩이 제대로 동작하는지 확인
상세 작업
- [ ] RAG 학습 및 질문 정리
기본 개념
- RAG가 무엇인지
- Fine-tuning과 RAG의 차이
- “검색”과 “생성”이 각각 어떤 역할을 하는지
문서 처리
- 문서를 작은 조각으로 나누는 방법
- chunk size
- chunk overlap
- 문서 메타데이터
임베딩
- 텍스트를 벡터로 바꾸는 이유
- 의미적으로 비슷한 문장이 가까운 벡터가 되는 원리
- embedding model의 역할
벡터 검색
- vector database
- cosine similarity
- top-k 검색
- FAISS, Chroma, Pinecone 같은 도구의 역할
프롬프트 구성
- 검색된 문서를 context로 넣는 방식
- “문서에 있는 내용만 답하라”는 제약
- 출처 표시
답변 품질 개선
- 잘못된 문서가 검색되는 문제
- chunk가 너무 크거나 작은 문제
- reranking
- query rewriting
실전 구현
- PDF나 TXT 문서 읽기
- 문서 chunking
- embedding 생성
- vector DB 저장
- 질문 시 유사 문서 검색
- LLM 답변 생성
- [ ] 문서 데이터 준비
RAG가 참고할 텍스트 문서 및 이미지 준비
문서를 작은 단위로 나누는 chunking 개념 학습
- Chunk의 의미
- Chunk size
- Chunk overlap
- 나누는 기준
- Metadata
- 좋은 chunking인지 확인하는 방법
- 문서 조각이 검색 대상이 되는 방식 이해
- [ ] 검색 과정 구현
사용자 질문을 입력받음
질문과 관련 있는 문서 조각을 찾음
관련도가 높은 문서를 선택함
- [ ] 답변 생성 과정 이해
검색된 문서를 context로 사용
LLM이 context를 참고해서 답변 생성
문서에 없는 내용은 답하지 않도록 제한하는 방식 학습
- [ ] 결과 확인
질문을 입력했을 때 관련 문서가 잘 검색되는지 확인
답변이 검색된 문서에 근거하는지 확인
검색 결과가 잘못되면 답변 품질도 떨어지는지 관찰
- [ ] 이미지 기반 임베딩
위의 기반 학습 모두 처리
이미지 기반 벡터 처리
이미지 임베딩 방식 테스트
작업 설명
LLM이 질문에 바로 답하는 방식과 달리, RAG는 외부 문서나 데이터를 먼저 검색한 뒤 그 내용을 근거로 답변을 생성.
이 과제의 목적은 RAG의 기본 흐름을 이해하고, 간단한 문서 및 이미지 기반 질의응답 시스템을 구현
RAG 개념 학습
필요한 라이브러리 정리 및 예시 코드 정리
생각한 이미지 임베딩이 제대로 동작하는지 확인
상세 작업
- [ ] RAG 학습 및 질문 정리
기본 개념
문서 처리
임베딩
벡터 검색
프롬프트 구성
답변 품질 개선
실전 구현
- [ ] 문서 데이터 준비
RAG가 참고할 텍스트 문서 및 이미지 준비
문서를 작은 단위로 나누는 chunking 개념 학습
- [ ] 검색 과정 구현
사용자 질문을 입력받음
질문과 관련 있는 문서 조각을 찾음
관련도가 높은 문서를 선택함
- [ ] 답변 생성 과정 이해
검색된 문서를 context로 사용
LLM이 context를 참고해서 답변 생성
문서에 없는 내용은 답하지 않도록 제한하는 방식 학습
- [ ] 결과 확인
질문을 입력했을 때 관련 문서가 잘 검색되는지 확인
답변이 검색된 문서에 근거하는지 확인
검색 결과가 잘못되면 답변 품질도 떨어지는지 관찰
- [ ] 이미지 기반 임베딩
위의 기반 학습 모두 처리
이미지 기반 벡터 처리
이미지 임베딩 방식 테스트