본문 바로가기
AI

[AI] Prompt Engineering (feat. ChatGPT) - 인공지능과 "잘" 대화하기

by gungle 2023. 1. 24.

Prompt Engineering은 자연어 처리 모델에 입력할 텍스트를 설계하는 것이다.

예를 들어, 자연어 생성 모델에 주어진 프롬프트(prompt)에 따라 생성되는 텍스트의 양상을 조정할 수 있다. 이는 모델의 성능 향상과 응용 활용에 매우 중요하다. 쉽게 말해 하나의 대화 상자(Dialog Box)로부터 자연어로 명령하고 올바른 혹은 최적의 결과값을 받기 위해서는 Prompt Engineering 이 중요하다고 말할 수 있다.

 

Prompt Engineering

Use the API to generate completions, distill text into semantically meaningful vectors, and more. Get state-of-the-art natural language processing without the need for expensive supercomputing infrastructure.

docs.cohere.ai


 

 

Training language models to follow instructions with human feedback

Making language models bigger does not inherently make them better at following a user's intent. For example, large language models can generate outputs that are untruthful, toxic, or simply not helpful to the user. In other words, these models are not ali

arxiv.org

Training language models to follow instructions with human feedback

Ouyang, Long, et al. "Training language models to follow instructions with human feedback." arXiv preprint arXiv:2203.02155 (2022).

OpenAI 에서 2022년 작성한 위 논문을 보면, 사람의 피드백을 사용하여 언어 모델을 훈련하는 방법을 제안하고 이를 통해 언어 모델이 주어진 지시대로 정확하게 작동할 수 있도록 하는 방법에 대해 제시하고 있다.

논문에서는 GPT-2를 사용하여 언어 모델을 훈련하는 방법을 설명한다. 이 논문에서는 사람의 피드백을 사용하여 언어 모델을 훈련하는 방법을 제안하고, 이를 통해 언어 모델이 주어진 지시대로 정확하게 작동할 수 있도록 하며, 이를 통해 언어 모델을 활용하는 응용 프로그램에서 인간과 더 자연스러운 상호작용이 가능하도록 한다.

InstructGPT는 GPT-2를 기반으로 한 언어 모델입니다. GPT-2는 인공지능 연구자들이 개발한 큰 언어 모델로, 이를 통해 자연어 생성, 질문 응답, 문장 이해 등 다양한 자연어 처리 태스크를 수행할 수 있다. 하지만 GPT-2는 주어진 지시대로 정확하게 작동하는 것이 어렵다는 단점이 있었다. 이를 해결하기 위해, 이 논문에서는 인간의 피드백을 사용하여 언어 모델을 훈련하는 방법을 제안하고 이를 통해 주어진 지시대로 정확하게 작동할 수 있도록 하는 InstructGPT를 개발하였다. 이를 통해 언어 모델을 활용하는 응용 프로그램에서 인간과 더 자연스러운 상호작용이 가능하도록 한다.

Figure 2: A diagram illustrating the three steps of our method: (1) supervised fine-tuning (SFT), (2) reward model (RM) training, and (3) reinforcement learning via proximal policy optimization (PPO) on this reward model. Blue arrows indicate that this data is used to train one of our models. In Step 2, boxes A-D are samples from our models that get ranked by labelers. See Section 3 for more details on our method.

 

1. 예시 데이터를 수집하고, Supervised policy 를 학습시켜 SFT (Supervised Fine-Tunning) 모델을 생성한다.

2. 결과물에 대한 사람의 선호도를 측정하고, Reward Model 을 생성한다.

3. 강화학습을 통해 Reward Model에 대해 Policy를 최적화 한다.

위의 일련의 과정에서 알 수 있듯, 라벨러의 역할이 아주 중요한데, 논문에서도 인종, 종교, 성별, ... 등 여러가지 변수를 지니고 있는 라벨러들에 대해 OpenAI 에서도 가장 까다로운 부분이고, 다수의 선호에 의해 결정될 수 밖에 없는 한계점에 대해 아래와 같이 서술하고 있다.

...
Stepping back, there are many difficulties in designing an alignment process that is fair, transparent, and has suitable accountability mechanisms in place. The goal of this paper is to demonstrate that this alignment technique can align to an specific human reference group for a specific application. We are not claiming that researchers, the labelers we hired, or our API customers are the right source of preferences. There are many stakeholders to consider -
...

 


이렇게 ChatGPT가 탄생하게 된 배경을 설명하고, Prompt Engineering이 무엇인지에 대해 간략히 언급함으로써, 대화 상자를 이해해보았다.

더 나아가, Prompt Engineering이 인공지능 전문가만의 고유한 기술이 아니라는 생각으로 보다 "잘" 대화하기 위한 몇 가지 팁을 "Rob Lennon" 의 트위터 글을 인용해 본다.

https://twitter.com/thatroblennon/status/1610975391291695105

 

트위터에서 즐기는 Rob Lennon 🗯 | Audience Growth

“Most new ChatGPT users are making simple mistakes. (And they don't realize results could be TWICE as good.) 8 problems with your AI prompts to stop right now:”

twitter.com

 

ChatGPT와 "잘" 대화하기 위해 피해야 할 8가지

• 목표에 대해 구체적이지 않음
• 생산량을 줄이도록 요청하지 않음
• 단일 대화에서 주제 혼합
• 한 번에 한 가지만 물어보기
• 음으로 프롬프트 표시
• 예시를 제시하지 않음
• 수학을 해달라고 하는 것
• 반복하지 않음

 

ChatGPT에 고객, 공동 호스트 또는 재능 있는 전문가 역할 수행하도록 하여, 대화를 나누거나 특정 인물처럼 콘텐츠를 생성하도록 요청하는 식의 좋은 활용 예시들도 함께 참고하여 고민해본다면 더 좋은 대화법을 익힐 수 있을 것 같다.

https://twitter.com/thatroblennon/status/1610316022174683136

 

트위터에서 즐기는 Rob Lennon 🗯 | Audience Growth

“Everyone’s using ChatGPT. But almost everyone's STUCK in beginner mode. 10 techniques to get massively ahead with AI: (cut-and-paste these prompts👇)”

twitter.com