[NLP] Prompt Engineering

Bobae·2023년 12월 14일
0

ChatGPT가 큰 인기를 끌게 되면서, AI를 모르는 대중들에게도 AI의 용어들이 점차 소개되고 있습니다.

AI의 가장 큰 트렌드는 바로 LLM (Large Language Model)입니다. 현재, LLM에 대한 연구가 활발하게 진행되고 있으며, 가장 크게 두곽을 나타내는 task는 컨텍스트 이해능력 (context understanding), 텍스트 생성(Text generation), 텍스트 요약 (Text summarizing), 질의 응답 (Question and Answering) 등이 있습니다.


What is Language Model?

그렇다면 정확하게 LM이 어떤것이냐? LM은 두가지 타입으로 나눠서 생각해 볼 수 있습니다.

Base LLM

기존 전통적인 language model은 수많은 데이터들을 인터넷에서 스크립하고, 훈련을 위한 데이터를 준비하고, 훈련 후 validate 검증을 하고 나서 LM을 생성했습니다.
이런 LM들을 pre-trained model로써 현업에서 사용하기도 합니다. 이 전통적인 LM의 접근 방식은, 훈련을 위한 비용 (시간, 리소스) 등이 굉장히 많이 소요되고, 엔지니어가 아닌 이상 구현이 실제로 까다롭습니다. 실제로 훈련의 목표는 훈련 데이터에 대해서, 다음 단어를 예측하는데 초점을 가지고 훈련을 하게 됩니다.
위의 예시로 들어보았을 때, What is the capital of France?가 모델의 input에 입력된다면, 우리가 실제로 원하는 대답은 Paris이겠지만, base LLM은 What is France's largest city? What is France's population? 등 예측이 되는 문장들을 결과물로써 output 내게 되겠죠.

Instruction Tuned LLM

여기서, 더 발전한 요즘 트렌드의 LM의 접근방식은 좀 다릅니다. 기존의 base llm은 이미 수억개의 데이터로부터 훈련되었기 때문에, 방대한 지식의 양을 가지고 있습니다. 이것들을 활용하는 방법이라고 생각하면 쉽습니다.
Instruction Tuned LLM은 Instructions (i.g. guideline)이 주어졌을 때, 이것을 follow 하려고 합니다.
예를 들어 What is the capital of France?가 intput으로 주어졌을 때, Paris라고 LM이 output을 내게 되겠죠.


이런 관점으로 보았을 때, LM의 대한 트렌드가 굉장히 많이 발전되고 달라졌다는 것을 확인할 수 있습니다. 실제로, Prompt Engineering에 대한 demand가 굉장히 많아졌으며, 현업에서는 Prompt를 fine-tuned하는 방식들도 많이 소개되고 있습니다.

그렇다면 Prompt가 어떤 것일까요?

What is the Prompt?

ChatGPT에게 Prompt에 대해서 물어보았습니다.

Prompt는 텍스트 혹은 instructions의 세트로써, LM으로부터 응답을 생성하기 위해 모델에게 제공하는 query혹은 input을 의미합니다.

위의 예시와 같이 이렇게 간단한 문장도 prompt가 될 수 있습니다.

_Can you explain the concept of black holes?_

혹은 더 세밀하고 세분화시켜 prompt를 model에게 전달할 수도 있죠.

You are an AI programming assistant. 
Follow the user's requirements carefully & to the letter. First think step-by-step - describe your plan for what to build in psuedocode, written out in great detail. 
Then output the code in a single codeblock. 
Minimize any other prose. 
Use the latest version of platform you know how. 
Async/await preferred if you are certain that you can do so. Look out for retain cycles and objects that drop out of memory. 
If a requirement is not technically possible, tell the user.

이렇게 모델에 단순하게 우리가 대답을 얻고자 query를 작성하는것 보다는, instruction (guideline) 같은 것을 만들어 모델에게 전달하게 되면, 우리는 좀 더 clear하고 명백한 결과를 얻을 수 있게 됩니다.

이런 Prompt를 구성하고 디자인 하는 것이 Prompt Engineering 입니다.
이것을 하기 위해서는 다양한 테크닉이 존재합니다. 다음시간에 해당 내용을 소개해보도록 하겠습니다.

References:

  • ChatGPT Prompt Engineering for Developers published from DeepLearning.AI
profile
현재 머신러닝, 딥러닝을 공부하고 있습니다.

0개의 댓글

관련 채용 정보