5단계(생성). 생성 품질 디버깅하는 방법
이 페이지에서는 생성 문제의 근본 원인을 식별하는 방법을 설명합니다. 근본 원인 분석이 근본 원인 Improve Generation
을 나타내는 경우 이 페이지를 사용합니다.
최적의 검색에도 불구하고 RAG 체인의 LLM 구성 요소가 검색된 컨텍스트를 효과적으로 활용하여 정확하고 일관되고 관련 응답을 생성할 수 없는 경우 최종 출력 품질이 저하됩니다. 생성 품질 문제가 나타날 수 있는 몇 가지 방법은 거짓 정보, 불일치 또는 사용자의 쿼리를 간결하게 처리하지 못하는 오류입니다.
지침
다음 단계에 따라 생성 품질 문제를 해결합니다.
- B_quality_iteration/01_root_cause_quality_issues notebook을 엽니다.
- 쿼리를 사용하여 생성 품질 문제가 있는 레코드의 MLflow 추적을 로드합니다.
- 각 레코드에 대해 생성된 응답을 수동으로 검사하고 검색된 컨텍스트 및 실제 응답과 비교합니다.
- 생성 품질이 낮은 쿼리에서 패턴 또는 일반적인 문제를 찾습니다. 예시:
- 검색된 컨텍스트에 없는 정보를 생성합니다.
- 검색된 컨텍스트(거짓 정보)와 일치하지 않는 정보를 생성합니다.
- 제공된 검색 컨텍스트가 제공된 경우 사용자의 쿼리를 직접 처리하지 못했습니다.
- 지나치게 세부적이거나 이해하기 어렵거나 논리적 일관성이 없는 응답을 생성합니다.
- 식별된 문제에 따라 잠재적인 근본 원인 및 해당 수정 사항을 임의로 가정합니다. 지침은 생성 품질이 저하되는 일반적인 이유를 참조하세요.
- 변경 내용을 구현하고 평가하는 단계에 따라 잠재적인 수정 사항을 구현하고 평가합니다. 여기에는 RAG 체인 수정(예: 프롬프트 템플릿 조정 또는 다른 LLM 시도) 또는 데이터 파이프라인(예: 더 많은 컨텍스트를 제공하도록 청크 분할 전략 조정)이 포함될 수 있습니다.
- 생성 품질이 여전히 만족스럽지 않은 경우 원하는 성능을 위해 다음으로 가장 희망하는 수정이 나올 때까지 4단계와 5단계를 반복합니다.
- 근본 원인 분석을 다시 실행하여 전체 체인에서 해결해야 하는 추가 근본 원인이 있는지 확인합니다.
생성 품질이 저하되는 일반적인 이유
다음 표에는 일반적인 생성 문제에 대한 디버깅 단계 및 잠재적인 수정 사항이 나와 있습니다. 수정 사항은 구성 요소별로 분류됩니다.
- 체인 구성
- 체인 코드
구성 요소는 구현 및 평가 변경 단계에서 따라야 하는 단계를 정의합니다.
중요
Databricks는 프롬프트 엔지니어링을 사용하여 앱 출력의 품질을 반복하는 것이 좋습니다. 다음 단계의 대부분은 프롬프트 엔지니어링을 사용합니다.
생성 문제 | 디버깅 단계 | 잠재적 수정 |
---|---|---|
생성된 정보가 검색된 컨텍스트(예: 거짓 정보)에 없습니다. | - 생성된 응답을 검색된 컨텍스트와 비교하여 거짓 정보를 식별합니다. - 특정 유형의 쿼리 또는 검색된 컨텍스트가 거짓 정보에 더 취약한지 평가합니다. |
- 체인 구성 검색된 컨텍스트에 대한 의존도를 강조하기 위해 프롬프트 템플릿을 업데이트합니다. - 체인 구성 더 많은 기능을 사용할 수 있는 LLM을 사용합니다. - 체인 코드 생성 후 팩트 확인 또는 검증 단계를 구현합니다. |
사용자의 쿼리를 직접 처리하지 못하거나 지나치게 일반적인 응답을 제공함 | - 생성된 응답을 사용자 쿼리와 비교하여 관련성 및 특이성을 평가합니다. - 특정 유형의 쿼리로 인해 올바른 컨텍스트가 검색되는지 확인하지만 LLM은 낮은 품질의 출력을 생성합니다. |
- 체인 구성 프롬프트 템플릿을 개선하여 직접적이고 구체적인 응답을 장려합니다. - 체인 구성 검색 프로세스를 개선하여 더 많은 대상 컨텍스트를 검색합니다. - 체인 코드 검색 결과의 순위를 다시 지정하여 가장 관련성이 높은 청크를 먼저 배치하고 LLM에만 제공합니다. - 체인 구성 더 많은 기능을 사용할 수 있는 LLM을 사용합니다. |
생성된 응답이 논리적 흐름을 이해하기 어렵거나 부족함 | - 논리적 흐름, 문법적 정확성 및 이해 가능성에 대한 출력을 평가합니다. - 특정 유형의 쿼리에서 일관성이 더 자주 발생하는지 여부 또는 특정 유형의 컨텍스트가 검색되는 시기를 분석합니다. |
- 체인 구성 변경 프롬프트 템플릿을 사용하여 일관되며 잘 구성된 응답을 장려합니다. - 체인 구성 추가 관련 청크를 검색하여 LLM에 더 많은 컨텍스트를 제공합니다. - 체인 구성 더 많은 기능을 사용할 수 있는 LLM을 사용합니다. |
생성된 응답이 원하는 형식이나 스타일이 아님 | - 출력을 예상 형식 및 스타일 지침과 비교합니다. - 특정 유형의 쿼리 또는 검색된 컨텍스트가 형식 또는 스타일 편차를 초래할 가능성이 더 큰지 평가합니다. |
- 체인 구성 원하는 출력 형식 및 스타일을 지정하는 프롬프트 템플릿을 업데이트합니다. - 체인 코드 생성된 응답을 원하는 형식으로 변환하는 후 처리 단계를 구현합니다. - 체인 코드 출력 구조 및 스타일의 유효성을 검사하는 단계를 추가하고 필요한 경우 대체 대답을 출력합니다. - 체인 구성 특정 형식 또는 스타일로 출력을 제공하기 위해 미세 조정된 LLM을 사용합니다. |
다음 단계
검색 품질 관련 문제도 확인한 경우 5단계(검색). 검색 품질을 디버깅하는 방법을 계속 진행합니다.
식별된 모든 문제를 해결했다고 생각되면 6단계를 계속 진행합니다. AI 에이전트에서 품질 수정을 만들고 평가합니다.