-
[논문리뷰] Context-augmented Retrieval: A Novel Framework for FastInformation Retrieval based Response Generation using LargeLanguage Model(2024)카테고리 없음 2024. 7. 2. 23:35
1. Abstract
- RAG는 LLM에 전달되는 프롬프트에 포함된 문맥 정보를 제공하여 답변을 생성하게 함
- 문맥 정보 코퍼스가 커질수록 답변/추론 품질이 저하됨
- 본 연구는 벡터 저장소에서 빠른 정보 검색을 가능하게 하고 검색된 정보의 연관성을 보장하기 위한 새로운 방법을 제시
- 고전적 텍스트 분류와 LLM을 결합하여 이 문제를 해결하는 문맥 증강 검색(Context Augmented Retrieval, CAR)을 제안
- CAR은 코퍼스로 유입되는 정보를 실시간으로 분류하여 벡터 데이터베이스를 분할함
- CAR은 정보 검색 및 답변 생성 시간을 크게 단축하는 동시에 양질의 답변 생성이 가능
2. Introduction
- LLM의 환각, 지식 노후화, 도메인 전문성 부족 문데 해결을 위해 RAG가 많이 사용됨
- RAG는 검색 메커니즘을 사용하여 입력 쿼리를 기반으로 대규모 데이터베이스에서 관련 문서나 구절을 가져옴
- 이후 생성 모델은 이러한 문서를 가져와 문맥에 적합한 응답을 생성
- 그러나 RAG는 대규모 데이터 세트에서 어려움을 겪고 정보를 검색하는 데 필요한 시간이 늘어 날 수 있음
- 이러한 한계를 극복하기 위해 Agentic RAG 또는 Keyword-augmented generation(KAR) and Cos-mix 등이 연구됨
1) Agentic RAG
- 검색된 각 청크의 요약을 생성하고 LLM으로 검색된 청크 요약과 사용자 쿼리의 관련성을 검증
- 재귀적이고 시간이 많이 소요됨
2) Keyword-augmented generation(KAR)
- 키워드를 사용하여 정보 검색을 강화, 도메인별 지식으로 시스템을 업데이트하는 작업을 간소화
3) Cos-mix
- 효율적인 검색을 위해 하이브리드 코사인 유사도 및 다양한 거리 기반 접근 방식을 적용
- 본 연구에서는 상기 방법 대신 전통적 텍스트 분류기법을 적용
- 기존 RAG 워크플로우에 쿼리 분류기를 도입
- 사용자 쿼리를 분류하여 관련 도메인을 식별하고, 분류된 도메인에서 정보 검색 및 답변을 생성
- 모든 카테고리에 대해 하나의 지식 도메인을 사용하는 대신, 각 카테고리에 대해 개별 지식 도메인을 사용하고 도메인을 식별하는 쿼리 분류기를 사용하여 검색 시간 단축 및 응답 품질을 향상 시킴
3. CAR(Context Augmentec Retrieval)
3.1 Wofkflow
- CAR은 아래의 절차대로 분류기를 사용하여 가장 관련성이 높은 정보를 검색하고 이를 LLM으로 전달
①User Query: 쿼리를 분류기 모델에 전달
②Query-Index Classfication Model: 분류 모델을 사용하여 쿼리를 적절한 도메인/카테고리로 분류
③Index Loader: 사용자의 쿼리에 해당하는 관련 정보를 검색하기 위해 도메인별 레이블이 지정된 인덱스 로드
④Hybrid Retriever: BM25 Retriever와 Vector Retriver를 함께 적용하여 쿼리와 관련된 컨텍스트를 검색
⑤Query Engine: 검색된 컨텍스트는 쿼리와 함께 일관된 답변을 생성하기 위해 LLM에 제공
3.2 Index Genertion and Classification
- Documents segregation: 문서를 분류해야하는 도메인을 기준으로 문서를 분류한 다음 레이블 지정
- Directory loader: 각 도메인의 문서는 확장자(예: PDF, CSV 등)에 관계없이 각 디렉토리에서 별도로 로드
- Ingestion pipeline: 파이프라인은 필요한 문서를 로드하고 다음의 작업을 수행
*Entity Extraction: 이름, 날짜 등 고유 키워드를 추출. LlamaIndex의 EntityExtractor로 실행
*Node Parser: 문서/단락을 청크로 나눔- Index Generation: 청크 임베딩(OpenAI embedding-ada-002 사용)
- VectorStore : 임베딩 데이터 벡터DB에 저장
3.3 Classification Architecture
- 사용자가 입력한 쿼리는 분류기를 사용하여 카테고리/도메인별로 생성된 인덱스로 분류
①Query Classification: 사용 가능한 도메인으로 쿼리를 분류
- Logistic Regression, Multinominal Naive Bayes, Gaussian Naive Bayes, Linear SVC, DistilBERT 등 사용
②Context Retrieval: 쿼리가 분류되면 분류된 쿼리에 대해 레이블이 지정된 인덱스를 사용하여 프롬프트에 포함된 컨텍스트를 LLM에 전달하여 답변을 생성
4. Evaluation
4.1 데이터셋
- 물리학, 화학, 나노 과학 영역의 각 60개 문항으로 구성된 라벨링된 문제 영역 데이터 세트에서 분류기 성능 평가4.2 결과
- 기존의 머신러닝기반 모델들이 DistilBERT보다 쿼리 분류 성능이 뛰어남- 레이블이 지정된 도메인 인덱스와 쿼리 분류기를 적용하면 검색 시간이 ∼50% 이상 단축됨
- CAR은 기존 RAG 대비 답변 품질도 우수함
5. Conclusion
- LLM에서 답변을 생성하기 위한 컨텍스트를 검색하는 CAR을 제안
- 쿼리 분류 기반 컨텍스트 검색과 LLM 추론을 통합하여 응답의 관련성을 개선하고 응답 시간을 단축
- 쿼리 분류기는 Fine-tuned BERT 보다 전통적인 머신 러닝 모델을 사용하는 것이 더 적합
- 컨텍스트 증강 검색은 답변 품질에 영향을 주지 않으면서 효과적으로 검색 시간(∼ 50%)과 응답 시간(∼ 7%)을 단축시킴
# 참고한 자료