다음을 통해 공유


5단계(검색). 검색 품질을 디버깅하는 방법

이 페이지에서는 검색 문제의 근본 원인을 식별하는 방법을 설명합니다. 근본 원인 분석이 근본 원인 Improve Retrieval을 나타내는 경우 이 페이지를 사용합니다.

검색 품질은 분명 RAG 애플리케이션의 가장 중요한 구성 요소입니다. 지정된 쿼리에 대해 가장 관련성이 높은 청크가 반환되지 않으면 LLM은 고퀄리티 응답을 생성하는 데 필요한 정보에 접근할 수 없습니다. 잘못된 검색은 부적절하거나 불완전하거나 거짓 정보에 기반한 출력으로 이어질 수 있습니다. 이 단계에서는 기본 데이터를 분석하기 위해 수동 작업이 필요합니다. Mosaic AI 에이전트 프레임워크는 데이터 플랫폼(Unity Catalog 및 벡터 검색 포함)과 MLflow를 사용한 실험 추적(LLM 평가 및 MLflow 추적 포함) 간의 긴밀한 결합을 통해 문제를 훨씬 쉽게 해결할 수 있습니다.

지침

검색 품질 문제를 해결하려면 다음 단계를 수행합니다:

  1. B_quality_iteration/01_root_cause_quality_issues notebook을 엽니다.
  2. 쿼리를 사용하여 검색 품질 문제가 있는 레코드의 MLflow 추적을 로드합니다.
  3. 각 레코드에 대해 검색된 청크를 수동으로 검사합니다. 가능한 경우 실제 검색 문서와 비교합니다.
  4. 검색 품질이 낮은 쿼리에서 특정 패턴 또는 일반적인 문제를 찾습니다. 예시:
    • 관련 정보가 벡터 데이터베이스에서 완전히 누락되었습니다.
    • 검색 쿼리에 대해 반환된 청크 또는 문서의 수가 부족합니다.
    • 청크가 너무 작고 컨텍스트도 부족합니다.
    • 청크가 너무 커서 관련이 없는 다수의 항목이 포함되어 있습니다.
    • 임베딩 모델은 도메인별 용어에 대한 의미 체계 유사성을 담아내지 못하고 있습니다.
  5. 식별된 문제에 따라 잠재적인 근본 원인 및 해당 수정 사항을 임의로 가정합니다. 지침은 검색 품질이 저하되는 일반적인 이유를 참조하세요.
  6. 변경 내용을 구현하고 평가하는 단계에 따라 잠재적인 수정 사항을 구현하고 평가합니다. 여기에는 데이터 파이프라인 수정(예: 청크 크기 조정 또는 다른 포함 모델 시도) 또는 RAG 체인 수정(예: 하이브리드 검색 구현 또는 더 많은 청크 검색)이 포함될 수 있습니다.
  7. 검색 품질이 여전히 만족스럽지 않은 경우 원하는 성능을 위해 다음으로 가장 희망하는 수정이 나올 때까지 4단계와 5단계를 반복합니다.
  8. 근본 원인 분석을 다시 실행하여 전체 체인에서 해결해야 하는 추가 근본 원인이 있는지 확인합니다.

검색 품질이 저하되는 일반적인 이유

다음 표에는 일반적인 검색 문제에 대한 디버깅 단계 및 잠재적인 수정 사항이 나와 있습니다. 수정 사항은 구성 요소별로 분류됩니다.

  • 데이터 파이프라인
  • 체인 구성
  • 체인 코드

구성 요소는 구현 및 평가 변경 단계에서 따라야 하는 단계를 정의합니다.

검색 문제 디버깅 단계 잠재적 수정
청크가 너무 작습니다. - 청크에서 불완전한 차단 정보를 검사합니다. - 데이터 파이프라인 청크 크기를 늘리거나 겹칩니다.
- 데이터 파이프라인 다른 청크 전략을 시도합니다.
청크가 너무 큼 - 검색된 청크에 관련이 없는 여러 항목이 포함되어 있는지 확인합니다. - 데이터 파이프라인 청크 크기를 줄입니다.
- 데이터 파이프라인 관련 없는 항목(예: 의미 체계 청크)이 혼합되지 않도록 청크 분할 전략을 개선합니다.
청크에 가져온 텍스트에 대한 정보가 충분하지 않음 - 각 청크에 대한 컨텍스트가 부족하여 검색된 결과에서 혼동 또는 모호성을 유발하는지 평가합니다. - 데이터 파이프라인 각 청크에 메타데이터 및 제목을 추가합니다(예: 섹션 제목).
- 체인 구성 더 많은 청크를 검색하고 더 큰 컨텍스트 크기의 LLM을 사용합니다.
포함 모델이 사용자 쿼리의 도메인이나 주요 문구를 정확하게 이해하지 못함 - 의미상 유사한 청크가 동일한 쿼리에 대해 검색되는지 확인합니다. - 데이터 파이프라인 다양한 포함 모델을 사용합니다.
- 체인 구성 하이브리드 검색을 시도합니다.
- 체인 코드 검색 결과를 오버 페치하고 순위를 다시 지정합니다. 순위가 다시 지정된 상위 결과만 LLM 컨텍스트에 제공합니다.
- 데이터 파이프라인 도메인별 데이터에 대한 포함 모델을 미세 조정합니다.
벡터 데이터베이스에서 관련 정보가 누락됨 - 벡터 데이터베이스에서 관련 문서 또는 섹션이 누락되었는지 확인합니다. - 데이터 파이프라인 벡터 데이터베이스에 관련 문서를 더 추가합니다.
- 데이터 파이프라인 문서 구문 분석 및 메타데이터 추출을 개선합니다.
검색 쿼리가 제대로 작성되지 않았음 - 사용자 쿼리가 의미 체계 검색에 직접 사용되는 경우 이러한 쿼리를 분석하고 모호성 또는 특이성 부족을 확인합니다. 이는 원시 사용자 쿼리가 대화의 이전 부분을 참조하는 멀티 턴 대화에서 쉽게 발생할 수 있으므로 검색 쿼리로 직접 사용하기에 적합하지 않습니다.
- 쿼리 용어가 검색 모음에 사용된 용어와 일치하는지 확인합니다.
- 체인 코드 쿼리 확장 또는 변환 방법을 추가합니다(예: 사용자 쿼리가 지정된 경우 의미 체계 검색 전에 쿼리 변환).
- 체인 코드 쿼리 이해도를 추가하여 의도 및 엔터티를 식별합니다(예: LLM을 사용하여 메타데이터 필터링에 사용할 속성 추출).

다음 단계

또한 생성 품질 문제를 식별한 경우 5단계(생성). 생성 품질을 디버그하는 방법을 계속 진행합니다.

식별된 모든 문제를 해결했다고 생각되면 6단계를 계속 진행합니다. AI 에이전트에서 품질 수정을 만들고 평가합니다.

< 이전: 5단계. 품질 문제의 근본 원인 식별

다음: 5.2단계. 디버그 생성 품질 >