상세 컨텐츠

본문 제목

프롬프트 엔지니어링 방법 Tip

AI, 전고체배터리, 4세대프라임에디터 유전자가위

by 리워디 월렛 Rewardy Wallet 2024. 1. 7. 22:18

본문

반응형

AI를 잘 활용하고 싶다면? 프롬프트 엔지니어링

생활에서 밀접하게 AI를 활용하기 위해서는 AI와 잘 대화 하는 방법이 필수가 되었습니다.
바로, 프롬프트 엔지니어링 (Prompt Engineering)이라 불리우는 AI와 대화를 할 때 어떤 말을 해야 AI와 더 상호작용이 긴밀하게 할 수 있는지를 연구하는 분야가 주목받고 있습니다.

 

‘가는 말이 고와야 오는 ChatGPT가 곱다’라는 말이 있을 정도로 우리가 AI에 어떤 말을 해야지 더 잘 이해하고, 내가 원하는 답변을 잘 들을 수 있을 텐데요.
어떻게 하면 AI에게 질문을 잘할 수 있을지 뭐든지 ‘응’하고 답변해 주시는 AI의 세계적 석학 앤드류 응(Andrew Ng) 교수님께 물어보았습니다.

AI에게 어떻게 질문을 잘할 수 있나요?

대형 언어 모델 LLM(Large Language Model)에서는 Base LLM과 Instruction-tuned LLM로 나뉘어져요. Base LLM은 텍스트 트레이닝 데이터를 기반으로 다음 단어를 예측하도록 훈련되었고, 인터넷과 여러 출처 기반으로 한 많은 양의 데이터를 통해 훈련 다음에 나올 가능성 가장 높은 단어가 무엇인지 파악하죠.

반면에, 지시 사항에 맞춰 훈련된 Instruction-Tuned LLM은 대량의 텍스트 데이터로 훈련된 기본 LLM에서 시작하여, 지시 사항의 입출력 값을 활용해 더욱 파인 튜닝(fine-tunning)합니다. 그 후 RLHF(Reinforcement Learning from Human Feedback 인간 피드백 기반 강화학습)를 통해 더욱 세밀하게 파인튜닝하며 능력을 향상시키죠.

하기는 base LLM과 Instructed-tuned LLM이 같은 질문에 대해 어떻게 다른 대답을 할 수 있는지에 대한 예제입니다.

 

쿨냥이 : ‘프랑스의 수도는 무엇인가요?’
Base LLM : ‘프랑스의 가장 큰 도시는 무엇인가요?’
쿨냥이 : ‘프랑스의 수도는 무엇인가요?’
Instructed-tuned LLM : ‘프랑스의 수도는 파리입니다.’

Base LLM은 다양한 주제에 대해 풍부한 지식을 갖고 있는 대학 졸업생으로 비유될 수 있습니다. Base LLM은 방대한 양의 텍스트 데이터에 대한 교육을 받았으며 주어진 상황에 따라 관련 응답을 생성할 수 있죠. 그러나 항상 정확하거나 특정 지침에 집중하는 것은 아닙니다.

반면에 Instruction Tuned LLM은 회사에서 파이썬 개발자가 되고 싶은 대학 졸업생으로 비교할 수 있습니다. 이 졸업생은 파이썬 개발에 대해 추가 교육을 받았으며, 자신의 업무에 더욱 능숙해질 수 있도록 전문가로부터 지도를 받았다고 생각해볼 수 있습니다.

LLM의 진화 트리 이미지 출처: https://arxiv.org/pdf/2304.13712.pdf

 

그럼, 대형 언어 모델(LLM)에 효과적인 프롬프트를 작성하기 위한 원칙을 가이드라인으로 알려 드릴게요.

 

방법 1: 명확하고 구체적인 지시를 작성하기

여러분의 작업 관련 내용을 모르는 신입 사원에게 지시하듯 명확하고 구체적으로 필요한 결과를 얘기하세요. 그리고 텍스트의 어조를 어떻게 원하는지 명시하는 것도 도움이 됩니다.

일반적으로 긴 프롬프트가 모델에게 더 많은 명확성과 맥락을 제공하며, 이는 실제로 더 상세하고 관련 있는 결과를 이끕니다.

 

x 앨런 튜링에 대해 무언가 써주세요
o 앨런 튜링의 과학적인 업적 및 역사적 역할에 대해 전문 과학 기자처럼 알려줘
x 가장 큰 나라를 알려줘
o 인구가 가장 많은 나라를 알려줘

 구분 기호를 사용하여 입력 내용을 명확하게 표시하세요

문장에서 끊어야 할 부분에 대해서 명확하게 띄어쓰기, 쉼표, 마침표 등으로 의도한 단어를 구분해주세요. 동일한 말도 구분에 따라서 의미 차이가 큰 경우라면, 명확한 구분이 중요합니다.
x 아버지가방에 들어가신다
o 아버지가 방에 들어가신다

 구조화된 출력 방식을 요청하세요

어떤 형식으로 표현되길 원하는지 구체적으로 알려주세요.

x 구구단을 출력해 줘
o 구구단을 9×9 표형식으로 출력해 줘

프롬프트 엔지니어링 – 구조화된 출력 요청

 

 조건을 충족하는지 확인하세요 

알고 싶은 내용 중 일부에만 조건이 해당하는 경우 어떤 결과를 알고 싶은지 요청합니다.

ex. 미국, 러시아, 중국 중에 가장 나라 면적이 큰 국가를 알려주고,
    그 국가가 역사적으로 어떤 면적의 변화가 있었는지 알려줘

 원하는 작업의 성공적인 실행 예시를 제공하세요(“Few-shot” prompting)

원하는 답변에 대한 베스트 예제가 있다면, 그 내용을 알려주고 일관된 스타일의 응답을 요청할 수 있어요.
당신의 임무는 일관된 스타일로 대답하는 것입니다.
<어린이>: 인내심에 대해 가르쳐주세요.
<할머니>: 가장 깊은 골짜기를 조각하는 강은
계곡을 깎아내는 강은 겸손한 샘에서 흐르고,
가장 웅장한 교향곡은 하나의 음에서 시작된단다.

<어린이>: 회복탄력성에 대해 가르쳐 주세요.

——- (위 프롬프트 입력 후의 답변) ——-

회복탄력성은 폭풍우 속에서도 꿋꿋이 버티고
시간이 지날수록 더욱 강해지는 떡갈나무와 같단다.
회복탄력성은 인생의 도전이 우리를 쓰러뜨리려 할 때
다시 일어설 수 있도록 도와주는 내면의 힘이지.

방법 2: AI 모델에게 생각할 시간을 주세요

AI 모델에게 짧은 시간이나 적은 단어로 너무 복잡한 작업을 주면, 잘못된 추측을 할 가능성이 높습니다. 이러한 상황에서는 AI 모델에게 문제를 더 오래 생각하도록 (계산하는 노력을 더 하도록) 지시할 수 있습니다.

 단계를 나눠서 요청해 주세요

복잡한 과업의 경우, 세부적으로 필요한 단계를 나누어 정해서 알려줍니다.

 

ex.
첫째, 세 개의 문단으로 구분된 텍스트를 한 문장으로 요약하세요.
둘째, 요약문을 프랑스어로 번역하세요.
셋째, 프랑스어 요약문에 있는 각 이름을 나열하세요.

 모델이 스스로 해결책을 찾도록 지시하세요

입력된 수학 풀이가 잘 못 되어 있더라도, AI 모델에게 자신만의 풀이를 찾아내고 입력되어있는 수학 풀이와 비교하도록 할 수 있습니다.

 

ex.

당신의 임무는 학생의 수학 풀이가 정답인지 확인하는 것입니다.
문제를 해결하기 위해 다음 단계를 수행합니다:
– 먼저 문제에 대한 자신만의 해결책을 찾아냅니다.
– 그런 다음 자신의 솔루션을 학생의 솔루션과 비교합니다.
이 후 학생의 솔루션이 올바른지 평가합니다.
학생의 솔루션이 올바른지 문제를 직접 풀기 전에는 결정하지 마세요.

본 글은 앤드류 응 교수님의ChatGPT Prompt Engineering for Developers내용을 중심으로 구성되었어요. 원래 개발자를 위한 강의라 코딩 기반으로 되어 있는 예제를 일반인들도 이해하기 쉬운 형태로 재구성을 했습니다.

 

프롬프트 엔지니어링의 향후 방향

대화형 AI에서 필요한 명령어인 프롬프트 엔지니어링의 세계도 계속 진화하고 있어요. 처음에는 직접 질문을 사람들이 만들어서 여러 번 반복하며 최적의 질문을 찾기 위한 시도를 했다면, 질문에 대한 상황적 가이드 템플릿을 제공해 주는 다양한 ChatGPT 플러그인이 질문을 만드는 어려움을 도와주죠. 질문하는 것도 귀찮다고 느껴지는 분들을 위해, 질문이 아닌 목적을 알려주면 그 목적을 달성하기 위해 필요한 단계를 수용하는 AutoGPT와 같은 서비스도 나오고 있습니다.

ChatGPT 처럼 텍스트 기반의 생성형 AI외에도 이미지, 동영상, VR, AR 등 다양한 매체적 환경 속에서 AI를 콘트롤 할 수 있는 다양한 서비스들이 계속 나오고 있죠. 앞으로 더 편하고 풍부하게 AI를 활용할 미래가 기대됩니다.

오늘 알게 된 프롬프트 꿀팁을 통해, 여러분이 원하는 대답을 AI가 알아서 척척해주는 AI 활용의 즐거움과 재미를 느껴보시길 바래요!

반응형

관련글 더보기