ReAct
ReAct er en prompting-teknik, hvor en sprogmodel veksler mellem at generere ræsonnementstrin og udføre handlinger (fx kald af værktøjer) for at løse en opgave.
Kort fortalt
ReAct lader sprogmodellen 'tænke højt' og handle skiftevis, så den kan ræsonnere sig frem til svar og samtidig slå fakta op eller bruge værktøjer.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- /riːˈækt/
Betydninger
1- 1
En prompting-teknik, der synergiserer ræsonnement og handling i sprogmodeller ved at generere sekvenser af tanker, handlinger og observationer i en iterativ cyklus.
- Agenten brugte ReAct til at ræsonnere over spørgsmålet og derefter slå op i en database. — Yao et al., 2022
- ReAct-cyklussen består typisk af 'Thought', 'Action' og 'Observation'.
Hvornår bruges det
ReAct bruges typisk i agent-baserede systemer, hvor en LLM skal udføre flertrinsopgaver, der kræver både ræsonnement og ekstern informationssøgning. Teknikken implementeres ofte med en prompt-skabelon, der definerer en cyklus af 'Thought', 'Action', 'Observation'.
Kodeeksempel
def react_loop(question, tools, max_steps=5):
context = f"Question: {question}\n"
for step in range(max_steps):
# Generate thought
thought = llm(context + "Thought: ")
# Generate action
action = llm(context + thought + "\nAction: ")
if "Answer:" in action:
return action.split("Answer:")[-1].strip()
# Execute action
tool_name, tool_input = parse_action(action)
observation = tools[tool_name](tool_input)
context += f"Thought: {thought}\nAction: {action}\nObservation: {observation}\n"
return "Max steps reached."Forenklet Python-implementering af ReAct-cyklussen med en sprogmodel og værktøjer.
Oprindelse
Termen 'ReAct' er en sammentrækning af 'Reasoning' (ræsonnement) og 'Acting' (handling), introduceret af Shunyu Yao m.fl. i artiklen 'ReAct: Synergizing Reasoning and Acting in Language Models' (2022).