티스토리 뷰

프롬프트(Prompt)

"프롬프트(Prompt)"란 인공지능(AI) 모델, 특히 대형 언어모델(LLM)에게  특정 작업을 수행하도록 지시하거나 질문을 입력하는 문구를 의미한다. 즉, AI에게 무엇을 어떻게 해달라는 요청 또는 지시사항을 담은 텍스트다. 물론, 텍스트 외에 코드, 이미지, 파일 등 다양한 형태를 가질 수 있지만, 대화형 언어모델(ChatGPT)의 경우, 주로 자연어 형태로 제시하는 문장을 "프롬프트"라고 한다.

 

 

프롬프트 엔지니어링(Prompt Engineering)

AI모델에게 질문하거나 일을  시키는 데 있어 엔지니어링(Engineering) 이라는 전문적인 용어를 쓰는 이유는 사용자가 단순히 질문하는 것이 아닌, 원하는 결과를 얻기 위해서는 질문의 방식, 맥락제공, 표현, 구조 등을 전략적인 구성이 필요하다. 그래서 이를 "프롬프트 엔지니어링(Prompt Engineering)"이라고 부르는 것이다. 

 

왜 ‘엔지니어링’이라는 표현을 쓸까?

1. 목표 지향적 접근 : 단순히 물어보는 것이 아니라, 원하는 출력(정확한 답, 특정 형식의 문장, 특정 톤, 특정 스타일 등)을 얻기 위해 프롬프트를 치밀하게 계획하고 구조화한다. 마치 엔지니어가 원하는 결과물을 얻기 위해 설계도를 짜는 것처럼, 프롬프트 엔지니어도 의도한 결과를 얻기 위해 문장 구조, 예시 제시, 추가 정보 제공 등 다양한 요소를 고려한다.

2. 반복적인 실험과 개선 : 좋은 프롬프트를 얻기 위해서는 한 번에 끝나는 게 아니라, 여러 번 시도하고, 결과물을 보고 다시 수정하고, 다른 접근법을 적용하는 식의 반복적이고 체계적인 개선 과정이 필요하다. 이 또한 엔지니어링 업무에서 자주 볼 수 있는 특성이다.

3. 전문성 요구 : 모델의 작동 원리에 대한 이해, 모델이 어떤 종류의 힌트나 예시에 잘 반응하는지에 대한 경험적 지식, 특정 작업에 어울리는 표현법, 언어적 미묘함에 대한 감각 등이 필요하다. 이는 단순 질의응답을 넘어서, 전문적 스킬로 인정받는 이유다.


예를 들어, "사과에 대해 설명해 주세요"라는 간단한 프롬프트는 AI가 일반적인 정보만 제공하도록 유도할 수 있다. 하지만 "뉴턴의 사과 이야기와 관련된 과학적 원리에 대해 설명해 주세요"라는 프롬프트는 AI가 더 구체적이고 심도 있는 정보를 제공하도록 유도한다. 이처럼 프롬프트의 표현을 조금만 바꿔도 AI의 출력 결과는 크게 달라질 수 있다.

프롬프트 엔지니어링은 단순히 질문을 잘하는 기술을 넘어, AI와의 효율적인 소통을 위한 핵심 기술이다. 마치 소프트웨어 개발자가 코드를 작성하여 프로그램을 만드는 것처럼(코드를 작성하는 것도 컴퓨터에게 일을 시키는 과정이다.), 프롬프트 엔지니어는 효과적인 프롬프트를 작성하여 AI의 능력을 최대한 활용하는 역할을 한다. 

정리하자면, 프롬프트 엔지니어링은 인공지능 모델이 더 나은 결과를 내도록 프롬프트를 전략적으로 설계하고 조정하는 전문적인 과정을 말한다. 즉, 그냥 질문하는 것이 아니라, “어떻게 질문해야 원하는 답을 얻을 수 있는가”를 고민하고 꾸준히 개선하는 ‘엔지니어링’에 가깝다.

 

Zero-shot, One-shot, Few-shot

Zero-shot, One-shot, Few-shot은 인공지능 모델(특히 대규모 언어 모델)에게 특정 작업을 수행하도록 프롬프트를 주는 방식 또는 학습, 테스트 방식에 대한 용어로 모델에게 제공하는 예시의 수를 나타내는 개념이다. 

1. 제로샷(Zero-shot) 프롬프트

  • 정의 : 제로샷 프롬프트는 모델에게 어떠한 예시도 제공하지 않고 작업을 수행하도록 지시하는 방식이다. 모델은 사전에 학습한 일반적인 지식과 패턴을 활용하여 주어진 명령을 이해하고 결과를 생성한다.
  • 특징 : 별도의 예시 데이터가 필요하지 않으므로 간편하게 사용할 수 있으나, 모델의 일반적인 능력에 의존하기 때문에, 복잡하거나 특수한 작업에서는 성능이 떨어질 수 있다.

2. 원샷(One-shot) 프롬프트

  • 정의 : 원샷 프롬프트는 모델에게 단 하나의 예시를 제공하여 원하는 작업 방식이나 출력 형태를 전달하는 방식이다. 이 예시는 모델이 이후의 작업을 수행하는 데 참고 자료가 된다.
  • 특징 : 하나의 예시만으로도 모델의 이해도를 높일 수 있다. 제로샷 보다는 높은 성능을 기대할 수 있지만, 제공된 예시가 대표성을 가지지 못할 경우 잘못된 결과를 출력할 수 있다.

3. 퓨샷(Few-shot) 프롬프트

  • 정의 : 퓨샷 프롬프트는 모델에게 두 개 이상의 예시를 제공하여 작업 방식이나 출력 형태를 더욱 명확하게 제시하는 방식이다. 여러 예시를 통해 모델은 더 정확한 결과를 생성할 수 있습니다.
  • 특징 : 다양한 예시를 제공함으로써 모델의 일반화 능력을 향상시키고, 결과의 정확도를 높일 수 있으며, 원샷보다 더 많은 정보를 제공하므로, 복잡한 작업이나 특수한 형태의 출력에도 효과적이다.


신입사원 업무 지시 상황으로 풀어보는 프롬프트 엔지니어링

신입사원에게 "시장 조사 보고서를 작성해 보세요"라고 지시하는 상황을 가정해 보자.

1. 제로샷 (Zero-shot): "시장 조사 보고서를 작성해 보세요."

신입사원은 무엇부터 시작해야 할지 막막할 것이다. 시장 조사의 범위, 보고서의 형식, 포함해야 할 내용 등 아무런 지침이 없기 때문에 혼란스러워하고 엉뚱한 결과물을 가져올 가능성이 높다. 마치 제로샷 프롬프트처럼, 아무런 예시나 맥락 없이 광범위한 작업을 지시받았기 때문에 방향을 잡지 못하는 때문이다.
    
2. 원샷 (One-shot): "이전 보고서처럼 작성해 보세요. (이전 보고서 전달)"

이전 보고서를 참고 자료로 제공하면 신입사원은 어느 정도 방향을 잡을 수 있다. 보고서의 형식, 구성, 내용 등을 파악하고 이를 참고하여 자신의 보고서를 작성할 것이다. 이는 원샷 프롬프트와 유사하다. 신입사원에게 하나의 예시를 통해 작업의 기준을 제시해 주는 것이다. 하지만 이전 보고서가 현재 상황과 완전히 일치하지 않을 경우, 일부 오류가 발생할 수 있다.


3. 퓨샷 (Few-shot): "이전 보고서 두세 개를 참고하여 작성해 보세요. 특히 이 부분들을 중점적으로 보세요. (이전 보고서들 전달 및 핵심 부분 강조)"

여러 개의 이전 보고서를 제공하고, 특히 중점적으로 봐야 할 부분을 명확히 알려주면 신입사원은 훨씬 더 명확하게 방향을 잡을 수 있다. 다양한 예시를 통해 보고서의 다양한 측면을 이해하고, 핵심 포인트를 중심으로 파악하고 자신만의 보고서를 작성할 것이다. 이는 퓨샷 프롬프트와 같습니다. 인공지능 모델은 여러 예시를 통해 패턴을 학습하고, 더 정확하고 완성도 높은 결과물을 만들 수 있도록 돕는 것이다.

 

고맥락 및 저맥락 문화와 프롬프트

프롬프트 엔지니어링은 고맥락 문화와 저맥락 문화의 차이로도 설명할 수 있다.

1. 고맥락 문화 : 배경 정보나 맥락을 공유하는 것을 중요하게 생각하는 문화이다.

제로샷 프롬프트는 고맥락 문화에 가깝다고 할 수 있다. 이미 많은 정보를 공유하고 있다고 가정하기 때문에, 명확한 지침 없이도 의사소통이 가능하다고 생각하는 것이다.

직장 생활을 한 사람들은 누구나 한번쯤 경험을 했을 것이다. 상사가 정확한 지시없이 흐리멍텅하게 업무 지시를 하는 경우가 있다. 이때 참 난감하다.  어쩌면 오랫동안 상사와 일해왔고 팀의 전체적인 상황 등 맥락을 알고 있다면 어쩌면 추상적인 업무 지시를 잘 수행할 수 있을지 모르겠다.

하지만 AI 모델은 인간처럼 맥락을 공유하지 않기 때문에, 고맥락적인 프롬프트는 효과적이지 않다.

2. 저맥락 문화 : 명확하고 구체적인 정보를 전달하는 것을 중요하게 생각하는 문화이다.

원샷, 퓨샷 프롬프트는 저맥락 문화에 근접하다고 할 수 있다. 상사가 필요한 정보를 명확하게 제공함으로써 업무 지시를 한다면 팀원은 오해의 소지를 줄이고, 업무를 효율적인 수행할 수 있을 것이다. AI 모델에게는 이러한 저맥락적인 프롬프트가 훨씬 효과적이다.


결론적으로, AI 모델에게 효과적으로 일을 시키기 위해서는 신입 사원에게 업무 지시를 할 때처럼, 명확한 지침과 충분한 예시를 제공하는 것이 중요합니다. 즉, 저맥락적인 방식으로 프롬프트를 작성하는 것이 효과적이라는 얘기다. 특히 복잡한 작업일수록 퓨샷 프롬프트를 활용하여 여러 예시를 제공함으로써 AI가 원하는 결과를 정확하게 생성하도록 유도해야 한다.