https://arxiv.org/abs/2302.11382
2023년 2월에 발표된 논문으로, 요즘 어디서든 빠지면 서운한 ChatGPT 관련하여 사용자의 Prompt engineering 의 중요성을 명시하면서 Prompt pattern 유형을 정리하고 있는 논문이다.
ANLP 수업에서 과제로 논문 발표를 준비하며 읽게 된 논문인데 블로그에도 공유해보고자 한다.
해당 논문은 human 강화학습과 관련하여 score나 수식으로 성능을 높일 수 있는 방안을 제시한 논문은 아니다. prompt를 어떤 식으로 제시했을 때 원하는 답변을 얻을 수 있다는 유형을 정리한 논문이다. 여러가지 prompt의 패턴을 제시하고, 예시를 보여주고 있기에 논문보다는 techinical report에 가깝다는 생각이 들었다.
Prompt Engineering 이란?
ChatGPT와 같은 대규모 언어모델(LLM: Large Language Model)과 효율적으로 대화하기 위해 필요한 기술이다.
Prompt란 사용자가 LLM에게 지시하는 명령문인데, LLM으로부터 높은 품질의 대답을 얻어낼 수 있도록 사용자가 어떻게 지시하느냐가 굉장히 중요하다.
이에 언급하고 있는 개념이 Prompt Pattern이다. 상호작용을 통해 원하는 값을 얻을 수 있도록 의미적으로 중요한, 구조화된 패턴을 찾아 이에 맞게 prompt를 입력하는 것이다.
Prompt engineering의 필요성
" I would like you to ask me questions to deploy a Python application to AWS." 라고 질문하였을 때, 여러 선택지를 물어본다.
어떤 종류의 어플리케이션을 개발할 것인지, 서비스하고자 하는 것이 무엇인지, 이미 파이썬과 AWS를 설치하였는지 등등을 물어본다. 이후 대답에 따라 LLM이 제공하는 답변은 달라질 것이다.
보통 ChatGPT에게 바로 "~~를 수행하는 파이썬 코드를 짜줘" 라고 하기 보다는 나는 이제부터 파이썬 코드를 만드려고 해 라는 질문 이후 나의 테스크를 하나씩 입력해줄 때 더 높은 품질의 코드를 얻을 수 있었다.
이처럼 Prompt를 어떻게 입력하느냐는 매우 중요하며, 이러한 prompt의 조합과 패턴을 찾아나가는 과정이 prompt engineering인 것이다.
해당 논문에서는 원하는 답을 얻기 위한 prompt engineering의 중요성을 말하면서 16개의 prompt pattern을 제시하고 있다.
각 prompt pattern을 name, intent, motivation, structure, example implementation, consequnces에 맞추어 설명하고 있다.
16개의 prompt pattern은 위와 같다. 그 중 몇개의 유형에 대한 예시이다.
ChatGPT의 활용이 점점 대중화되고 있다보니 이와 관련된 논문도 많이 쏟아지고 있다.
교수님께서 해당 prompt pattern을 활용하였을 때 효율적인 답변을 출력한다는 기준이 뭔지 질문을 주셨었다. 나도 논문을 읽으면서 궁금했던 부분인데 마침 질문을 받았다. 해당 논문은 정확한 metric을 제시하여 experiment을 실행한 것 같지는 않았다. (논문에 해당 부분이 자세히 없었다.) 비전공자가 경험에 의한 테크니컬 레포트를 작성한 것 같다고 답변했었는데 나의 주관적인 견해이다.
대화형 LLM을 활용하는 능력과 human feedback, inference가 중요해져가는 시대에 데이터 사이언티스트로 키워나가야 할 역량에 대해 고민하게되는, 질문을 던지게 되는 논문이었다.