[Prompt Engineering] 프롬프트 엔지니어링 기초 개념
DataScience/PromptEngineer

[Prompt Engineering] 프롬프트 엔지니어링 기초 개념

728x90

생성형 AI와 프롬프트 엔지니어링의 정의와 예시

방대한 양의 데이터를 학습해 새로운 결과물을 창작하는 생성형 AI(Generative Artificial Intelligence)

이러한 생성형 AI 서비스와 소통할 때 필요한 '프롬프트'에 대한 관심도 커졌는데, 프롬프트는 어떤것일까?

프롬프트 

컴퓨터 분야에서 Prompt는 이미 존재했었는데, 컴퓨터에서 원하는 결과물을 얻기 위한 CLI(Command Line Interface)가 대표적인 예이다.

문자의 형태로 명령어를 입력하면 역시 문자 형태로 출력이 되는 인터페이스를 뜻한다. 

컴퓨터와의 prompt에서는 mkdir, rm -rf 등 컴퓨터가 이해할 수 있는 수많은 명령어를 통해서 소통을 해왔다.

 

최근 생성형 AI 모델이 발전하고 이를 활용한 서비스가 등장하면서 컴퓨터는 기존의 명령어가 아닌 자연어, 즉 인간의 언어 그대로를 입력받을 수 있게 되었다.

 

이처럼 생성형 AI에게 어떤 행동을 해야 하는지 자연어로 설명해 원하는 결과물을 출력할 수 있게 하는 입력값을 프롬프트(Prompt)하고 한다.

 

지금 자주 등장하는 프롬프트는 AI를 작동시키기 위해 사용자가 언어 모델에 입력하는 모든 것이라고 할 수 있다.

따라서, 프롬프트의 구성을 만들어 가는 것을 프롬프트 엔지니어링이라고 할 수 있다.

프롬프트의 구성요소

프롬프트는 크게 네가지의 구성 요소로 이루어진다.

  1. 지시 사항(명령) : 언어 모델이 실행하야 하는 특정 작업이나 명령을 명확하게 설명
  2. 컨텍스트(맥락) : 언어 모델이 명령을 정확히 이해하고 응답할 수 있도록 외부 정보나 추가적인 맥락을 제공
  3. 입력 데이터 : 사용자가 제공한 내용이나 질문을 포함하여 모델이 출력을 생성하는 기반이 되는 정보를 제공함
  4. 출력 명세 : 원하는 출력 유형이나 형식을 명시

프롬프트 엔지니어링

프롬프트 엔지니어링이란 인공지능 분야의 한 개념으로 AI모델로부터 높은 수준의 결과물을 얻기 위해 적절한 프롬프트를 구성하는 작업이다.

데이터에서 필요한 정보를 찾는 과정과 콘텐츠 구성 능력이 인공지능 분야에서 중요해짐에 따라 자연어로 인공지능의 역량을 최대로 끌어내는 것이 프롬프트 엔지니어링의 핵심이라고 불 수 있다.

대표적으로 Chat GPT에 질문하고 원하는 답을 얻기 위한 작업도 프롬프트 엔지니어링이라고 할 수 있다.

 

따라서 서비스의 기반이 되는 AI 모델의 성능을 최대한 끌어올리고 원하는 결과물을 만들기 위해서는 프롬프트를 잘 만들어주는 것이 필요하다.

생성형 AI는 완벽하게 인간의 의도와 목적을 파악하고 반영할 수 있는 것은 아니며, 때로는 부적절하거나 오류가 있는 결과물을 생성하기 때문에 인간의 감성이나 창의성을 완전히 대체할 수는 없다.

결국 생성형 AI를 효과적으로 활용하기 위해서는 최종적으로 인간의 감독과 조정이 필요하다. 이러한 업무, 즉 프롬프트를 탐색하고 설계하는 것이 프롬프트 엔지니어링이라 할 수 있다.

프롬프트 엔지니어링의 핵심

  1. 사용자의 요청을 정확하게 파악하고 그에 맞는 질문을 AI 모델에 적용한다.
  2. 사용자는 모델을 활용하여 사용자의 요청을 최적화된 프롬프트로 변환하는 능력을 갖추어야 한다.
  3. 프롬프트를 효과적으로 설계하기 위해 LLM 모델의 강점과 약점에 대한 깊은 이해가 필요하다.

프롬프트 엔지니어링의 이점

  1. Improved Acuracy: 적절한 프롬프트를 설계하면 AI 시스템이 더 정확한 출력을 생성할 수 있다.
  2. Enhanced User Experience: 잘 설계된 프롬프트는 사용자와 AI 시스템 간의 상호작용을 개선하여 사용자의 경험을 향상시킬 수 있다.
  3. Increased Efficiency: 최적화된 프롬프트는 상호작용 프로세스를 streamlining하여 인간과 기계 모두에게 시간과 자원을 절약할 수 있다.

참고

728x90