상황에 맞는 접지 점검 - Amazon Bedrock

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

상황에 맞는 접지 점검

Amazon Bedrock용 Guardrails는 참조 소스 및 사용자 쿼리가 제공될 때 모델 응답에서 환각을 감지하고 필터링하기 위한 상황별 접지 검사를 지원합니다. 지원되는 사용 사례는 검색 증강 생성 (RAG), 요약, 의역 또는 검색된 패스 인 또는 대화 기록과 같은 참조 소스를 사용하여 상담원이 대화를 진행하도록 하는 대화형 에이전트 등에 걸쳐 있습니다. RAG

상황별 그라운드 체크는 두 가지 패러다임에 걸쳐 환각 여부를 평가합니다.

  • 접지 — 모델 응답이 출처를 기반으로 사실적으로 정확하고 출처에 근거하는지 확인합니다. 응답에 새로 도입된 모든 정보는 근거가 없는 것으로 간주됩니다.

  • 관련성 — 모델 응답이 사용자 쿼리와 관련이 있는지 확인합니다.

참조 소스에 “런던은 영국의 수도입니다.” 라는 내용이 포함된 예를 들어 보겠습니다. 도쿄는 일본의 수도이고 사용자 쿼리는 “일본의 수도는 어디입니까?” 입니다. “일본의 수도는 런던”과 같은 응답은 근거가 없고 사실적으로 잘못된 것으로 간주되며, “영국의 수도는 런던”과 같은 응답은 출처에 정확하고 근거가 있더라도 관련이 없는 것으로 간주됩니다.

참고

요청에 여러 grounding_source 태그가 포함된 경우 가드레일은 제공된 모든 grounding_source 값을 개별적으로 고려하지 않고 함께 조합하여 평가합니다. grounding_source 이 동작은 태그에서도 동일합니다. query

참고

상황별 접지 정책은 현재 접지 소스의 경우 최대 100,000자, 쿼리의 경우 1,000자, 응답에 최대 5,000자를 지원합니다.

신뢰도 점수 및 임계값

상황별 접지 검사는 제공된 소스 및 사용자 쿼리를 기반으로 처리된 각 모델 응답에 대해 접지 및 관련성에 해당하는 신뢰도 점수를 생성합니다. 생성된 점수를 기준으로 모델 응답을 필터링하도록 임계값을 구성할 수 있습니다. 필터링 임계값은 모델 응답이 제너레이티브 AI 애플리케이션에서 근거가 있고 관련성이 있는 것으로 간주하기 위한 최소 허용 신뢰도 점수를 결정합니다. 예를 들어 접지 임계값과 관련성 임계값이 각각 0.7로 설정된 경우 근거 또는 관련성 점수가 0.7 미만인 모든 모델 응답은 환각으로 감지되어 애플리케이션에서 차단됩니다. 필터링 임계값이 증가하면 근거가 없거나 관련 없는 콘텐츠를 차단할 가능성이 높아지고 애플리케이션에서 환각 콘텐츠를 볼 가능성이 줄어듭니다. 기준 및 관련성 임계값을 0에서 0.99 사이로 구성할 수 있습니다. 임계값 1은 모든 콘텐츠를 차단하므로 유효하지 않습니다.

상황별 접지 검사를 수행하려면 접지 소스, 쿼리, 보호할 콘텐츠 (또는 모델 응답) 의 3가지 구성 요소가 필요합니다. 이러한 설정은 APIs Invoke, Converse 또는 직접 사용 여부에 따라 다르게 구성됩니다. APIs ApplyGuardrail

  • 접지 소스 — 모든 사용자 쿼리에 응답하는 데 필요한 컨텍스트 정보입니다. 예를 들어, “런던은 영국의 수도입니다. 도쿄는 일본의 수도입니다.”

  • 쿼리 — 사용자가 질문할 수 있는 질문입니다. 예: “일본의 수도는 어디입니까?”

  • 보호해야 할 콘텐츠 — 접지 소스 및 쿼리와 관련하여 보호해야 하는 텍스트입니다. Invoke 및 APIs Converse의 경우 모델 응답은 다음과 같습니다. 예를 들어 “일본의 수도는 도쿄”일 수 있습니다.

근거 없는 예

  • 근거 출처 - “런던은 영국의 수도입니다. 도쿄는 일본의 수도입니다.”

  • 질문 - “일본의 수도는 어디입니까?”

  • 지켜야 할 내용 - “일본의 수도는 런던입니다.”

이 예제에서 보호해야 할 콘텐츠는 쿼리와 관련이 있지만 접지 소스를 제대로 사용하지 않기 때문에 근거가 없습니다. 이렇게 하면 접지 점수가 낮을 수 있습니다.

관련 없는 예

  • 근거 출처 - “런던은 영국의 수도입니다. 도쿄는 일본의 수도입니다.”

  • 질문 - “일본의 수도는 어디입니까?”

  • 지켜야 할 내용 - “영국의 수도는 런던입니다.”

이 예시에서는 보호해야 할 콘텐츠가 근거가 있지만 관련성은 없습니다. 접지 소스의 정보를 사용하지만 쿼리에 응답하지는 않습니다. 이 경우 관련성 점수가 낮을 수 있습니다.

근거가 없고 관련 없는 예

  • 근거 출처 - “런던은 영국의 수도입니다. 도쿄는 일본의 수도입니다.”

  • 질문 - “일본의 수도는 어디입니까?”

  • 조심해야 할 내용 - “밖에 비가 내리고 있어요.”

이 예시에서는 보호해야 할 콘텐츠가 근거가 없고 관련성이 없습니다. 접지 소스의 정보를 사용하지도 않고 쿼리에 응답하지도 않습니다. 이 경우 접지 및 관련성 점수가 낮을 수 있습니다.

더 많은 예시

수수료 및 수수료와 관련된 질문에 답하도록 설계된 뱅킹 애플리케이션을 생각해 보십시오.

출처:

  • 당좌예금 계좌 개설과 관련된 수수료는 없습니다.

  • 당좌 예금 계좌 유지 수수료는 월 10달러입니다.

  • 해외 송금에는 1% 의 거래 수수료가 부과됩니다.

  • 국내 송금에는 수수료가 부과되지 않습니다.

  • 신용카드 청구서 연체와 관련된 수수료는 23.99% 입니다.

위 출처를 바탕으로 사용자의 쿼리에 따라 네 가지 시나리오가 있을 수 있습니다.

근거 및 관련성

  • Q: 당좌 예금 계좌와 관련된 수수료는 얼마입니까?

  • A: 당좌 예금 계좌 유지 관리 수수료는 월 10달러입니다. 국내 송금에는 수수료가 부과되지 않습니다. 단, 해외 송금에는 1% 의 거래 수수료가 부과됩니다. 당좌 예금 계좌 개설과 관련된 수수료는 없습니다.

근거는 없지만 관련성이 있습니다.

  • Q: 신용카드와 관련된 거래 수수료는 얼마입니까?

  • A: 신용 카드와 관련된 거래 수수료는 23.99% 입니다.

근거가 있지만 관련이 없음

  • Q: 당좌예금 계좌 사용 시 수수료는 어떻게 되나요?

  • A: 제공된 정보에 따르면 신용카드의 연체 수수료는 23.99% 입니다.

근거가 없고 관련이 없습니다.

  • Q: 당좌예금 계좌 사용 시 수수료는 어떻게 되나요?

  • A: 중개 계좌에 대한 수수료는 거래 거래당 $0.5입니다.

Invoke를 통한 상황별 접지 확인 요청 APIs

입력 내에 접지 소스와 쿼리를 표시하기 위해 입력 태그와 동일한 방식으로 작동하는 2개의 태그를 제공합니다. 이 태그는 amazon-bedrock-guardrails-groundingSource_xyz xyz이며 태그 접미사가 xyz인 amazon-bedrock-guardrails-query_xyz 것으로 가정합니다. 예:

{ "text": """ <amazon-bedrock-guardrails-groundingSource_xyz>London is the capital of UK. Tokyo is the capital of Japan. </amazon-bedrock-guardrails-groundingSource_xyz> <amazon-bedrock-guardrails-query_xyz>What is the capital of Japan?</amazon-bedrock-guardrails-query_xyz> """, "amazon-bedrock-guardrailConfig": { "tagSuffix": "xyz", }, }

상황별 접지 검사를 수행하려면 모델 응답이 필요하므로 프롬프트가 아닌 출력 시에만 검사가 수행된다는 점에 유의하십시오.

이러한 태그는 태그와 함께 사용할 수 있습니다. guardContent guardContent 태그를 사용하지 않는 경우 가드레일은 기본적으로 접지 소스 및 쿼리를 포함하여 전체 입력에 구성된 모든 정책을 적용합니다. guardContent 태그를 사용하는 경우 상황별 접지 검사 정책은 접지 소스, 쿼리 및 응답만 조사하고 나머지 정책은 태그 내의 콘텐츠를 조사합니다. guardContent

Converse를 사용하여 상황별 접지 검사를 호출합니다. APIs

Converse에 대한 접지 소스 및 쿼리를 표시하려면 각 가드 콘텐츠 블록의 APIs 한정자 필드를 사용하십시오. 예:

[ { "role": "user", "content": [ { "guardContent": { "text": { "text": "London is the capital of UK. Tokyo is the capital of Japan", "qualifiers": ["grounding_source"], } } }, { "guardContent": { "text": { "text": "What is the capital of Japan?", "qualifiers": ["query"], } } }, ], } ]

상황별 접지 검사를 수행하려면 모델 응답이 필요하므로 프롬프트가 아닌 출력 시에만 검사가 수행된다는 점에 유의하십시오.

콘텐츠 블록 중 guard_content 한정자로 표시된 것이 없는 경우 상황별 접지 검사 정책은 접지 소스, 쿼리 및 응답만 조사합니다. 나머지 정책은 기본 조사 동작을 따릅니다. 즉, 시스템 프롬프트는 기본적으로 조사되지 않음으로 설정되고 메시지는 기본적으로 조사 중으로 설정됩니다. 그러나 콘텐츠 블록이 guard_content 한정자로 표시된 경우 상황별 접지 검사 정책은 접지 소스, 쿼리 및 응답만 조사하고 나머지 정책은 태그가 표시된 콘텐츠를 조사합니다. guardContent

다음과 같이 상황별 접지 검사를 호출합니다. ApplyGuardrail API

상황별 접지 검사를 사용하는 ApplyGuardrail 것은 Converse에서 사용하는 것과 비슷합니다. APIs 접지 소스와 쿼리를 표시하려면 각 콘텐츠 블록의 ApplyGuardrail 한정자 필드를 사용하십시오. 그러나 모델은 호출되지 않으므로 보호할 콘텐츠가 포함된 ApplyGuardrail 추가 콘텐츠 블록도 제공해야 합니다. 이 콘텐츠 블록은 guard_content를 사용하여 선택적으로 한정할 수 있으며 이는 Invoke* 또는 Converse*의 모델 응답과 동일합니다. APIs 예:

[ { "text": { "text": "London is the capital of UK. Tokyo is the capital of Japan", "qualifiers": [ "grounding_source" ] } }, { "text": { "text": "What is the capital of Japan?", "qualifiers": [ "query" ] } }, { "text": { "text": "The capital of Japan is Tokyo." } } ]

상황별 접지 검사를 수행하려면 모델 응답이 필요하므로 프롬프트가 아닌 출력 시에만 검사가 수행된다는 점에 유의하십시오.

콘텐츠 블록 중 guard_content 한정자로 표시된 것이 없는 경우 상황별 접지 검사 정책은 접지 소스, 쿼리 및 응답만 조사합니다. 나머지 정책은 기본 조사 동작을 따릅니다. 즉, 시스템 프롬프트는 기본적으로 조사되지 않음으로 설정되고 메시지는 기본적으로 조사 중으로 설정됩니다. 그러나 콘텐츠 블록이 guard_content 한정자로 표시된 경우 상황별 접지 검사 정책은 접지 소스, 쿼리 및 응답만 조사하고 나머지 정책은 태그가 표시된 콘텐츠를 조사합니다. guardContent

상황별 접지 검사에 대한 자세한 내용은 상황별 접지 검사 사용을 참조하십시오.