← 返回列表

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) მონაცვლეობა. აგენტი ყოველ ნაბიჯზე ჯერ ფიქრობს მიმდინარე მდგომარეობასა და შემდეგ ნაბიჯზე (მსჯელობა), შემდეგ ასრულებს მოქმედებას (მაგ., ინსტრუმენტის გამოძახება, ინფორმაციის ძიება), შემდეგ შედეგზე დაყრდნობით აგრძელებს მსჯელობას.

ნაკადის დიაგრამა:

[საწყისი მდგომარეობა] → [მსჯელობა: შემდეგი ნაბიჯის გააზრება] → [მოქმედება: მოქმედების შესრულება] → [შედეგის დაკვირვება] → [მსჯელობა: გეგმის განახლება] → ... → [საბოლოო პასუხი]

მაგალითი კოდი (ფსევდოკოდი):

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

მაგალითი:
- მომხმარებელი კითხულობს: "როგორია ამინდი პეკინში დღეს?"
- აგენტი მსჯელობს: "მჭირდება ამინდის 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

ძირითადი იდეა: აგენტი შესრულების დროს ან მის შემდეგ ახდენს საკუთარი ქმედებების რეფლექსიას (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-ში თითოეული ნაბიჯის შესრულების შემდეგ რეფლექსია.

评论

暂无已展示的评论。

发表评论(匿名)