Tree of Thought
forkortelse for ToT
En prompting-teknik, hvor modellen udforsker flere tænkestier samtidigt for at finde den bedste løsning.
Kort fortalt
Kort fortalt: I stedet for kun at følge én tankerække, får modellen lov at forgrene sig og vælge den mest lovende.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
En ræsonnementstrategi for sprogmodeller, der strukturerer tanker i et træ af mulige stier og anvender søgealgoritmer (fx bredde-først eller dybde-først) til at udforske dem. Undervejs vurderes delresultater, og de mest lovende grene forfølges.
- Tree of Thought-prompting forbedrer modellens evne til at løse matematiske problemer ved at overveje alternative fremgangsmåder.
- I et ræsonnementseksperiment brugte forskerne ToT til at planlægge en rejseplan, hvor modellen afprøvede flere ruter og valgte den bedste.
Hvornår bruges det
Bruges i komplekse ræsonnement-opgaver som matematikproblemer, logiske gåder og planlægning, hvor en enkelt tankekæde kan føre til en blindgyde. Teknikken kræver flere forespørgsler til modellen og en mekanisme til at vurdere delresultater.
Kodeeksempel
from openai import OpenAI
client = OpenAI()
def tree_of_thought(prompt, depth=2, width=3):
from itertools import product
thoughts = [[{'text': prompt, 'score': 0}]] # initial thought
for level in range(depth):
new_thoughts = []
for parent in thoughts[level]:
# Generate candidate continuations
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": parent['text']}],
n=width
)
candidates = [choice.message.content for choice in response.choices]
# Evaluate each candidate (simple heuristic: length)
scored = [{'text': parent['text'] + ' ' + c, 'score': len(c)} for c in candidates]
new_thoughts.extend(scored)
# Keep top 'width' by score
new_thoughts.sort(key=lambda x: x['score'], reverse=True)
thoughts.append(new_thoughts[:width])
return thoughts[-1][0]['text']
result = tree_of_thought("Plan a day in Copenhagen.")
print(result)Simpel Python-implementering, der bruger OpenAI API til at udforske tre tanker per niveau og vælge den bedste.
Oprindelse
Inspireret af 'træsøgning' i kunstig intelligens og begrebet 'chain-of-thought' prompting.
Kilder
1- Tree of Thoughts: Deliberate Problem Solving with Large Language Models (Yao et al., 2023)