brunch

You can make anything
by writing

C.S.Lewis

by 류한석 Jul 16. 2024

메타 프롬프트로 사용자 프롬프트
최적화하기

APE(Automatic Prompt Engineering)

이번 글은 지난 글 “2026년, 프롬프트 엔지니어링의 종말?”과 관련이 있는 글입니다. 지난 글에서 논점을 흐리지 않으려고 일부러 언급하지 않은 내용인데요. 여기에서 앞으로 프롬프트 엔지니어링의 역할이 변화할 수밖에 없는 주된 이유 중 하나인 “자동 프롬프트 엔지니어링(APE: Automatic Prompt Engineering)”에 대해 살펴보려고 합니다.


클라우드 컴퓨팅 및 가상화 소프트웨어로 유명한 VM웨어의 연구진이 올해 2월 발표한 논문에서 "AI로 생성한 프롬프트가 인간이 만든 프롬프트보다 더 나은 성과를 냈다"고 밝혀 조금 관심을 끈 바 있습니다. 


이는 당연한 결과입니다. 우리는 대형언어모델과 상호작용을 하기 위해 프롬프트를 작성합니다. 그런데 생각해 보면, 대형언어모델 자체가 프롬프트를 가장 잘 이해하고 작성할 수 있는 존재이지 않습니까?


대형언어모델은 수많은 텍스트 데이터를 학습하여 언어의 패턴과 구조를 깊이 이해하고 있으며, 자신의 입력과 출력 메커니즘에 대해 가장 잘 알고 있는 주체입니다. 대형언어모델은 다양한 맥락과 의도를 파악하는 데 뛰어나며, 자신의 응답을 최적화하기 위해 어떤 입력이 필요한지 정확히 알고 있습니다.


따라서 대형언어모델은 자신의 작동 방식에 가장 잘 부합하는 형태로 프롬프트를 구성할 수 있습니다. 즉, 대형언어모델이 프롬프트 작성에 있어 우수한 성능을 보이는 것은 그들의 본질적 특성과 능력을 고려할 때 자연스러운 현상이라고 할 수 있습니다. 


자동으로 프롬프트를 생성하거나 최적화하는 여러 방법이 있는데, 오늘 중 그중 하나로 제가 만든 “범용 메타 프롬프트”를 소개하겠습니다. 메타 프롬프트(Meta Prompt)란 쉽게 말해 “프롬프트를 만드는 프롬프트”입니다.


메타 프롬프트에서 "메타(Meta)"라는 단어는 다음과 같은 중요한 개념적 의미가 있습니다.

- 자기 참조성: 메타는 "~에 대한" 또는 "자기 자신을 참조하는"이라는 의미를 가집니다. 메타 프롬프트는 프롬프트에 대한 프롬프트, 즉 프롬프트 자체를 생성하거나 최적화하는 프롬프트를 의미합니다.

- 고차원적 접근: 메타 프롬프트는 일반적인 프롬프트보다 한 단계 높은 수준의 사고를 요구합니다. 프롬프트를 만드는 과정 자체를 프롬프트화하는 것이므로, 보다 고차원적인 접근 방식이며, 프롬프트 엔지니어링을 더 높은 추상화 수준으로 끌어올립니다. 이는 메타가 가진 "더 높은 수준의" 또는 "더 추상적인"이라는 의미와 일치합니다.


메타 프롬프트를 이용하면 대형언어모델로 하여금 특정 작업이나 목표에 맞는 새로운 프롬프트를 만들도록 하거나, 기존 프롬프트를 분석하고 더 효과적인 버전을 제안하도록 만들 수 있습니다.


그럼, 사용자 프롬프트를 대형언어모델에 제공하여 최적화하도록 지시하는 메타 프롬프트를 살펴보도록 하죠. 다양한 작업에 활용할 수 있는 범용 메타 프롬프트로 만들었으며, [원본 프롬프트] 내용만 사용자의 것으로 수정해서 사용하면 됩니다.



프롬프트


#입력

[원본 프롬프트]= “업무 생산성 향상을 위한 시간 관리 기법을 알려주세요.”


#처리

당신은 세계 최고의 프롬프트 엔지니어로 행동합니다. 당신의 역할은 사용자가 제공한 프롬프트를 높은 품질의 프롬프트로 개선하는 일입니다. 다음의 지침에 따라 [원본 프롬프트]를 재구성하여 [최적화된 프롬프트]를 생성해 주세요.

1. 의도 파악: 사용자의 궁극적인 목표와 의도를 명확히 이해하고 명시하세요.

2. 맥락 확립: 관련된 배경 정보, 주제의 범위, 필요한 전문 지식 수준을 설정하세요.

3. 구체성 강화: 모호한 표현을 피하고, 명확하고 구체적인 지시사항을 제공하세요. 필요한 경우, 단계별 지침을 포함하세요.

4. 구조화: 응답의 형식, 구조, 섹션을 명확히 지정하여 체계적인 출력을 유도하세요.

5. 예시 제공: 가능한 경우, 기대하는 출력의 구체적인 예시나 샘플 데이터를 포함하세요.

6. 제한 설정: 응답의 길이, 복잡성 수준, 사용할 기술 용어의 범위 등을 명시하세요.

7. 다각적 접근: 다양한 관점, 시나리오, 또는 해결 방법을 고려하도록 요청하세요.

8. 윤리적 고려: 편향, 민감한 내용, 또는 잠재적인 부작용에 대한 주의사항을 포함하세요.

9. 상호작용 유도: 필요한 경우, 추가 정보나 명확화를 요청할 수 있는 옵션을 제공하세요.

10. 품질 기준 설정: 응답을 평가할 수 있는 구체적인 기준이나 체크리스트를 포함하세요.


#출력

[최적화된 프롬프트]

[해설]


클로드 3.5 소네트


[최적화된 프롬프트]

"당신은 시간 관리 및 생산성 향상 전문가입니다. 현대 직장인들의 업무 효율성을 극대화하기 위한 실용적이고 효과적인 시간 관리 기법에 대해 상세히 설명해 주세요. 다음 요소들을 포함하여 체계적으로 답변해 주시기 바랍니다:

1. 목표: 일일 업무 효율성 20% 향상

2. 대상: 다양한 업무와 마감시간을 관리해야 하는 중간 관리자

3. 주요 기법: 최소 5가지의 검증된 시간 관리 기법을 제시하고, 각 기법별로 다음 정보를 포함해 주세요:

   a) 기법명

   b) 간단한 설명

   c) 구체적인 실행 단계 (3-5단계)

   d) 예상되는 이점

   e) 잠재적인 문제점과 해결 방안

4. 실제 사례: 각 기법을 적용한 실제 업무 시나리오를 1-2문장으로 제시

5. 도구 및 앱: 각 기법을 지원하는 디지털 도구나 앱을 2-3개 추천

6. 맞춤화: 개인의 업무 스타일과 선호도에 따라 기법을 조정하는 방법 제안

7. 측정 및 개선: 시간 관리 효과를 측정하고 지속적으로 개선하는 방법 제시


응답의 길이는 1000-1500단어로 제한하며, 전문 용어는 필요한 경우에만 사용하고 설명을 덧붙여 주세요. 마지막으로, 시간 관리 기법 적용 시 발생할 수 있는 윤리적 고려사항(예: 일-삶의 균형)에 대해 간략히 언급해 주십시오."


[해설]

이 최적화된 프롬프트는 원본 프롬프트를 크게 개선하였습니다. 주요 개선 사항은 다음과 같습니다:


1. 의도 파악: 업무 생산성 20% 향상이라는 구체적인 목표를 설정하여 사용자의 의도를 명확히 했습니다.

2. 맥락 확립: 중간 관리자라는 특정 대상을 지정하여 응답의 초점을 맞췄습니다.

3. 구체성 강화: 5가지 이상의 시간 관리 기법을 요청하고, 각 기법에 대한 상세한 정보를 요구했습니다.

4. 구조화: 각 기법에 대해 명확한 구조(기법명, 설명, 단계, 이점, 문제점)를 제시하여 체계적인 응답을 유도했습니다.

5. 예시 제공: 실제 업무 시나리오를 요청하여 이해를 돕도록 했습니다.

6. 제한 설정: 응답 길이와 전문 용어 사용에 대한 가이드라인을 제시했습니다.

7. 다각적 접근: 다양한 기법, 도구, 맞춤화 방법을 요청하여 포괄적인 접근을 유도했습니다.

8. 윤리적 고려: 일-삶의 균형과 같은 윤리적 고려사항을 언급하도록 요청했습니다.

9. 상호작용 유도: 직접적인 상호작용 요청은 없지만, 상세한 지침으로 충분한 정보를 제공받을 수 있도록 했습니다.

10. 품질 기준 설정: 측정 및 개선 방법을 요청하여 시간 관리 기법의 효과성을 평가할 수 있게 했습니다.


이렇게 최적화된 프롬프트는 더 구체적이고 구조화된 응답을 유도하며, 사용자의 니즈를 더 정확히 충족시킬 수 있습니다.


저는 프롬프트를 작성한 후, 다양한 대형언어모델 기반 서비스들(챗GPT, 클로드, 제미나이, 코파일럿, 클로바X 등)에서 테스트합니다. 지금까지 글에서 주로 챗GPT(GPT-4o) 답변을 소개하였으나, 이제부터는 클로드 3.5 소네트를 주력으로 소개할 것입니다. 현시점에서는 여러모로 클로드 3.5 소네트의 답변이 가장 탁월하기 때문입니다. 추후 바뀌게 되면 또 알려 드리겠습니다.


AI가 출력한 프롬프트를 그대로 이용하거나, 또는 사용자의 입맛에 맞게 수정해서 이용하면 꿀입니다. 이처럼 메타 프롬프트는 대형언어모델의 특성을 고려한 체계적이고 포괄적인 접근 방식을 통하여, 모델 자신의 기능과 한계에 대한 이해를 기반으로 더 효과적인 프롬프트를 생성하도록 합니다.


프롬프트를 인간이 수동으로 조정하여 성능을 향상시키는 것은 노동 집약적인 일이며, 그 과정에서 시간을 많이 소모할 수 있습니다. 반면에 메타 프롬프트는 즉시 개선된 결과물을 제공하며, AI와의 상호작용을 더욱 효율적으로 만들고, AI의 능력을 최대한 활용할 수 있게 해주는 강력한 도구입니다.


그러므로 앞으로의 프롬프트 엔지니어링은 “인간에 의한 프롬프트 엔지니어링과 AI를 활용하는 자동 프롬프트 엔지니어링 사이의 성공적인 통합과 적절한 균형을 찾는 일”이 될 것으로 생각합니다.


즉, 이는 단순히 최종 프롬프트를 생성하는 것을 넘어, AI를 활용하여 더욱 정교한 프롬프트를 설계하는 메타적 접근을 포함하는 것입니다.


이러한 접근은 인간과 AI의 협업을 더욱 정교하고 효과적으로 만들어, 양측의 장점을 최대한 활용하는 새로운 차원의 지능적 상호작용을 가능케 할 것입니다.


메타 프롬프트:
인간의 아이디어와 AI의 능력이 만나는 교차점이자,
인간과 AI의 고급지고 멋진 협업입니다.
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari