← 返回列表

AI հարցազրույցների շարք 6. AI Agent-ի երեք հիմնական մեթոդաբանությունները՝ ReAct, Plan-and-Solve և Reflection

AI Agent-ի երեք հիմնական մեթոդաբանությունները՝ ReAct, Plan-and-Solve և Reflection

AI Agent-ը ինքնավար գործակալ է, որն ընդունակ է ընկալել միջավայրը, կայացնել որոշումներ և կատարել գործողություններ: Նրա հիմնական մեթոդաբանություններն են՝ ReAct, Plan-and-Solve և Reflection: Ստորև ներկայացվում են դրանք՝ ուղեկցված հոսքային դիագրամներով և կոդի օրինակներով:

1. ReAct (Reasoning + Acting)

Հիմնական գաղափար՝ Պատճառաբանությունը (Reasoning) և գործողությունը (Acting) միահյուսել: Agent-ը յուրաքանչյուր քայլում նախ մտածում է ընթացիկ վիճակի և հաջորդ քայլի պլանի մասին (պատճառաբանություն), ապա կատարում գործողություն (օրինակ՝ գործիքի կանչ, տեղեկատվության որոնում), և արդյունքների հիման վրա շարունակում պատճառաբանել:

Հոսքային դիագրամ՝

[Սկզբնական վիճակ] → [Պատճառաբանություն. մտածել հաջորդ քայլի մասին] → [Գործողություն. կատարել գործողություն] → [Դիտարկել արդյունքը] → [Պատճառաբանություն. թարմացնել պլանը] → ... → [Վերջնական պատասխան]

Օրինակ կոդ (կեղծ կոդ)՝

def react_agent(question):
    context = []
    while not solved:
        # Պատճառաբանություն. ստեղծել մտքի քայլ
        thought = llm.generate_thought(question, context)
        # Գործողություն. ընտրել գործողություն մտքի հիման վրա
        action = llm.choose_action(thought)
        # Կատարել գործողություն, ստանալ դիտարկում
        observation = execute_action(action)
        # Ավելացնել միտքը, գործողությունը և դիտարկումը համատեքստում
        context.append((thought, action, observation))
    return final_answer

Օրինակ՝
- Օգտատերը հարցնում է. «Ինչպիսի՞ն է եղանակը այսօր Երևանում»:
- Agent-ը պատճառաբանում է. «Ես պետք է հարցնեմ եղանակի API-ին, անհրաժեշտ է քաղաքի անունը և ամսաթիվը»:
- Գործողություն. կանչել եղանակի API (պարամետրեր. Երևան, այսօր)
- Դիտարկում. վերադարձնում է «Արևոտ, 25°C»
- Պատճառաբանություն. «Տեղեկությունը ստացված է, կարող եմ պատասխանել»:
- Արդյունք. «Երևանում այսօր արևոտ է, 25°C»:

2. Plan-and-Solve

Հիմնական գաղափար՝ Նախ կազմել ամբողջական պլան (Plan), ապա աստիճանաբար իրականացնել (Solve): Պլանավորման փուլում բարդ առաջադրանքը բաժանվում է ենթաքայլերի, իսկ կատարման փուլում դրանք հաջորդաբար կատարվում են՝ հնարավոր է միջանկյալ արդյունքների հիման վրա պլանը ճշգրտել:

Հոսքային դիագրամ՝

[Առաջադրանք] → [Պլանավորում. բաժանել ենթաքայլերի] → [Կատարել քայլ 1] → [Կատարել քայլ 2] → ... → [Կատարել քայլ N] → [Վերջնական պատասխան]

Օրինակ կոդ՝

def plan_and_solve(task):
    # Պլանավորման փուլ
    plan = llm.generate_plan(task)  # Օրինակ՝ ["Որոնել նյութեր", "Կազմակերպել տեղեկատվությունը", "Գրել զեկույց"]
    context = {}
    for step in plan:
        # Կատարել յուրաքանչյուր քայլ
        result = execute_step(step, context)
        context[step] = result
    # Սինթեզել արդյունքները
    final = llm.synthesize(context)
    return final

Օրինակ՝
- Առաջադրանք. «Գրել բլոգ AI Agent-ի մասին»
- Պլան.
1. Որոնել AI Agent-ի սահմանումը և վերջին զարգացումները
2. Կարդալ և կազմակերպել հիմնական կետերը
3. Կազմել բլոգի ուրվագիծը
4. Լրացնել բովանդակությունը
5. Սրբագրել և հրապարակել
- Կատարում. հաջորդաբար կատարել յուրաքանչյուր քայլ, վերջում ստանալ բլոգը:

3. Reflection

Հիմնական գաղափար՝ Agent-ը կատարման ընթացքում կամ դրանից հետո անդրադառնում է իր գործողություններին (Reflection), գնահատում արդյունքները և բարելավում հետագա գործողությունները: Սովորաբար ներառում է ինքնաքննադատություն, սխալների ուղղում կամ ռազմավարության օպտիմալացում:

Հոսքային դիագրամ՝

[Գործողություն] → [Դիտարկել արդյունքը] → [Անդրադարձ. գնահատել հաջողությունը] → [Եթե ձախողվեց. ճշգրտել ռազմավարությունը] → [Կրկին գործել] → ... → [Հաջողություն]

Օրինակ կոդ՝

def reflection_agent(task):
    max_attempts = 3
    for attempt in range(max_attempts):
        action = llm.generate_action(task)
        result = execute(action)
        # Անդրադարձ
        reflection = llm.reflect(task, action, result)
        if reflection['success']:
            return result
        else:
            # Անդրադարձի հիման վրա ճշգրտել առաջադրանքի նկարագրությունը կամ ռազմավարությունը
            task = reflection['improved_task']
    return None

Օրինակ՝
- Առաջադրանք. «Հաշվել 1234 * 5678»
- Գործողություն. ուղղակի հաշվարկ, ստանալ 7006652
- Անդրադարձ. ստուգել հաշվարկի ընթացքը, հայտնաբերել տեղափոխման սխալ
- Ճշգրտում. վերահաշվարկել, ստանալ ճիշտ արդյունք 7006652 (իրականում ճիշտ)
- Եթե դեռ սխալ է, շարունակել անդրադարձը մինչև ճիշտ լինի:

Ամփոփիչ համեմատություն

Մեթոդաբանություն Առանձնահատկություններ Կիրառման սցենարներ
ReAct Պատճառաբանությունը և գործողությունը միահյուսված, դինամիկ ճշգրտում Առաջադրանքներ, որոնք պահանջում են իրական ժամանակի տեղեկատվության փոխանակում (օրինակ՝ հարց-պատասխան, որոնում)
Plan-and-Solve Նախ պլանավորել, ապա կատարել, կառուցվածքային բաժանում Բազմաքայլ բարդ առաջադրանքներ (օրինակ՝ գրել, տվյալների վերլուծություն)
Reflection Ինքնանդրադարձ և ուղղում, կրկնվող օպտիմալացում Բարձր ճշգրտություն պահանջող առաջադրանքներ (օրինակ՝ մաթեմատիկական հաշվարկներ, կոդի գեներացիա)

Գործնականում հաճախ համատեղում են երեքը, օրինակ՝ ReAct-ում ավելացնել անդրադարձի մեխանիզմ, կամ Plan-and-Solve-ում յուրաքանչյուր քայլից հետո անդրադառնալ:

评论

暂无已展示的评论。

发表评论(匿名)