RAG 애플리케이션 품질 개선
이 문서에서는 각 구성 요소를 구체화하여 RAG(검색 보강 세대) 애플리케이션의 품질을 높이는 방법에 대한 개요를 제공합니다.
오프라인 데이터 파이프라인과 온라인 RAG 체인의 모든 지점에서 조정하는 무수한 "노브"가 있습니다. 수많은 다른 사용자가 있지만 이 문서에서는 RAG 애플리케이션의 품질에 가장 큰 영향을 주는 가장 중요한 노브에 중점을 둡니다. Databricks는 이러한 노브로 시작하는 것이 좋습니다.
두 가지 유형의 품질 고려 사항
개념적 관점에서 다음 두 가지 주요 유형의 품질 문제의 렌즈를 통해 RAG 품질 노브를 보는 것이 유용합니다.
검색 품질: 지정된 검색 쿼리에 대한 가장 관련성이 큰 정보를 검색하고 있나요?
LLM에 제공된 컨텍스트에 중요한 정보가 없거나 불필요한 정보가 포함된 경우 고품질 RAG 출력을 생성하기가 어렵습니다.
생성 품질: 검색된 정보와 원래 사용자 쿼리를 감안할 때 LLM이 가장 정확하고 일관되며 유용한 응답을 생성하고 있나요?
여기서 문제는 환각, 일관되지 않은 출력 또는 사용자 쿼리를 직접 처리하지 못하는 것으로 나타날 수 있습니다.
RAG 앱에는 품질 문제를 해결하기 위해 반복할 수 있는 두 가지 구성 요소인 데이터 파이프라인과 체인이 있습니다. 검색 문제(단순히 데이터 파이프라인 업데이트)와 생성 문제(RAG 체인 업데이트) 간에 정리된 구분을 가정하려고 합니다. 그러나 현실은 더 미묘합니다. 검색 품질은 데이터 파이프라인(예: 구문 분석/청크 분할 전략, 메타데이터 전략, 포함 모델) 및 RAG 체인(예: 사용자 쿼리 변환, 검색된 청크 수, 순위 다시 매기기)의 영향을 받을 수 있습니다. 마찬가지로, 생성 품질은 항상 잘못된 검색(예: 모델 출력에 영향을 주는 관련이 없거나 누락된 정보)의 영향을 받습니다.
이 중첩은 RAG 품질 개선에 대한 전체적인 접근 방식의 필요성을 강조합니다. 데이터 파이프라인과 RAG 체인에서 변경할 구성 요소와 이러한 변경 내용이 전체 솔루션에 미치는 영향을 이해하면 대상 업데이트를 통해 RAG 출력 품질을 향상시킬 수 있습니다.
데이터 파이프라인 품질 고려 사항
데이터 파이프라인에 대한 주요 고려 사항:
- 입력 데이터 모음의 컴퍼지션입니다.
- 원시 데이터를 추출하고 사용 가능한 형식으로 변환하는 방법(예: PDF 문서 구문 분석).
- 문서가 더 작은 청크로 분할되는 방법 및 이러한 청크의 형식 지정 방법(예: 청크 분할 전략 및 청크 크기).
- 각 문서 및/또는 청크에 대해 추출된 메타데이터(예: 섹션 제목 또는 문서 제목)입니다. 이 메타데이터가 각 청크에 포함되거나 포함되지 않은 방법
- 유사성 검색을 위해 텍스트를 벡터 표현으로 변환하는 데 사용되는 포함 모델입니다.
RAG 체인
- LLM 및 해당 매개 변수(예: 온도 및 최대 토큰)의 선택입니다.
- 검색 매개 변수(예: 검색된 청크 또는 문서 수)입니다.
- 검색 방법(예: 키워드와 하이브리드 및 의미 체계 검색, 사용자 쿼리 다시 작성, 사용자 쿼리를 필터로 변환 또는 순위 다시 지정).
- 검색된 컨텍스트를 사용하여 프롬프트의 서식을 지정하여 LLM을 품질 출력으로 안내하는 방법입니다.