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. 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).

Afledte ord

2

Kilder

1