실패한 자동 추론 정책 테스트 해결 - Amazon Bedrock

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

실패한 자동 추론 정책 테스트 해결

자동 추론 정책 테스트에 실패하면 테스트 결과에서 추출된 로직 및 규칙을 검토합니다. 문제에 따라 오류를 해결하는 방법에는 여러 가지가 있습니다.

참고

자습서 비디오: 다음 자습서를 시청하여 자동 추론 정책을 개선하고 문제를 해결하는 단계별 연습을 살펴봅니다.

자습서 데모 3 - 자동 추론 정책 개선

주석 이해

주석은 테스트가 실패할 때 정책을 수정하는 데 적용하게 되는 수정 사항입니다. 테스트에서 예상 결과를 반환하지 않는 경우 테스트 조건을 수정하고 다시 실행한 다음, 주석으로 수정 사항을 적용하여 정책을 업데이트할 수 있습니다.

주석을 사용하여 다음을 수행할 수 있습니다.

  • 잘못된 규칙 수정

  • 누락된 변수 추가

  • 변수 설명 개선

  • 번역 모호성 해결

예: 정책 수정 주석

문제: 정책에서 모든 정규직 직원의 휴가를 승인했지만 소스 문서에는 1년 이상이 필요합니다.

원래 규칙:

if isFullTime is true, then eligibleForParentalLeave is true

주석 적용:

  1. tenureMonths 변수 추가(INT 유형)

  2. 다음과 같이 규칙 업데이트: if isFullTime is true and tenureMonths is greater than 12, then eligibleForParentalLeave is true

  3. 이제 재직 기간이 12개월 미만인 직원의 경우 테스트가 INVALID를 올바르게 반환합니다.

  • 실패한 테스트의 조건을 업데이트하고 다시 실행합니다. 테스트에서 예상한 검증 결과를 반환하는 경우, 이 주석을 적용하여 정책을 업데이트할 수 있습니다.

  • 정책의 변수 이름 또는 설명을 업데이트하면 자연어를 로직으로 변환할 때 자동 추론에서 이를 구분할 수 있습니다.

  • 자동 추론이 소스 문서를 잘못 이해했거나 소스 문서에 오류가 있다고 생각되면 정책의 규칙을 업데이트합니다.

  • 변수와 유형을 추가하여 정책의 로직을 편집합니다. 그런 다음 새 변수를 사용하도록 규칙을 업데이트할 수 있습니다. 이는 일반적으로 권장되지 않는 고급 사용 사례입니다.

  • 보다 포괄적인 지침을 사용하여 정책을 다시 생성합니다. 지침에는 자동 추론이 애플리케이션 사용 방식과 관련된 로직을 추출할 수 있도록 충분한 컨텍스트가 포함되어야 합니다. 또한, 소스 문서에 대해 질문하리라 예상되는 예제 질문과 답변을 포함하는 것이 좋습니다.

지침을 제공할 수 없는 경우

자동 추론에서 실패한 테스트에 대한 지침을 제공할 수 없다고 표시되는 경우도 있습니다. 이러한 상황은 일반적으로 정책 구조에 명확한 분석을 방해하는 근본적인 문제가 있을 때 발생합니다.

지침을 제공할 수 없는 일반적인 시나리오는 다음과 같습니다.

  • 규칙 충돌: 정책의 규칙이 충돌하여 정책에 논리적 불일치를 생성합니다. 가령 한 규칙에서는 정규직 직원은 휴가 자격이 있다고 나와 있는데, 다른 규칙에 따르면 근속 연수가 1년 미만인 직원은 자격이 없으며 근속 연수가 1년 미만인 정규직 직원의 휴가를 처리하는 방법도 명시하지 않았습니다.

  • 불완전한 규칙 적용 범위: 정책에 특정 조건 조합이 어떤 규칙으로도 해결되지 않는 간극이 있어 올바른 결과를 판단하기가 불가능합니다.

  • 순환 종속성: 논리적 루프를 생성하는 방식으로 규칙이 서로 의존하여 시스템이 최종 결론에 다다르지 못합니다.

  • 지나치게 복잡한 규칙 상호 작용: 여러 규칙이 특정 테스트 시나리오에 대해 모호하거나 모순되는 결과를 생성하는 방식으로 상호 작용합니다.

문제를 해결하는 방법:

  1. 정책 규칙을 체계적으로 검토합니다. 콘솔의 정의 페이지에 충돌하는 규칙, 미사용 변수 및 사용자 지정 유형의 미사용 값에 대한 경고가 표시됩니다. GetAutomatedReasoningPolicyBuildWorkflowResultAssets API 작업의 QUALITY_REPORT 자산에서 동일한 정보를 사용할 수 있습니다.

  2. 규칙 완전성 확인: 규칙이 사용 영역에서 발생할 수 있는 가능한 모든 조건 조합을 다루는지 확인합니다. 규칙이 적용되지 않는 간극을 식별합니다.

  3. 복잡한 상호 작용 간소화: 상호 연결된 규칙이 많은 경우 쉽게 이해하고 검증할 수 있도록 더 간단하고 집중적인 규칙으로 분류하는 것이 좋습니다.

  4. 엣지 케이스 테스트: 특별히 정책의 경계 조건 및 엣지 케이스를 대상으로 하는 추가 테스트를 생성하여 충돌 또는 간극이 있을 수 있는 지점을 식별합니다.

  5. 정책 재구성 고려: 충돌이 지속되면 모호성을 해결하기 위해 더 명확한 규칙 계층 구조 또는 우선순위 순서로 정책을 재구성해야 할 수 있습니다.

이러한 상황이 발생하면 더 간단한 버전의 정책으로 시작했다가 점진적으로 복잡성을 추가하며 각 단계마다 테스트하면서 충돌이 발생하는 위치를 식별하는 것이 도움이 되는 경우가 많습니다.

다음 예제에는 테스트가 실패할 수 있는 일반적인 이유와 이를 해결하는 방법이 나와 있습니다.

자동 추론이 소스 문서를 이해하지 못하는 경우

일반적인 원인

자동 추론이 소스 문서에서 필요한 모든 변수를 추출하지 못했거나 변수 설명이 자연어에서 공식 로직으로 적절하게 변환할 수 있을 만큼 충분히 명확하지 않을 수 있습니다.

해결 방법

  1. 정의 화면에서 변수 목록을 검토하여 질문과 답변에서 사실적인 주장을 추출하는 데 필요한 모든 변수가 정책에 포함되어 있는지 확인합니다.

  2. 필수 변수가 누락된 경우 다음 단계를 따릅니다.

    1. 추가를 선택하여 새 변수를 생성합니다.

    2. 적절한 유형(bool, int, real 또는 enum)을 선택합니다.

    3. 명확하고 포괄적인 변수 설명을 작성합니다.

  3. 변수가 존재하지만, 질문 및 답변 검증 중에 제대로 할당되지 않은 경우 설명을 개선하여 자동 추론이 자연어를 더 잘 변환할 수 있도록 하세요. 예제:

    원래 설명(과도하게 한정적): "주당 20시간 이상 근무하는 직원"

    개선된 설명: "주당 20시간 이상 일하는 직원은 정규직으로 간주됩니다. 사용자가 '풀타임' 또는 정규 근무를 언급하는 경우 이 값을 true로 설정하고, '파트타임' 또는 시간제 근무를 언급하는 경우 false로 설정합니다."

자동 추론 정책의 규칙이 잘못된 경우

일반적인 원인

자동 추론이 소스 문서를 잘못 해석했거나 소스 문서에 오류 또는 불일치가 있을 수 있습니다.

해결 방법

  1. 검증 출력에서 잘못된 규칙을 인용하는 경우 규칙을 편집합니다. 테스트 결과가 INVALID일 것이라고 예상했는데 VALID로 나왔기 때문에, 이 사실을 알아차렸을 가능성이 높습니다.

  2. 규칙에서 변수를 참조할 때는 정책의 정의 섹션에 지정된 전체 변수 이름을 사용합니다. 예를 들어, isFullTime이라고 철자를 적습니다. 입력 Q&A가 특정 규칙과 일치하리라 예상한 경우 먼저 입력 Q&A의 변수가 올바른지 확인합니다. 올바르다면 새 규칙을 추가해야 할 수 있습니다.

  3. 규칙 목록의 오른쪽 상단에 있는 추가 버튼을 사용하여 새 규칙을 입력합니다. 자연어를 사용하여 규칙을 지정합니다. 제약 조건을 먼저 지정하고 변수를 전체 이름으로 참조합니다. 가령 정규직 직원만 휴가를 갈 수 있도록 허용하는 규칙의 경우, '직원이 isFullTime인 경우 유급 휴가(LoAP) 허용'과 같이 적을 수 있습니다.

자동 추론 정책에서 TRANSLATION_AMBIGUOUS를 반환하는 경우

일반적인 원인

정책이 TRANSLATION_AMBIGUOUS를 반환하는 경우 자동 추론이 자연어를 공식 로직으로 변환할 때 모호성을 감지했다는 뜻입니다. 이는 시스템에서 자연어 개념을 정책의 공식 로직 변수 및 규칙에 매핑하는 방법을 명확하게 파악할 수 없는 경우에 발생합니다.

변환 모호성은 다음과 같은 몇 가지 근본 원인으로 인해 발생할 수 있습니다.

  • 중복 변수 정의: 정책의 여러 변수가 자연어로 언급된 동일한 개념을 합리적으로 나타낼 수 있다면 시스템은 사용할 변수를 결정할 수 없습니다. 가령 설명이 유사한 tenureMonths 변수와 monthsOfService 변수가 모두 있는 경우, 시스템은 사용자가 '회사에서 근무한 기간'에 대해 질문할 때 어떤 변수를 사용할지 결정하기가 어려울 수 있습니다. 이렇게 하면 변환 프로세스에 모호성이 야기되어 결과가 일관적이지 않을 수 있습니다.

  • 불완전한 변수 설명: 사용자가 변수 설명에서 일상 언어로 개념을 참조하는 방법을 충분히 설명하지 못하여 사용자 입력 정보를 올바른 공식 논리 표현으로 매핑하기 어려운 경우입니다.

  • 모호한 자연어 입력: 사용자 프롬프트 또는 모델 응답에 공식 로직으로 명확하게 변환할 수 없는 모호하거나 모순되거나 다중 해석 가능한 문이 포함된 경우입니다.

  • 컨텍스트 정보 누락: 자연어가 사용 영역에 존재하지만, 정책의 변수 스키마에 적절하게 표시되지 않는 개념을 참조하는 경우입니다.

  • 일관되지 않은 용어: 소스 문서와 변수 설명, 사용자 상호 작용에서 다양한 용어를 사용하여 동일한 개념을 참조하면 변환 중에 혼동이 발생합니다.

이러한 원인을 이해하면 테스트 문제를 디버깅하고 정책을 변경할 사항을 결정하는 데 도움이 될 수 있습니다. 경우에 따라 특정 사용 사례에서 정책의 신뢰도 수준 설정을 조정하여 엄격한 정확도와 실제 사용성 간의 균형을 맞춰야 할 수도 있습니다.

해결 방법

근본 문제에 따라 이를 수정할 수 있는 몇 가지 방법이 있습니다.

  • 너무 유사한 변수 설명: 두 변수의 이름이나 설명이 유사한 경우 변환 프로세스에서 변수를 일관되지 않게 선택할 수 있습니다. 예를 들어, isFullTimefullTimeStatus 변수 모두에 유사한 설명이 있으면 시스템에서 고용 상태에 대한 자연어를 올바른 변수에 일정하게 매핑하지 못할 수 있습니다. 변수 설명을 검토하여 각각 명확하게 구분된 용도와 컨텍스트를 포함하고 있는지 확인하세요. 중복 개념을 단일 변수로 통합하거나 각 변수를 사용해야 하는 정확한 시기를 지정하는 명확하고 중첩되지 않는 설명과 함께 변수마다 고유한 용도가 있는지 확인하는 것이 좋습니다.

  • 변수 컨텍스트 부족: 변수 설명에서 사용자가 사용 영역의 개념을 참조하는 방법을 충분히 다루지 못할 수 있습니다. 적절한 수준의 컨텍스트를 포함하여 변수 설명을 업데이트하세요.

  • 일정하지 않은 값 형식 지정: 시스템에서 값 형식 지정 방법(예: 숫자 또는 날짜)이 확실하지 않을 때 변환 모호성이 발생할 수 있습니다. 변수 설명을 업데이트하여 예상 형식을 명확히 하세요.

  • 모호한 입력: 입력 텍스트에 모호한 문이 포함된 경우 대체 해석 간의 불일치를 사용하여 보다 정확하게 수정합니다.