mirror of
https://github.com/dair-ai/Prompt-Engineering-Guide
synced 2024-11-08 07:10:41 +00:00
77 lines
5.7 KiB
Plaintext
77 lines
5.7 KiB
Plaintext
# Self-Consistency
|
|
|
|
프롬프트 엔지니어링을 위한 더 진보된 기술 중 하나로 Self-Consistency가 있습니다. [Wang et al. (2022)](https://arxiv.org/pdf/2203.11171.pdf)에서 제안한 Self-Consistency는 "CoT 프롬프트에 사용되는 naive greedy 디코딩을 대체하는 것"을 목표로 합니다. 이 아이디어는 몇 번의 CoT를 통해 여러 가지 다양한 추론 경로를 샘플링하고, 여러 세대를 거쳐 가장 일관된 답을 선택하는 것입니다. 이는 산술 및 상식적인 추론이 필요한 작업에서 CoT 프롬프트의 성능을 향상시키는 데 도움이 됩니다.
|
|
|
|
다음의 산술 추론에 대한 예제를 살펴봅시다:
|
|
|
|
*Prompt:*
|
|
```
|
|
제가 6살이었을 때 제 동생은 제 나이의 절반이었습니다. 지금
|
|
저는 70살이고 여동생은 몇 살인가요?
|
|
```
|
|
|
|
*Output:*
|
|
```
|
|
35
|
|
```
|
|
|
|
결과가 틀렸습니다. Self-Consistency를 이용해 이 문제를 어떻게 개선할 수 있을까요? 한번 해봅시다. [Wang et al. 2022] 논문의 (Table 17) 예제를 이용할 겁니다:
|
|
|
|
*Prompt:*
|
|
```
|
|
질문: 숲에는 15그루의 나무가 있습니다. 숲의 일꾼들이 오늘 숲에 나무를 심을 것입니다. 나무 심기가 끝나면
|
|
21그루의 나무가 있을 것입니다. 오늘 숲 일꾼들은 몇 그루의 나무를 심었나요?
|
|
답변: 15그루로 시작합니다. 나중에 나무가 21그루가 됩니다. 그 차이는 그들이 심은 나무의 수일 것입니다.
|
|
따라서 그들은 21 - 15 = 6그루의 나무를 심었어야 합니다. 정답은 6입니다.
|
|
|
|
질문: 주차장에 3대의 차량이 있고 2대의 차량이 더 도착하면 주차장에 몇 대의 차량이 있나요?
|
|
답변: 주차장에 이미 3대의 차량이 있습니다. 2대가 더 도착합니다. 이제 3 + 2 = 5대의 차량이 있습니다. 정답은 5입니다.
|
|
|
|
질문: 레아는 초콜릿을 32개, 여동생은 42개를 먹었습니다. 둘이 35개를 먹었다면 총 몇 개가 남았나요?
|
|
답변: 레아는 초콜릿 32개, 레아의 여동생은 42개를 먹었습니다. 즉, 원래 32개 + 42개 = 74개의
|
|
초콜릿이 있었습니다. 35개를 먹었습니다. 따라서 총 74 - 35 = 39개의 초콜릿이 남아 있습니다. 정답은 39입니다.
|
|
|
|
질문: 제이슨은 막대 사탕을 20개 먹었습니다. 그는 데니에게 막대 사탕을 주었습니다. 이제 제이슨은 막대사탕 12개를 가지고 있습니다. 제이슨은 데니에게
|
|
몇 개의 막대 사탕을 데니에게 주었습니까?
|
|
답변: 제이슨은 막대 사탕 20개를 가지고 있었습니다. 이제 제이슨은 12개만 가지고 있으므로, 나머지는 데니에게 주었을 것입니다. 제이슨이 데니에게 준 막대사탕의
|
|
20 - 12 = 8개의 막대 사탕을 데니에게 주었어야 합니다. 정답은 8개입니다.
|
|
|
|
질문: 숀은 장난감이 다섯 개 있습니다. 크리스마스에 숀은 엄마와 아빠로부터 각각 두 개의 장난감을 받았습니다. 숀은 지금 몇 개의 장난감을
|
|
숀은 지금 몇 개의 장난감을 가지고 있습니까?
|
|
답변: 숀은 장난감이 5개입니다. 엄마로부터 2개를 받았으므로 5 + 2 = 7개의 장난감을 가지고 있습니다. 그리고 아빠한테서 2개를 더 받았어요.
|
|
총 7 + 2 = 9 개의 장난감을 가지고 있습니다. 정답은 9입니다.
|
|
|
|
질문: 서버실에는 9대의 컴퓨터가 있었습니다. 월요일부터 목요일까지 매일 5대의 컴퓨터가 더 설치되었습니다.
|
|
월요일부터 목요일까지. 현재 서버실에는 몇 대의 컴퓨터가 있나요?
|
|
답변: 월요일부터 목요일까지 4일간입니다. 매일 5대의 컴퓨터가 추가되었습니다. 즉, 총 4 * 5 =
|
|
20대의 컴퓨터가 추가되었습니다. 처음에는 9대의 컴퓨터가 있었으므로 이제 9 + 20 = 29대의 컴퓨터가 있습니다.
|
|
정답은 29입니다.
|
|
|
|
질문: 마이클은 58개의 골프 공을 가지고 있었습니다. 화요일에 그는 23개의 골프 공을 잃었습니다. 수요일에 2개를 더 잃었습니다. 그가 수요일에 가지고 있던
|
|
수요일이 끝났을 때 그가 가지고 있던 골프 공은 몇 개였습니까?
|
|
답변: 마이클은 처음에 58개의 공을 가지고 있었습니다. 화요일에 23개를 잃어버렸으므로 그 이후에는 58 - 23 = 35개의 공을 가지고 있습니다. On
|
|
수요일에 2개를 더 잃어버렸으므로 이제 35 - 2 = 33개의 공을 가지고 있습니다. 정답은 33입니다.
|
|
|
|
질문: 올리비아는 23달러를 가지고 있습니다. 그녀는 각각 3달러에 베이글 5개를 샀습니다. 올리비아에게 남은 돈은 얼마입니까?
|
|
답변: 올리비아는 각각 3달러에 베이글 5개를 샀습니다. 이것은 그녀가 5달러를 썼다는 것을 의미합니다.
|
|
|
|
질문: 제가 6살이었을 때 제 동생은 제 나이의 절반이었습니다. 지금 저는 70살인데 언니는 몇 살인가요?
|
|
답변:
|
|
```
|
|
|
|
*출력 1:*
|
|
```
|
|
제가 6살이었을 때 누나는 제 나이의 절반이었으므로 3살이었어요. 이제 저는 70살이므로 누나는 70 - 3 = 67살입니다. 정답은 67입니다.
|
|
```
|
|
|
|
*출력 2:*
|
|
```
|
|
화자가 6살이었을 때 누나는 화자의 절반 나이인 3살이었습니다. 이제 화자가 70살이 되었으므로 누나는 70 - 3 = 67살이 됩니다. 정답은 67입니다.
|
|
```
|
|
|
|
*출력 3:*
|
|
```
|
|
내가 6살이었을 때 누나는 내 나이의 절반이었으므로 3살이고, 이제 나는 70살이므로 누나는 70/2 = 35살입니다. 정답은 35입니다.
|
|
```
|
|
|
|
최종 정답을 계산하는 데는 몇 가지 단계가 필요하지만(자세한 내용은 논문에서 확인), 간단하게 설명하기 위해 이미 다수의 정답이 나타나고 있으므로 이 정답이 최종 정답이 되는 것을 확인할 수 있습니다. |