[복습] 프롬프트 엔지니어링 feat. ChatGPT
![](https://blog.kakaocdn.net/dn/GKZ95/btsLBKc4m3X/ZffrfMNwN7rsj3kismvHx1/tfile.jpeg)
기본개념
프롬프트 엔지니어링이란? 시스템 입력창을 잘 설계하는 것
AI에게 특정 작업을 잘 수행하도록 지시하는 것일 수도,
그래서 얻고자하는 결과를 잘 얻어내는 것일 수도,
이걸 AI와 대화한다고 표현하기로 함
앞으로 업무효율성을 높이고, 창의성에 (결과물로 실현시킴으로써) 도움이 되어
시장 수요가 높아질 전망임 - 새로운 시대의 코딩 능력
그럼에도 불구하고 여럿 한계가 존재함
- 결과를 예측하기 힘들다 >> 고로 일관적인 결과와 정확도를 높일 프롬프트를 작성해야
- 매번 결과가 다르다 >> 맥락과 예시 결과값을 함께 지정해서 설계해야 함
- 할루시네이션의 한계 >> 잘 작성된 프롬프트와 크로스체크할 외부 데이터(지식) 연결
- 학습된 내용내에서만 답변함 >> 예시/지식을 주거나, 외부와 연결시켜야 함
프롬프트 엔지니어링을 잘하기 위해서는
1) 소통을 잘해야 함 : 지시를 명확하고, 상세하게 요청할 줄 알아야 함
2) 언어를 잘해야 : 적절한 어휘와, 동사를 쓸 수 있어야
3) 전문 지식이 있어야 : 특정 분야에 깊은 이해도가 보유되어야
4) 비판적인 사고 필요 : 잘못된 정보를 거를 수 있는 사고가 필요함
5) 창의적이어야 : 여럿 새로운 조합을 생각하고, 시도해볼 수록 유리함
➡️ AI를 개인비서로 생각해서 초안을 작성하거나, 아이디어를 뽑는 용도로 활용해야함
프롬프트의 활용범위
- ChatGPT를 활용하는데 도움을 받거나 : 적절한 질문으로 원하는 답 얻기
- 나만의 챗봇(GPTs) 만들거나
- AI 챗봇서비스 또는 응용서비스를 개발할 수 있음
작성 팁
- 영어가 낫다 : 학습데이터 양, 응답속도, 성능에서 훨 유리함
- 편한 언어로 써라 : 한글로 쓰는게 편하면, 그렇게한뒤에 번역을 돌려라
프롬프트 기획
1) 문제 정의하기
- 나 또는 고객이 겪는 불편함을 정의하고
- 어떤 사람이 사용할지 타겟고객을 지정한 뒤
- 그에게 줄 수 있는 가치를 제안함
2) 목표/대상 지정
- 평가 기준을 세워라 : 원하는 결과의 00% 수준, 시간 단축, 사용빈도 등
3) 프롬프트 작성
- 성공적인 프롬프트의 조건
: 명확한 문제인식, 정확한 지시, 답변의 일관도, 구조화된 프롬프트
- 프로프트 작성 노하우
> 간단하게 시작해라 ~ 복잡하지 않은 질문에서 시작하자
> 간결하고 명확히 지시하라 ~ 목표와 요구사항을 전달해라
> 구체적으로 작성하자 ~ 타겟 사용자, 예시, 결과값을 지정하라
> 반복해서 질문하라 ~ 원하는 결과가 나올때까지 유도 질문하라
4) 개선 & 시도의 반복
프롬프트 작성 잘하기 위한 요소 5가지
1. 역할을 지정하라 - Role Play
- AI에게 특정한 역할을 부여해라 : 직무 or 전문지식을 가진 캐릭터로
- 상황에 맞는 응답할 것을 유도하라
2. 맥락을 설정하라 - Context Setting
- 상황이나 배경정보를 제공해서 응답의 정확성과 관련성을 높여라
- 목표를 설정하고, 대상고객을 선정하며, 구체적인 방법론 및 프레임워크를 제공하라
E.g. 비즈니스 캔버스, SWOT, SMART 목표척도 등
3. 지시를 명확히 하라
- 동작을 나타내는 명령어(동사)를 사용해서 구체적인 행동을 지시하라
: 생성하라(Generate, Craft), 질문해라(Ask question), 요약해라(Summarize)
4. 단계별로 지시하게 설정해라
- 동작의 순서를 (넘버링한 지시사항을 통해) 명시해라
5. 제약사항을 설정하라 - Set constraints
- 작업하면서 고려해야할 특정 제약요건을 명시하라
e.g. 언어, 톤앤매너, 사실 기반, 길이 등
6. 결과값 지정하기 - Output indicator
- 특정 형식이나 구조의 출력을 요청해라 e.g. 표, Bullet point, 이미지, 코드, 차트 등
샷프롬프팅 : 제로샷, 원샷, 퓨삿 등
1) 제로샷 프롬프팅 - 관련 예시 없이 문제를 바로 제시함
2) 원샷 프롬프팅 - 하나의 예시를 제공해 원하는 응답을 유도함
3) 퓨삿 프롬프팅 - 여러 개의 예시를 제공해 더 정확하고 다양한 응답을 생성함
4) CoT 프롬프팅 - 단계별로 생각의 전개를 제공해 복잡한 추론문제를 해결함
5) 제로샷 CoT - 예시없이도 단계별로 생각을 전개하고, 해결과정을 설명하도록 함
*Let’s think step by step 이라고 끝냄