Giải phóng các Tác nhân Tự chủ với các Mô hình Nguồn mở Tốt nhất của Qwen-Agent
Khám phá sức mạnh của các mô hình mã nguồn mở của Qwen-Agent và tìm hiểu cách giải phóng các tác nhân tự trị thông qua việc gọi hàm và tạo tác nhân tùy chỉnh. Khám phá tác động của định lượng đến hiệu suất mô hình cho các ứng dụng thực tế.
24 tháng 2, 2025

Mở khóa sức mạnh của các tác nhân tự trị với Qwen-Agent, khuôn khổ mã nguồn mở tiên tiến sử dụng các mô hình mở tối ưu tốt nhất. Khám phá cách tích hợp gọi chức năng và các luồng công việc dựa trên tác nhân một cách mượt mà để xây dựng các ứng dụng thông minh có thể tương tác với thế giới thực và thích ứng với nhu cầu của người dùng.
Xây dựng Tác nhân Tự chủ với Mô hình Trọng lượng Mở Tốt nhất
Gọi Hàm và Tác nhân: Hiểu Sự Khác biệt
Bắt đầu với Tác nhân Qwen: Gọi Hàm và Sử dụng Tác nhân
Tác động của Định lượng đến Hiệu suất Mô hình Ngôn ngữ Lớn
Xây dựng Tác nhân Tự chủ với Mô hình Trọng lượng Mở Tốt nhất
Xây dựng Tác nhân Tự chủ với Mô hình Trọng lượng Mở Tốt nhất
Các mô hình Quen 2 của Alibaba là những mô hình ngôn ngữ mã nguồn mở mới nhất và tốt nhất, cung cấp khả năng ấn tượng trên nhiều loại nhiệm vụ. Các mô hình này có từ 500 triệu đến 72 tỷ tham số, với các mô hình lớn hơn hỗ trợ lên đến 128.000 token - một cải tiến đáng kể so với giới hạn 8.000 token của GPT-3.
Một trong những tính năng chính của Quen 2 là hiệu suất mạnh mẽ trong lập trình và toán học, cũng như khả năng xử lý hiểu biết ngữ cảnh dài - rất quan trọng cho các ứng dụng thực tế. Ngoài ra, các mô hình này cũng hỗ trợ một tập hợp đa dạng các ngôn ngữ, bao gồm cả các ngôn ngữ Trung Đông và Đông Nam Á, điều này là một sự thay đổi đáng chào mừng so với sự tập trung vào các ngôn ngữ phương Tây của nhiều mô hình khác.
Để tận dụng sức mạnh của Quen 2, chúng ta có thể sử dụng khuôn khổ Quen Agent, cung cấp quyền truy cập vào trợ lý trình duyệt tích hợp, bộ giải thích mã và khả năng tạo các trợ lý tùy chỉnh. Điều này cho phép chúng ta xây dựng các tác nhân tự trị có thể lập kế hoạch, thực hiện và điều chỉnh các hành động của họ dựa trên nhiệm vụ cụ thể.
Trong phần này, chúng ta sẽ khám phá cách sử dụng Quen Agent để tạo một tác nhân tạo hình ảnh tùy chỉnh. Tác nhân này sẽ có khả năng tạo hình ảnh dựa trên đầu vào của người dùng, tải xuống các hình ảnh được tạo và thậm chí cập nhật mã của chính nó nếu gặp bất kỳ vấn đề nào. Bằng cách kết hợp khả năng hiểu ngôn ngữ mạnh mẽ của Quen 2 với khả năng lập kế hoạch và thực thi của Quen Agent, chúng ta có thể tạo ra các tác nhân tự trị và có khả năng thực sự, có thể giải quyết một loạt các nhiệm vụ.
Gọi Hàm và Tác nhân: Hiểu Sự Khác biệt
Gọi Hàm và Tác nhân: Hiểu Sự Khác biệt
Gọi hàm và tác nhân là hai khái niệm khác biệt trong thế giới của các mô hình ngôn ngữ lớn (LLM). Dưới đây là một giải thích ngắn gọn về sự khác biệt giữa hai khái niệm này:
Gọi hàm (Sử dụng công cụ):
- Gọi hàm, hay sử dụng công cụ, cho phép LLM tương tác với thế giới bên ngoài bằng cách truy cập các API hoặc hàm bên ngoài.
- LLM xác định hàm nào sẽ sử dụng dựa trên đầu vào của người dùng, tạo ra các đầu vào cần thiết cho hàm và trả về kết quả cho người dùng.
- Tuy nhiên, LLM không thể thực thi lời gọi hàm; người dùng hoặc một hệ thống riêng biệt phải thực hiện lời gọi hàm và trả về kết quả cho LLM.
Tác nhân:
- Tác nhân là những phiên bản tinh vi hơn của LLM, có quyền truy cập vào một tập hợp các công cụ, giống như trong gọi hàm.
- Tác nhân cũng có thể thực hiện lập kế hoạch, phân tách nhiệm vụ thành các mục tiêu phụ và thực hiện các hành động bằng cách sử dụng các công cụ có sẵn.
- Tác nhân có quyền truy cập vào cả bộ nhớ ngắn hạn và dài hạn, cho phép họ theo dõi tiến trình của mình và lập kế hoạch cho các bước tiếp theo.
- Tác nhân là rất quan trọng để làm cho LLM thực sự hữu ích trong các ứng dụng thực tế, vì họ có thể tự động thực hiện các nhiệm vụ phức tạp.
Tóm lại, gọi hàm là một tương tác hạn chế hơn, nơi LLM chỉ có thể tạo ra các đầu vào cần thiết cho một hàm, trong khi tác nhân có khả năng lập kế hoạch, thực hiện và điều chỉnh các hành động của họ để đạt được kết quả mong muốn.
Bắt đầu với Tác nhân Qwen: Gọi Hàm và Sử dụng Tác nhân
Bắt đầu với Tác nhân Qwen: Gọi Hàm và Sử dụng Tác nhân
Để bắt đầu với các tác nhân Qwen, chúng ta sẽ sử dụng phiên bản 72 tỷ của Qwen 2 và chạy nó cục bộ bằng cách sử dụng AMA. Bạn cũng có thể sử dụng API bên ngoài của họ, nhưng để sử dụng Qwen Agent, chúng ta có hai tùy chọn:
- Cài đặt gói sử dụng pip như một gói Python độc lập.
- Nhân bản kho lưu trữ và chạy cài đặt cục bộ nếu bạn muốn phiên bản phát triển mới nhất.
Tôi sẽ chạy nó cục bộ bằng cách sử dụng AMA. Đầu tiên, hãy khởi động một máy chủ AMA và sử dụng lệnh olama Run Qwen 272 billion
. Điều này sẽ tải xuống AMA và mô hình, có thể mất một thời gian tùy thuộc vào tốc độ internet của bạn.
Tiếp theo, hãy tạo một môi trường ảo bằng conda và kích hoạt nó:
conda create -n qwen python=3.10
conda activate qwen
Bây giờ, hãy cài đặt gói Qwen Agent bằng cách sử dụng pip:
pip install qwen-agent
Chúng ta sẽ bắt đầu với việc gọi hàm. Mô hình cần phải chọn hàm để sử dụng, xác định các đầu vào và chuyển chúng đến một bộ giải thích Python. Bộ giải thích sẽ thực thi hàm, nhận kết quả và trả về cho LLM.
Dưới đây là một ví dụ về gọi hàm để lấy thời tiết hiện tại:
# Tạo thể hiện LLM
llm = QwenLLM(base_api="http://localhost:8000/v1", model_name="qwen-2-72b", version="v1")
# Tin nhắn của người dùng
user_message = "What's the current weather like in Paris?"
# Định nghĩa hàm
function_call = {
"description": "Get the current weather for a given location",
"function": "get_weather",
"arguments": {
"location": "Paris",
"unit": "celsius"
}
}
# Gọi LLM và thực thi hàm
response = llm.call_with_function(user_message, [function_call])
print(response)
Điều này sẽ tạo ra thông tin thời tiết hiện tại cho Paris và trả về cho LLM.
Bây giờ, hãy xem một ví dụ về việc sử dụng Qwen Agent. Chúng ta sẽ tạo một tác nhân tùy chỉnh có thể tạo hình ảnh và tải chúng xuống một thư mục cục bộ. Tác nhân sẽ sử dụng một công cụ tùy chỉnh để tạo hình ảnh và bộ giải thích mã để thực thi mã cần thiết.
from qwen_agent import Assistant, CodeInterpreter, CustomTool
# Định nghĩa công cụ tạo hình ảnh tùy chỉnh
class MyImageGeneration(CustomTool):
def __init__(self):
self.description = "Generate images based on user input using the Pollinations.AI API."
def run(self, args):
# Tạo hình ảnh bằng cách sử dụng API
image_url = generate_image(args["prompt"])
# Tải hình ảnh xuống một thư mục cục bộ
download_image(image_url, "images")
return f"Image generated and saved to 'images' folder."
# Tạo tác nhân
agent = Assistant(
llm=QwenLLM(base_api="http://localhost:8000/v1", model_name="qwen-2-72b", version="v1"),
tools=[MyImageGeneration(), CodeInterpreter()]
)
# Yêu cầu tác nhân tạo hình ảnh
agent.run("Create an image of a llama wearing sunglasses.")
Tác nhân này sẽ sử dụng công cụ tạo hình ảnh tùy chỉnh để tạo hình ảnh, tải xuống nó vào thư mục "images" và trả về kết quả.
Cuối cùng, hãy xem tác động của việc định lượng đến hiệu suất của các mô hình Qwen. Nhóm Qwen đã cung cấp các đánh giá chi tiết về các chỉ số MML, C-Evolve và I-Evolve cho các mức định lượng khác nhau.
Kết quả cho thấy đối với các mô hình lớn hơn (72 tỷ), sự khác biệt giữa định lượng 16 bit và 8 bit không đáng kể, nhưng định lượng 4 bit có thể có tác động đáng kể hơn đến hiệu suất. Đối với các mô hình nhỏ hơn (0,5 tỷ), các sự khác biệt rõ ràng hơn, với định lượng 4 bit cho thấy giảm 5 điểm trong điểm số trung bình.
Nói chung, khuyến nghị sử dụng ít nhất định lượng 8 bit hoặc 16 bit cho các triển khai sản xuất, vì định lượng 4 bit có thể có tác động đáng kể hơn đến hiệu suất mô hình, đặc biệt là đối với các mô hình nhỏ hơn.
Câu hỏi thường gặp
Câu hỏi thường gặp

