Role Playing 작업은 대화 기반 모델링 작업으로, 프롬프트는 대화 상황에 대한 설명과 역할에 대한 지시를 포함해야 합니다. 다음은 Role Playing 작업을 위한 프롬프트 설계과정입니다.
1. 대화 상황 설정: 대화 상황을 명확하게 정의하고, 역할을 정해야 합니다. 역할은 대화 상황에 따라 다릅니다. 예를 들어, 고객 서비스 역할, 인터뷰어 역할 등이 있습니다.
2. 역할과 대화 상황 설명: 역할과 대화 상황을 명확하게 설명해야 합니다. 설명은 역할과 대화 상황에 맞게 작성되어야 합니다.
3. 질문 또는 문제 제시: 역할에 따른 문제나 질문을 제시해야 합니다. 예를 들어, 고객 서비스 역할인 경우, 고객의 문제를 파악하고 해결하는 문제를 제시할 수 있습니다.
4. 대화 시작: 역할을 수행하는 사람은 주어진 역할과 대화 상황 설명에 맞게 대화를 시작합니다. 이후 대화는 자유롭게 진행됩니다.
5. 성능 평가: 대화가 종료된 후, 대화의 품질을 평가합니다. 평가는 다양한 방법으로 이루어질 수 있습니다. 예를 들어, 효율성, 정확성, 고객 만족도 등이 있습니다.
예를 들어, Role Playing 작업으로 영화 캐릭터 역할을 하는 대화 시뮬레이션을 만든다고 가정해보겠습니다.
1. 대화 상황 설정: 영화 촬영 현장에서 감독과 배우 사이의 대화를 시뮬레이션합니다.
2. 역할과 대화 상황 설명: 감독과 배우 각각의 역할과 대화 상황을 설명합니다. 감독은 영화 촬영에 대한 지시를 내리고, 배우는 대사와 캐릭터 연기에 대한 지시를 받습니다.
3. 질문 또는 문제 제시: 감독은 영화 씬에 따른 지시를 제시하고, 배우는 캐릭터의 감정 상태와 대사를 연습합니다. 예를 들어, "이번 씬에서는 당신이 공포와 분노를 동시에 느끼면서 이 대사를 말해주세요"와 같은 지시를 제시할 수 있습니다.
4. 대화 시작: 배우는 감독의 지시에 따라 캐릭터를 연기하고 대사를 말합니다. 이후 감독은 연기와 대사에 대한 피드백을 제공하며 대화는 계속됩니다.
5. 성능 평가: 대화가 종료된 후, 대화의 품질을 평가합니다. 평가는 배우의 연기와 대사, 감독의 지시에 대한 피드백 등 다양한 요소를 고려하여 이루어집니다.
Code Generation 프롬프트를 설계하기 위해서는 다음과 같은 과정이 필요합니다:
1. 작업 정의: Code Generation 작업은 주어진 입력에 대한 코드를 생성하는 작업입니다. 예를 들어, 주어진 수의 팩토리얼을 계산하는 코드를 생성하는 작업이 있을 수 있습니다.
2. 데이터 준비: Code Generation 작업에 필요한 데이터를 준비해야 합니다. 이 데이터는 보통 프로그래밍 언어의 문법과 구문에 대한 정보를 담고 있습니다.
3. 모델 선택: Code Generation 작업은 주어진 입력에 대한 코드를 생성하는 작업으로, 주로 자연어 처리 모델과 프로그래밍 언어 처리 모델을 함께 사용합니다. 예를 들어, GPT-3와 같은 자연어 처리 모델과 Python 언어 처리 모델을 함께 사용하여 코드를 생성할 수 있습니다.
4. 프롬프트 구성: Code Generation 작업에서 프롬프트는 입력에 대한 코드를 생성하는데 사용됩니다. 이를 위해 프롬프트는 다음과 같은 형식을 가질 수 있습니다.
5. 성능 평가: Code Generation 작업에서 성능 평가는 생성된 코드의 정확성과 효율성을 평가하는 것입니다. 평가 결과에 따라 프롬프트를 개선하거나 모델을 수정할 수 있습니다.
<예시>
프롬프트: 주어진 숫자의 팩토리얼을 계산하는 코드를 생성하세요.
입력: "Hello WORLD"
출력: "hello world"
코드:
```
string = "Hello WORLD"
lowercase_string = string.lower()
print(lowercase_string)
```
성능 평가: 생성된 코드는 입력 문자열에서 대문자를 소문자로 변환하는데 성공했습니다. 코드 실행 속도는 빠르고, 효율적입니다.
다른 예시로는, "입력된 리스트에서 짝수만 추출하는 코드를 생성하세요"라는 프롬프트를 생각해볼 수 있습니다.
프롬프트
```
입력된 리스트에서 짝수만 추출하는 코드를 생성하세요.
```
```
입력: [1, 2, 3, 4, 5, 6]
출력: [2, 4, 6]
```
코드:
```
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = [num for num in numbers if num % 2 == 0]
print(even_numbers)
```
성능 평가: 생성된 코드는 주어진 입력 리스트에서 짝수만 추출하는데 성공했습니다. 코드 실행 속도도 빠르고, 효율적입니다.
첨부파일에는 역할극 프롬프트가 첨부되어 있습니다. (출처: github)
프롬프트 엔지니어가 되기 위한 공부 방법 (0) | 2023.03.22 |
---|---|
추론(Reasoning) 프롬프트 설계 및 효과적인 프롬프팅 방법 (0) | 2023.03.21 |
텍스트 요약과 질의응답 프롬프트 설계 (0) | 2023.03.21 |
기본 프롬프트 설계 (2) | 2023.03.21 |
기본 프롬프트 분석 (2) | 2023.03.21 |
댓글 영역