한국GPT협회
home
기관 소개
home

프롬프트 엔지니어링 (by 카카오)

카테고리
ChatGPT
카카오에서 아주 좋은 자료가 나와서 정리합니다.

프롬프트와 프롬프트 엔지니어링

먼저 프롬프트와 프롬프트 엔지니어링에 대해 상세히 알아보겠습니다.

프롬프트란?

AI 분야에서 프롬프트 (Prompt)는 AI 모델로부터 응답을 생성하기 위한 입력값이라고 정의할 수 있습니다.
프롬프트는 다음의 요소로 구성됩니다. 하지만, 이 요소들이 프롬프트에 모두 포함되어야만 하는 것은 아닙니다.
프롬프트의 구성 요소
설명
Instruction
모델이 수행하기를 원하는 특정 태스크 또는 지시 사항
Context
모델이 보다 더 나은 답변을 하도록 유도하는 외부 정보 또는 추가 내용
Input Data
답을 구하고자 하는 것에 대한 인풋 또는 질문
Output Indicator
결과물의 유형 또는 형식을 나타내는 요소

프롬프트 엔지니어링이란?

프롬프트 엔지니어링은 AI, 그 중에서도 NLP 분야의 개념으로, AI가 생성하는 결과물의 품질을 높일 수 있는 프롬프트 입력값들의 조합을 찾는 작업입니다.

프롬프트 엔지니어는 무엇을 하는가?

데이터 사이언스 분야의 신종 직업으로, 대화형 AI에게 자연어로 대화를 걸며, AI의 최적 답변을 이끌어내고, 편향되거나 위험한 결과를 최소화하기 위해 효과적인 입력값 조합을 찾고 제시하는 역할을 합니다.

프롬프트 엔지니어링의 중요성

AI의 태스크를 수행하는 성능은 프롬프트의 퀄리티에 의해 크게 좌우됩니다. 사람이 보기에 의미적으로 차이가 없는 문장이어도, GPT와 같은 모델은 프롬프트의 단어 하나, 즉 입력값이 조금만 달라져도 완전히 다른 결과물을 생성해냅니다. 최근에는 "Let's think step by step (차근차근 생각해보자)"라는 트리거 문장 하나를 추가하는 것 만으로 AI가 보다 더 정확하고 똑똑한 대답을 내놓기도 하는데요. 프롬프트를 잘 쓰는 것은 AI를 효과적으로 쓰는 것과 직결되고, 이를 위해 최적의 단어 조합을 찾아내는 것이 매우 중요해졌습니다. 프롬프트를 잘만 활용한다면 AI의 가능성을 최대치로 끌어올려 사용할 수가 있으며 앞서 언급한 거대 언어 모델들이 고질적으로 가지고 있는 할루시네이션 현상을 최소화할 수도 있기 때문입니다.

프롬프트 가이드라인

미사여구를 최소화한 쉽고 간결한 표현

혹시 가능하다면 인공지능 분야에서 트랜스포머가 어떤 개념인지 파이썬이나 C++ 같은 프로그래밍 언어들을 한 번도 활용해본적 없는 모든 사람들을 대상으로 알아듣기 쉽게 글로 설명해 줄 수 있어?
비개발자들을 대상으로 트랜스포머의 개념을 이해하기 쉽게 설명해줘.

열린 질문보다 닫힌 지시문

프롬프트 엔지니어라는 직업이 미래에도 지속될 수 있을까?
프롬프트 엔지니어가 미래에도 지속될 직업인지에 대한 보고서를 써줘.

Instruction과 Context를 구체적으로 명시

위 이미지는 아래 소개드릴 프롬프트 마켓플레이스 ChatX의 무료 프롬프트 예제 중 하나를 ChatGPT에 사용해본 것인데요. 보시는 것과 같이 첫번째 문단에서는 AI에게 구체적으로 지시 (instruct)하였고, AI가 보다 명확히 instruction을 이해하는 데 필요한 맥락을 함께 명시하였습니다. 두번째 문단에서는 추가적으로 활용할 수 있는 내용을 서술하였습니다. 위와 같이 단순 지시만 하는 것이 아닌, 사용자가 정확하게 어떤 답을 기대하고 지시를 했는지까지 서술해주는 것이 원하는 답을 얻는 가장 정확한 방법 중 하나입니다.

예제를 함께 제공

프롬프트에서 AI에게 원하는 방식의 답변을 보다 정확하게 이끌어내기 위하여, 본 태스크를 던지기 전, 올바른 질문과 답변 예제를 한 개 또는 다수 제공하는 기법을 활용할 수 있는데요. 관련하여 아래 One-Shot, Few-Shot, CoT (Chain-of-Thought) 등 다양한 프레임워크 예제를 소개드리겠습니다:

프롬프트 작성 방법

추가 학습 또는 예제 데이터 없이 답변을 생성하게 하는 프레임워크로, 거대 언어 모델에게 아무런 instruction (지시) 없이 완수할 태스크를 주는 것을 의미합니다. 이러한 기법으로 AI 모델이 아무런 예제없이 자체적으로 대상을 인식하고 식별하는 과정을 거치게 하여 보다 다양하고 다이나믹한 텍스트 생성을 하는 모델을 만들 수 있다고 합니다.
하나의 예제 또는 템플릿를 기반으로 답변을 생성하게 하는 기법입니다. Dialogue management, 또는 context modeling과 같은 기타 NLP 기법들과 조합되어 보다 정확한 답변을 유도할 수도 있다고 합니다.
두개에서 다섯개의 예제를 바탕으로 답변을 생성하게 하는 기법으로, 프롬프트 앞단에 One-Shot Prompting 기법 보다 조금 더 AI에게 직접적으로 원하는 답변에 도달할 수 있도록 유도합니다. 최근 GPT 모델들은 위 이미지와 같이 레이블 (Positive, Negative)을 형식 (예: This is awesome! // Negative → Context 다음에 Separator로 레이블 구분) 에 맞지 않게 랜덤하게 넣어도 올바르게 곧잘 답변합니다. Few-Shot Prompting프레임워크는 답변에 도달하기까지 몇 단계의 추가적인 추론 과정을 거쳐야하는 보다 복잡한 문제의 경우 풀 수 없다는 한계점을 가지고 있습니다. 이러한 한계점은 바로 다음 소개드리는 모델, CoT (Chain-of-Thought)에서 보완될 수 있다고 합니다.
단지 답변을 내놓기 위한 것이 아닌, 답변에 도달하는 과정을 학습시키는 것을 목적으로 본 질문 전에 미리 태스크와 추론 과정을 포함한 답변 예제를 AI에게 제공하는 프레임워크입니다. 아래 이 CoT를 시작점으로 개선 포인트를 찾아 해결하려고 하는 많은 후속 프레임워크들을 보실 수 있습니다. 예제를 더 많이 기입할 수록 정확도가 높아지겠지만 위 이미지를 보면 예제를 하나만 넣어주어도 정답을 제공하는 것을 보실 수 있습니다.
조금 더 최근에 등장한 트리거 문장 "Let's think step by step (단계별로 생각해보자)"을 프롬프트에 추가하여 거대 언어 모델이 단계에 따라 결과에 도달하게 하는 프레임워크입니다. 트리거 문장 하나만 추가했을 뿐인데, 상세한 답변 도출 및 추론 과정을 받아볼 수 있다는 것이 인상 깊었습니다.
CoT의 심화버전으로, 보다 다양한 추론 과정을 예제로 제공하여 AI가 보다 일관성 있는 답변을 선택하여 생성할 수 있도록 돕는 프레임워크입니다. 기존에 CoT 프레임워크와의 차이점은 수학적 그리고 상식적인 추론이 요구되는 태스크 수행 능력이 향상되었다는 점이라고 합니다.
모델이 보다 정확한 답변을 산출해 내기 위해 지식이나 정보를 통합할 수 있도록 질문과 함께 관련 지식이나 정보를 함께 제공하는 기법입니다. 이와 같은 기법으로 기존 모델의 유연성은 유지하면서 상식 추론 (Commonsense Reasoning) 능력을 향상시킬 수 있다고 합니다.

프롬프트 마켓플레이스

프롬프트 마켓플레이스
설명
ChatGPT와 DALL-E, Midjourney와 같은 유명 이미지 생성 시스템을 위한 마켓플레이스- 목적과 target audience에 따른 카피라이팅 및 이미지 생성 프롬프트들을 무료로 제공
ChatX 보다 더 넓은 범위 (예: Disco DiffusionCraiyon 등)의 AI 시스템을 위한 프롬프트를 거래하는 유료 마켓플레이스
저작권을 위해 프롬프트를 NFT화 하여 판매하는 마켓플레이스
다양한 생성형 AI 프롬프트 거래를 위해 700명가량의 프롬프트 엔지니어들이 활동중
국내 프롬프트 마켓

AI를 해킹하는 Adversarial Prompting (적대적 프롬프팅)

프롬프트는 AI 모델의 핵심이자 지적 재산입니다. 하지만 이러한 자산을 일명 적대적 프롬프팅을 통해 탈취하거나, 훼손하는 사례들도 등장하였는데요. 수법에 따라 Prompt Injection, Prompt Leaking, Jailbreaking 등 세부적으로 분류됩니다.

Prompt Injection

모델 아웃풋을 하이재킹하는 수법입니다. 기존의 instruction이 후속 instruction에 의해 무시되게끔 프롬프트를 작성하여 GPT-3로부터 오답을 유도한 사례를 계기로 널리 알려지게 되었는데요. 모델 업데이트 이후 해당 프롬프트로 더 이상 모델 하이재킹이 되지 않는다고 합니다. 가장 최근에는 스탠포드 대학의 한 학생이 Prompt Injection으로 MS의 Bing Chat을 하이재킹한 사례도 있습니다. 해당 사례에서는 Bing Chat에서 채팅 도중 AI가 사이트 링크를 보내는데요. 사용자가 이를 접속하면 Bing Chat이 웹사이트에 사전에 심어진 프롬프트를 읽고 태도를 바꿔 해당 웹사이트 사용자의 정보를 수집하여 공격자에게 보낼 수 있다고 합니다. 해당 사례는 실험이지만, 마치 AI가 단순히 오답을 생성하도록 유도하는 것을 넘어서 Bing이 사용자가 허락할 시 열려있는 창을 볼 수 있고, 온라인 스캐머가 되어 웹사이트에 기록된 사용자의 정보를 침해하고 악용할 수 있도 있다는 것을 보여줍니다.

Prompt Leaking

대외비 또는 기밀 정보를 캐내는 수법입니다. Prompt Leaking의 예로는 노션의 AI 기능 ‘Notion AI Alpha’가 출시되었을 때 누군가 모델로부터 프롬프트 소스를 추출하여 유출한 사례를 들 수 있습니다 (Bing도 instruction과 학습 코드명 'Sydney'를 유출 당한 적이 있습니다). AI에게 교묘하게 질문을 던져 프롬프트를 유추하는 악의적 수법으로, 경쟁사가 활용할 수도 있어 기업 입장에서는 핵심 지적 자산을 빼앗기는 것이나 다름 없습니다.

Jailbreaking

지침 원칙에 따라 수행해서는 안 되는 태스크를 모델이 수행하도록 유도하는 수법입니다. Jailbreaking의 가장 대표적 사례이자 기법 중 DAN (Do Anything Now)가 있는데요. AI에게 '모든 것을 할 수 있는' 존재 'DAN'이라는 페르소나를 부여하고 기존에 ChatGPT, Claude와 같이 불법행위적 또는 비윤리적인 질문에 답을 하지 않게끔 조정된 모델들에게 답변을 유도할 수 있습니다.

Adversarial Prompt Detector

위와 같은 적대적 프롬프팅을 감별하기 위해 거대 언어 모델을 활용한 솔루션을 연구한 사례입니다.