[ad_1]
Giới thiệu
Trong lĩnh vực đang phát triển nhanh chóng AI tạo racác mô hình mạnh mẽ chỉ thực hiện thông qua sự nhắc nhở của con người cho đến khi các tác nhân xuất hiện, giống như mô hình là bộ não và các tác nhân là các chi, vì vậy, quy trình làm việc của tác nhân được giới thiệu để thực hiện các nhiệm vụ một cách tự động bằng cách sử dụng các tác nhân tận dụng mô hình GenAI. Trong thế giới phát triển AI, các tác nhân là tương lai vì các tác nhân có thể thực hiện các nhiệm vụ phức tạp mà không cần sự tham gia trực tiếp của con người. Các khuôn khổ AutoGen của Microsoft nổi bật như một công cụ mạnh mẽ để tạo và quản lý các cuộc hội thoại giữa nhiều tác nhân. AutoGen đơn giản hóa quy trình xây dựng một hệ thống AI có thể cộng tác, lý luận và giải quyết các vấn đề phức tạp thông qua các tương tác giữa các tác nhân với nhau.
Trong bài viết này, chúng ta sẽ khám phá các tính năng chính của AutoGen, cách thức hoạt động và cách bạn có thể tận dụng các khả năng của nó trong các dự án.
Kết quả học tập
- Hiểu khái niệm và chức năng của tác nhân AI và vai trò của chúng trong việc thực hiện nhiệm vụ tự động.
- Khám phá các tính năng và lợi ích của nền tảng AutoGen dành cho hệ thống AI đa tác nhân.
- Tìm hiểu cách triển khai và quản lý tương tác giữa tác nhân với tác nhân bằng AutoGen.
- Có được kinh nghiệm thực tế thông qua các dự án thực hành liên quan đến phân tích dữ liệu và tạo báo cáo với các tác nhân AutoGen.
- Khám phá các ứng dụng thực tế và trường hợp sử dụng AutoGen trong nhiều lĩnh vực khác nhau như giải quyết vấn đề, tạo mã và giáo dục.
Bài viết này được xuất bản như một phần của Blogathon về khoa học dữ liệu.
Đại lý là gì?
Một tác nhân là một thực thể có thể gửi tin nhắn, nhận tin nhắn và tạo phản hồi bằng các mô hình GenAI, công cụ, đầu vào của con người hoặc kết hợp tất cả. Sự trừu tượng này không chỉ cho phép các tác nhân mô hình hóa các thực thể thực tế và trừu tượng, chẳng hạn như con người và thuật toán. Nó đơn giản hóa việc triển khai các quy trình công việc phức tạp.
Điều gì thú vị ở AutoGen Framework?
AutoGen được phát triển bởi một cộng đồng các nhà nghiên cứu và kỹ sư. Nó kết hợp các nghiên cứu mới nhất trong các hệ thống đa tác nhân và đã được sử dụng trong nhiều ứng dụng thực tế. AutoGen Framework có thể mở rộng và cấu hình được, nghĩa là bạn có thể mở rộng một tác nhân đơn giản với các thành phần tùy chỉnh và tạo các quy trình làm việc kết hợp các tác nhân này để tạo ra một tác nhân mạnh mẽ hơn. Nó có tính mô-đun và dễ triển khai.
Các tác nhân của AutoGen
Bây giờ chúng ta hãy cùng khám phá các tác nhân của AutoGen.
Các đại lý có thể đàm thoại
Trọng tâm của AutoGen là các tác nhân có thể đàm thoại. Đây là tác nhân có chức năng cơ bản và là lớp cơ sở cho tất cả các tác nhân AutoGen khác. Một tác nhân có thể đàm thoại có khả năng tham gia vào các cuộc hội thoại, xử lý thông tin và thực hiện các nhiệm vụ.
Các loại đại lý
AutoGen cung cấp một số loại tác nhân được xác định trước, mỗi loại được thiết kế cho các vai trò cụ thể.
- Trợ lý đại lý: Một trợ lý AI đa năng có khả năng hiểu và trả lời các câu hỏi.
- Đại lý người dùng: Mô phỏng hành vi của người dùng, cho phép thử nghiệm và phát triển tương tác của tác nhân.
- Trò chuyện nhóm: Sử dụng nhiều tác nhân để nhóm lại và chúng sẽ hoạt động như một hệ thống để thực hiện các nhiệm vụ cụ thể.
Mẫu hội thoại
Các mô hình cho phép chúng ta giải quyết các vấn đề phức tạp và hoàn thành nhiệm vụ thông qua sự tương tác giữa các tác nhân.
- cuộc trò chuyện một-một giữa các tác nhân
- Trò chuyện nhóm với nhiều đại lý
- Cuộc trò chuyện theo thứ bậc trong đó các tác nhân có thể phân công nhiệm vụ cho các tác nhân phụ
AutoGen hoạt động như thế nào?
AutoGen hỗ trợ đàm thoại giữa nhiều tác nhân và thực hiện tác vụ thông qua sự phối hợp tinh vi của các tác nhân AI.
Quy trình chính
Khởi tạo tác nhân: Trong AutoGen, trước tiên chúng ta khởi tạo các tác nhân. Điều này liên quan đến việc tạo các phiên bản của các loại tác nhân bạn cần và cấu hình chúng với các tham số cụ thể.
Ví dụ:
from autogen import AssistantAgent, UserProxyAgent
assistant1 = AssistantAgent("assistant1", llm_config={"mannequin": "gpt-4","api_key":""})
assistant2 = AssistantAgent("assistant2", llm_config={"mannequin": "gpt-4","api_key":""})
Luồng hội thoại: Sau khi các tác nhân được khởi tạo, AutoGen sẽ quản lý luồng hội thoại giữa chúng.
Mẫu dòng chảy điển hình:
- Một nhiệm vụ hoặc truy vấn được giới thiệu
- Các tác nhân thích hợp xử lý đầu vào
- Phản hồi được tạo ra và chuyển đến các tác nhân tiếp theo hoặc trở lại người dùng
- Chu trình này tiếp tục cho đến khi nhiệm vụ được hoàn thành hoặc điều kiện chấm dứt được đáp ứng.
Đây là luồng hội thoại cơ bản trong AutoGen. Để làm việc với các quy trình tác vụ phức tạp hơn, chúng ta có thể kết hợp nhiều tác nhân vào một nhóm gọi là GroupChat, sau đó sử dụng Group Supervisor để quản lý cuộc hội thoại. Mỗi nhóm và người quản lý nhóm sẽ chịu trách nhiệm cho các tác vụ cụ thể.
Thực hiện nhiệm vụ
Khi cuộc trò chuyện diễn ra, các tác nhân có thể cần thực hiện các tác vụ cụ thể, AutoGen hỗ trợ nhiều phương pháp thực hiện tác vụ khác nhau.
- Quy trình ngôn ngữ tự nhiên: Các tác nhân có thể diễn giải và tạo ra văn bản giống con người bằng nhiều ngôn ngữ.
- Thực thi mã: Các tác nhân có thể tự động tạo, viết, chạy và gỡ lỗi mã bằng nhiều ngôn ngữ lập trình khác nhau.
- Cuộc gọi API bên ngoài: Các tác nhân có thể tương tác với các dịch vụ bên ngoài để truy xuất hoặc xử lý dữ liệu.
- Tìm kiếm trên net: Tác nhân có thể tự động tìm kiếm trên net như Wikipedia để trích xuất thông tin cho các truy vấn cụ thể.
Xử lý lỗi và tương tác
AutoGen triển khai quy trình xử lý lỗi mạnh mẽ. Nếu một tác nhân gặp lỗi, nó thường có thể chẩn đoán và cố gắng khắc phục sự cố một cách tự động. Điều này tạo ra một chu kỳ cải tiến liên tục và giải quyết vấn đề.
Kết thúc cuộc trò chuyện
Cuộc hội thoại trong AutoGen có thể kết thúc dựa trên các điều kiện được xác định trước.
- Nhiệm vụ hoàn thành
- Đạt đến số lượt được xác định trước
- Lệnh chấm dứt rõ ràng
- Ngưỡng lỗi
Tính linh hoạt của điều kiện chấm dứt này cho phép tương tác nhanh chóng và có mục tiêu.
Các trường hợp sử dụng và ví dụ
Bây giờ chúng ta hãy cùng khám phá các trường hợp sử dụng và ví dụ về AutoGen Framework của Microsoft.
Giải quyết vấn đề phức tạp
AutoGen vượt trội trong việc phân tích và giải quyết các vấn đề phức tạp thông qua sự hợp tác của nhiều tác nhân. Nó có thể được sử dụng trong nghiên cứu khoa học để phân tích dữ liệu, xây dựng giả thuyết và thiết kế thí nghiệm.
Tạo mã và gỡ lỗi
AutoGen có thể tạo, thực thi và gỡ lỗi mã trên nhiều ngôn ngữ lập trình khác nhau. Điều này đặc biệt hữu ích cho các tác vụ phát triển phần mềm và tự động hóa.
Hệ thống quảng cáo tự động
Khung AutoGen rất phù hợp cho việc quản lý quảng cáo tự động đa tác nhân. Nó có thể theo dõi đánh giá của khách hàng, nhấp chuột vào quảng cáo, thử nghiệm AB tự động trên quảng cáo được nhắm mục tiêu và sử dụng các mô hình GenAI như Gemini và khuếch tán ổn định để tạo quảng cáo dành riêng cho khách hàng
Giáo dục Gia sư
AutoGen có thể tạo ra trải nghiệm học tập tương tác, trong đó nhiều tác nhân khác nhau đảm nhận các vai trò như giáo viên, học sinh và người đánh giá.
Ví dụ về mô hình giáo viên-học sinh-người đánh giá
Bây giờ chúng ta hãy cùng khám phá một ví dụ đơn giản về mô hình Giáo viên-Học sinh-Người đánh giá.
from autogen import AssistantAgent, UserProxyAgent
trainer = AssistantAgent("Instructor", llm_config={"mannequin": "gpt-4","api_key":""})
pupil = UserProxyAgent("Pupil")
evaluator = AssistantAgent("Evaluator", llm_config={"mannequin": "gpt-4","api_key":""})
def tutoring_session():
pupil.initiate_chat(trainer, message="I need assistance understanding quadratic equations.")
# Instructor explains idea
pupil.ship(evaluator, "Did I perceive appropriately? A quadratic equation is ax^2 + bx + c = 0")
# Evaluator assesses understanding and gives suggestions
trainer.ship(pupil, "Let's clear up this equation: x^2 - 5x + 6 = 0")
# Pupil makes an attempt answer
evaluator.ship(trainer, "Assess the coed's answer and supply steerage if wanted.")
tutoring_session()
Cho đến nay chúng ta đã thu thập được tất cả các kiến thức cần thiết để làm việc với AutoGen Framework. Bây giờ, hãy triển khai một dự án thực hành để chúng ta có thể củng cố sự hiểu biết của mình.
Triển khai AutoGen trong một dự án
Trong dự án này, chúng tôi sẽ sử dụng AutoGen Brokers để tải xuống một tập dữ liệu từ net và thử phân tích nó bằng LLM.
Bước 1: Thiết lập môi trường
#create a conda setting
$ conda create -n autogen python=3.11
# after the creating env
$ conda activate autogen
# set up autogen and essential libraries
pip set up numpy pandas matplolib seaborn python-dotenv jupyterlab
pip pyautogen
Bây giờ, hãy mở Vscode và bắt đầu dự án bằng cách tạo sổ ghi chép Jupyter theo lựa chọn của bạn.
Bước 2: Tải thư viện
import os
import autogen
from autogen.coding import LocalCommandLineCodeExecutor
from autogen import ConversableAgent
from dotenv import load_dotenv
Bây giờ, hãy thu thập các khóa API của mô hình tạo từ trang net tương ứng và đưa chúng vào tệp .env ở gốc của dự án. Mã Belew sẽ tải tất cả các khóa API vào hệ thống.
load_dotenv()
google_api_key = os.getenv("GOOGLE_API_KEY")
open_api_key = os.getenv("OPENAI_API_KEY")
os.environ("GOOGLE_API_KEY") = google_api_key.strip('"')
os.environ("OPENAI_API_KEY") = open_api_key.strip('"')
seed = 42
Tôi sử dụng phiên bản miễn phí của GeminiAI để kiểm tra mã. Đặt chế độ an toàn của gemini thành NONE.
safety_settings = (
{"class": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_NONE"},
{"class": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"},
{"class": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_NONE"},
{"class": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_NONE"},
)
Bước 3: Cấu hình LLM cho Gemini-1.5-flash
llm_config = {
"config_list": (
{
"mannequin": "gemini-1.5-flash",
"api_key": os.environ("GOOGLE_API_KEY"),
"api_type": "google",
"safety_settings": safety_settings,
}
)
}()
Bước 4: Cấu hình LLM cho OpenAI
llm_config = {
"config_list" = ({"mannequin": "gpt-4", "api_key": os.getenv("OPENAI_API_KEY")}
}
Bước 5: Xác định nhiệm vụ mã hóa
coding_task = (
"""obtain knowledge from https://uncooked.githubusercontent.com/vega/vega-datasets/fundamental/knowledge/penguins.json""",
""" discover desccriptive statistics of the dataset, plot a chart of their relation between spices and beak size and save the plot to beak_length_depth.png """,
"""Develope a brief report utilizing the info from the dataset, put it aside to a file named penguin_report.md.""",
)
Bước 5: Thiết kế các tác nhân trợ lý
Tôi sẽ sử dụng bốn trợ lý
- Proxy người dùng
- Người viết mã
- nhà văn
- Nhà phê bình
Đại lý Proxy Người dùng
Đây là một proxy Người dùng AutoGen, là một lớp con của ConversableAgent, human_input_mode của nó LUÔN LUÔN có nghĩa là nó sẽ hoạt động như một tác nhân con người. Và cấu hình LLM của nó là Sai. Theo mặc định, nó sẽ yêu cầu con người nhập dữ liệu nhưng ở đây chúng ta sẽ đặt human_input_mode thành KHÔNG BAO GIỜ, do đó nó sẽ hoạt động tự động.
user_proxy = autogen.UserProxyAgent(
title="User_proxy",
system_message="A human admin.",
code_execution_config={
"last_n_messages": 3,
"work_dir": "groupchat",
"use_docker": False,
}, # Please set use_docker=True if docker is on the market to
#run the generated code. Utilizing docker is safer than operating the generated code straight.
human_input_mode="NEVER",
)
Các tác nhân Code và Author
Để xây dựng các tác nhân Code và Author, chúng ta sẽ tận dụng AutoGen Assistant Agent, một lớp con của Conversable Agent. Nó được thiết kế để giải quyết các tác vụ với LLM. human_input_mode KHÔNG BAO GIỜ. Chúng ta có thể sử dụng lời nhắc tin nhắn hệ thống với một tác nhân trợ lý.
coder = autogen.AssistantAgent(
title="Coder", # the default assistant agent is able to fixing issues with code
llm_config=llm_config,
)
author = autogen.AssistantAgent(
title="author",
llm_config=llm_config,
system_message="""
You're a skilled report author, recognized for
your insightful and interesting report for purchasers.
You rework advanced ideas into compelling narratives.
Reply "TERMINATE" ultimately when all the pieces is completed.
""",
)
Đại lý phê bình
Đây là trợ lý sẽ chịu trách nhiệm đảm bảo chất lượng mã do người viết mã tạo ra và đề xuất bất kỳ cải tiến nào cần thiết.
system_message="""Critic. You're a useful assistant extremely expert in
evaluating the standard of a given visualization code by offering a rating
from 1 (unhealthy) - 10 (good) whereas offering clear rationale. YOU MUST CONSIDER
VISUALIZATION BEST PRACTICES for every analysis. Particularly, you may
rigorously consider the code throughout the next dimensions
- bugs (bugs): are there bugs, logic errors, syntax error or typos? Are
there any explanation why the code could fail to compile? How ought to or not it's fastened?
If ANY bug exists, the bug rating MUST be lower than 5.
- Knowledge transformation (transformation): Is the info reworked
appropriately for the visualization kind? E.g., is the dataset appropriated
filtered, aggregated, or grouped if wanted? If a date discipline is used, is the
date discipline first transformed to a date object and many others?
- Objective compliance (compliance): how nicely the code meets the required
visualization targets?
- Visualization kind (kind): CONSIDERING BEST PRACTICES, is the
visualization kind applicable for the info and intent? Is there a
visualization kind that might be simpler in conveying insights?
If a unique visualization kind is extra applicable, the rating MUST
BE LESS THAN 5.
- Knowledge encoding (encoding): Is the info encoded appropriately for the
visualization kind?
- aesthetics (aesthetics): Are the aesthetics of the visualization
applicable for the visualization kind and the info?
YOU MUST PROVIDE A SCORE for every of the above dimensions.
{bugs: 0, transformation: 0, compliance: 0, kind: 0, encoding: 0,
aesthetics: 0}
Don't recommend code.
Lastly, primarily based on the critique above, recommend a concrete record of actions
that the coder ought to take to enhance the code.
""",
critic = autogen.AssistantAgent(
title="Critic",
system_message = system_message,
llm_config=llm_config,
)
Tạo nhóm trò chuyện và quản lý
Trong AutoGen, chúng ta sẽ sử dụng tính năng GroupChat để nhóm nhiều tác nhân lại với nhau để thực hiện các nhiệm vụ cụ thể, sau đó sử dụng GroupChatManager để kiểm soát hành vi của GroupChat.
groupchat_coder = autogen.GroupChat(
brokers=(user_proxy, coder, critic), messages=(), max_round=10
)
groupchat_writer = autogen.GroupChat(
brokers=(user_proxy, author, critic), messages=(), max_round=10
)
manager_1 = autogen.GroupChatManager(
groupchat=groupchat_coder,
llm_config=llm_config,
is_termination_msg=lambda x: x.get("content material", "").discover("TERMINATE") >= 0,
code_execution_config={
"last_n_messages": 1,
"work_dir": "groupchat",
"use_docker": False,
},
)
manager_2 = autogen.GroupChatManager(
groupchat=groupchat_writer,
title="Writing_manager",
llm_config=llm_config,
is_termination_msg=lambda x: x.get("content material", "").discover("TERMINATE") >= 0,
code_execution_config={
"last_n_messages": 1,
"work_dir": "groupchat",
"use_docker": False,
},
)
Bây giờ, chúng ta sẽ tạo một tác nhân người dùng để bắt đầu quá trình trò chuyện và phát hiện lệnh kết thúc. Đây là một tác nhân UserProxy đơn giản hoạt động như một con người.
consumer = autogen.UserProxyAgent(
title="Consumer",
human_input_mode="NEVER",
is_termination_msg=lambda x: x.get("content material", "").discover("TERMINATE") >= 0,
code_execution_config={
"last_n_messages": 1,
"work_dir": "duties",
"use_docker": False,
}, # Please set use_docker=True if docker is on the market to run the
#generated code. Utilizing docker is safer than operating the generated
#code straight.
)
consumer.initiate_chats(
(
{"recipient": coder, "message": coding_task(0), "summary_method": "last_msg"},
{
"recipient": manager_1,
"message": coding_task(1),
"summary_method": "last_msg",
},
{"recipient": manager_2, "message": coding_task(2)},
)
)
Đầu ra
Đầu ra của quá trình này sẽ rất dài. Để ngắn gọn, tôi sẽ đăng một số đầu ra ban đầu.
Tại đây, bạn có thể thấy tác nhân sẽ hoạt động theo các bước đầu tiên: tải xuống tập dữ liệu penguin, sau đó bắt đầu tạo mã bằng tác nhân coder, tác nhân phê bình sẽ kiểm tra mã và đề xuất các cải tiến, sau đó sẽ chạy lại tác nhân coder để cải thiện theo đề xuất của nhà phê bình.
Đây là quy trình làm việc đơn giản của tác nhân AutoGen, bạn có thể thử nghiệm mã và sử dụng nhiều LLM khác nhau.
Bạn có thể lấy tất cả mã được sử dụng trong bài viết này đây
Phần kết luận
Tương lai của AI không chỉ là các LLM riêng lẻ, mà là về việc tạo ra các hệ sinh thái của các thực thể AI có thể làm việc cùng nhau một cách liền mạch. AutoGen đi đầu trong sự thay đổi mô hình này, mở đường cho một kỷ nguyên mới của trí tuệ nhân tạo cộng tác. Khi bạn khám phá các khả năng của AutoGen, hãy nhớ rằng bạn không chỉ làm việc với một công cụ, mà bạn đang hợp tác với một hệ sinh thái đang phát triển của các tác nhân AI. Hãy nắm bắt các khả năng và thử nghiệm với các cấu hình tác nhân và LLM khác nhau.
Những điểm chính
- Hợp tác nhiều tác nhân: AutoGen đơn giản hóa việc tạo ra hệ thống AI nhiều tác nhân, trong đó nhiều tác nhân khác nhau có thể cùng làm việc để hoàn thành một nhiệm vụ phức tạp.
- Tính linh hoạt và khả năng tùy chỉnh: Khung này cung cấp nhiều tùy chọn tùy chỉnh, cho phép các nhà phát triển tạo ra các tác nhân phù hợp với các tác vụ hoặc miền cụ thể.
- Tạo và thực thi mã: Các tác nhân AutoGen có thể viết, gỡ lỗi và thực thi mã, khiến nó trở thành một công cụ mạnh mẽ cho phát triển phần mềm và phân tích dữ liệu.
- Trí thông minh đàm thoại: Bằng cách tận dụng LLM, các tác nhân có thể tham gia vào cuộc trò chuyện bằng ngôn ngữ tự nhiên, phù hợp với nhiều ứng dụng khác nhau, từ dịch vụ khách hàng đến gia sư cá nhân.
Các câu hỏi thường gặp
A. AutoGen được Microsoft tạo ra để đơn giản hóa việc xây dựng các hệ thống AI đa tác nhân. Trong quá trình tạo khuôn khổ, nhà phát triển áp dụng các nghiên cứu và kỹ thuật quy trình làm việc của tác nhân mới nhất giúp API trở nên rất dễ sử dụng. Không giống như các khuôn khổ tác nhân đơn lẻ, AutoGen tạo điều kiện thuận lợi cho việc giao tiếp giữa các tác nhân và phân công nhiệm vụ.
A. Vì bạn đang làm việc với AI nên tôi cho rằng bạn biết khá nhiều về Python. Vậy là bạn có thể bắt đầu với AutoGen rồi học dần dần và luôn đọc tài liệu chính thức. Khung này cung cấp khả năng trừu tượng hóa cấp cao giúp đơn giản hóa quá trình tạo và quản lý các tác nhân AI.
A. Các tác nhân AutoGen có thể được cấu hình để truy cập các nguồn dữ liệu và API bên ngoài. Điều này cho phép chúng truy xuất thông tin theo thời gian thực, tương tác với cơ sở dữ liệu hoặc sử dụng các dịch vụ bên ngoài như một phần của quy trình giải quyết vấn đề của chúng.
A. AutoGen rất linh hoạt và có thể tùy chỉnh. Bạn có thể dễ dàng sử dụng nó với các khuôn khổ khác nhau. Thực hiện theo tài liệu chính thức và đặt câu hỏi cụ thể trong diễn đàn để có các trường hợp sử dụng tốt hơn.
Các phương tiện truyền thông được trình bày trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của Tác giả.
[ad_2]
Source link