Merge pull request #40 from mel-f-dev/main

Improve the traslation of the Tech part: 2nd review
This commit is contained in:
11mLLM 2023-08-03 14:31:44 +09:00 committed by GitHub
commit 6aad4dff5f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 111 additions and 76 deletions

View File

@ -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의 성능을 보여주는 표입니다:

View File

@ -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입니다.
``` ```
최종 정답을 계산하는 데는 몇 가지 단계가 필요하지만(자세한 내용은 논문에서 확인), 간단하게 설명하기 위해 이미 다수의 정답이 나타나고 있으므로 이 정답이 최종 정답이 되는 것을 확인할 수 있습니다. 최종 정답을 계산하는 데는 몇 가지 단계가 필요하지만(자세한 내용은 논문에서 확인하세요), 간단하게 설명하기 위해 이미 다수의 정답에서 확인할 수 있듯이 이 정답이 근본적으로 최종 정답이 되는 것을 확인할 수 있습니다.

View File

@ -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(낮은 확신)*
``` ```
예, 골프의 목적중 하나는 다른 사람보다 더 높은 점수를 얻기 위해 노력하는 것입니다. 각 플레이어는 각 홀에서 기록한 총 타수를 합산하여 계산되는 가장 낮은 점수로 코스를 완주하려고 합니다. 가장 낮은 점수를 얻은 플레이어가 게임에서 승리합니다. 예, 골프의 목적중 하나는 다른 사람보다 더 높은 점수를 얻기 위해 노력하는 것입니다. 각 플레이어는 각 홀에서 기록한 총 타수를 합산하여 계산되는 가장 낮은 점수로 코스를 완주하려고 합니다. 가장 낮은 점수를 얻은 플레이어가 게임에서 승리합니다.
``` ```
이 예는 정말 흥미로운 결과를 보여줍니다. 첫 번째 답변에서는 모델이 매우 신뢰도가 높았지만, 두 번째 답변에서는 그렇지 않았습니다. 데모 목적으로 프로세스를 단순화했지만 최종 정답에 도달할 때 고려해야 할 몇 가지 세부 사항이 더 있습니다. 자세한 내용은 논문을 참조하세요. 이 예는 정말 흥미로운 결과를 보여줍니다. 첫 번째 답변에서는 모델이 매우 신뢰도가 높았지만, 두 번째 답변에서는 그렇지 않았습니다. 논리를 증명하기 위해 프로세스를 단순화했지만 최종 정답에 도달할 때 고려해야 할 몇 가지 세부 사항이 더 있습니다. 자세한 내용은 논문을 참조하세요.

View File

@ -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 프롬프트는 다음과 같습니다:
```
세 명의 다른 전문가들이 이 질문에 답하고 있다고 상상해보도록 해.
모든 전문가들은 자신의 생각의 한 단계를 적어내고,
그것을 그룹과 공유할거야.
그런 다음 모든 전문가들은 다음 단계로 넘어가. 등등.
만약 어떤 전문가가 어떤 시점에서든 자신이 틀렸다는 것을 깨닫게 되면 그들은 떠나.
그렇다면 질문은...
```