mirror of
https://github.com/dair-ai/Prompt-Engineering-Guide
synced 2024-11-19 21:25:35 +00:00
Merge pull request #40 from mel-f-dev/main
Improve the traslation of the Tech part: 2nd review
This commit is contained in:
commit
6aad4dff5f
@ -1,28 +1,23 @@
|
|||||||
# Automatic Reasoning and Tool-use (ART)
|
# Automatic Reasoning and Tool-use (ART)
|
||||||
|
|
||||||
import { Callout, FileTree } from 'nextra-theme-docs'
|
import { Callout, FileTree } from 'nextra-theme-docs'
|
||||||
import {Screenshot} from 'components/screenshot'
|
import {Screenshot} from 'components/screenshot'
|
||||||
import ART from '../../img/ART.png'
|
import ART from '../../img/ART.png'
|
||||||
import ART2 from '../../img/ART2.png'
|
import ART2 from '../../img/ART2.png'
|
||||||
|
|
||||||
생각의 사슬(CoT)프롬프팅과 도구를 교차적으로 결합하는 것은 대규모언어모델로 많은 작업을
|
생각의 사슬(chain-of-thought; CoT)프롬프팅과 도구를 교차적으로 결합하는 것은 대규모언어모델로 많은 작업을 처리하는 강력하고 견고한 접근방식인 것으로 밝혀졌습니다. 이러한 접근법들은 일반적으로 작업 특정 시연을 수작업으로 제작하고, 주의 깊게 교차하여 모델을 생성하고 도구를 사용해야 합니다. [Paranjape et al., (2023)](https://arxiv.org/abs/2303.09014)은 프로그램으로 중간 추론 단계를 자동 생성하기 위해 frozen 대규모언어모델을 사용하는 새로운 프레임워크를 제안합니다.
|
||||||
처리하는 강력하고 견고한 접근방식인 것으로 밝혀졌습니다. 이러한 접근법들은 일반적으로
|
|
||||||
작업 특정 시연을 수작업으로 제작하고, 모델 생성을 도구 사용과 주의 깊게 교차해야 합니다.
|
|
||||||
[Paranjape et al., (2023)](https://arxiv.org/abs/2303.09014)은 프로그램으로 중간 추론
|
|
||||||
단계를 자동 생성하기 위해 frozen 대규모언어모델을 사용하는 새로운 프레임워크를 제안합니다.
|
|
||||||
|
|
||||||
ART는 다음과 같이 작동합니다:
|
ART는 다음과 같이 작동합니다:
|
||||||
- 새로운 작업이 주어지면 작업 라이브러리에서 다단계의 추론 및 도구 사용 시연을 선택합니다.
|
- 새로운 작업이 주어지면 작업 라이브러리에서 다단계의 추론 및 도구 사용 시연을 선택합니다.
|
||||||
- 테스트시에는 외부도구가 호출될 때마다 생성을 일시 중단하고, 생성을 재개하기 전에 그 출력들을 통합합니다.
|
- 테스트 시에는 외부 도구가 호출될 때마다 생성을 일시 중단하고, 생성을 재개하기 전에 그 출력들을 통합합니다.
|
||||||
|
|
||||||
ART는 모델이 시연들로부터 일반화하여 새로운 작업을 분해하고 적절한 장소에서 도구를 사용하도록
|
ART는 모델이 시연들로부터 일반화하여 새로운 작업을 분해하고 적절한 장소에서 도구를 사용하도록
|
||||||
장려하는데, 이는 제로샷 방식으로 이루어집니다. 또한, ART는 작업과 도구 라이브러리를 단순히 업데이트함으로써
|
장려하는데, 이는 제로샷(zero-shot) 방식으로 이루어집니다. 또한 ART는 사람들로 하여금 추론 단계에서 오류를 수정하거나 단순히 작업 및 도구 라이브러리를 업데이트하여 새로운 도구를 추가할 수 있게 함으로써 확장 가능합니다. 과정은 다음과 같습니다:
|
||||||
사람들이 추론 단계에서의 오류를 수정하거나 새로운 도구를 추가할 수 있게 함으로써 확장 가능합니다.
|
|
||||||
아래에 이 과정이 보여집니다:
|
|
||||||
<Screenshot src={ART} alt="ART" />
|
<Screenshot src={ART} alt="ART" />
|
||||||
이미지 출처: [Paranjape et al., (2023)](https://arxiv.org/abs/2303.09014)
|
이미지 출처: [Paranjape et al., (2023)](https://arxiv.org/abs/2303.09014)
|
||||||
|
|
||||||
ART는 BigBench와 MMLU 벤치마크에서 보이지 않는 작업에 대해 퓨샷 프롬프팅과 자동 CoT를 크게 향상시키며,
|
ART는 BigBench와 MMLU 벤치마크에서 보이지 않는 작업에 대해 퓨샷(few-shot) 프롬프팅과 자동 CoT를 크게 향상시키며, 사람의 피드백을 반영할 경우 수작업으로 만든 CoT 프롬프트의 성능을 능가합니다.
|
||||||
사람의 피드백이 포함될 때 수작업으로 만든 CoT 프롬프트의 성능을 능가합니다.
|
|
||||||
|
|
||||||
아래는 BigBench와 MMLU 작업에서 ART의 성능을 보여주는 표입니다:
|
아래는 BigBench와 MMLU 작업에서 ART의 성능을 보여주는 표입니다:
|
||||||
|
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
# Self-Consistency
|
# Self-Consistency
|
||||||
|
|
||||||
프롬프트 엔지니어링을 위한 더 진보된 기술 중 하나로 Self-Consistency가 있습니다. [Wang et al. (2022)](https://arxiv.org/pdf/2203.11171.pdf)에서 제안한 Self-Consistency는 "CoT 프롬프트에 사용되는 naive greedy 디코딩을 대체하는 것"을 목표로 합니다. 이 아이디어는 몇 번의 CoT를 통해 여러 가지 다양한 추론 경로를 샘플링하고, 여러 세대를 거쳐 가장 일관된 답을 선택하는 것입니다. 이는 산술 및 상식적인 추론이 필요한 작업에서 CoT 프롬프트의 성능을 향상시키는 데 도움이 됩니다.
|
프롬프트 엔지니어링을 위한 더 진보된 기법 중 하나로 자기 일관성(Self-Consistency)이 있습니다. [Wang et al. (2022)](https://arxiv.org/pdf/2203.11171.pdf)에서 제안한 자기 일관성은 "생각의 사슬 프롬프트에 사용되는 naive greedy 디코딩을 대체하는 것"을 목표로 합니다. 이 아이디어는 퓨샷 생각의 사슬(few-shot CoT)을 통해 여러 가지 다양한 추론 경로를 샘플링하고, 여러 번의 프롬프트 생성 과정을 거쳐 가장 일관된 답을 선택하는 것입니다. 이를 통해 산술 및 상식적인 추론과 관련된 작업에서 생각의 사슬 프롬프트의 성능을 향상시킬 수 있습니다.
|
||||||
|
|
||||||
다음의 산술 추론에 대한 예제를 살펴봅시다:
|
다음의 산술 추론에 대한 예제를 살펴봅시다:
|
||||||
|
|
||||||
*Prompt:*
|
*Prompt:*
|
||||||
```
|
```
|
||||||
제가 6살이었을 때 제 동생은 제 나이의 절반이었습니다. 지금
|
내가 6살이었을 때 내 여동생은 내 나이의 절반인 나이였어. 지금
|
||||||
저는 70살이고 여동생은 몇 살인가요?
|
나는 70살이라면 여동생은 몇 살일까?
|
||||||
```
|
```
|
||||||
|
|
||||||
*Output:*
|
*Output:*
|
||||||
@ -15,63 +15,63 @@
|
|||||||
35
|
35
|
||||||
```
|
```
|
||||||
|
|
||||||
결과가 틀렸습니다. Self-Consistency를 이용해 이 문제를 어떻게 개선할 수 있을까요? 한번 해봅시다. [Wang et al. 2022] 논문의 (Table 17) 예제를 이용할 겁니다:
|
결과가 틀렸습니다. 자기 일관성을 이용해 이 문제를 어떻게 개선할 수 있을까요? 한번 해봅시다. [Wang et al. 2022] 논문의 (Table 17) 퓨샷 예제를 이용할 겁니다:
|
||||||
|
|
||||||
*Prompt:*
|
*Prompt:*
|
||||||
```
|
```
|
||||||
질문: 숲에는 15그루의 나무가 있습니다. 숲의 일꾼들이 오늘 숲에 나무를 심을 것입니다. 나무 심기가 끝나면
|
Q: 과수원에는 15그루의 나무가 있어. 과수원의 일꾼들이 오늘 과수원에 나무를 심을 거야. 나무 심기가 끝나면
|
||||||
21그루의 나무가 있을 것입니다. 오늘 숲 일꾼들은 몇 그루의 나무를 심었나요?
|
21그루의 나무가 있을 거야. 오늘 과수원 일꾼들은 몇 그루의 나무를 심었을까?
|
||||||
답변: 15그루로 시작합니다. 나중에 나무가 21그루가 됩니다. 그 차이는 그들이 심은 나무의 수일 것입니다.
|
A: 15그루로 시작합니다. 나중에 나무가 21그루가 됩니다. 그 차이가 그들이 심은 나무의 수일 것입니다.
|
||||||
따라서 그들은 21 - 15 = 6그루의 나무를 심었어야 합니다. 정답은 6입니다.
|
따라서 그들은 21 - 15 = 6그루의 나무를 심었어야 합니다. 정답은 6입니다.
|
||||||
|
|
||||||
질문: 주차장에 3대의 차량이 있고 2대의 차량이 더 도착하면 주차장에 몇 대의 차량이 있나요?
|
Q: 주차장에 3대의 차량이 있고 2대의 차량이 더 도착하면 주차장에 몇 대의 차량이 있을까?
|
||||||
답변: 주차장에 이미 3대의 차량이 있습니다. 2대가 더 도착합니다. 이제 3 + 2 = 5대의 차량이 있습니다. 정답은 5입니다.
|
A: 주차장에 이미 3대의 차량이 있습니다. 2대가 더 도착합니다. 이제 3 + 2 = 5대의 차량이 있습니다. 정답은 5입니다.
|
||||||
|
|
||||||
질문: 레아는 초콜릿을 32개, 여동생은 42개를 먹었습니다. 둘이 35개를 먹었다면 총 몇 개가 남았나요?
|
Q: 지호는 초콜릿을 32개, 여동생은 42개를 가지고 있었어. 둘이 35개를 먹었다면 총 몇 개가 남았을까?
|
||||||
답변: 레아는 초콜릿 32개, 레아의 여동생은 42개를 먹었습니다. 즉, 원래 32개 + 42개 = 74개의
|
A: 레아는 초콜릿 32개, 레아의 여동생은 42개를 가지고 있었습니다. 즉, 원래 32개 + 42개 = 74개의
|
||||||
초콜릿이 있었습니다. 35개를 먹었습니다. 따라서 총 74 - 35 = 39개의 초콜릿이 남아 있습니다. 정답은 39입니다.
|
초콜릿이 있었습니다. 35개를 먹었습니다. 따라서 총 74 - 35 = 39개의 초콜릿이 남아 있습니다. 정답은 39입니다.
|
||||||
|
|
||||||
질문: 제이슨은 막대 사탕을 20개 먹었습니다. 그는 데니에게 막대 사탕을 주었습니다. 이제 제이슨은 막대사탕 12개를 가지고 있습니다. 제이슨은 데니에게
|
Q: 선우는 막대 사탕을 20개 가지고 있었어. 그는 두리에게 막대 사탕을 몇 개 주었어. 이제 선우는 막대사탕 12개를 가지고 있어. 선우는 두리에게
|
||||||
몇 개의 막대 사탕을 데니에게 주었습니까?
|
몇 개의 막대 사탕을 줬을까?
|
||||||
답변: 제이슨은 막대 사탕 20개를 가지고 있었습니다. 이제 제이슨은 12개만 가지고 있으므로, 나머지는 데니에게 주었을 것입니다. 제이슨이 데니에게 준 막대사탕의
|
A: 선우는 막대 사탕 20개를 가지고 있었습니다. 이제 선우는 12개만 가지고 있으므로, 나머지는 두리에게 주었을 것입니다. 선우가 두리에게 준 막대사탕의
|
||||||
20 - 12 = 8개의 막대 사탕을 데니에게 주었어야 합니다. 정답은 8개입니다.
|
20 - 12 = 8개의 막대 사탕을 두리에게 주었어야 합니다. 정답은 8개입니다.
|
||||||
|
|
||||||
질문: 숀은 장난감이 다섯 개 있습니다. 크리스마스에 숀은 엄마와 아빠로부터 각각 두 개의 장난감을 받았습니다. 숀은 지금 몇 개의 장난감을
|
Q: 도현이는 장난감이 다섯 개 있어. 크리스마스에 도현이는 엄마와 아빠로부터 각각 두 개의 장난감을 받았어. 도현이는 지금 몇 개의 장난감을
|
||||||
숀은 지금 몇 개의 장난감을 가지고 있습니까?
|
가지고 있을까?
|
||||||
답변: 숀은 장난감이 5개입니다. 엄마로부터 2개를 받았으므로 5 + 2 = 7개의 장난감을 가지고 있습니다. 그리고 아빠한테서 2개를 더 받았어요.
|
A: 도현이의 장난감이 5개입니다. 엄마로부터 2개를 받았으므로 5 + 2 = 7개의 장난감을 가지고 있습니다. 그리고 아빠한테서 2개를 더 받았어요.
|
||||||
총 7 + 2 = 9 개의 장난감을 가지고 있습니다. 정답은 9입니다.
|
총 7 + 2 = 9 개의 장난감을 가지고 있습니다. 정답은 9입니다.
|
||||||
|
|
||||||
질문: 서버실에는 9대의 컴퓨터가 있었습니다. 월요일부터 목요일까지 매일 5대의 컴퓨터가 더 설치되었습니다.
|
Q: 서버실에는 9대의 컴퓨터가 있었어. 월요일부터 목요일까지 각각 5대씩 컴퓨터가 더 설치되었어.
|
||||||
월요일부터 목요일까지. 현재 서버실에는 몇 대의 컴퓨터가 있나요?
|
현재 서버실에는 몇 대의 컴퓨터가 있을까?
|
||||||
답변: 월요일부터 목요일까지 4일간입니다. 매일 5대의 컴퓨터가 추가되었습니다. 즉, 총 4 * 5 =
|
A: 월요일부터 목요일까지는 4일입니다. 매일 5대씩 컴퓨터가 추가되었습니다. 즉, 총 4 * 5 =
|
||||||
20대의 컴퓨터가 추가되었습니다. 처음에는 9대의 컴퓨터가 있었으므로 이제 9 + 20 = 29대의 컴퓨터가 있습니다.
|
20대의 컴퓨터가 추가되었습니다. 처음에는 9대의 컴퓨터가 있었으므로 이제 9 + 20 = 29대의 컴퓨터가 있습니다.
|
||||||
정답은 29입니다.
|
정답은 29입니다.
|
||||||
|
|
||||||
질문: 마이클은 58개의 골프 공을 가지고 있었습니다. 화요일에 그는 23개의 골프 공을 잃었습니다. 수요일에 2개를 더 잃었습니다. 그가 수요일에 가지고 있던
|
Q: 수완이는 58개의 골프공을 가지고 있었어. 화요일에 그는 23개의 골프공을 잃어버렸어. 수요일에 2개를 더 잃어버렸어.
|
||||||
수요일이 끝났을 때 그가 가지고 있던 골프 공은 몇 개였습니까?
|
수요일이 끝났을 때 그가 가지고 있던 골프공은 몇 개였을까?
|
||||||
답변: 마이클은 처음에 58개의 공을 가지고 있었습니다. 화요일에 23개를 잃어버렸으므로 그 이후에는 58 - 23 = 35개의 공을 가지고 있습니다. On
|
A: 수완이는 처음에 58개의 공을 가지고 있었습니다. 화요일에 23개를 잃어버렸으므로 그 이후에는 58 - 23 = 35개의 공을 가지고 있습니다.
|
||||||
수요일에 2개를 더 잃어버렸으므로 이제 35 - 2 = 33개의 공을 가지고 있습니다. 정답은 33입니다.
|
수요일에 2개를 더 잃어버렸으므로 이제 35 - 2 = 33개의 공을 가지고 있습니다. 정답은 33입니다.
|
||||||
|
|
||||||
질문: 올리비아는 23달러를 가지고 있습니다. 그녀는 각각 3달러에 베이글 5개를 샀습니다. 올리비아에게 남은 돈은 얼마입니까?
|
Q: 한얼이는 23달러를 가지고 있어. 그녀는 각각 3달러에 베이글 5개를 샀어. 한얼이에게 남은 돈은 얼마일까?
|
||||||
답변: 올리비아는 각각 3달러에 베이글 5개를 샀습니다. 이것은 그녀가 5달러를 썼다는 것을 의미합니다.
|
A: 한얼이는 각각 3달러에 베이글 5개를 샀습니다. 이것은 그녀가 5 * 3 = 15달러를 썼다는 것을 의미합니다.
|
||||||
|
|
||||||
질문: 제가 6살이었을 때 제 동생은 제 나이의 절반이었습니다. 지금 저는 70살인데 언니는 몇 살인가요?
|
Q: 내가 6살이었을 때 내 여동생은 내 나이의 절반인 나이였어. 지금 나는 70살이고 내 여동생은 몇 살일까?
|
||||||
답변:
|
A:
|
||||||
```
|
```
|
||||||
|
|
||||||
*출력 1:*
|
*Output 1:*
|
||||||
```
|
```
|
||||||
제가 6살이었을 때 누나는 제 나이의 절반이었으므로 3살이었어요. 이제 저는 70살이므로 누나는 70 - 3 = 67살입니다. 정답은 67입니다.
|
제가 6살이었을 때 여동생은 제 나이의 절반이었으므로 3살이었어요. 이제 저는 70살이므로 여동생은 70 - 3 = 67살입니다. 정답은 67입니다.
|
||||||
```
|
```
|
||||||
|
|
||||||
*출력 2:*
|
*Output 2:*
|
||||||
```
|
```
|
||||||
화자가 6살이었을 때 누나는 화자의 절반 나이인 3살이었습니다. 이제 화자가 70살이 되었으므로 누나는 70 - 3 = 67살이 됩니다. 정답은 67입니다.
|
화자가 6살이었을 때 여동생은 화자의 절반 나이인 3살이었습니다. 이제 화자가 70살이 되었으므로 여동생은 70 - 3 = 67살이 됩니다. 정답은 67입니다.
|
||||||
```
|
```
|
||||||
|
|
||||||
*출력 3:*
|
*Output 3:*
|
||||||
```
|
```
|
||||||
내가 6살이었을 때 누나는 내 나이의 절반이었으므로 3살이고, 이제 나는 70살이므로 누나는 70/2 = 35살입니다. 정답은 35입니다.
|
내가 6살이었을 때 여동생은 내 나이의 절반이었으므로 3살이고, 이제 나는 70살이므로 여동생은 70/2 = 35살입니다. 정답은 35입니다.
|
||||||
```
|
```
|
||||||
|
|
||||||
최종 정답을 계산하는 데는 몇 가지 단계가 필요하지만(자세한 내용은 논문에서 확인), 간단하게 설명하기 위해 이미 다수의 정답이 나타나고 있으므로 이 정답이 최종 정답이 되는 것을 확인할 수 있습니다.
|
최종 정답을 계산하는 데는 몇 가지 단계가 필요하지만(자세한 내용은 논문에서 확인하세요), 간단하게 설명하기 위해 이미 다수의 정답에서 확인할 수 있듯이 이 정답이 근본적으로 최종 정답이 되는 것을 확인할 수 있습니다.
|
@ -7,15 +7,15 @@ import GENKNOW from '../../img/gen-knowledge.png'
|
|||||||
|
|
||||||
Image Source: [Liu et al. 2022](https://arxiv.org/pdf/2110.08387.pdf)
|
Image Source: [Liu et al. 2022](https://arxiv.org/pdf/2110.08387.pdf)
|
||||||
|
|
||||||
LLM은 계속해서 개선되고 있으며, 인기 있는 기법 중 하나로 모델이 더 정확한 예측을 할 수 있도록 지식이나 정보를 통합하는 방법이 있습니다.
|
대규모언어모델은 계속해서 개선되고 있고 인기 있는 기법 중 하나로 모델이 더 정확한 예측을 할 수 있도록 지식이나 정보를 통합하는 방법을 포함합니다.
|
||||||
|
|
||||||
비슷한 아이디어를 사용하여 예측을 하기 전에 지식을 생성하는 데에도 모델을 사용할 수 있을까요? 이것이 바로 [Liu et al. 2022](https://arxiv.org/pdf/2110.08387.pdf) -- 의 논문에서 시도한 것, 즉 프롬프트의 일부로 사용할 지식을 생성하는 것입니다. 특히 상식적인 추론과 같은 작업에 얼마나 도움이 될까요?
|
비슷한 아이디어를 사용하여 예측을 하기 전에 지식을 생성하는 데에도 모델을 사용할 수 있을까요? 이것이 바로 [Liu et al. 2022](https://arxiv.org/pdf/2110.08387.pdf)의 논문에서 시도한 것, 즉 프롬프트의 일부로 사용할 지식을 생성하는 것입니다. 특히 상식적인 추론과 같은 작업에 얼마나 도움이 될까요?
|
||||||
|
|
||||||
간단한 예제 프롬프트를 살펴보겠습니다:
|
간단한 예제 프롬프트를 살펴보겠습니다:
|
||||||
|
|
||||||
*프롬프트:*
|
*프롬프트:*
|
||||||
```
|
```
|
||||||
골프의 목적중 하나는 다른 사람보다 더 높은 점수를 얻기 위해 노력하는 것입니다. 예, 아니오?
|
골프의 목적 중 하나는 다른 사람보다 더 높은 점수를 얻기 위해 노력하는 것이다. 예, 아니오?
|
||||||
```
|
```
|
||||||
|
|
||||||
*출력:*
|
*출력:*
|
||||||
@ -23,70 +23,70 @@ LLM은 계속해서 개선되고 있으며, 인기 있는 기법 중 하나로
|
|||||||
예.
|
예.
|
||||||
```
|
```
|
||||||
|
|
||||||
이러한 유형의 실수는 세상에 대한 더 많은 지식이 필요한 작업을 수행하는 데 있어 LLM의 한계를 드러냅니다. 지식 생성을 통해 이 문제를 어떻게 개선할 수 있을까요?
|
이러한 유형의 실수는 세상에 대한 더 많은 지식이 필요한 작업을 수행하는 데 있어 대규모언어모델의 한계를 드러냅니다. 지식 생성을 통해 이 문제를 어떻게 개선할 수 있을까요?
|
||||||
|
|
||||||
먼저 몇 가지 "지식"을 생성합니다:
|
먼저 몇 가지 "지식"을 생성합니다:
|
||||||
|
|
||||||
*프롬프트:*
|
*프롬프트:*
|
||||||
```
|
```
|
||||||
입력: 그리스는 멕시코보다 큽니다.
|
Input: 그리스는 멕시코보다 크다.
|
||||||
지식: 그리스는 약 131,957 평방 킬로미터이고, 멕시코는 약 1,964,375 평방 킬로미터로 멕시코가 그리스보다 1,389% 더 큽니다.
|
Knowledge: 그리스는 약 131,957 제곱 킬로미터이고, 멕시코는 약 1,964,375 제곱 킬로미터로 멕시코가 그리스보다 1,389% 더 크다.
|
||||||
|
|
||||||
입력: 안경은 항상 김이 서립니다.
|
Input: 안경은 항상 김이 서린다.
|
||||||
지식: 안경 렌즈에는 땀, 호흡 및 주변 습도에서 나오는 수증기가 차가운 표면에 닿아 식은 다음 작은 액체 방울로 변하여 안개처럼 보이는 막을 형성할 때 응결이 발생합니다. 특히 외부 공기가 차가울 때는 호흡에 비해 렌즈가 상대적으로 차가워집니다.
|
Knowledge: 안경 렌즈에는 땀, 호흡 및 주변 습도에서 나오는 수증기가 차가운 표면에 닿아 식은 다음 작은 액체 방울로 변하여 안개처럼 보이는 막을 형성할 때 응결이 발생한다. 특히 외부 공기가 차가울 때는 호흡에 비해 렌즈가 상대적으로 차가워진다.
|
||||||
|
|
||||||
입력: 물고기는 생각할 수 있습니다.
|
Input: 물고기는 생각할 수 있다.
|
||||||
지식: 물고기는 보기보다 훨씬 더 똑똑합니다. 기억력과 같은 많은 영역에서 물고기의 인지 능력은 인간이 아닌 영장류를 포함한 '고등' 척추동물과 비슷하거나 그 이상입니다. 물고기의 장기 기억력은 복잡한 사회적 관계를 추적하는 데 도움이 됩니다.
|
Knowledge: 물고기는 보기보다 훨씬 더 똑똑하다. 기억력과 같은 많은 영역에서 물고기의 인지 능력은 인간이 아닌 영장류를 포함한 '고등' 척추동물과 비슷하거나 그 이상이다. 물고기의 장기 기억력은 복잡한 사회적 관계를 추적하는 데 도움이 된다.
|
||||||
|
|
||||||
입력: 평생 담배를 많이 피우면 폐암에 걸릴 확률이 정상보다 높다는 것은 일반적인 결과입니다.
|
Input: 평생 담배를 피우는 것의 일반적인 결과는 폐암에 걸릴 확률이 정상보다 높다는 것입니다.
|
||||||
지식: 평생 동안 하루 평균 담배를 한 개비 미만으로 꾸준히 피운 사람은 비흡연자보다 폐암으로 사망할 위험이 9배 높았습니다. 하루에 한 개비에서 열 개비 사이의 담배를 피운 사람들은 폐암으로 사망할 위험이 비흡연자보다 거의 12배 높았습니다.
|
Knowledge: 평생 동안 하루 평균 담배를 한 개비 미만으로 꾸준히 피운 사람은 비흡연자보다 폐암으로 사망할 위험이 9배 높았다. 하루에 한 개비에서 열 개비 사이의 담배를 피운 사람들은 폐암으로 사망할 위험이 비흡연자보다 거의 12배 높았다.
|
||||||
|
|
||||||
입력: 돌은 조약돌과 같은 크기입니다.
|
Input: 돌은 조약돌과 같은 크기다.
|
||||||
지식: 조약돌은 퇴적학의 우든-웬트워스 척도에 따라 입자 크기가 4~64밀리미터인 암석 덩어리입니다. 자갈은 일반적으로 과립(직경 2~4밀리미터)보다는 크고 자갈(직경 64~256밀리미터)보다는 작은 것으로 간주됩니다.
|
Knowledge: 조약돌은 퇴적학의 우든-웬트워스 척도에 따라 입자 크기가 4~64밀리미터인 암석 덩어리다. 조약돌은 일반적으로 과립(직경 2~4밀리미터)보다는 크고 자갈(직경 64~256밀리미터)보다는 작은 것으로 간주된다.
|
||||||
|
|
||||||
입력: 골프의 목적중 하나는 다른 사람보다 더 높은 점수를 얻기 위해 노력하는 것입니다.
|
Input: 골프의 목적 중 하나는 다른 사람보다 더 높은 점수를 얻기 위해 노력하는 것이다.
|
||||||
지식:
|
Knowledge:
|
||||||
```
|
```
|
||||||
|
|
||||||
*지식 1:*
|
*Knowledge 1:*
|
||||||
```
|
```
|
||||||
골프의 목적은 최소의 스트로크로 전체 홀을 플레이하는 것입니다. 골프 라운드는 일반적으로 18홀로 구성됩니다. 각 홀은 표준 골프 코스에서 라운드 중 한 번씩 플레이됩니다. 각 스트로크는 1점으로 계산되며 총 스트로크 수를 사용하여 게임의 승자를 결정합니다.
|
골프의 목적은 최소의 스트로크로 한 세트의 홀을 플레이하는 것이다. 골프 라운드는 일반적으로 18홀로 구성된다. 각 홀은 표준 골프 코스에서 라운드 중 한 번씩 플레이된다. 각 스트로크는 1점으로 계산되며 총 스트로크 수를 사용하여 게임의 승자를 결정한다.
|
||||||
```
|
```
|
||||||
|
|
||||||
*지식 2:*
|
*Knowledge 2:*
|
||||||
```
|
```
|
||||||
골프는 경쟁하는 선수(또는 골퍼)가 여러 종류의 클럽을 사용하여 가장 적은 수의 스트로크로 코스에 있는 전체 홀에 공을 치는 정밀한 클럽 앤 볼 스포츠입니다. 목표는 각 홀에서 기록한 총 타수를 합산하여 계산되는 최저 점수로 코스를 완주하는 것입니다. 가장 낮은 점수를 기록한 플레이어가 게임에서 승리합니다.
|
골프는 경쟁하는 선수(또는 골퍼)가 여러 종류의 클럽을 사용하여 가장 적은 수의 스트로크로 코스에 있는 한 세트의 홀에 공을 치는 정밀한 클럽 앤 볼 스포츠다. 각 홀에서 기록한 총 타수를 합산하여 계산하는 점수가 최저가 되도록 코스를 완주하는 것이 목표다. 가장 낮은 점수를 기록한 플레이어가 게임에서 승리한다.
|
||||||
```
|
```
|
||||||
|
|
||||||
[Liu et al. 2022](https://arxiv.org/pdf/2110.08387.pdf)의 논문에서 제공한 프롬프트를 사용하고 있습니다.
|
[Liu et al. 2022](https://arxiv.org/pdf/2110.08387.pdf)의 논문에서 제공한 프롬프트를 사용하고 있습니다.
|
||||||
|
|
||||||
다음 단계는 지식을 통합하고 예측을 얻는 것입니다. 답변 형식을 안내하기 위해 질문을 QA 형식으로 재구성했습니다.
|
다음 단계는 지식을 통합하고 예측하는 것입니다. 답변 형식을 알려주기 위해 질문을 질의응답 형식으로 재구성했습니다.
|
||||||
|
|
||||||
*프롬프트:*
|
*프롬프트:*
|
||||||
```
|
```
|
||||||
질문: 골프의 목적중 하나는 다른 사람보다 더 높은 총점을 얻기 위해 노력하는 것입니다. 예, 아니오?
|
Question: 골프의 목적중 하나는 다른 사람보다 더 높은 총점을 얻기 위해 노력하는 것이다. 예, 아니오?
|
||||||
|
|
||||||
지식: 골프의 목적은 최소의 스트로크로 전체 홀을 플레이하는 것입니다. 골프 라운드는 일반적으로 18홀로 구성됩니다. 각 홀은 표준 골프 코스에서 라운드 중 한 번씩 플레이됩니다. 각 스트로크는 1점으로 계산되며 총 스트로크 수를 사용하여 게임의 승자를 결정합니다.
|
Knowledge: 골프의 목적은 최소의 스트로크로 한 세트의 홀을 플레이하는 것이다. 골프 한 라운드는 일반적으로 18홀로 구성된다. 표준 골프 코스에서는 각 홀을 라운드마다 한 번씩 플레이합니다. 각 스트로크는 1점으로 계산되며 총 스트로크 수를 사용하여 게임의 승자를 결정한다.
|
||||||
|
|
||||||
설명하고 답하십시오:
|
설명하고 답하십시오:
|
||||||
```
|
```
|
||||||
|
|
||||||
*정답 1(매우 높은 신뢰도):*
|
*Answer 1(매우 높은 확신):*
|
||||||
```
|
```
|
||||||
아니요, 골프의 목적은 다른 사람보다 더 높은 점수를 얻는 것이 아닙니다. 오히려 가장 적은 수의 스트로크로 전체 홀을 플레이하는 것이 목표입니다. 총 스트로크 수는 총 점수가 아니라 게임의 승자를 결정하는 데 사용됩니다.
|
아니요, 골프의 목적은 다른 사람보다 더 높은 점수를 얻는 것이 아닙니다. 오히려 가장 적은 수의 스트로크로 한 세트의 홀을 플레이하는 것이 목표입니다. 게임의 승자를 결정하는 데에는 총 점수가 아니라 총 스트로크 수가 사용됩니다.
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```
|
||||||
질문: 골프의 목적중 하나는 다른 사람보다 더 높은 총점을 얻기 위해 노력하는 것입니다. 예, 아니오?
|
Question: 골프의 목적중 하나는 다른 사람보다 더 높은 총점을 얻기 위해 노력하는 것이다. 예, 아니오?
|
||||||
|
|
||||||
지식: 골프는 경쟁하는 선수(또는 골퍼)가 여러 종류의 클럽을 사용하여 가장 적은 수의 스트로크로 코스에 있는 전체 홀에 공을 치는 정밀한 클럽 앤 볼 스포츠입니다. 목표는 각 홀에서 기록한 총 타수를 합산하여 계산되는 최저 점수로 코스를 완주하는 것입니다. 가장 낮은 점수를 기록한 플레이어가 게임에서 승리합니다.
|
Knowledge: 골프는 경쟁하는 선수(또는 골퍼)가 여러 종류의 클럽을 사용하여 가장 적은 수의 스트로크로 코스에 있는 한 세트의 홀에 공을 치는 정밀한 클럽 앤 볼 스포츠다. 각 홀에서 기록한 총 타수를 합산하여 계산하는 점수가 최저가 되도록 코스를 완주하는 것이 목표다. 가장 낮은 점수를 기록한 플레이어가 게임에서 승리한다.
|
||||||
|
|
||||||
설명하고 답하세요:
|
설명하고 답하세요:
|
||||||
```
|
```
|
||||||
|
|
||||||
*정답 2(낮은 신뢰도)*
|
*Answer 2(낮은 확신)*
|
||||||
```
|
```
|
||||||
예, 골프의 목적중 하나는 다른 사람보다 더 높은 점수를 얻기 위해 노력하는 것입니다. 각 플레이어는 각 홀에서 기록한 총 타수를 합산하여 계산되는 가장 낮은 점수로 코스를 완주하려고 합니다. 가장 낮은 점수를 얻은 플레이어가 게임에서 승리합니다.
|
예, 골프의 목적중 하나는 다른 사람보다 더 높은 점수를 얻기 위해 노력하는 것입니다. 각 플레이어는 각 홀에서 기록한 총 타수를 합산하여 계산되는 가장 낮은 점수로 코스를 완주하려고 합니다. 가장 낮은 점수를 얻은 플레이어가 게임에서 승리합니다.
|
||||||
```
|
```
|
||||||
|
|
||||||
이 예제는 정말 흥미로운 결과를 보여줍니다. 첫 번째 답변에서는 모델이 매우 신뢰도가 높았지만, 두 번째 답변에서는 그렇지 않았습니다. 데모 목적으로 프로세스를 단순화했지만 최종 정답에 도달할 때 고려해야 할 몇 가지 세부 사항이 더 있습니다. 자세한 내용은 논문을 참조하세요.
|
이 예시는 정말 흥미로운 결과를 보여줍니다. 첫 번째 답변에서는 모델이 매우 신뢰도가 높았지만, 두 번째 답변에서는 그렇지 않았습니다. 논리를 증명하기 위해 프로세스를 단순화했지만 최종 정답에 도달할 때 고려해야 할 몇 가지 세부 사항이 더 있습니다. 자세한 내용은 논문을 참조하세요.
|
||||||
|
@ -1,3 +1,43 @@
|
|||||||
# Tree of Thoughts (ToT)
|
# Tree of Thoughts (ToT)
|
||||||
|
|
||||||
This page needs a translation! Feel free to contribute a translation by clicking the `Edit this page` button on the right side.
|
import { Callout, FileTree } from "nextra-theme-docs";
|
||||||
|
import { Screenshot } from "components/screenshot";
|
||||||
|
import TOT from "../../img/TOT.png";
|
||||||
|
import TOT2 from "../../img/TOT2.png";
|
||||||
|
import TOT3 from "../../img/TOT3.png";
|
||||||
|
|
||||||
|
탐구나 전략적인 예측이 필요한 복잡한 작업들을 해결하기 위해서는 기존의 단순한 프롬프팅 기법으로는 부족합니다. [Yao et el. (2023)](https://arxiv.org/abs/2305.10601)와 [Long (2023)](https://arxiv.org/abs/2305.08291)는 최근 Tree of Thoughts(ToT)의 개념을 제안했는데, 이 프레임워크는 '생각의 사슬(chain-of-thought)' 프롬프팅 기법을 일반화하며, 언어모델을 사용하여 일반적인 문제 해결을 위한 중간 단계 역할을 하는 생각에 대한 탐색을 촉진합니다.
|
||||||
|
|
||||||
|
ToT는 문제를 해결하기 위한 중간 단계로서 일관된 언어 시퀀스를 나타내는 Tree of Touhgts를 유지합니다. 이 접근법을 통해 언어모델은 신중한 추론 과정을 거쳐 문제를 해결하기 위한 중간 생각들이 문제를 해결해나가는 과정을 자체적으로 평가할 수 있게 됩니다. 그리고 이 언어모델이 생각을 생성하고 평가하는 능력은 탐색 알고리즘(예: 너비 우선 탐색과 깊이 우선 탐색(DFS))과 결합되어, 선제적 탐색과 백트래킹이 가능한 생각의 체계적인 탐색을 가능하게 합니다.
|
||||||
|
|
||||||
|
ToT 프레임워크는 다음과 같습니다:
|
||||||
|
|
||||||
|
<Screenshot src={TOT} alt="TOT" />
|
||||||
|
이미지 출처: [Yao et el. (2023)](https://arxiv.org/abs/2305.10601){" "}
|
||||||
|
|
||||||
|
ToT를 사용할 때, 다른 작업들은 후보의 수와 생각/단계의 수를 정의하는 것을 요구합니다. 예를 들어, 논문에서 보여진 바와 같이, 24의 게임은 사고를 3단계로 분해하는 수학적 추론 과제로 사용되었습니다. 각 단계는 중간 방정식을 포함합니다. 각 단계에서, 최선의 b=5 후보들이 유지됩니다.
|
||||||
|
|
||||||
|
24의 게임 작업에 대한 ToT의 너비 우선 탐색(BFS)를 수행하기 위해, 언어모델은 각 사고 후보를 24에 도달하는 것에 대해 "확실함/아마도/불가능함"으로 평가하도록 요청합니다. 저자들은 "목표는 몇 번의 선제적 시험 내에서 판결을 내릴 수 있는 올바른 부분적 해결책을 촉진하고, '너무 크거나 작은' 상식에 기반한 불가능한 부분 해결책을 제거하고, 나머지 '아마도'를 유지하는 것"입니다. 각 생각에 대한 값은 3번 샘플링됩니다. 아래에 이 과정이 그림으로 나타나 있습니다:
|
||||||
|
|
||||||
|
<Screenshot src={TOT2} alt="TOT2" />
|
||||||
|
이미지 출처: [Yao et el. (2023)](https://arxiv.org/abs/2305.10601){" "}
|
||||||
|
|
||||||
|
아래 그림에서 보고된 결과에서 볼 수 있듯, ToT는 다른 프롬프팅 방법들에 비해 월등히 뛰어납니다:
|
||||||
|
|
||||||
|
<Screenshot src={TOT3} alt="TOT3" />
|
||||||
|
이미지 출처: [Yao et el. (2023)](https://arxiv.org/abs/2305.10601){" "}
|
||||||
|
|
||||||
|
[이곳](https://github.com/princeton-nlp/tree-of-thought-llm)과 [이곳](https://github.com/jieyilong/tree-of-thought-puzzle-solver)의 코드를 사용할 수 있습니다.
|
||||||
|
|
||||||
|
높은 수준에서 보면, [Yao et el. (2023)](https://arxiv.org/abs/2305.10601)와 [Long (2023)](https://arxiv.org/abs/2305.08291)의 주요 아이디어는 유사합니다. 두 연구 모두 다중 라운드 대화를 통한 트리 검색을 통해 대규모언어모델의 복잡한 문제 해결 능력을 향상시킵니다. 주요 차이점 중 하나는 [Yao et el. (2023)](https://arxiv.org/abs/2305.10601)이 깊이 우선 탐색/너비 우선 탐색/빔 탐색을 활용하는 반면, [Long (2023)](https://arxiv.org/abs/2305.08291)에서 제안하는 트리 검색 전략(즉, 언제 백트래킹을 하고, 몇 단계로 백트래킹을 하는지 등)은 강화 학습을 통해 훈련된 "ToT 컨트롤러"에 의해 주도됩니다. 깊이 우선 탐색/너비 우선 탐색/빔 탐색은 특정 문제에 대한 적응 없이 일반적인 해결책 검색 전략입니다. 반면, RL을 통해 훈련된 ToT 컨트롤러는 새로운 데이터 세트나 자체 플레이를 통해 학습할 수 있을 수 있으며(AlphaGo vs 무차별 검색), 따라서 RL 기반의 ToT 시스템은 고정된 LLM으로도 계속해서 발전하고 새로운 지식을 배울 수 있습니다.
|
||||||
|
|
||||||
|
[Hulbert (2023)](https://github.com/dave1010/tree-of-thought-prompting)은 Tree-of-Thought 프롬프팅을 제안했는데, 이는 ToT 프레임워크의 주요 개념을 단순한 프롬프팅 기법으로 적용하여 LLM이 단일 프롬프트에서 중간 생각을 평가하게 합니다. 샘플 ToT 프롬프트는 다음과 같습니다:
|
||||||
|
|
||||||
|
```
|
||||||
|
세 명의 다른 전문가들이 이 질문에 답하고 있다고 상상해보도록 해.
|
||||||
|
모든 전문가들은 자신의 생각의 한 단계를 적어내고,
|
||||||
|
그것을 그룹과 공유할거야.
|
||||||
|
그런 다음 모든 전문가들은 다음 단계로 넘어가. 등등.
|
||||||
|
만약 어떤 전문가가 어떤 시점에서든 자신이 틀렸다는 것을 깨닫게 되면 그들은 떠나.
|
||||||
|
그렇다면 질문은...
|
||||||
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user