개요
BM25 BM25 RAG(검색 강화 생성)는 정보 검색을 위한 BM25(베스트 매칭 25) 알고리즘과 텍스트 생성을 위한 대규모 언어 모델을 결합한 고급 기술입니다. 이 방법은 검증된 확률적 검색 모델을 사용하여 생성된 응답의 정확도와 관련성을 향상시킵니다.
BM25 RAG 워크플로우

빠른 시작
노트북
이 코드 베이스에 제공된 Jupyter 노트북을 실행하여 BM25 RAG를 자세히 살펴볼 수 있습니다. https://github.com/adithya-s-k/AI-Engineering.academy/tree/main/RAG/01_BM25_RAG
채팅 애플리케이션
- 종속성을 설치합니다:
pip install -r requirements.txt
- 애플리케이션을 실행합니다:
python app.py
- 동적 데이터 수집:
python app.py --ingest --data_dir /path/to/documents
서버(컴퓨터)
서버를 실행합니다:
python server.py
서버에는 두 개의 엔드포인트가 있습니다:
/api/ingest
새 문서 수집용/api/query
문의용 BM25 RAG 시스템
BM25 RAG의 주요 기능
- 확률적 검색BM25는 확률 모델을 사용해 문서 순위를 매기므로 이론적으로 타당한 검색 기반을 제공합니다.
- 단어 빈도 포화도:: BM25는 중복 용어의 한계 수익률 감소를 고려하여 검색 품질을 개선합니다.
- 문서 길이 정규화이 알고리즘은 문서 길이를 고려하여 긴 문서에 대한 편향을 줄입니다.
- 문맥 관련성검색된 정보를 기반으로 응답을 생성함으로써 BM25 RAG는 보다 정확하고 관련성 높은 답변을 제공합니다.
- 확장성BM25 검색 단계는 대용량 문서 세트를 효율적으로 처리합니다.
BM25 RAG의 장점
- 정확도 향상: 확률적 검색과 신경망 텍스트 생성의 장점을 결합합니다.
- 해석 가능성BM25의 채점 메커니즘은 고밀도 벡터 검색 방법보다 해석이 더 쉽습니다.
- 롱테일 쿼리 처리하기특정 정보나 희귀한 정보가 필요한 쿼리에 탁월합니다.
- 임베딩 필요 없음벡터 기반 RAG와 달리 BM25는 문서 임베딩이 필요하지 않아 계산 오버헤드가 줄어듭니다.
사전 조건
- Python 3.7+
- 주피터 노트북 또는 주피터랩(노트북 실행용)
- 필수 파이썬 패키지(
requirements.txt
) - 선택한 언어 모델에 대한 API 키(예: OpenAI API 키)
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...