5단계(검색). 검색 품질을 디버깅하는 방법
이 페이지에서는 검색 문제의 근본 원인을 식별하는 방법을 설명합니다. 근본 원인 분석이 근본 원인 Improve Retrieval
을 나타내는 경우 이 페이지를 사용합니다.
검색 품질은 분명 RAG 애플리케이션의 가장 중요한 구성 요소입니다. 지정된 쿼리에 대해 가장 관련성이 높은 청크가 반환되지 않으면 LLM은 고퀄리티 응답을 생성하는 데 필요한 정보에 접근할 수 없습니다. 잘못된 검색은 부적절하거나 불완전하거나 거짓 정보에 기반한 출력으로 이어질 수 있습니다. 이 단계에서는 기본 데이터를 분석하기 위해 수동 작업이 필요합니다. Mosaic AI 에이전트 프레임워크는 데이터 플랫폼(Unity Catalog 및 벡터 검색 포함)과 MLflow를 사용한 실험 추적(LLM 평가 및 MLflow 추적 포함) 간의 긴밀한 결합을 통해 문제를 훨씬 쉽게 해결할 수 있습니다.
지침
검색 품질 문제를 해결하려면 다음 단계를 수행합니다:
- B_quality_iteration/01_root_cause_quality_issues notebook을 엽니다.
- 쿼리를 사용하여 검색 품질 문제가 있는 레코드의 MLflow 추적을 로드합니다.
- 각 레코드에 대해 검색된 청크를 수동으로 검사합니다. 가능한 경우 실제 검색 문서와 비교합니다.
- 검색 품질이 낮은 쿼리에서 특정 패턴 또는 일반적인 문제를 찾습니다. 예시:
- 관련 정보가 벡터 데이터베이스에서 완전히 누락되었습니다.
- 검색 쿼리에 대해 반환된 청크 또는 문서의 수가 부족합니다.
- 청크가 너무 작고 컨텍스트도 부족합니다.
- 청크가 너무 커서 관련이 없는 다수의 항목이 포함되어 있습니다.
- 임베딩 모델은 도메인별 용어에 대한 의미 체계 유사성을 담아내지 못하고 있습니다.
- 식별된 문제에 따라 잠재적인 근본 원인 및 해당 수정 사항을 임의로 가정합니다. 지침은 검색 품질이 저하되는 일반적인 이유를 참조하세요.
- 변경 내용을 구현하고 평가하는 단계에 따라 잠재적인 수정 사항을 구현하고 평가합니다. 여기에는 데이터 파이프라인 수정(예: 청크 크기 조정 또는 다른 포함 모델 시도) 또는 RAG 체인 수정(예: 하이브리드 검색 구현 또는 더 많은 청크 검색)이 포함될 수 있습니다.
- 검색 품질이 여전히 만족스럽지 않은 경우 원하는 성능을 위해 다음으로 가장 희망하는 수정이 나올 때까지 4단계와 5단계를 반복합니다.
- 근본 원인 분석을 다시 실행하여 전체 체인에서 해결해야 하는 추가 근본 원인이 있는지 확인합니다.
검색 품질이 저하되는 일반적인 이유
다음 표에는 일반적인 검색 문제에 대한 디버깅 단계 및 잠재적인 수정 사항이 나와 있습니다. 수정 사항은 구성 요소별로 분류됩니다.
- 데이터 파이프라인
- 체인 구성
- 체인 코드
구성 요소는 구현 및 평가 변경 단계에서 따라야 하는 단계를 정의합니다.
검색 문제 | 디버깅 단계 | 잠재적 수정 |
---|---|---|
청크가 너무 작습니다. | - 청크에서 불완전한 차단 정보를 검사합니다. | - 데이터 파이프라인 청크 크기를 늘리거나 겹칩니다. - 데이터 파이프라인 다른 청크 전략을 시도합니다. |
청크가 너무 큼 | - 검색된 청크에 관련이 없는 여러 항목이 포함되어 있는지 확인합니다. | - 데이터 파이프라인 청크 크기를 줄입니다. - 데이터 파이프라인 관련 없는 항목(예: 의미 체계 청크)이 혼합되지 않도록 청크 분할 전략을 개선합니다. |
청크에 가져온 텍스트에 대한 정보가 충분하지 않음 | - 각 청크에 대한 컨텍스트가 부족하여 검색된 결과에서 혼동 또는 모호성을 유발하는지 평가합니다. | - 데이터 파이프라인 각 청크에 메타데이터 및 제목을 추가합니다(예: 섹션 제목). - 체인 구성 더 많은 청크를 검색하고 더 큰 컨텍스트 크기의 LLM을 사용합니다. |
포함 모델이 사용자 쿼리의 도메인이나 주요 문구를 정확하게 이해하지 못함 | - 의미상 유사한 청크가 동일한 쿼리에 대해 검색되는지 확인합니다. | - 데이터 파이프라인 다양한 포함 모델을 사용합니다. - 체인 구성 하이브리드 검색을 시도합니다. - 체인 코드 검색 결과를 오버 페치하고 순위를 다시 지정합니다. 순위가 다시 지정된 상위 결과만 LLM 컨텍스트에 제공합니다. - 데이터 파이프라인 도메인별 데이터에 대한 포함 모델을 미세 조정합니다. |
벡터 데이터베이스에서 관련 정보가 누락됨 | - 벡터 데이터베이스에서 관련 문서 또는 섹션이 누락되었는지 확인합니다. | - 데이터 파이프라인 벡터 데이터베이스에 관련 문서를 더 추가합니다. - 데이터 파이프라인 문서 구문 분석 및 메타데이터 추출을 개선합니다. |
검색 쿼리가 제대로 작성되지 않았음 | - 사용자 쿼리가 의미 체계 검색에 직접 사용되는 경우 이러한 쿼리를 분석하고 모호성 또는 특이성 부족을 확인합니다. 이는 원시 사용자 쿼리가 대화의 이전 부분을 참조하는 멀티 턴 대화에서 쉽게 발생할 수 있으므로 검색 쿼리로 직접 사용하기에 적합하지 않습니다. - 쿼리 용어가 검색 모음에 사용된 용어와 일치하는지 확인합니다. |
- 체인 코드 쿼리 확장 또는 변환 방법을 추가합니다(예: 사용자 쿼리가 지정된 경우 의미 체계 검색 전에 쿼리 변환). - 체인 코드 쿼리 이해도를 추가하여 의도 및 엔터티를 식별합니다(예: LLM을 사용하여 메타데이터 필터링에 사용할 속성 추출). |
다음 단계
또한 생성 품질 문제를 식별한 경우 5단계(생성). 생성 품질을 디버그하는 방법을 계속 진행합니다.
식별된 모든 문제를 해결했다고 생각되면 6단계를 계속 진행합니다. AI 에이전트에서 품질 수정을 만들고 평가합니다.