Skip to content

Commit

Permalink
2025-01-03 TIL 문서 복사
Browse files Browse the repository at this point in the history
  • Loading branch information
rlaisqls authored and github-actions[bot] committed Jan 3, 2025
1 parent 444300d commit 242ffc7
Showing 1 changed file with 48 additions and 6 deletions.
54 changes: 48 additions & 6 deletions src/content/docs/TIL/개발/AI/RAG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,63 @@ lastUpdated: 2024-11-07T09:32:38
---
RAG(Retrieval-Augmented Generation)는 대규모 언어 모델의 출력을 최적화하여 응답을 생성하기 전에 학습 데이터 소스 외부의 신뢰할 수 있는 지식 베이스를 참조하도록 하는 절차이다.

RAG를 이용해서 높은 품질의 응답을 얻기 위해서는 아래와 같은 고려 사항이 있다.
---

### Advanced RAG

단순히 문서를 조회 -> LLM 응답을 하는 Naive한 기본 RAG에서, 아래 방법들을 적용해 답변 품질을 개선할 수 있다.

메타데이터 활용

- 데이터에 대한 추가적인 정보를 제공하여 검색 결과의 정확도를 높인다.

고도화된 Chunking 전략

- semantic chunking: 문맥적으로 관련된 내용을 하나의 청크로 묶는다.
- small to big: RAG에서 Chunk 를 retrieval 할때, 그 Chunk의 위와 아랫부분을 확장해서 같이 리턴하는 방법으로, 더 상세한 컨택스트를 리턴할 수 있다.
- sentence window: 문장 단위로 청크를 나누는 방식으로, 문장 간의 유사성을 분석하여 관련 있는 문장들을 한데 모아 청킹한다.

Hybrid Search

- 키워드 검색과 벡터 검색을 병행한다.

Pre-Retrieval

- Query Rewrite: 사용자의 자연어 쿼리를 데이터베이스 검색에 적합한 형태로 변환한다.
- Query Expansion: 입력된 쿼리에 관련된 추가 키워드를 더해 검색 결과를 풍부하게 만든다. 이를 통해 사용자가 입력하지 않은 연관된 정보를 함께 검색할 수 있다.
- Query Transformation: 특정 문맥이나 패턴을 기반으로 쿼리 자체를 변환하여 검색 성능을 향상시킨다.

Post-Retrieval

- Reranker: 검색된 결과와 쿼리의 연관성을 다시 판단하여, 더 정확한 결과가 우선으로 제공되도록 한다.
- Reorder: 추가적인 평가를 통해 검색 결과의 순서를 재배치한다.

### Modular RAG

검색 소스, 시나리오 다양화

- 특정 시나리오에 맞춘 맞춤형 검색
- 외부 검색 엔진, 텍스트/테이블 데이터, 지식 그래프 등 다양한 데이터 소스 활용

메모리 모듈

- 데이터 품질: 신뢰 할 수 있으며 잘 정리된 데이터가 필요하다. 기업에서 사용 할 경우 신뢰 할 수 있는 데이터는 찾을 수 있을 것이다. 문제는 데이터가 JSON, 일반 텍스트, PDF, 이미지 등 다양한 형태로 저장되어 있다는 점이다. 전처리를 통해서 데이터 품질을 높이는 작업이 필요하다.
- LLM 자체 메모리 기능 활용해 현재 입력과 가장 유사한 기억을 찾아 개선

- 검색엔진 최적화: RAG의 R은 Retrieval 이다. 적절한 인덱싱 방법 및 검색 전략을 사용해서 관련 문서를 효과적으로 가져올 수 있어야 한다.
추가 생성 모듈

- 문서 선택 최적화: RAG는 검색을 기반으로 하기 때문에 관련성이 있는 여러 문서가 리턴된다. 이 중에서 가장 관련성이 높은 정보를 RAG에 전달해야 한다.
- 검색된 내용의 중복/잡음 문제 대응
- LLM이 검색용 문서를 별도 생성

- 질문 전처리: 질문을 명확하고 구체적으로 정제하여 검색 품질을 향상 시킬 수 있다.
검증 모듈

- 결과 통합: 검색 문서에서 얻은 정보를 적절하게 통합하여 자연스러운 답변을 생성해야 한다.
- 검색 정보의 신뢰성 평가
- 문서와 질의 간 관련성 검증

---
참고

- <https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://aws.amazon.com/ko/what-is/retrieval-augmented-generation/&ved=2ahUKEwizx6nJnKmJAxXjslYBHag0BRYQFnoECBMQAQ&usg=AOvVaw2Bqe12ux-trf1WzMUKTCVW>
- <https://modulabs.co.kr/blog/retrieval-augmented-generation/>
- <https://towardsdatascience.com/advanced-rag-01-small-to-big-retrieval-172181b396d4>
- <https://discuss.pytorch.kr/t/rag-1-2/3135>
- Langchain LAG

0 comments on commit 242ffc7

Please sign in to comment.