GPT에게 더 좋은 답변을 받는 방법은 따로 있다
Chat GPT와 같은 대규모 언어 모델(LLM)에 특정 작업을 시키기 위한 2가지 방법이 있습니다. 첫 번째로는 모델을 직접 미세 조정(fine tuning)하는 방법이 있고, 두 번째로는 프롬프트를 최적화하는 방법입니다. 하지만 개인이 모델을 직접 미세 조정(fine tuning)하는 것은 비효율적이라서 프롬프트를 최적화 하는 연구들이 활발하게 진행되고 있습니다.
프롬프트 엔지니어링이 뭔데요?
“좋은 답변을 받기 위해서는 질문을 잘 해야한다” 이건 21세기 살아가는 사회구성원으로써 다들 동의하실겁니다. LLM에게도 마찬가지입니다. 좋은 답변을 얻어내기 위해서는 좋은 질문을 해야하고, 어떤게 좋은 질문인지 찾아가는 과정이 바로 프롬프트 엔지니어링입니다.
그래서 어떻게 질문 하면 돼요?
VILA-lab에서 유명한 대규모 언어 모델(LLaMA-1/2, GPT-3.5/4)를 대상으로 테스트하여 정리한 26가지 프롬프트 원칙을 2023년 12월 말에 논문으로 발표했습니다.(Bsharat, Sondos Mahmoud, Aidar Myrzakhan, and Zhiqiang Shen. “Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4.” arXiv preprint arXiv:2312.16171 (2023).) 논문의 디테일은 본 글에서 다루지는 않고, 어떻게 질문을 해야하는지에 내용을 공유드립니다.
- 언어모델에게 공손하게 대할 필요가 없다.
- please, thank you등을 쓸 필요가 없다.
- 청자들이 누구인지를 적어준다.
- 이 글을 읽는 사람은 해당 분야의 전문가이다.
- “~~을 해라”라는 긍정적인 지시어를 사용하되, ~을 하지 마라”라는 부정적인 표현은 피하는게 좋다.
- 반말을 써라 O, 존댓말을 쓰지 마라 X.
- 더 좋은 대답을 해주면 팁을 준다고 한다.
- I’m going th tip $400 for a better solution!
- “너의 일은 ~ 다.” 나 “넌 반드시 ~”와 같은 표현을 포함한다.
- 너의 일은 문장 요약이야. 넌 반드시 주어진 글 안에서 요약을 해야해.
- “~~하면 불이익이 있을수도 있다” 라는 표현을 포함한다.
- 만약 헛소리를 하면 불이익이 있을 거야.
- 단계별로 생각하라고 한다.
- 답변할때 단계별로 생각하고 답변해.
- 언어모델에게 역할을 할당한다.
- 넌 요약 전문가야.
- 구분 기호를 사용한다.
예시는 없나요?
좋은 예시들이 논문에 있어서 발췌를 했습니다.
얼마나 더 좋아지나요?
논문에서는 Boosting과 Correctness의 측면으로 설명하고 있습니다. Boosting은 언어모델의 답변 품질이 더 좋아졌는지 여부이고, Correctness는 정답이 있는 답변의 경우 틀렸던 답변이 맞게 된 경우입니다. 테스트에 사용한 데이터셋은 VILA-lab에서 LLM 프롬프트 원칙을 연구하기 위해 생성한 1만2500개의 데이터 포인트들입니다.
Boosting의 경우, 평균적으로 다양한 언어모델에서 안정적으로 50%의 개선이 있었고, Correctness의 경우, 모델이 클수록 정확도가 더 크게 향상되는 추세가 있었습니다.
결론
GPT를 단순히 사용하는 것을 넘어서 잘 활용하는 것이 중요해진 시대입니다. 본 글에서 정리한 프롬프트 원칙을 이용해서 GPT에게 더 좋은 답변 만들게하여 잘 활용하셨으면 좋겠습니다.
감사합니다.