다음을 통해 공유


5단계(생성). 생성 품질 디버깅하는 방법

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

최적의 검색에도 불구하고 RAG 체인의 LLM 구성 요소가 검색된 컨텍스트를 효과적으로 활용하여 정확하고 일관되고 관련 응답을 생성할 수 없는 경우 최종 출력 품질이 저하됩니다. 생성 품질 문제가 나타날 수 있는 몇 가지 방법은 거짓 정보, 불일치 또는 사용자의 쿼리를 간결하게 처리하지 못하는 오류입니다.

지침

다음 단계에 따라 생성 품질 문제를 해결합니다.

  1. B_quality_iteration/01_root_cause_quality_issues notebook을 엽니다.
  2. 쿼리를 사용하여 생성 품질 문제가 있는 레코드의 MLflow 추적을 로드합니다.
  3. 각 레코드에 대해 생성된 응답을 수동으로 검사하고 검색된 컨텍스트 및 실제 응답과 비교합니다.
  4. 생성 품질이 낮은 쿼리에서 패턴 또는 일반적인 문제를 찾습니다. 예시:
    • 검색된 컨텍스트에 없는 정보를 생성합니다.
    • 검색된 컨텍스트(거짓 정보)와 일치하지 않는 정보를 생성합니다.
    • 제공된 검색 컨텍스트가 제공된 경우 사용자의 쿼리를 직접 처리하지 못했습니다.
    • 지나치게 세부적이거나 이해하기 어렵거나 논리적 일관성이 없는 응답을 생성합니다.
  5. 식별된 문제에 따라 잠재적인 근본 원인 및 해당 수정 사항을 임의로 가정합니다. 지침은 생성 품질이 저하되는 일반적인 이유를 참조하세요.
  6. 변경 내용을 구현하고 평가하는 단계에 따라 잠재적인 수정 사항을 구현하고 평가합니다. 여기에는 RAG 체인 수정(예: 프롬프트 템플릿 조정 또는 다른 LLM 시도) 또는 데이터 파이프라인(예: 더 많은 컨텍스트를 제공하도록 청크 분할 전략 조정)이 포함될 수 있습니다.
  7. 생성 품질이 여전히 만족스럽지 않은 경우 원하는 성능을 위해 다음으로 가장 희망하는 수정이 나올 때까지 4단계와 5단계를 반복합니다.
  8. 근본 원인 분석을 다시 실행하여 전체 체인에서 해결해야 하는 추가 근본 원인이 있는지 확인합니다.

생성 품질이 저하되는 일반적인 이유

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

  • 체인 구성
  • 체인 코드

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

중요

Databricks는 프롬프트 엔지니어링을 사용하여 앱 출력의 품질을 반복하는 것이 좋습니다. 다음 단계의 대부분은 프롬프트 엔지니어링을 사용합니다.

생성 문제 디버깅 단계 잠재적 수정
생성된 정보가 검색된 컨텍스트(예: 거짓 정보)에 없습니다. - 생성된 응답을 검색된 컨텍스트와 비교하여 거짓 정보를 식별합니다.
- 특정 유형의 쿼리 또는 검색된 컨텍스트가 거짓 정보에 더 취약한지 평가합니다.
- 체인 구성 검색된 컨텍스트에 대한 의존도를 강조하기 위해 프롬프트 템플릿을 업데이트합니다.
- 체인 구성 더 많은 기능을 사용할 수 있는 LLM을 사용합니다.
- 체인 코드 생성 후 팩트 확인 또는 검증 단계를 구현합니다.
사용자의 쿼리를 직접 처리하지 못하거나 지나치게 일반적인 응답을 제공함 - 생성된 응답을 사용자 쿼리와 비교하여 관련성 및 특이성을 평가합니다.
- 특정 유형의 쿼리로 인해 올바른 컨텍스트가 검색되는지 확인하지만 LLM은 낮은 품질의 출력을 생성합니다.
- 체인 구성 프롬프트 템플릿을 개선하여 직접적이고 구체적인 응답을 장려합니다.
- 체인 구성 검색 프로세스를 개선하여 더 많은 대상 컨텍스트를 검색합니다.
- 체인 코드 검색 결과의 순위를 다시 지정하여 가장 관련성이 높은 청크를 먼저 배치하고 LLM에만 제공합니다.
- 체인 구성 더 많은 기능을 사용할 수 있는 LLM을 사용합니다.
생성된 응답이 논리적 흐름을 이해하기 어렵거나 부족함 - 논리적 흐름, 문법적 정확성 및 이해 가능성에 대한 출력을 평가합니다.
- 특정 유형의 쿼리에서 일관성이 더 자주 발생하는지 여부 또는 특정 유형의 컨텍스트가 검색되는 시기를 분석합니다.
- 체인 구성 변경 프롬프트 템플릿을 사용하여 일관되며 잘 구성된 응답을 장려합니다.
- 체인 구성 추가 관련 청크를 검색하여 LLM에 더 많은 컨텍스트를 제공합니다.
- 체인 구성 더 많은 기능을 사용할 수 있는 LLM을 사용합니다.
생성된 응답이 원하는 형식이나 스타일이 아님 - 출력을 예상 형식 및 스타일 지침과 비교합니다.
- 특정 유형의 쿼리 또는 검색된 컨텍스트가 형식 또는 스타일 편차를 초래할 가능성이 더 큰지 평가합니다.
- 체인 구성 원하는 출력 형식 및 스타일을 지정하는 프롬프트 템플릿을 업데이트합니다.
- 체인 코드 생성된 응답을 원하는 형식으로 변환하는 후 처리 단계를 구현합니다.
- 체인 코드 출력 구조 및 스타일의 유효성을 검사하는 단계를 추가하고 필요한 경우 대체 대답을 출력합니다.
- 체인 구성 특정 형식 또는 스타일로 출력을 제공하기 위해 미세 조정된 LLM을 사용합니다.

다음 단계

검색 품질 관련 문제도 확인한 경우 5단계(검색). 검색 품질을 디버깅하는 방법을 계속 진행합니다.

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

< 이전: 5.1단계. 검색 품질 디버그

다음: 6단계. 품질 문제를 반복적으로 해결합니다. >