ChatGPT, Gemini와 같은 생성형, 대화형 AI가 대두되면서 단순히 대화를 주고받으며 정보를 얻는 것을 넘어
어떻게 해야 이를 잘 활용할 지에 대해 큰 관심이 쏠리고 있다.
대표적으로 파인 튜닝
, 프롬프트 엔지니어링
, RAG
등의 기술이 각광받고 있는데
그 중 나도 직접 경험해 본 프롬프트 엔지니어링에 대해 먼저 얘기해볼까 한다.
프롬프트가 중요한 이유는 모든 유형의 입력이 유용한 출력을 생성하는 것은 아니기 때문이다.
생성형 AI가 정확한 응답을 생성하기 위해선 컨텍스트와 세부 정보가 필요하기 때문.
따라서, 체계적인 프롬프트 설계는 보다 유의미한 결과를 위한 초석이라고 생각하면 된다.
DAIR.AI에서 제공하는 프롬프트 엔지니어링 가이드에 따르면,
프롬프트의 구성 요소는 다음과 같다.
1. 명령(Instruction) : 모델이 수행하길 원하는 특정 작업 또는 지침
2. 컨텍스트(Context) : 모델을 조정할 수 있는 외부 정보 또는 추가 맥락
3. 입력 데이터(Input Data) : 답변을 찾고자 하는 입력 또는 질문
4. 출력 데이터(Output Data) : 출력의 유형 또는 형식
AWS
에선 프롬프트 엔지니어링을 '생성형 AI에게 솔루션을 안내해 원하는 결과를 생성하는 프로세스' 라고 정의하고 있다.삼성SDS
에 따르면, 원하는 결괏값에 최대한 가까워지도록 입력을 계속해서 다듬는 과정을 일컫는다.프롬프트 엔지니어링
이라 칭할 수 있다.결과적으로, 사용자와 생성형 AI(LLM)
간의 격차를 해소함에 있다.
AI 애플리케이션의 효율성, 효과를 높이고 원하는 최상의 결과를 얻을 수 있기 때문이다.
이러한 과정에서 핵심은 자연어를 통해 AI 모델의 성능을 최대한 끌어올리고, 원하는 결과를 도출해내는 프롬프트를 구성하는 것이다.
그렇다면 프롬프트 엔지니어링은 어떤 이점이 있을까?
일반적으로 프롬프트 엔지니어링은 제로샷(zero-shot)
, 퓨샷(few-shot)
의 두가지 기법으로 나뉜다.
제로샷
예시를 제공하지 않고, 간단한 명령어 입력을 통해 예상되는 결과를 생성하는 방식.
특정 작업과 관련된 데이터 사용없이 LLM
을 학습시키는 것이 목적
ex) 다음의 기사를 3줄의 문장으로 요약하라
퓨샷
원하는 결과를 얻기 위해 소량의 샘플 정보, 데이터를 사용해 LLM
을 학습시키는 방식.
3가지 구성요소로 이루어져 있다.
대부분 API에선 사용자가 자체적인 프롬프트 엔지니어링 기법을 적용할 수 있다.
프롬프트 인젝션 이라 불리는 프롬프트 엔지니어링의 악의적 사용은
Bing
의 사례(회사 내부 기밀인 코드명(Sydney) 유출)과 같이 점점 심각성이 대두되고 있다.
또한, 기존 설계와 달리 의도치 않는 방식으로 생성형 AI를 사용하는 과정의 방지 방안 역시 중요시되고있다.
뤼른테크놀로지스
와 같이 생성형 AI를 메인으로 활용하는 기업들의 등장과, 그에 따른 프롬프트 엔지니어에 대한 수요도 증가하고 있다.
당연히, KT DS
등의 기업에서도 생성형 AI를 활용한 서비스 들을 개발하고 있으니 중요성은 점점 더 올라갈 것이라고 전망한다.
또한 GPT4o
로 접어들면서, 프롬프트 엔지니어링
과 RAG
를 도입한 프롬프트를 공유하는 시장도 더욱 활발해지고 있다.
대표적인 예시로 프롬프트베이스(PromptBase)
, 프롬프트플랫(Promptflat)
, 플로우GPT(FlowGPT)
등이 있다.
하지만, 반대로 프롬프트 엔지니어링의 필요성에 의문을 제기하는 사례도 있다.
이 또한 메타버스
와 같은 하나의 유행으로 보고, 사라질 시기를 바라보는 관점도 있기 때문이다.
또한 GPT AI의 경우, 3.5
에서 4o
로 진화하면서 정교한 프롬프트 엔지니어링 없이도 효과적인 결과를 도출하기 때문이다.
COCO
프로젝트, EDU:CONNECT
프로젝트내의 GPT API 연동 서비스를 개발하면서
퓨샷(few-shot)
방식의 프롬프트 엔지니어링을 경험하고 도입했었다.
당시, GPT 4
가 막 등장한 상태에서 3.5 turbo
모델을 프롬프트 엔지니어링과 함께 API로 사용했었는데, 도입 전/후의 결과값 차이가 유의미한 것을 직접 경험하며 중요성을 인지했다.
비교적 새로운 분야인 생성형 AI의 효율적 활용은
단순히 한 직무의 TASK가 아닌, 모든 직무에서 어떻게 잘 활용할 지를 고민하고 시도하는 자세가 필요하다고 생각한다.
국어, 수학과 같이 AI를 다루는 방법에 대해 모두가 배워야 한다고 생각하기 때문이다.
[참고자료]