0Pricing
AI Prompt Engineering · 강의

서로 모순되는 요구 사항

서로 충돌하는 제약 조건이 모델을 혼란스럽게 하고 유보적인 응답을 만드는 방식을 알아봅니다.

서로 모순되는 요구 사항은(는) CoddyKit의 무료 AI Prompt Engineering 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Prompt Engineering 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Prompt Engineering 강의에는 총 4개의 강의가 포함되어 있습니다.

모순 문제

서로 모순되는 요구 사항이 포함된 프롬프트는 동시에 완전히 달성할 수 없는 두 가지 목표를 모델에 요청합니다. 정보가 너무 적은 것이 문제인 모호함과 달리, 모순은 모델에 상충하는 정보를 제공하여 임의의 절충을 하도록 만듭니다.

모델은 요구 사항이 서로 모순된다고 알려주지 않습니다. 무언가를 생성하지만, 그 결과는 한 요구 사항을 충족하기 위해 다른 요구 사항을 조용히 희생합니다. 출력 결과를 자세히 살펴보기 전까지는 이를 알아차리지 못할 수도 있습니다.

고전적인 모순 1: 짧지만 포괄적으로

“클라우드 컴퓨팅의 모든 측면을 포괄적으로 다루는 간략한 개요를 작성해 주세요.”

짧다는 것은 분량이 적다는 뜻입니다. 포괄적이라는 것은 철저하게 다룬다는 뜻입니다. 클라우드 컴퓨팅처럼 범위가 넓은 주제에서는 이 두 목표가 공존할 수 없습니다. 무언가는 희생해야 합니다.

모델은 일반적으로 깊이보다 폭(많은 주제를 조금씩 다룸)을 우선하여 얕고 목록 같은 개요를 생성합니다. 그러나 시작 문장에서 이를 ‘포괄적’이라고 표현하여 완전하다는 잘못된 인상을 줍니다.

해결 방법: 어느 쪽이 더 중요한지 결정한 다음 범위를 줄이십시오. “클라우드 컴퓨팅의 상위 3가지 모델에 대한 간략한 개요”라고 하면 두 목표를 모두 달성할 수 있습니다.

고전적인 모순 2: 격식 있지만 재미있게

“격식을 갖춘 보고서이면서 재미있고 흥미롭게 작성해 주세요.”

격식 있는 글쓰기는 절제된 언어, 3인칭, 구조화된 섹션, 구어체 표현을 사용하지 않는 등의 관례를 따릅니다. 재미있고 흥미로운 글쓰기는 일반적으로 유머, 1인칭 또는 2인칭, 의외의 관점, 감정적 흥미 요소를 사용합니다. 이 두 스타일은 서로 적극적으로 충돌합니다.

해결 방법: 격식의 연속선에서 한 지점을 선택하십시오. “전문적이면서도 대화체인 어조로 작성해 주세요. 딱딱하지 않되 너무 격의 없이도 작성하지 마세요.” 이는 일관된 지침입니다. 중간 지점을 선택하고 정확히 이름 붙여 모순을 해결했기 때문입니다.

전형적인 모순 3: 단순하면서도 상세하게

"양자 얽힘을 간단하면서도 빠짐없이 자세히 설명해 주세요."

단순화하려면 추상화가 필요합니다. 즉, 복잡성을 숨기고 미묘한 차이를 생략해야 합니다. 상세한 설명에는 그 반대가 필요합니다. 기술 주제에서는 최대한 간단하면서도 동시에 최대한 상세하게 설명할 방법이 없습니다.

해결 방법: 대상 독자와 그들의 배경 지식을 정한 다음, 그 결정에 따라 설명의 깊이를 조정합니다. "물리학 학부생을 대상으로 양자 얽힘을 설명해 주세요. 독자가 파동 함수는 알지만 QFT는 모른다고 가정하세요." 이렇게 하면 독자에 대한 정의가 적절한 균형을 결정하므로 구체적이고 달성 가능한 요청이 됩니다.

전송 전에 모순 찾아내기

여러 지시사항이 포함된 프롬프트를 보내기 전에 다음과 같이 빠르게 모순을 점검해 보세요.

  1. 모든 지시사항과 제약 조건을 나열합니다
  2. 각 쌍에 대해 다음을 묻습니다. 절충 없이 두 가지를 동시에 충족할 수 있는가?
  3. 한 쌍이 충돌한다면 어느 쪽을 우선할지 정합니다
  4. 프롬프트에 우선순위를 명시합니다

복잡한 프롬프트라면 30~60초가 걸리지만, 나중에야 요청한 내용을 도저히 모두 충족할 수 없었다는 사실을 깨닫게 되는 답변을 받는 답답한 상황을 예방할 수 있습니다.

부분적 중첩 문제

모든 모순이 완전히 반대되는 것은 아닙니다. 어떤 지시사항은 부분적으로 겹치기 때문에 한 가지를 충족하면 다른 한 가지를 더 어렵게 만듭니다.

  • "전문 용어 없이" + "기술적으로 정확하게" — 기술적으로 정확하려면 전문 용어가 필요한 경우가 많습니다
  • "객관적으로" + "설득력 있게" — 설득하려면 사실을 선택적으로 제시하게 됩니다
  • "창의적으로" + "브랜드 문체와 일관되게" — 창의성에 대한 제약은 창작의 범위를 줄입니다

부분적으로 겹치는 지시사항은 약간 어긋난 듯한 부분적으로만 올바른 출력을 만들어 냅니다. 모델은 어느 한쪽도 완전히 달성하지 못한 채 양쪽 모두에서 타협합니다.

우선순위 지시사항으로 모순 해결하기

모순을 해결하는 가장 깔끔한 방법은 우선순위를 명시적으로 지시하는 것입니다.

  • "다음 5가지 요점을 다루면서 최대한 간결하게 작성해 주세요. 단어 수 제한 때문에 어떤 요점을 완전히 다룰 수 없다면 생략하지 말고 한 문장으로 요약해 주세요."
  • "전문적인 어조를 사용하되, 딱딱하고 격식 있는 어조와 편안하고 흥미를 끄는 어조 중 하나를 선택해야 한다면 흥미를 끄는 쪽을 택해 주세요."
  • "단순함보다 정확성을 우선하세요. 어떤 개념에 전문 용어가 필요하다면 사용하되, 처음 나올 때 정의해 주세요."

우선순위 지시사항을 사용하면 절충을 어떻게 처리할지 모델이 추측할 필요가 없어집니다.

코드에서 모순 탐지

자동화된 프롬프트 생성 처리 흐름에서는 실제 내용을 생성하기 전에 두 번째 모델 호출을 사용해 모순 사전 점검을 추가할 수 있습니다.

import openai

client = openai.OpenAI(api_key='sk-...')

def check_for_contradictions(prompt_text):
    check_prompt = f'''Review the following prompt for contradictory requirements.
List any pairs of instructions that conflict with each other.
For each conflict, suggest how to resolve it.
If there are no conflicts, say "No contradictions found."

Prompt to review:
---
{prompt_text}
---'''

    response = client.chat.completions.create(
        model='gpt-4o-mini',
        messages=[{'role': 'user', 'content': check_prompt}]
    )
    return response.choices[0].message.content

# Example
test_prompt = '''Write a brief but comprehensive guide to machine learning
that is both simple for beginners and technically detailed for experts.
Keep it under 200 words. Formal and professional but also fun and engaging.'''

print(check_for_contradictions(test_prompt))

어조의 모순: 자세히 살펴보기

어조의 모순은 특히 흔합니다. 많은 어조 표현이 서로 암묵적으로 반대되는 연속선상의 위치를 나타내기 때문입니다.

  • 격식 있음 ←————————→ 편안함
  • 권위 있음 ←————→ 친근함
  • 긴박함 ←——————————→ 차분함
  • 간결함 ←—————————→ 설명적임

같은 연속선의 양 끝에 있는 표현을 결합하면 모순이 생깁니다. 서로 반대되는 두 표현을 사용하는 대신, 연속선에서 원하는 위치를 정하고 그 지점을 나타내는 표현을 사용하세요. 예를 들어 "대화체이면서도 전문적인" 또는 "차갑지 않으면서도 직접적인"이라고 할 수 있습니다.

범위의 모순

내용의 범위와 분량 제한이 맞지 않을 때 범위의 모순이 생깁니다.

  • "100단어 안에 10가지 기능을 모두 다루세요" — 기능 하나당 10단어로는 의미 있게 설명하기에 부족합니다
  • "2분 안에 읽을 분량으로 각 항목의 예시를 포함한 포괄적인 분석을 제공하세요"
  • "한 문단 안에서 5개 제품을 8가지 기준에 따라 완전히 비교하세요"

이것은 수량상 모순입니다. 해결 방법은 항상 범위를 줄이거나 분량 제한을 늘리는 것입니다. 둘 다 양보할 수 없다면 작업을 여러 출력물로 나누어야 합니다.

독자의 모순

프롬프트가 독자에 관해 서로 모순되는 내용을 담을 수도 있습니다.

  • "초보자와 전문가 모두를 대상으로 작성하세요" — 한쪽에 적합한 설명의 깊이는 다른 쪽에는 적합하지 않습니다
  • "기술팀과 그들의 비기술 관리자 모두를 대상으로 작성하세요" — 같은 문제가 생깁니다
  • "배경 지식과 관계없이 모든 독자가 이해할 수 있게 작성하세요" — 불가능할 정도로 범위가 넓은 독자 지정입니다

해결 방법: 주요 독자를 정하고 그들을 대상으로 작성하세요. 두 가지 버전이 필요하다면 두 독자 모두를 제대로 만족시키지 못하는 하나의 출력을 만들려고 하지 말고, 독자 변수를 달리하여 템플릿을 두 번 실행하세요.

지식 확인: 모순된 요구사항

새로운 기업용 소프트웨어 도구를 발표하는 글을 작성해야 합니다. 다음 조건을 모두 원합니다. (1) 흥미롭고 열정적이어야 함, (2) CEO 독자층에 적합하게 격식 있어야 함, (3) 80단어 미만이어야 함, (4) 새로운 기능 7가지를 모두 다뤄야 함. 가장 중요하게 해결해야 할 모순은 무엇인가요?

복습: 모순된 요구사항

모순된 요구사항은 두 가지를 동시에 완전히 충족할 수 없는 지시사항입니다. 모호함과 달리 모순은 모델에 서로 충돌하는 정보를 너무 많이 제공합니다. 모델은 한 목표를 다른 목표를 위해 희생하면서 모순을 조용히 처리하고, 그 사실을 알려 주지 않습니다.

대표적인 조합은 간결하면서도 포괄적으로, 격식 있으면서도 재미있게, 단순하면서도 상세하게입니다. 모든 지시사항을 나열하고 쌍별로 확인하면 모순을 찾아낼 수 있습니다. 우선순위를 정하거나, 중간 지점을 나타내는 표현을 찾거나, 작업을 여러 출력물로 나누어 모순을 해결하세요.

다음 수업에서는 프롬프트 오류의 세 번째 주요 범주인 누락된 맥락을 다룹니다.

자주 묻는 질문

“서로 모순되는 요구 사항” 강의는 무료인가요?

네 — “서로 모순되는 요구 사항” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Prompt Engineering 강의 전체를 잠금 해제할 수 있습니다. AI Prompt Engineering 강의에는 총 4개의 강의가 포함되어 있습니다.

“서로 모순되는 요구 사항”에서 뭘 배우나요?

서로 충돌하는 제약 조건이 모델을 혼란스럽게 하고 유보적인 응답을 만드는 방식을 알아봅니다. 브라우저에서 직접 실행하는 실습 코드로 AI Prompt Engineering을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AI Prompt Engineering을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AI Prompt Engineering은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“서로 모순되는 요구 사항” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AI Prompt Engineering 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AI Prompt Engineering 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 지나치게 모호한 지시문
  2. 서로 모순되는 요구 사항
  3. 맥락 누락 오류
  4. 잘못된 프롬프트 진단 및 수정
← AI Prompt Engineering(으)로 돌아가기