프롬프트 엔지니어링 프로세스 정의

프롬프트 엔지니어링은 생성형 AI 도구의 입력을 설계해 대규모 언어 모델을조정하고 출력을 정제하는 데 사용되는 공학 기법입니다.

프롬프트는 입력이라고 하며, 생성형 AI 도구가 생성한 답변은 출력이라고 합니다. 프롬프트 엔지니어링이 개입하는 지점인 입력 수준에서의 정확성과 구체성을 통해 생성형 AI 도구가 더 정확하고 구체적인 답변을 생성합니다. 생성형 AI 도구는 효과적인 프롬프트 엔지니어링을 통해 코드 생성, 마케팅 문안 작성, 이미지 생성, 텍스트 분석 및 종합 등과 같은 생성 작업을 더 잘 수행합니다.

프롬프트 엔지니어링은 논리와 코딩의 원칙을 결합합니다. 또한 인간의 창의력도 필요합니다. 프롬프트 엔지니어링 요구 사항은 기술마다 다를 수 있지만, 대부분의 생성형 AI 도구는 자연어 프롬프트나 쿼리를 처리할 수 있습니다. 다시 말해, 프롬프트 엔지니어링은 질문을 할 때 답변을 준비하는 데 도움이 되는 구체적인 지침을 포함하는 것과 같습니다.

프롬프트 엔지니어링의 기본 사항

프롬프트 엔지니어링의 기본을 이해하기 위해서는 생성형 AI와 대규모 언어 모델(LLM)을 검토하는 것이 중요합니다.

생성형 AI는 텍스트, 코드, 이미지, 음악 또는 비디오와 같은 콘텐츠를 생성할 수 있는 인공 지능의 유형을 가리킵니다. 대규모 언어 모델은 생성형 AI가 결과물을 생성할 수 있도록 하는 기반 기술의 일부입니다.

LLM은 AI의 자연어 중추입니다. 이 기술은 분석, 합성, 번역, 인식 및 생성과 같은 모든 텍스트 관련 응용 프로그램을 지원합니다. 대규모 언어 모델은 텍스트 기반의 방대한 정보를 바탕으로 훈련되며, 이 텍스트에서 패턴을 학습해 질의에 대한 예측 또는 출력을 생성합니다.

프롬프트 엔지니어링이 어떻게 작동하는지 이해하려면 LLM의 예측적 측면을 이해하는 것이 중요합니다.

  1. 사용자가 입력(프롬프트)을 넣습니다. 여기에는 모델이 생성된 응답이 어떤 형식을 취해야 하는지 알 수 있도록 출력 표시기가 포함될 수 있습니다.
  2. 모델은 훈련 데이터에서 학습한 추론과 패턴(숫자 형태)을 사용해 '생각'합니다. 이 과정에서 패턴을 인식하려고 시도하기 때문에 생성된 결과를 '예측'이라고 부릅니다.
  3. 그런 다음 출력, 즉 '응답'을 생성합니다.

기본적인 의미에서, 효과적인 프롬프트는 지시문이나 질문을 포함할 수 있으며 컨텍스트, 입력 또는 예시로 강화될 수 있습니다.

프롬프트 엔지니어링의 기본 예시는 다음과 같습니다.

입력:

식물은

이 프롬프트를 사용해 AI가 문장을 완성하도록 요청합니다. 하지만 이 경우는 구체성이 부족합니다. OpenAI의 ChatGPT 3.5 모델에 입력하면 다음과 같은 출력을 생성합니다.

prompt-engineering-chatgpt-plants-are.png

그래서 생략 부호를 추가해 명확히 하고자 합니다.

입력:

식물은...

줄임표를 사용하면 문장을 완성하는 출력이 제공됩니다. 그러나 모델은 지나친 결과를 생성합니다.

prompt-engineering-chatgpt-plants-are-ellipsis.png

식물에 관한 백과사전 항목을 찾는 것이 아니므로, 지시 사항을 구체적으로 명시합니다.

입력:

문장 완성:
식물은

이제 모델은 다음과 같은 출력을 생성합니다.

prompt-engineering-chatgpt-complete-the-sentence.png

사용자는 지시 사항을 계속 구체화할 수 있습니다.

prompt-engineering-chatgpt-continue-to-specify-our-instructions.png

이러한 반복적인 지시 조정은 프롬프트 엔지니어링의 기본 원칙입니다. 모델마다 다를 수 있으며, 필요한 작업에 따라 다양한 형식을 취할 수 있습니다.

왜 프롬프트 엔지니어링이 중요한가요?

프롬프트 엔지니어링은 생성형 AI 분야에서 중요한 실천 방법입니다. 이는 AI 기반 도구를 개선해 사용자 경험과 모델에서 얻는 결과를 개선하기 때문입니다.

제로샷 트레이닝은 모델의 훈련 데이터에 포함되지 않은 프롬프트를 입력해 특정 결과를 생성하는 엔지니어링 기법 중 하나입니다.

개발자들은 이러한 유형의 프롬프트 엔지니어링을 실험해 GPT-3와 같은 대규모 언어 모델을 튜닝해 고객 서비스 챗봇으로서의 응용을 개선하거나, 계약서, 마케팅 이메일 등과 같은 업계별 콘텐츠 생성 능력을 개선할 수 있습니다.

실제 사례를 통해 프롬프트 엔지니어링의 중요성을 살펴보겠습니다.

전자상거래 회사가 고객 서비스를 개선하기 위해 생성형 AI 도구를 통합한 애플리케이션을 구축하기로 결정했습니다. AI 어시스턴트가 고객의 감정을 평가하고, 고객 파일 및 고객의 대화 내용을 검토하고, 고객의 문의에 관련된 옵션을 제공할 수 있는 능력을 갖추기를 원합니다. 회사는 판매하는 제품이나 서비스의 맥락에서 이러한 특정 작업을 수행하기 위해 프롬프트 엔지니어링의 도움을 받아 도구를 미세 조정해야 합니다. 이러한 시나리오에서 프롬프트 엔지니어링은 애플리케이션 내 AI 어시스턴트가 회사와 사용자 모두에게 유용하도록 보장합니다. 또한 회사는 고객 경험의 안전성을 보장하고 도구의 오용을 방지하기 위해 고객 입력 전에 안내 메시지를 포함할 수 있습니다. 예를 들어, '전자상거래 또는 쇼핑 경험과 관련된 질문에만 답변할 것'과 같은 안내 메시지를 삽입해 사용자 경험을 향상시킬 수 있습니다. 전자상거래나 쇼핑과 관련이 없는 질문에 대해서는 '해당 질문에 응답할 수 없습니다. 대신 고객 지원에 문의하는 것을 고려해 주시기 바랍니다.'로 답변합니다.

프롬프트 엔지니어링의 유형

모든 유형의 작업이나 원하는 출력에 대해 관련된 프롬프트 엔지니어링 유형이 있습니다. 다음은 몇 가지 유형의 프롬프트 엔지니어링 기술입니다:

  • 지시 프롬프팅: 위의 예에서 본 것과 같은 프롬프트 엔지니어링은 디자이너가 원하는 출력에 대한 명시적인 지침을 포함하는 프롬프트를 작성해야 합니다.
  • 소수 샷 프롬프팅: 제로 샷 프롬프팅은 모델에 원하는 답변의 예를 제공하지 않는 프롬프트 유형인 반면, 소수 샷 프롬프팅은 모델이 응답하기를 원하는 방식을 보여주기 위해 몇 가지 예를 입력하는 방식입니다.
  • 사슬 추론 프롬프팅: 수학적 문제에 유용한 이 기술은 프롬프트에 추론 단계를 배치해 모델이 출력에서 추론을 제공하도록 합니다.
  • 생성된 지식 프롬프팅: 이 기술은 대규모 언어 모델에 사실과 그 사실과 관련된 정보를 제공해 먼저 지식 기반 출력을 생성하도록 미세 조정하는 데 도움이 됩니다. 그런 다음, 보조 입력은 모델이 첫 번째 출력에서 생성한 지식과 함께 사실의 정확성에 대해 평가하도록 합니다. 이에 대응해 모델은 쿼리에 대해 정확한 응답을 출력해야 합니다. 이는 대규모 언어 모델의 정확도를 향상시키는 데 사용되는 기술입니다.
  • 사고 트리 프롬프트: 이 기술은 사고 사슬 프롬프팅을 일반화하고 자연어 중간 단계, 즉 사고를 모델에 입력함으로써 보다 복잡한 문제를 해결합니다. 사고 트리 프롬프트에서는 언어 모델이 문제 해결에 있어 중간 단계 사고의 효과를 스스로 평가할 수 있습니다. 즉, 모델이 신중한 추론 과정을 거치도록 장려하는 프롬프트 엔지니어링 기술입니다.

이는 프롬프트 엔지니어링 기법의 예시이며, 모든 기법을 설명하는 것은 아닙니다. 생성형 AI와 대규모 언어 모델에 대한 연구가 계속됨에 따라 다양한 새로운 프롬프트 엔지니어링 기술이 등장할 것입니다.

프롬프트 엔지니어링의 도전과 한계

프롬프트 엔지니어링은 생성형 AI 기술을 최대한 활용하는 데 도움이 되지만, 적대적 프롬프팅, 사실성 및 편향성과 관련된 몇 가지 도전과 한계도 존재합니다.

적대적 프롬프트는 대규모 언어 모델로부터 '적대적 행동'을 유도하는 프롬프트 주입의 한 유형입니다. 이는 사용자에게 중요한 안전 문제를 야기하며, 이러한 유형의 프롬프트는 출력을 왜곡하고 모델의 정확도에 영향을 미칠 수 있습니다.

적대적 프롬프트에는 프롬프트 유출 및 탈옥을 포함하여 다양한 유형이 있으며, 이러한 기술은 대규모 언어 모델이 원래 의도하지 않은 작업을 수행하도록 유도하는 것을 목표로 합니다. 이러한 행동은 해로운 경우가 많습니다. 따라서 프롬프트 엔지니어링은 대규모 언어 모델을 개선하는 데 도움이 될 수 있지만, 악의적인 프롬프트 엔지니어링은 반대 효과를 가져올 수 있습니다.

대규모 언어 모델이 생성하는 출력의 사실성과 편향성은 프롬프트 엔지니어링의 한계를 보여줍니다. 대규모 언어 모델의 성능은 학습에 사용된 데이터 품질에 좌우됩니다. 모델은 해당 데이터에 내재된 편향을 학습합니다. 결과적으로, 프롬프트가 효과적으로 제공되더라도 모델은 편향된 응답이나 매우 설득력 있어 보이지만 전혀 정확하거나 사실이 아닌 응답을 생성할 수 있습니다. 이러한 오류를 환각이라고 합니다. 입력 문자열에 컨텍스트와 정보를 추가하는 등의 추가적인 프롬프트 엔지니어링을 통해 출력 결과를 개선할 수 있지만, 모델이 생성한 원래 출력 결과가 잘못되었다는 사실을 사용자가 스스로 알아야 합니다.

프롬프트 엔지니어링의 잠재력을 최대한 활용하려면 사용자가 판단력을 갖추고 검증 기술 또는 프로세스를 적용해야 합니다.

인간과 관련해서 생각할 때, 프롬프트 엔지니어링은 고용 시장에 혼란을 가져올 것입니다. McKinsey에 따르면 생성형 AI는 직원들의 시간 중 최대 70%를 차지하는 작업 업무를 자동화할 가능성이 있습니다1. 프롬프트 엔지니어링은 이미 일부 분야에서 수요가 높은 전문 기술이며, 앞으로 대부분의 직원에게 기본적인 요구 사항이 될 가능성이 높습니다. 산업과 조직은 근로자의 기술 향상이라는 과제에 직면할 것입니다.

효과적인 프롬프트 엔지니어링을 위한 전략

프롬프트 엔지니어링은 코딩, 논리, 약간의 예술적 감각을 결합한 것입니다. 효과적인 신속 엔지니어링 전략은 위의 모든 사항을 고려해야 합니다. 다음 전략을 생각해 보세요.

처음에는 간단하게…
단순하게 시작하세요. 프롬프트 디자인은 반복적인 과정이므로, 작게 시작하는 것이 모델의 반응을 이해하고 최적의 결과를 위한 프롬프트를 구성하는 데 도움이 됩니다.

구체적으로 작성
입력 단계에서 구체적으로 설명할 수록 출력 단계에서의 정확성이 보장됩니다. 지시 사항에서 '완료', '요약', '번역' 등과 같은 능동적인 명령을 사용하고, 모델에 대한 명확한 해석 경계를 설정하는 수정자를 추가하세요. 예를 들어 '이 텍스트를 프랑스-캐나다어로 번역' 또는 'Mary Shelley의 프랑켄슈타인을 100자 이하로 요약'와 같은 방식입니다.

프롬프트 엔지니어링의 기본 사항에 대한 예를 고려하세요. 프롬프트를 다듬으면서 모델이 문장을 완성할 때 식물에 대해 어떤 정보를 제공해야 하는지 구체적으로 알려주세요.

모델에 할 일(하지 말아야 할 일이 아니라)을 설명
모델에게 하지 말아야 할 것이 아니라, 해야 할 일을 긍정적으로 표현해 주시기 바랍니다. 즉, '무엇을 하지 말라'고 지시하지 않아야 합니다. 다시 한번 강조하지만, 능동적인 프롬프트를 사용하고 원하는 결과에 구체적으로 집중하는 것이 좋습니다.

간결하게 작성
구체적인 표현이 중요하지만, 그 구체성과 간결함 및 정확성의 균형을 맞추는 것도 중요합니다. 구체적인 내용이라 하더라도 프롬프트가 길면 모델이 혼란에 빠질 수 있습니다.

대규모 언어 모델에 프롬프트를 입력할 때는 특정 작업을 수행하기 위한 일련의 지침에 어떻게 응답할지 생각해 보세요. 요구 사항이 무엇인지 명확히 이해하셨나요? 자료가 너무 길거나 장황해서 내용을 파악하는 데 어려움을 겪으셨나요? 이러한 사고 방식과 대규모 언어 모델의 작동 원리에 대한 이해가 어우러지면 최적의 결과를 위한 프롬프트 엔지니어링이 완성됩니다.

Elastic을 활용한 프롬프트 엔지니어링

Elasticsearch Relevance Engine(ESRE)은 인공지능 기반 검색 애플리케이션을 위해 구축되었으며, 자연어 처리(NLP)와 생성형 AI를 결합하여 고객의 검색 경험을 향상시킵니다.

Elasticsearch Relevance Engine을 기반으로 하는 보안 및 통합 가시성을 위한 Elastic AI 어시스턴트는 알림 조사, 인시던트 대응, 쿼리 생성 또는 변환을 지원합니다. Elastic AI 어시스턴트는 팀의 사이버 보안 또는 통합 가시성 운영을 강화하는 데 도움이 되는 프롬프트에 대한 권장 사항을 제공합니다.

Elasticsearch가 대규모 언어 모델을 사용해 검색 쿼리 결과를 제공하는 방법을 보여주는 다이어그램.

다음에 해야 할 일

다음 단계: 준비가 되셨다면... 여러분의 비즈니스에 데이터를 활용하는 데 도움을 드릴 수 있는 4가지 방법은 다음과 같습니다.

  1. 무료 체험판을 시작하고 Elastic이 여러분의 비즈니스에 어떻게 도움이 되는지 알아보세요.
  2. Elastic 솔루션을 둘러보고 Elasticsearch Platform이 어떻게 작동하는지, 그리고 저희 솔루션이 여러분의 요구 사항에 어떻게 부합하는지 알아보세요.
  3. Elasticsearch 클러스터 설정 방법 알아보기 및 45분짜리 웨비나를 통해 데이터 수집 및 데이터 인제션을 시작해 보세요.
  4. 이 기사를 읽고 싶어하는 아는 사람과 공유하세요. 이메일, 링크드인, 트위터 또는 페이스북을 통해 공유하세요.

각주

Chui, Michael. “Economic potential of generative AI: The next productivity frontier,” McKinsey, 2023년 6월 14일, https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/the-economic-potential-of-generative-ai-the-next-productivity-frontier#/