기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
자동 추론 정책 테스트
테스트는 정책의 규칙이 올바른지, 자동 추론 검사가 자연어를 공식 로직으로 정확하게 변환할 수 있는지 확인합니다. 검증을 위해 자연어 문을 전송한 다음 피드백을 검사하여 변환이 올바른 변수를 사용하고 규칙이 예상 결과를 생성하는지 확인하여 정책을 테스트합니다.
두 가지 보완적인 테스트 접근 방식, 즉 생성된 시나리오와 question-and-answer(QnA) 테스트가 있습니다. 각는 검증 파이프라인의 서로 다른 부분을 대상으로 합니다. 권장되는 워크플로는 시나리오로 시작하여 규칙 정확성을 검증한 다음 QnA 테스트를 추가하여 번역 정확도를 검증하는 것입니다.
테스트 전략: 시나리오와 QnA 테스트 비교
자동 추론 검사는 두 단계로 콘텐츠를 검증합니다. 먼저 파운데이션 모델은 자연어를 공식 로직으로 변환한 다음 수학 기법은 정책 규칙에 따라 로직을 확인합니다. 각 테스트 접근 방식은이 파이프라인의 다른 단계를 대상으로 합니다.
생성된 시나리오(테스트 규칙 정확성)
생성된 시나리오는 정책 규칙에 인코딩된 의미 체계를 직접 테스트합니다. 방정식에서 자연어 번역의 불확실성을 제거하여 규칙 자체가 올바른지 여부를 격리합니다.
시나리오는 정책 규칙에서 생성되며 이러한 규칙을 고려할 때 논리적으로 가능한 상황을 나타냅니다. 가장 likely-to-be-wrong 높은 시나리오를 먼저 표시하도록 정렬됩니다. 각 시나리오에 대해 변수 할당을 검토하고 다음을 결정합니다.
-
썸업 - 시나리오는 현실적이며 실제로 가능해야 합니다. 테스트로 저장합니다
SATISFIABLE. -
썸 다운 - 뭔가 꺼졌습니다. 도메인 지식을 고려할 때 시나리오가 가능해서는 안 됩니다. 이유를 설명하는 자연어 피드백을 제공하면 자동 추론 검사가 필요한 규칙 변경을 추론하려고 시도합니다.
예: 정책에는 재직 기간이 12개월 이상인 정규직 직원이 육아 휴가 자격이 있다고 명시되어 있습니다. 생성된 시나리오에가 표시될 수 있습니다isFullTime = true, tenureMonths = 3, eligibleForParentalLeave = true. 이 시나리오가 가능해서는 안 되는 경우(3개월이 12개월 미만이기 때문), 직원에게 최소 12개월의 재직 기간이 필요하다고 설명해야 합니다. 이는 규칙이 누락되었거나 잘못되었음을 나타냅니다.
시나리오를 첫 번째 테스트 단계로 사용합니다. QnA 테스트 작성에 시간을 투자하기 전에 규칙 문제를 파악하는 데 도움이 됩니다.
QnA 테스트(테스트 번역 정확도)
QnA 테스트는 전체 파이프라인 end-to-end, 즉 자연어 번역과 규칙 검증을 함께 검증합니다. 실제 사용자 상호 작용을 모방하고 시나리오에서 감지할 수 없는 번역 문제를 포착합니다.
각 QnA 테스트는 다음으로 구성됩니다.
-
입력(선택 사항) - 사용자가 애플리케이션에 질문할 수 있는 질문입니다.
-
출력 - 파운데이션 모델이 생성할 수 있는 응답입니다.
-
예상 결과 - 예상한 검증 결과입니다(예:
VALID또는INVALID).
예: 동일한 육아 휴가 정책의 경우 QnA 테스트는 입력 = "여기에서 2년 동안 정규직으로 근무했습니다. 육아 휴가를 사용할 수 있나요?", 출력 = "예, 육아 휴가를 사용할 수 있습니다.", 예상 결과 = VALID. 이 테스트는 자동 추론 검사가 "2년"을 로tenureMonths = 24, "풀타임"을 로 올바르게 변환하는지 여부를 테스트합니다isFullTime = true.
작은 정보
유효한 시나리오와 잘못된 시나리오를 모두 포함하는 테스트를 생성합니다. 예를 들어 정책에 "직원은 육아 휴가에 1년 근무가 필요합니다"라고 명시되어 있는 경우이 규칙을 올바르게 명시하는 응답에 대한 테스트를 생성하고 다른 요구 사항을 잘못 명시하는 응답에 대한 테스트를 생성합니다.
권장 테스트 워크플로
-
시나리오를 생성하고 검토합니다. 여기에서 시작하여 규칙이 올바른지 확인합니다. 계속하기 전에 규칙 문제를 해결합니다.
-
주요 사용 사례에 대한 QnA 테스트를 작성합니다. 사용자가 질문할 가능성이 가장 높은 질문과 LLM이 생성할 가능성이 가장 높은 응답에 집중합니다. 엣지 케이스 및 경계 조건을 포함합니다.
-
모든 테스트를 실행합니다. 시나리오와 QnA 테스트가 모두 통과했는지 확인합니다.
-
반복하십시오. 테스트가 실패하면 문제가 규칙(정책 수정) 또는 변환(변수 설명 개선)에 있는지 확인합니다. 자세한 내용은 자동 추론 정책 문제 해결 및 구체화 단원을 참조하십시오.
콘솔에서 테스트 시나리오 자동 생성
-
테스트하려는 자동 추론 정책(예: MyHrPolicy)으로 이동합니다.
-
테스트 보기를 선택한 다음 생성을 선택합니다.
-
시나리오 생성 대화 상자에서 생성된 시나리오와 관련 규칙을 검토합니다. 각 시나리오는 정책 규칙을 고려할 때 논리적으로 가능한 변수 할당 세트를 보여줍니다. 시나리오가 도메인에서 현실적인지 평가합니다.
-
도메인에서 시나리오가 발생할 수 있는 경우(만족할 수 있는 경우) 썸업 아이콘을 선택합니다. 이렇게 하면 시나리오가
SATISFIABLE결과를 기대하는 테스트로 저장됩니다. -
시나리오가 가능하지 않은 경우 썸다운 아이콘을 선택합니다. 이유를 설명하는 주석을 제공합니다. 예를 들어 "직원은 육아 휴가에 최소 12개월의 재직 기간이 필요하지만이 시나리오에서는 3개월이 적격으로 표시됩니다." 자동 추론 검사는 피드백을 사용하여이 시나리오를 방해하는 규칙 변경을 추론합니다.
-
다른 시나리오를 원하는 경우 시나리오 재생성을 선택합니다.
작은 정보
시나리오의 공식 로직 버전을 검사하려면 SMT-LIB 표시를 활성화합니다. 이는 관련된 규칙 및 변수 할당을 정확하게 이해하는 데 유용합니다.
-
-
저장 및 닫기를 선택하여 테스트를 저장하거나 저장 및 다른 추가를 선택하여 시나리오 검토를 계속합니다.
-
시나리오에 주석(썸다운 피드백)을 제공한 경우 주석 적용을 선택합니다. 자동 추론 검사는 피드백에 따라 정책에 변경 사항을 적용하는 빌드 워크플로를 시작합니다.
-
정책 변경 사항 검토 화면에서 정책의 규칙, 변수 및 변수 유형에 대해 제안된 변경 사항을 검토합니다. 그런 다음 변경 사항 수락을 선택합니다.
API를 사용하여 테스트 시나리오 자동 생성
GetAutomatedReasoningPolicyNextScenario API를 사용하여 정책의 규칙에 따라 생성된 테스트 시나리오를 가져옵니다.
policyArn(필수)-
자동 추론 정책의 ARN입니다.
buildWorkflowId(필수)-
생성된 시나리오에 대한 빌드 워크플로의 식별자입니다.
ListAutomatedReasoningPolicyBuildWorkflowsAPI를 사용하여 최신 빌드 워크플로를 검색합니다.
예:
aws bedrock get-automated-reasoning-policy-next-scenario \ --policy-arn "arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk" \ --build-workflow-idd40fa7fc-351e-47d8-a338-53e4b3b1c690
응답에는 변수 할당 및 관련 정책 규칙이 있는 생성된 시나리오가 포함됩니다. 시나리오를 검토하고 CreateAutomatedReasoningPolicyTestCase API를 사용하여 테스트로 저장하거나 시나리오에서 규칙 문제가 발견되면 주석 APIs를 사용하여 피드백을 제공합니다.
콘솔에서 수동으로 QnA 테스트 생성
-
테스트하려는 자동 추론 정책(예: MyHrPolicy)으로 이동합니다.
-
테스트 보기를 선택한 다음 추가를 선택합니다.
-
테스트 추가 대화 상자에서 다음을 수행합니다.
-
입력(선택 사항)에 사용자가 할 수 있는 질문을 입력합니다. 출력에 파운데이션 모델이 제공할 수 있는 응답을 입력합니다. 이들은 함께 정책이 실제 사용자 상호 작용을 검증하는 방법을 테스트하는 QnA 페어를 형성합니다.
-
테스트에서 예상되는 결과(예: 유효 또는 유효하지 않음)를 선택합니다.
-
(선택 사항) 로직 검증의 최소 신뢰도 수준인 신뢰도 임계값을 선택합니다. 자동 추론 검사는 여러 LLMs를 조사 결과로 변환합니다. LLM 번역의 상당 부분이 지원하는 조사 결과만 반환합니다. 신뢰도 임계값은 변환이 유효한 결과가 있는 조사 결과가 되는 데 필요한 최소 지원 비율을 정의합니다. 임계값 미만의 결과는 로 표시됩니다
TRANSLATION_AMBIGUOUS.
-
-
저장을 선택하여 테스트를 생성합니다.
API를 사용하여 QnA 테스트 생성
CreateAutomatedReasoningPolicyTestCase API를 사용하여 프로그래밍 방식으로 테스트를 생성합니다.
policyArn(필수)-
자동 추론 정책의 ARN입니다.
queryContent(선택 사항)-
사용자 질문과 같이 콘텐츠를 생성한 입력 쿼리 또는 프롬프트입니다. 이는 검증을 위한 컨텍스트를 제공합니다.
guardContent(필수)-
검증할 출력 콘텐츠 - 정확도를 확인할 파운데이션 모델 응답입니다.
expectedAggregatedFindingsResult(선택 사항)-
예상 검증 결과(예:
VALID또는INVALID). 실제 결과는 심각도에 따라 결과를 정렬하고 최악의 결과를 선택하여 결정됩니다. 최악의 심각도부터 최상의 심각도 순서는TRANSLATION_AMBIGUOUS,IMPOSSIBLE,INVALID,SATISFIABLE, 입니다VALID. confidenceThreshold(선택 사항)-
로직 검증을 위한 최소 신뢰도 수준입니다.
예:
aws bedrock create-automated-reasoning-policy-test-case \ --policy-arn "arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk" \ --query-content "Can I take a leave of absence if I'm a part-time employee?" \ --guard-content "No, only full-time employees are eligible for leave of absence." \ --expected-aggregated-findings-result "VALID" \ --confidence-threshold0.8
응답 예제:
{ "testCaseId": "test-12345abcde", "policyArn": "arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk" }
테스트 실행
콘솔에서 테스트 실행
-
검증하려는 자동 추론 정책(예: MyHrPolicy)으로 이동합니다.
-
테스트 보기를 선택합니다.
-
다음 중 하나를 수행하세요.
-
모든 테스트를 실행하려면 모든 테스트 검증을 선택합니다.
-
단일 테스트를 실행하려면 테스트 옆의 작업 버튼을 선택하고 검증을 선택합니다.
-
API를 사용하여 테스트 실행
StartAutomatedReasoningPolicyTestWorkflow API를 사용하여 테스트를 실행하고 GetAutomatedReasoningPolicyTestResult API를 사용하여 결과를 검색합니다.
policyArn(필수)-
자동 추론 정책의 ARN입니다.
buildWorkflowId(필수)-
테스트를 실행할 빌드 워크플로의 식별자입니다.
ListAutomatedReasoningPolicyBuildWorkflowsAPI를 사용하여 최신 빌드 워크플로를 검색합니다. testCaseIds(선택 사항)-
실행할 테스트 식별자 목록입니다. 제공하지 않으면 정책에 대한 모든 테스트가 실행됩니다.
예:
# Run tests aws bedrock start-automated-reasoning-policy-test-workflow \ --policy-arn "arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk" \ --build-workflow-idd40fa7fc-351e-47d8-a338-53e4b3b1c690# Get results for a specific test aws bedrock get-automated-reasoning-policy-test-result \ --policy-arn "arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk" \ --build-workflow-idd40fa7fc-351e-47d8-a338-53e4b3b1c690\ --test-case-idtest-12345abcde
응답에는 검증 결과 및 실행 상태와 함께 자세한 테스트 결과가 포함됩니다. 빌드 워크플로에 대한 모든 테스트 결과를 나열하려면 ListAutomatedReasoningPolicyTestResults API를 사용합니다.
테스트 결과 이해
테스트가 완료되면 결과 세트를 받게 됩니다. 각 결과는 검증 결과, 사용된 변수 할당 및 결론을 지원하는 정책 규칙과 함께 테스트 입력에서 추출된 사실적 클레임을 나타냅니다. 결과 구조 및 모든 검증 결과 유형에 대한 자세한 설명은 섹션을 참조하세요결과 및 검증 결과.
테스트 결과의 구조
각 테스트 결과에는 다음이 포함됩니다.
-
예상 결과 - 테스트를 생성할 때 설정한 결과입니다.
-
실제 결과 - 테스트 실행의 집계된 결과입니다. 이는 심각도에 따라 조사 결과를 정렬하고 최악의 결과를 선택하여 결정됩니다. 최악의 심각도부터 최상의 심각도 순서는
TRANSLATION_AMBIGUOUS,IMPOSSIBLE,INVALID,SATISFIABLE, 입니다VALID. 예를 들어 두 개의VALID조사 결과와 한 개의IMPOSSIBLE조사 결과가 있는 테스트의 집계 결과는 입니다IMPOSSIBLE. -
실행 결과 - 테스트가 통과(예상 결과와 실제 결과가 일치)했는지 또는 실패했는지 여부입니다.
-
결과 - 개별 검증 결과입니다. 각 결과에는 번역된 온프레미스 및 클레임, 신뢰도 점수, 변수 할당 및 결론을 지원하는 정책 규칙이 포함됩니다.
결과의 실제 해석
다음 표에는 각 검증 결과가 실제로 무엇을 의미하는지와 테스트에서 확인할 때 취해야 할 조치가 요약되어 있습니다. 결과 필드 및 자세한 설명을 포함한 전체 참조는 섹션을 참조하세요검증 결과 참조.
| 결과 | 의미 | 수행할 작업 |
|---|---|---|
VALID |
응답의 클레임은 온프레미스 및 정책 규칙을 고려하여 수학적으로 올바르게 증명됩니다. 결과에는 클레임을 증명supportingRules하는과 클레임이 어떻게 적용되는지 claimsTrueScenario 보여주는이 포함됩니다. |
예상 결과인 경우 테스트가 통과합니다. untranslatedPremises 및에서 검증되지 않은 입력 부분이 untranslatedClaims 있는지 확인합니다. VALID 결과는 변환된 클레임만 포함합니다. |
INVALID |
클레임은 정책 규칙과 모순됩니다. 조사 결과에는 위반된 규칙을 contradictingRules 보여주는 것이 포함됩니다. |
예상 결과인 경우 테스트가 통과합니다. 예기치 않은 경우 규칙이 올바른지 또는 번역에 잘못된 변수가 할당되었는지 확인합니다. contradictingRules를 검토하여 결과를 유발한 규칙을 파악합니다. |
SATISFIABLE |
클레임은 정책과 일치하지만 모든 관련 규칙을 다루지는 않습니다. 응답은 일부 조건에서는 정확하지만 전부는 아닙니다. 결과에는 클레임이 true 및 false인 조건을 claimsTrueScenario claimsFalseScenario 보여주는 및가 모두 포함됩니다. |
두 시나리오를 비교하여 누락된 조건을 식별합니다. 이는 일반적으로 응답이 불완전하다는 것을 의미합니다. 잘못된 것은 아니지만 모든 요구 사항을 언급하지는 않습니다. 테스트에서 예상해야 하는지 SATISFIABLE 또는 응답이 더 완전해야 하는지 고려합니다. |
IMPOSSIBLE |
온프레미스가 모순되거나 정책 자체에 충돌하는 규칙이 포함되어 있기 때문에 자동 추론 검사는 클레임을 평가할 수 없습니다. | 테스트 입력에 모순되는 문이 포함되어 있는지 확인합니다(예: "I'm full-time and also part-time"). 입력이 유효하면 정책에서 충돌이 발생할 수 있습니다. 품질 보고서에서 충돌하는 규칙을 확인하세요. 자동 추론 정책 문제 해결 및 구체화을(를) 참조하세요. |
TRANSLATION_AMBIGUOUS |
자연어에서 공식 로직으로의 번역은 모호했습니다. 번역에 사용된 여러 LLMs 입력을 해석하는 방법에 대해 일치하지 않았습니다. 결과에는 의견 차이를 이해하는 데 도움이 되는 대체 해석이 포함되어 있습니다. | 이는 일반적으로 변수 설명 문제입니다. 대체 해석을 검토하여 불일치가 있는 위치를 파악한 다음 관련 변수 설명을 개선합니다. 일반적인 원인: 겹치는 변수, 모호한 설명 또는 모호한 입력 텍스트. 자동 추론 정책 문제 해결 및 구체화을(를) 참조하세요. |
TOO_COMPLEX |
입력에 지연 시간 제한 내에서 자동 추론 검사를 처리하기에 너무 많은 정보가 포함되어 있습니다. | 테스트 입력을 간소화합니다. 문제가 지속되면 정책이 너무 복잡할 수 있습니다. 여러 개의 집중된 정책으로 분할하거나 비선형 산술과 관련된 규칙을 단순화하는 것이 좋습니다. |
NO_TRANSLATIONS |
입력을 공식 로직으로 변환할 수 없습니다. 이는 일반적으로 입력이 정책의 도메인과 관련이 없거나 정책에 입력의 개념을 모델링하는 변수가 없음을 의미합니다. | 입력이 정책과 관련이 있어야 하는 경우 누락된 변수를 추가하고 규칙을 업데이트합니다. 입력이 실제로 비주제인 경우이 결과가 예상됩니다. 애플리케이션이 비주제 콘텐츠를 별도로 처리해야 합니다(예: 주제 정책 사용). |
실패한 테스트에 대한 팁 디버깅
테스트가 실패하면(실제 결과가 예상 결과와 일치하지 않음) 다음 접근 방식을 사용하여 문제를 진단합니다.
-
먼저 번역을 확인합니다. 조사 결과에서 온프레미스와 클레임을 살펴봅니다. 올바른 변수가 할당되나요? 값이 정확합니까? 변환이 잘못된 경우 규칙이 아닌 변수 설명에 문제가 있는 것입니다. 예를 들어 "2년"이
tenureMonths = 2대신 로 변환된 경우tenureMonths = 24변수 설명은 단위 변환을 지정해야 합니다. -
규칙을 확인합니다. 번역이 정확해 보이면 정책 규칙에 문제가 있는 것입니다. 조사 결과
contradictingRules에서supportingRules또는를 살펴보고 관련된 규칙을 식별합니다. 이를 소스 문서와 비교합니다. -
번역되지 않은 콘텐츠가 있는지 확인합니다.
untranslatedPremises및를 살펴봅니다untranslatedClaims. 입력의 중요한 부분이 번역되지 않은 경우 이러한 개념을 캡처하기 위해 변수를 추가해야 할 수 있습니다. -
신뢰도 점수를 확인합니다. 신뢰도 점수가 낮으면 번역 모델이 일치하지 않음을 나타냅니다. 이는 변수 설명이 이러한 유형의 입력에 대해 모호함을 시사합니다.
자세한 문제 해결 지침은 섹션을 참조하세요자동 추론 정책 문제 해결 및 구체화.