View a markdown version of this page

선택적 최적화 - Amazon Bedrock

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

선택적 최적화

기본적으로 고급 프롬프트 최적화는 전체 프롬프트 템플릿의 모든 부분을 end-to-end 다시 작성합니다. 선택적 최적화를 사용하면 옵티마이저가 수정할 수 있는 프롬프트의 섹션을 정확하게 제어할 수 있습니다. 프롬프트가 크거나 복잡하고 일부 섹션이 이미 잘 조정된 경우 선택적 최적화를 사용합니다. 이렇게 하면 여전히 작업이 필요한 부분만 개선할 수 있습니다.

태그 구문

advpo: (고급 프롬프트 최적화) 네임스페이스를 사용하여 예약된 XML 스타일 태그로 프롬프트 템플릿에 주석을 달아 최적화 범위를 제어합니다.

  • <advpo:optimize>...</advpo:optimize> - 섹션을 최적화를 위한 중점 영역으로 표시합니다. 최적화 프로그램은 이러한 태그 내의 콘텐츠를 다시 작성합니다.

  • <advpo:exclude>...</advpo:exclude> - 섹션을 고정 상태로 표시합니다. 최적화 프로그램은 어떤 경우에도 이러한 태그 내의 콘텐츠를 수정하지 않습니다.

advpo: 네임스페이스 접두사는 이미 다른 목적으로 XML과 유사한 마크업을 사용하는 프롬프트와의 충돌을 방지합니다.

최적화 프로그램이 다시 쓸 내용을 결정하는 방법

최적화 프로그램의 동작은 프롬프트 템플릿에 있는 태그에 따라 달라집니다.

태그 있음

동작

Mode

태그 없음

전체 프롬프트가 end-to-end 최적화됨(현재 동작과 동일)

레거시 모드

하나 이상 <advpo:optimize>

최적화 프로그램은 <advpo:optimize> 블록 내에 콘텐츠만 다시 씁니다. 태그가 지정되지 않은 모든 콘텐츠는 보존됩니다.

명시적 포함 모드

<advpo:exclude> 태그만( 없음<advpo:optimize>)

최적화 프로그램은 <advpo:exclude> 블록 내에 없는 모든 것을 다시 씁니다.

제외 전용 모드

두 태그 유형 모두 있음

명시적 포함 모드가 적용됩니다. 최적화 프로그램은 <advpo:optimize> 콘텐츠만 다시 씁니다. 최적화 프로그램은 <advpo:exclude> 태그를 수락하지만 중복으로 취급합니다.

명시적 포함 모드

작은 정보

두 태그 유형이 모두 필요하지는 않습니다. 에서 포커스 영역을 래핑하면 다른 <advpo:optimize>모든 것이 자동으로 보존됩니다. 유지하려는 콘텐츠 주위에 <advpo:exclude> 태그를 추가할 필요가 없습니다. <advpo:optimize> 태그가 없는 <advpo:exclude> 경우에만를 사용합니다. 다른 모든 것을 최적화하면서 특정 섹션을 고정시킵니다.

예제

다음 예제에서는 <advpo:optimize><advpo:exclude> 태그를 사용하여 옵티마이저가 다시 쓰는 프롬프트 템플릿의 섹션을 제어하는 방법을 보여줍니다.

예 advpo:optimize를 사용하여 한 섹션에 집중

이 예제에서는 수신 거부-응답 지침만 최적화되어 있습니다. 최적화 프로그램은 ID 문과 정책 제약 조건을 작성된 대로 정확히 보존합니다.

You are a helpful customer service agent for Acme Corp. Always be polite and professional. <advpo:optimize>When responding to a complaint, acknowledge the customer's frustration, summarize the issue, and propose exactly one concrete resolution. Use bullet points for clarity.</advpo:optimize> Never disclose internal pricing or employee information.
예 advpo:exclude를 사용하여 특정 섹션 고정

이 예제에서는 자격 증명 문과 정책 제약 조건이 고정됩니다. 다른 모든 것(수신 거부-응답 지침)이 최적화되어 있습니다.

<advpo:exclude>You are a helpful customer service agent for Acme Corp. Always be polite and professional.</advpo:exclude> When responding to a complaint, acknowledge the customer's frustration, summarize the issue, and propose exactly one concrete resolution. Use bullet points for clarity. <advpo:exclude>Never disclose internal pricing or employee information.</advpo:exclude>
예다중 최적화 블록

최적화를 위해 여러 개의 비연속 섹션을 표시할 수 있습니다. 최적화 프로그램은 일부 또는 전부를 다시 쓸 수 있습니다.

You are a technical support assistant for CloudWidget. <advpo:optimize>When diagnosing an issue, ask clarifying questions about the customer's environment before suggesting solutions.</advpo:optimize> Always check the knowledge base before escalating. <advpo:optimize>When providing a solution, include step-by-step instructions with numbered steps. End with a verification step the customer can perform.</advpo:optimize> Never share internal ticket IDs with customers.
예콘텐츠 생성을 위한 빈 최적화 블록

<advpo:optimize> 블록은 최적화 프로그램이 해당 위치에 새 프롬프트 콘텐츠를 생성하고 삽입하도록 지시합니다.

You are a helpful assistant that summarizes documents. {{document}} <advpo:optimize></advpo:optimize> Respond in plain English. Keep your summary under 200 words.

자리 표시자 변수와의 상호 작용

다음 규칙은 자리 표시자 변수가 선택적 최적화 태그와 상호 작용하는 방법을 설명합니다.

  • 내의 변수<advpo:exclude>: 런타임은 여전히 런타임 {{variableName}} 시와 같은 변수를 대체합니다. 제외 사항은 주변 템플릿 텍스트에 적용됩니다. "이 템플릿 텍스트를 다시 작성하지 마세요"는 "변수를 대체하지 마세요"를 의미하지 않습니다.

  • 내의 변수<advpo:optimize>: 변수 자리 표시자는 자리 표시자로 보존됩니다. 최적화 프로그램은 주변 지침을 다시 작성하지만 {{variableName}} 참조는 그대로 유지합니다.

  • 런타임 시 변수 값 내의 태그: 최적화 프로그램은 이러한 태그를 무시합니다. 태그 구문 분석은 변수 대체 전에 템플릿에서만 수행됩니다. 이렇게 하면 사용자가 제공한 입력 값을 통해 최적화 지시문이 삽입되는 것을 방지할 수 있습니다.

검증 규칙

다음 구성으로 인해 검증 오류가 발생합니다.

잘못된 구성

오류

해결 방법

중첩 태그(예: <advpo:optimize> 내부 <advpo:exclude>또는 반대 방향)

ValidationException

중첩을 제거합니다. 템플릿의 지정된 위치에 하나의 태그 유형만 사용합니다.

형식이 잘못되었거나 닫히지 않은 태그(예: 닫는 태그 <advpo:optimize> 없음)

ValidationException

모든 열기 태그에 일치하는 닫기 태그가 있는지 확인합니다.

advpo: 네임스페이스의 철자가 잘못된 태그(예: <advpo:optmize>)

ValidationException

optimize 및의 철자를 확인합니다exclude. 고급 프롬프트 최적화는 열기 및 닫기 태그를 모두 검증합니다.

출력 동작

작업 종료 시 반환되는 최적화된 프롬프트에서 옵티마이저는 모든 <advpo:optimize><advpo:exclude> 태그를 제거합니다. 최적화 마크업 없이 깨끗한 프롬프트가 표시됩니다. <advpo:exclude> 블록 내의 콘텐츠(및 명시적 포함 모드에서 태그가 지정되지 않은 콘텐츠)는 변경되지 않은 상태로 표시됩니다. <advpo:optimize> 블록 내의 콘텐츠에는 옵티마이저의 재작성된 버전이 포함되어 있습니다.

추가 동작

다음 표에서는 최적화 프로그램이 추가 시나리오를 처리하는 방법을 설명합니다.

시나리오

동작

여러 <advpo:optimize> 블록

모두 최적화 대상입니다. 최적화 프로그램은 일부 또는 전부를 다시 쓸 수 있습니다.

여러 <advpo:exclude> 블록

모든 <advpo:exclude> 태그 내의 모든 콘텐츠가 고정됩니다.

<advpo:optimize> 블록

유효. 최적화 프로그램은 해당 위치에 새 콘텐츠를 생성하고 삽입합니다.

공백 전용 <advpo:optimize> 블록

동일한를 빈 블록으로 처리했습니다.

<advpo:exclude> 블록

무시됨(no-op). 고정할 콘텐츠가 없습니다.

태그는 문장 중간 단어 또는 중간 문구를 분할합니다.

허용됩니다. 최적화 프로그램은 태그가 지정된 콘텐츠에서 하나의 단위로 작동합니다. 최적화 프로그램에서 경고가 발생할 수 있습니다.

모범 사례

선택적 최적화를 사용할 때는 다음 모범 사례를 따르세요.

  • <advpo:optimize> 태그로 시작합니다. 명시적 포함 모드는 가장 직관적입니다. 개선하려는 사항을 표시하면 다른 모든 것은 동일하게 유지됩니다.

  • 최적화 블록을 독립형으로 유지합니다. 각 블록 내에 전체 지침 또는 논리적 섹션을 배치합니다. 중간 문장 분할은 허용되지만 어색한 결과를 생성할 수 있습니다.

  • 프롬프트가 이미 부분적으로 조정된 경우 선택적 최적화를 사용합니다. 안전 제약 조건 또는 출력 형식 지침을 이미 조정한 경우 옵티마이저가 여전히 작업이 필요한 섹션에 집중하도록 고정하십시오.

  • 멀티턴 패턴과 결합합니다. 모놀리식 다단계 프롬프트( 참조멀티턴 및 스테이징 프롬프트 최적화)에서 <advpo:optimize>를 사용하여 대화 처리 표준 문안을 고정하면서 개선이 필요한 단계 지침만 대상으로 지정합니다.