기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
자동 추론 검사 개념
이 페이지에서는 자동 추론 검사의 구성 요소를 설명합니다. 이러한 개념을 이해하면 효과적인 정책을 생성하고, 테스트 결과를 해석하고, 문제를 디버깅하는 데 도움이 됩니다. 자동 추론 검사가 수행하는 작업과 이를 사용하는 시기에 대한 개략적인 개요는 섹션을 참조하세요규칙.
정책
자동 추론 정책은 공식 로직 규칙 세트, 변수 스키마 및 선택적 사용자 지정 유형을 포함하는 AWS 계정의 리소스입니다. 이 정책은 LLM 응답을 검증하려는 비즈니스 규칙, 규정 또는 지침을 인코딩합니다.
정책은 자연어로 규칙을 설명하는 HR 핸드북, 규정 준수 매뉴얼 또는 제품 사양과 같은 소스 문서에서 생성됩니다. 정책을 생성하면 자동 추론 검사는 문서에서 규칙과 변수를 추출하여 수학적으로 확인할 수 있는 공식 로직으로 변환합니다.
정책, 가드레일과 애플리케이션 간의 관계는 다음과 같습니다.
Source Document ──► Automated Reasoning Policy ──► Guardrail ──► Your Application (natural (rules + variables + (references (calls guardrail language) custom types) a policy APIs to validate version) LLM responses)
정책의 주요 특성:
-
각 정책은 Amazon 리소스 이름(ARN)으로 식별되며 특정 AWS 리전에 존재합니다.
-
정책에는 개발 중에 편집하는
DRAFT버전(콘솔에서 "초안 작성"이라고 함)과 배포를 위해 생성한 번호가 매겨진 변경 불가능한 버전이 있습니다. -
가드레일은 초안 정책 또는 번호가 지정된 특정 버전을 참조할 수 있습니다. 번호가 매겨진 버전을 사용하면 배포된 가드레일에 영향을 주지
DRAFT않고를 업데이트할 수 있습니다. -
각 정책은 관련 없는 여러 영역을 다루려고 하지 않고 특정 도메인(예: HR 혜택, 대출 자격, 제품 반환 규칙)에 초점을 맞춰야 합니다.
정책 생성에 대한 step-by-step 지침은 섹션을 참조하세요자동 추론 정책 생성.
Fidelity 보고서
충실도 보고서는 추출된 정책이 생성된 소스 문서를 얼마나 정확하게 나타내는지 측정합니다. 보고서는 소스 문서에서 정책을 생성할 때 자동으로 생성되며, 모든 규칙 및 변수를 소스 콘텐츠의 특정 문에 다시 연결하는 자세한 근거 정보와 함께 두 가지 주요 점수를 제공합니다.
충실도 보고서는 비기술 주제 전문가가 공식 로직을 이해할 필요 없이 정책을 탐색하고 검증할 수 있도록 설계되었습니다. 콘솔의 소스 문서 탭에는 충실도 보고서가 문서에서 추출된 번호가 매겨진 원자성 문 테이블로 표시되며, 각 문이 근거하는 규칙과 변수를 보여줍니다. 특정 규칙 또는 변수를 기준으로 필터링하고 문 내에서 콘텐츠를 검색할 수 있습니다.
충실도 보고서에는 각각 0.0~1.0 범위의 두 가지 점수가 포함됩니다.
-
적용 범위 점수 - 정책이 소스 문서의 문을 얼마나 잘 포함하는지 나타냅니다. 점수가 높을수록 정책에 더 많은 소스 콘텐츠가 표시됩니다.
-
정확도 점수 - 정책 규칙이 소스 구성 요소를 얼마나 충실하게 나타내는지 나타냅니다. 점수가 높을수록 추출된 규칙이 원본 문서의 의도와 더 가깝게 일치함을 의미합니다.
충실도 보고서는 집계 점수 외에도 정책의 각 규칙 및 변수에 대한 자세한 근거를 제공합니다.
-
규칙 보고서 - 각 규칙에 대해 보고서는 이를 지원하는 소스 문서에서 특정 문(접지 문)을 식별하고, 해당 문이 규칙을 정당화하는 방법(접지 정당화)을 설명하고, 개별 정확도 점수에 정당화를 제공합니다.
-
변수 보고서 - 각 변수에 대해 보고서는 변수 정의를 지원하는 소스 문을 식별하고, 정당화를 설명하고, 개별 정확도 점수를 제공합니다.
-
문서 소스 - 소스 문서는 텍스트에서 추출된 개별적이고 보이지 않는 사실인 원자성 문으로 구분됩니다. 각 규칙과 변수를 원본 문서의 정확한 위치로 다시 추적할 수 있도록 문서 콘텐츠에 행 번호가 주석으로 달립니다.
규칙
규칙은 자동 추론 정책의 핵심입니다. 각 규칙은 변수 간의 관계를 캡처하는 공식 로직 표현식입니다. 규칙은 자동 추론 검사가 수학적 검증에 사용하는 공식 로직의 표준 형식인 SMT-LIB
대부분의 규칙은 if-then(가시적) 형식을 따라야 합니다. 즉, 규칙에 암시 연산자에 의해 연결된 조건("if" 부분)과 결론("then" 부분)이 있어야 합니다=>.
올바른 형식의 규칙(if-then 형식):
;; If the employee is full-time AND has worked for more than 12 months, ;; then they are eligible for parental leave. (=> (and isFullTime (> tenureMonths 12)) eligibleForParentalLeave) ;; If the loan amount is greater than 500,000, then a co-signer is required. (=> (> loanAmount 500000) requiresCosigner)
베어 어설션( if-then 구조가 없는 규칙)은 항상 true인 문인 axiom을 생성합니다. 이는 양수 값이 있는 계정 밸런스와 같은 경계 조건을 확인하는 데 유용하지만 특정 조건을 논리적으로 불가능하게 만들고 검증 중에 예상치 못한 IMPOSSIBLE 결과를 초래할 수도 있습니다. 예를 들어, 베어 어설션은 자동 추론 검사가 이를 사용자가 상위 휴가 자격이 있는 것으로 취급한다는 것을 (= eligibleForParentalLeave true) 의미합니다. 자격이 없다고 언급하는 모든 입력은이 어시옴과 모순IMPOSSIBLE되므로의 검증 결과를 생성합니다.
;; GOOD: Useful to check impossible conditions such as ;; negative account balance (>= accountBalance 0) ;; BAD: This asserts eligibility as always true, regardless of conditions. eligibleForParentalLeave
규칙은 다음 로직 연산자를 지원합니다.
| 연산자 | 의미 | 예제 |
|---|---|---|
=> |
암시(if-then) | (=> isFullTime eligibleForBenefits) |
and |
Logical AND | (and isFullTime (> tenure 12)) |
or |
Logical OR | (or isVeteran isTeacher) |
not |
논리적 NOT | (not isTerminated) |
= |
Equality | (= employmentType FULL_TIME) |
>, <, >=, <= |
비교 | (>= creditScore 700) |
효과적인 규칙 작성에 대한 모범 사례는 섹션을 참조하세요자동 추론 정책 모범 사례.
변수
변수는 자동 추론 검사가 자연어를 공식 로직으로 변환하고 규칙을 평가하는 데 사용하는 도메인의 개념을 나타냅니다. 각 변수에는 이름, 유형 및 설명이 있습니다.
자동 추론 검사는 다음 변수 유형을 지원합니다.
| Type | 설명 | 예제 |
|---|---|---|
bool |
true 또는 false 값 | isFullTime - 직원이 정규직으로 근무하고 있는지 여부 |
int |
정수 | tenureMonths - 직원이 근무한 개월 수 |
real |
십진수 | interestRate - 10진수 형태의 연간 이자율(0.05는 5%를 의미함) |
| 사용자 지정 유형( 열거형) | 정의된 집합의 값 1개 | leaveType — PARENTAL, MEDICAL, BEREAVEMENT, PERSONAL 중 하나 |
변수 설명의 중요한 역할
변수 설명은 번역 정확도에서 가장 중요한 단일 요소입니다. 자동 추론 검사는 자연어를 공식 로직으로 변환할 때 변수 설명을 사용하여 텍스트에 언급된 개념에 해당하는 변수를 결정합니다. 모호하거나 불완전한 설명은 TRANSLATION_AMBIGUOUS 결과 또는 잘못된 변수 할당으로 이어집니다.
예: 설명이 번역에 미치는 영향
사용자가 다음과 같이 질문한다고 가정해 보겠습니다. "여기에서 2년 동안 일했습니다. 육아 휴가 자격이 있나요?"
| 모호한 설명(실패할 가능성 있음) | 세부 설명(성공할 가능성이 높음) |
|---|---|
tenureMonths: "직원의 근무 기간" |
tenureMonths: "직원이 지속적으로 고용된 전체 개월 수입니다. 사용자가 서비스 연도를 언급하면 월로 변환합니다(예: 2년 = 24개월). 신규 채용의 경우 0으로 설정합니다.” |
모호한 설명에서 자동 추론 검사는 "2년"을 24개월로 변환할지 모르거나 변수를 전혀 할당하지 않을 수 있습니다. 자세한 설명과 함께 번역은 모호하지 않습니다.
좋은 변수 설명은 다음과 같아야 합니다.
-
변수가 일반 언어로 무엇을 나타내는지 설명합니다.
-
단위와 형식을 지정합니다(예: "월", "십진수로, 0.15는 15%를 의미함").
-
사용자가 사용할 수 있는 비명확한 동의어와 대체 표현을 포함합니다(예: 사용자가 '정규' 또는 '정규 근무'라고 언급하면 ' true로 설정').
-
경계 조건을 설명합니다(예: "신규 채용의 경우 0으로 설정").
사용자 지정 유형( 열거형)
사용자 지정 유형은 변수가 취할 수 있는 명명된 값 집합을 정의합니다. 프로그래밍 언어의 열거형( 열거형)과 동일합니다. 변수가 고정된 값 집합이 있는 범주를 나타내는 경우 사용자 지정 유형을 사용합니다.
예:
| 이름 입력 | 가능한 값 | 사용 사례: |
|---|---|---|
LeaveType |
부모, 의료, 사별, 개인 | 직원이 요청하는 휴가 유형 분류 |
Severity |
CRITICAL, MAJOR, MINOR | 문제 또는 인시던트의 심각도 분류 |
열거형과 부울을 사용하는 경우:
-
값이 상호 배타적인 경우 열거형을 사용합니다. 변수는 한 번에 하나의 값일 수 있습니다. 예를 들어는 PARENTAL 또는 MEDICAL일
leaveType수 있지만 둘 다 동시에 사용할 수는 없습니다. -
상태가 공존할 수 있는 경우 별도의 부울 변수를 사용합니다. 예를 들어, 사람은 재향 군인이자 교사일 수 있습니다. 열거형을 사용하면 두 열거형 간에 선택이 강제로 적용
customerType = {VETERAN, TEACHER}되어 둘 다 적용될 때 논리적 모순이 발생합니다. 대신isVeteran및 라는 두 개의 부울을 사용합니다isTeacher.
작은 정보
변수에 열거형의 값이 없을 수 있는 경우 OTHER 또는 NONE 값을 포함합니다. 이렇게 하면 입력이 정의된 값과 일치하지 않을 때 번역 문제가 방지됩니다.
번역: 자연어에서 공식 로직으로
번역은 자동 추론 검사가 자연어(사용자 질문 및 LLM 응답)를 정책 규칙에 따라 수학적으로 확인할 수 있는 공식 로직 표현식으로 변환하는 프로세스입니다. 이 프로세스를 이해하는 것은 문제를 디버깅하고 효과적인 정책을 만드는 데 중요합니다.
자동 추론 검사는 다음 두 단계로 콘텐츠를 검증합니다.
-
번역 - 자동 추론 검사는 파운데이션 모델(LLMs)을 사용하여 자연어 입력을 공식 로직으로 변환합니다. 이 단계에서는 텍스트의 개념을 정책의 변수에 매핑하고 관계를 논리적 문으로 표현합니다. 이 단계에서는 LLMs 사용하기 때문에 오류가 있을 수 있습니다. 자동 추론 검사는 여러 LLMs 사용하여 입력 텍스트를 변환한 다음 중복 번역의 의미상 동등성을 사용하여 신뢰도 점수를 설정합니다. 번역 품질은 변수 설명이 입력에 사용된 언어와 얼마나 잘 일치하는지에 따라 달라집니다.
-
검증 - 자동 추론 검사는 수학적 기법(SMT 솔버를 통해)을 사용하여 변환된 로직이 정책 규칙과 일치하는지 확인합니다. 이 단계는 수학적으로 적당합니다. 번역이 올바르면 검증 결과가 일관됩니다.
중요
이 2단계 구분은 디버깅에 매우 중요합니다. 정책의 규칙이 올바른지 확신하는 경우 테스트가 실패하거나 예기치 않은 결과를 반환하면 2단계(검증)가 아닌 1단계(번역)에서 문제가 발생할 가능성이 큽니다. 수학 검증은 적당하며 번역이 입력의 의미를 올바르게 캡처하면 검증 결과가 정확합니다. 변수 설명을 개선하고 번역이 올바른 변수에 올바른 값을 할당하도록 하는 데 디버깅 노력을 집중합니다.
예: 작업 중 번역
변수isFullTime(bool), (int), tenureMonths (eligibleForParentalLeavebool) 및 입력이 포함된 정책이 주어짐:
-
질문: "저는 정규직 직원이며 18개월 동안 근무했습니다. 육아 휴가를 사용할 수 있나요?"
-
답변: "예, 육아 휴가 자격이 있습니다."
1단계(번역)는 다음을 생성합니다.
Premises: isFullTime = true, tenureMonths = 18 Claims: eligibleForParentalLeave = true
2단계(검증)는 이러한 할당을 정책 규칙(=> (and isFullTime (> tenureMonths 12)) eligibleForParentalLeave)과 비교하여 확인하고 클레임이 인지 확인합니다VALID.
번역 정확도를 높이려면:
-
사용자가 일상적인 언어로 개념을 참조하는 방법을 다루는 자세한 변수 설명을 작성합니다.
-
번역을 혼동시킬 수 있는 중복 또는 거의 중복된 변수를 제거합니다(예:
tenureMonths및monthsOfService). -
규칙에서 참조하지 않는 미사용 변수를 삭제합니다. 그러면 변환 프로세스에 노이즈가 추가됩니다.
-
question-and-answer 테스트를 사용하여 실제 사용자 입력으로 번역 정확도를 검증합니다. 자세한 내용은 자동 추론 정책 테스트 단원을 참조하십시오.
결과 및 검증 결과
자동 추론 검사가 콘텐츠를 검증하면 결과 집합이 생성됩니다. 각 결과는 검증 결과, 사용된 변수 할당 및 결론을 지원하는 정책 규칙과 함께 입력에서 추출된 사실적 클레임을 나타냅니다. 전체(집계된) 결과는 심각도에 따라 결과를 정렬하고 최악의 결과를 선택하여 결정됩니다. 최악의 심각도부터 최상의 심각도 순서는 TRANSLATION_AMBIGUOUS, IMPOSSIBLE, INVALID, SATISFIABLE, 입니다VALID.
조사 결과의 구조
결과 유형에 따라 결과에 존재하는 필드가 결정됩니다. 각 결과 유형에 대한 자세한 설명은 검증 결과 참조 섹션을 참조하세요. 그러나 대부분의 결과 유형은 다음 구성 요소가 포함된 공통 translation 객체를 공유합니다.
premises-
클레임 평가 방법에 영향을 미치는 입력에서 추출된 컨텍스트, 가정 또는 조건입니다. 질의응답 형식에서 전제는 질문 자체인 경우가 많습니다. 답변에는 제약 조건을 설정하는 온프레미스도 포함될 수 있습니다. 예를 들어 "I'm a full-time employee with 18 months of service"에서 온프레미스는
isFullTime = true및 입니다tenureMonths = 18. claims-
자동 추론 검사가 정확도를 평가하는 사실적 문입니다. 질의응답 형식에서 주장은 보통 답변입니다. 예를 들어 "예, 육아 휴가 자격이 있습니다"에서 클레임은 입니다
eligibleForParentalLeave = true. confidence-
특정 자동 추론 검사가 자연어에서 공식 로직으로의 번역에 대한 것인지를 나타내는 0.0에서 1.0까지의 점수입니다. 점수가 높을수록 확실성이 높음을 나타냅니다. 신뢰도 1.0은 동일한 해석에 합의된 모든 번역 모델을 의미합니다.
untranslatedPremises-
온프레미스에 해당하지만 공식 로직으로 변환할 수 없는 원본 입력 텍스트의 일부에 대한 참조입니다. 이는 자동 추론이 관련성이 있다고 인식했지만 정책 변수에 매핑할 수 없는 입력 부분을 강조 표시합니다.
untranslatedClaims-
클레임에 해당하지만 공식 로직으로 변환할 수 없는 원본 입력 텍스트의 일부에 대한 참조입니다.
VALID결과는 번역된 클레임만 다루며 번역되지 않은 클레임은 검증되지 않습니다.
검증 결과 참조
각 결과는 정확히 다음 유형 중 하나입니다. 유형에 따라 결과의 의미, 결과에서 사용할 수 있는 필드, 애플리케이션에 대한 권장 작업이 결정됩니다. translation 필드를 포함하는 모든 결과 유형에는 변환에 정책 규칙과 무관한 논리적 문제(예: 항상 true 또는 항상 false인 문)가 포함된 경우 존재하는 logicWarning 필드도 포함됩니다.
| 결과 | 결과 필드 | 권장 조치 |
|---|---|---|
VALID |
|
사용자에게 응답을 제공합니다. 감사 claimsTrueScenario 목적의 로그 supportingRules 및 - 수학적으로 검증 가능한 유효성 증명을 제공합니다. 검증되지 않은 입력 부분이 untranslatedClaims 있는지 untranslatedPremises 및를 확인합니다. |
INVALID |
|
응답을 제공하지 마십시오. translation (요청된 내용을 보려면) 및 contradictingRules (위반된 규칙을 보려면)를 사용하여 응답을 다시 작성하거나 차단합니다. 재작성 루프에서 모순되는 규칙과 잘못된 클레임을 LLM에 전달하여 수정된 응답을 생성합니다. |
SATISFIABLE |
|
claimsTrueScenario 및 claimsFalseScenario를 비교하여 누락된 조건을 식별합니다. 응답을 다시 작성하여를 만드는 데 필요한 추가 정보를 포함하거나VALID, 누락된 조건에 대한 설명을 사용자에게 요청하거나, 불완전할 수 있다는 경고와 함께 응답을 제공합니다. |
IMPOSSIBLE |
|
입력에 모순되는 문이 포함되어 있는지 확인합니다(예: "I'm full-time and also part-time"). 입력이 유효하면 정책에 모순이 있을 수 있습니다. 품질 보고서를 contradictingRules 확인하고 검토합니다. 자동 추론 정책 문제 해결 및 구체화을(를) 참조하세요. |
TRANSLATION_AMBIGUOUS |
|
를 검사options하여 불일치를 이해합니다. 모호성을 줄이거나, 겹치는 변수를 병합 또는 제거하거나, 사용자에게 설명을 요청하도록 변수 설명을 개선합니다. 신뢰도 임계값을 조정할 수도 있습니다. 단원을 참조하십시오신뢰도 임계값. |
TOO_COMPLEX |
|
입력을 더 작은 조각으로 나누어 단축하거나 변수 수를 줄여 정책을 단순화하고 복잡한 산술(예: 지수 또는 비합리적 숫자)을 방지합니다. 정책을 더 작고 집중적인 정책으로 분할할 수 있습니다. |
NO_TRANSLATIONS |
|
다른 NO_TRANSLATIONS 결과 중 하나에 번역되지 않은 온프레미스 또는 클레임이 포함될 때마다 결과가 출력에 포함됩니다. 다른 조사 결과를 살펴보고 변환되지 않은 입력 부분을 확인합니다. 콘텐츠가 관련성이 있어야 하는 경우 정책에 변수를 추가하여 누락된 개념을 캡처합니다. 콘텐츠가 주제가 아닌 경우 주제 정책을 사용하여 자동 추론 검사에 도달하기 전에 필터링하는 것이 좋습니다. |
참고
VALID 결과는 변환된 온프레미스 및 클레임의 정책 변수를 통해 캡처된 입력 부분만 포함합니다. 정책의 변수 범위를 벗어나는 문은 검증되지 않습니다. 예를 들어 "가짜 의사 메모가 있어 숙제를 늦게 제출할 수 있습니다"는 정책에 의사 메모가 가짜인지 여부를 캡처할 변수가 없는 경우 유효한 것으로 간주될 수 있습니다. 자동 추론 확인에는 결과에 번역되지 않은 전제로서 "가짜 의사 메모"가 포함될 수 있습니다. 번역되지 않은 콘텐츠와 NO_TRANSLATIONS 조사 결과를 경고 신호로 취급합니다.
신뢰도 임계값
자동 추론 검사는 여러 파운데이션 모델을 사용하여 자연어를 공식 로직으로 변환합니다. 각 모델은 자체 번역을 독립적으로 생성합니다. 신뢰도 점수는 이러한 번역 간의 일치 수준, 특히 의미상 동등한 해석을 생성한 모델의 비율을 나타냅니다.
신뢰도 임계값은 변환이 검증하기에 충분히 신뢰할 수 있는 것으로 간주되는 데 필요한 최소 계약 수준을 결정하는 설정한 값(0.0~1.0)입니다. 적용 범위와 정확도 간의 균형을 제어합니다.
-
높은 임계값(예: 0.9): 번역 모델 간에 강력한 동의가 필요합니다. 더 적은 조사 결과를 생성하지만 정확도는 더 높습니다. 더 많은 입력은 로 플래그가 지정됩니다
TRANSLATION_AMBIGUOUS. -
하한 임계값(예: 0.5): 덜 일치하는 번역을 수락합니다. 더 많은 결과를 생성하지만 잘못된 번역의 위험이 더 높습니다. 더 적은 입력이 로 플래그 지정됩니다
TRANSLATION_AMBIGUOUS.
임계값 작동 방식:
-
여러 파운데이션 모델은 각각 입력을 독립적으로 변환합니다.
-
임계값과 같거나 높은 비율의 모델이 지원하는 번역은 최종 결과(
VALID,INVALID등)가 있는 신뢰도가 높은 결과가 됩니다. -
하나 이상의 번역이 임계값 아래로 떨어지면 자동 추론 검사에서 추가
TRANSLATION_AMBIGUOUS조사 결과가 표시됩니다. 이 결과에는 변수 설명을 개선하거나 사용자에게 설명을 요청하는 데 사용할 수 있는 모델 간의 불일치에 대한 세부 정보가 포함됩니다.
작은 정보
기본 임계값으로 시작하고 테스트 결과에 따라 조정합니다. 명확해야 하는 입력에 대한 TRANSLATION_AMBIGUOUS 결과가 너무 많으면 임계값을 낮추지 말고 변수 설명을 개선하는 데 집중하세요. 임계값을 낮추면 TRANSLATION_AMBIGUOUS 결과가 줄어들 수 있지만 잘못된 검증의 위험이 증가합니다.