Mô hình và nền tảng AI
AutoGen: Cung cấp năng lượng cho các ứng dụng mô hình ngôn ngữ lớn thế hệ tiếp theo

Mô hình ngôn ngữ lớn (LLM) hiện là một trong những chủ đề được thảo luận nhiều nhất trong lĩnh vực trí tuệ nhân tạo chính thống. Các nhà phát triển trên toàn thế giới đang khám phá các ứng dụng tiềm năng của LLM. Những mô hình này là các thuật toán trí tuệ nhân tạo sử dụng các kỹ thuật học sâu và lượng dữ liệu đào tạo lớn để hiểu, tóm tắt, dự đoán và tạo ra nhiều loại nội dung, bao gồm văn bản, âm thanh, hình ảnh, video và nhiều hơn nữa.
Mô hình ngôn ngữ lớn là các thuật toán trí tuệ nhân tạo phức tạp. Việc phát triển một mô hình như vậy là một nhiệm vụ đầy thách thức, và việc xây dựng một ứng dụng khai thác khả năng của LLM cũng không kém phần khó khăn. Điều này đòi hỏi chuyên môn đáng kể, nỗ lực và tài nguyên để thiết kế, thực hiện và tối ưu hóa một quy trình công việc có thể tận dụng tối đa khả năng của mô hình ngôn ngữ lớn để mang lại kết quả tốt nhất. Việc tự động hóa các quy trình này có giá trị vô cùng, đặc biệt là khi các quy trình công việc dự kiến sẽ trở nên phức tạp hơn trong tương lai gần, với các nhà phát triển tạo ra các ứng dụng dựa trên LLM ngày càng tinh vi. Ngoài ra, không gian thiết kế cần thiết cho các quy trình công việc này vừa phức tạp vừa rộng lớn, làm tăng thêm thách thức khi tạo ra một quy trình công việc tối ưu và mạnh mẽ đáp ứng được kỳ vọng về hiệu suất.
AutoGen là một khuôn khổ được phát triển bởi đội ngũ tại Microsoft (MSFT ) nhằm mục đích đơn giản hóa việc điều phối và tối ưu hóa các quy trình công việc LLM bằng cách giới thiệu tự động hóa vào đường ống quy trình công việc. Khuôn khổ AutoGen cung cấp các tác nhân có thể trò chuyện và tùy chỉnh, tận dụng sức mạnh của các LLM tiên tiến như GPT-3 và GPT-4, đồng thời giải quyết các hạn chế hiện tại của chúng bằng cách tích hợp LLM với các công cụ và đầu vào của con người bằng cách sử dụng các cuộc trò chuyện tự động để khởi xướng các cuộc trò chuyện giữa nhiều tác nhân.
Khi sử dụng khuôn khổ AutoGen, chỉ cần hai bước khi phát triển một hệ thống trò chuyện đa tác nhân phức tạp.
Bước 1: Định nghĩa một tập hợp các tác nhân, mỗi tác nhân có vai trò và khả năng của riêng nó.
Bước 2: Định nghĩa hành vi tương tác giữa các tác nhân, tức là một tác nhân nên biết cách trả lời khi nhận được một thông điệp từ một tác nhân khác.
Cả hai bước trên đều có tính mô-đun và trực quan, giúp các tác nhân này có thể được kết hợp và tái sử dụng. Hình dưới đây minh họa một quy trình công việc mẫu giải quyết các câu hỏi dựa trên mã trong tối ưu hóa chuỗi cung ứng. Như có thể thấy, người viết đầu tiên viết mã và diễn giải, Safeguard đảm bảo sự riêng tư và an toàn của mã, và mã được thực thi bởi Commander sau khi nhận được sự chấp thuận cần thiết. Nếu hệ thống gặp vấn đề trong quá trình chạy, quá trình sẽ được lặp lại cho đến khi được giải quyết hoàn toàn. Việc triển khai khuôn khổ dưới đây dẫn đến giảm số lượng tương tác thủ công từ 3 đến 10 lần khi được triển khai trong các ứng dụng như tối ưu hóa chuỗi cung ứng. Hơn nữa, việc sử dụng AutoGen cũng giảm số lượng nỗ lực mã hóa lên đến bốn lần.

AutoGen có thể là một yếu tố thay đổi cuộc chơi vì nó nhằm mục đích biến đổi quá trình phát triển các ứng dụng phức tạp tận dụng sức mạnh của LLM. Việc sử dụng AutoGen không chỉ có thể giảm số lượng tương tác thủ công cần thiết để đạt được kết quả mong muốn, mà còn có thể giảm số lượng nỗ lực mã hóa cần thiết để tạo ra các ứng dụng phức tạp như vậy. Việc sử dụng AutoGen để tạo ra các ứng dụng dựa trên LLM có thể không chỉ tăng tốc quá trình đáng kể, mà còn giúp giảm thời gian, nỗ lực và tài nguyên cần thiết để phát triển các ứng dụng phức tạp này.
Trong bài viết này, chúng tôi sẽ đi sâu vào khuôn khổ AutoGen và khám phá các thành phần và kiến trúc cơ bản của khuôn khổ AutoGen, cùng với các ứng dụng tiềm năng của nó. Vậy hãy bắt đầu.
Giới thiệu về AutoGen: Cung cấp năng lượng cho các ứng dụng mô hình ngôn ngữ lớn thế hệ tiếp theo
AutoGen là một khuôn khổ mã nguồn mở được phát triển bởi đội ngũ tại Microsoft, cung cấp cho các nhà phát triển khả năng tạo ra các ứng dụng tận dụng sức mạnh của LLM bằng cách sử dụng nhiều tác nhân có thể trò chuyện với nhau để thực hiện thành công các nhiệm vụ mong muốn. Các tác nhân trong AutoGen có thể trò chuyện, tùy chỉnh và có thể hoạt động trong các chế độ khác nhau, sử dụng sự kết hợp của công cụ, đầu vào của con người và LLM. Các nhà phát triển cũng có thể sử dụng khuôn khổ AutoGen để định nghĩa hành vi tương tác của các tác nhân và sử dụng cả mã máy tính và ngôn ngữ tự nhiên để lập trình các mẫu trò chuyện linh hoạt được triển khai trong các ứng dụng khác nhau. Là một khuôn khổ mã nguồn mở, AutoGen có thể được coi là một khuôn khổ chung mà các nhà phát triển có thể sử dụng để xây dựng các ứng dụng và khuôn khổ có độ phức tạp khác nhau, tận dụng sức mạnh của LLM.

Mô hình ngôn ngữ lớn đang đóng vai trò quan trọng trong việc phát triển các tác nhân tận dụng khuôn khổ LLM để thích nghi với các quan sát mới, sử dụng công cụ và lý luận trong nhiều ứng dụng thực tế. Tuy nhiên, việc phát triển các ứng dụng có thể tận dụng tối đa khả năng của LLM là một việc phức tạp, và xét đến nhu cầu và ứng dụng ngày càng tăng của LLM cùng với sự tăng độ phức tạp của nhiệm vụ, việc tăng cường sức mạnh của các tác nhân này bằng cách sử dụng nhiều tác nhân hoạt động đồng bộ với nhau là rất quan trọng.Tuy nhiên, làm thế nào để một phương pháp đa tác nhân có thể được sử dụng để phát triển các ứng dụng dựa trên LLM có thể được áp dụng cho nhiều lĩnh vực với độ phức tạp khác nhau? Khuôn khổ AutoGen cố gắng trả lời câu hỏi trên bằng cách sử dụng các cuộc trò chuyện đa tác nhân.
AutoGen: Thành phần và khuôn khổ
Để giảm thiểu nỗ lực mà các nhà phát triển cần phải bỏ ra để tạo ra các ứng dụng phức tạp sử dụng khả năng của LLM trên nhiều lĩnh vực, nguyên tắc cơ bản của AutoGen là hợp nhất và tối ưu hóa các quy trình công việc đa tác nhân bằng cách sử dụng các cuộc trò chuyện đa tác nhân, đồng thời tối đa hóa khả năng tái sử dụng của các tác nhân được triển khai. AutoGen sử dụng nhiều tác nhân có thể trò chuyện với nhau để thực hiện thành công các nhiệm vụ mong muốn, và khuôn khổ được xây dựng dựa trên hai khái niệm cơ bản: Tác nhân có thể trò chuyện và Lập trình trò chuyện.
Tác nhân có thể trò chuyện
Một tác nhân có thể trò chuyện trong AutoGen là một thực thể có vai trò định trước có thể gửi và nhận thông tin đến và từ các tác nhân có thể trò chuyện khác. Một tác nhân có thể trò chuyện duy trì ngữ cảnh nội bộ dựa trên thông tin nhận được hoặc gửi đi, và các nhà phát triển có thể cấu hình các tác nhân này để có một tập hợp khả năng duy nhất như được kích hoạt bởi các công cụ LLM hoặc nhận đầu vào từ con người.
Khả năng của tác nhân được hỗ trợ bởi con người, công cụ và LLM
Khả năng của một tác nhân liên quan trực tiếp đến cách nó xử lý và phản hồi thông điệp, và đó là lý do tại sao các tác nhân trong khuôn khổ AutoGen cho phép các nhà phát triển linh hoạt để trao các khả năng khác nhau cho các tác nhân của họ. AutoGen hỗ trợ nhiều khả năng phổ biến có thể kết hợp cho các tác nhân, bao gồm
- LLM: Các tác nhân được hỗ trợ bởi LLM khai thác khả năng của các khuôn khổ LLM tiên tiến như suy luận trạng thái ẩn, vai trò, cung cấp phản hồi và thậm chí mã hóa. Các nhà phát triển có thể sử dụng các kỹ thuật kích thích mới để kết hợp các khả năng này nhằm tăng tính tự chủ hoặc kỹ năng của một tác nhân.
- Con người: Một số ứng dụng mong muốn hoặc yêu cầu một mức độ tham gia của con người, và khuôn khổ AutoGen cho phép các ứng dụng dựa trên LLM tạo điều kiện cho sự tham gia của con người trong cuộc trò chuyện của tác nhân bằng cách sử dụng các tác nhân được hỗ trợ bởi con người có thể yêu cầu đầu vào từ con người trong các vòng trò chuyện nhất định dựa trên cấu hình của tác nhân.
- Công cụ: Các tác nhân được hỗ trợ bởi công cụ thường có khả năng sử dụng mã thực thi hoặc thực thi hàm để thực thi các công cụ.
Hợp tác và tùy chỉnh tác nhân
Dựa trên nhu cầu và yêu cầu cụ thể của một ứng dụng, các nhà phát triển có thể cấu hình các tác nhân riêng lẻ để có sự kết hợp của các loại hậu trường thiết yếu để hiển thị hành vi phức tạp trong các cuộc trò chuyện đa tác nhân. Khuôn khổ AutoGen cho phép các nhà phát triển dễ dàng tạo ra các tác nhân có vai trò và khả năng chuyên biệt bằng cách mở rộng hoặc tái sử dụng các tác nhân tích hợp sẵn. Hình dưới đây minh họa cấu trúc cơ bản của các tác nhân tích hợp sẵn trong khuôn khổ AutoGen. Lớp ConversableAgent có thể sử dụng con người, công cụ và LLM theo mặc định vì nó là mức trừu tượng tác nhân cao nhất. UserProxyAgent và AssistantAgent là các lớp được cấu hình trước của ConversableAgent, và mỗi lớp trong số chúng đại diện cho một chế độ sử dụng phổ biến, tức là mỗi tác nhân trong số này hoạt động như một trợ lý AI (khi được hỗ trợ bởi LLM) và yêu cầu đầu vào từ con người hoặc thực thi các cuộc gọi hàm hoặc mã (khi được hỗ trợ bởi công cụ và / hoặc con người) bằng cách hoạt động như một đại diện của con người.

Hình dưới đây minh họa cách các nhà phát triển có thể sử dụng khuôn khổ AutoGen để phát triển một hệ thống hai tác nhân có một hàm trả lời tùy chỉnh, cùng với một minh họa về cuộc trò chuyện tự động của tác nhân được tạo ra khi sử dụng hệ thống hai tác nhân này trong quá trình thực thi của chương trình.

Bằng cách cho phép sử dụng các tác nhân tùy chỉnh có thể trò chuyện với nhau, các tác nhân có thể trò chuyện này đóng vai trò là một khối xây dựng cơ bản trong khuôn khổ AutoGen. Tuy nhiên, các nhà phát triển cần phải xác định và định hình các cuộc trò chuyện đa tác nhân này để phát triển các ứng dụng mà các tác nhân này có thể đạt được tiến bộ đáng kể trong các nhiệm vụ được chỉ định.
Lập trình trò chuyện
Để giải quyết vấn đề trên, khuôn khổ AutoGen sử dụng lập trình trò chuyện, một mô hình tính toán được xây dựng dựa trên hai khái niệm cơ bản:tính toán, các hành động được thực hiện bởi các tác nhân trong một cuộc trò chuyện đa tác nhân để tính toán phản hồi của chúng và kiểm soát luồng, các điều kiện hoặc trình tự mà các tính toán này diễn ra. Khả năng lập trình các yếu tố này cho phép các nhà phát triển triển khai nhiều mẫu trò chuyện đa tác nhân linh hoạt. Hơn nữa, trong khuôn khổ AutoGen, các tính toán là tập trung vào cuộc trò chuyện. Các hành động được thực hiện bởi một tác nhân liên quan đến các cuộc trò chuyện mà tác nhân đó tham gia, và các hành động được thực hiện bởi các tác nhân sau đó dẫn đến việc gửi thông điệp cho các cuộc trò chuyện tiếp theo cho đến khi một điều kiện kết thúc được thỏa mãn. Hơn nữa, kiểm soát luồng trong khuôn khổ AutoGen được thúc đẩy bởi các cuộc trò chuyện vì nó là quyết định của các tác nhân tham gia về việc các tác nhân nào sẽ gửi thông điệp đến và từ quá trình tính toán.

Hình trên minh họa một minh họa đơn giản về cách các tác nhân riêng lẻ thực hiện các hoạt động cụ thể của vai trò, và các tính toán tập trung vào cuộc trò chuyện để tạo ra các phản hồi mong muốn như thực thi mã và gọi suy luận LLM. Nhiệm vụ tiến triển với sự giúp đỡ của các cuộc trò chuyện được hiển thị trong hộp thoại.
Để hỗ trợ lập trình trò chuyện, khuôn khổ AutoGen có các mẫu thiết kế sau.
- Cơ chế trả lời tự động và giao diện thống nhất cho các cuộc trò chuyện tự động của tác nhân
Khuôn khổ AutoGen có một giao diện thống nhất để thực hiện tính toán tương ứng là tập trung vào cuộc trò chuyện, bao gồm một “hàm nhận hoặc gửi” để nhận hoặc gửi thông điệp cùng với một “hàm tạo phản hồi” tạo ra phản hồi dựa trên thông điệp nhận được và thực hiện hành động cần thiết. Khuôn khổ AutoGen cũng giới thiệu và triển khai cơ chế trả lời tự động của tác nhân mặc định để hiện thực hóa kiểm soát được thúc đẩy bởi cuộc trò chuyện.
- Kiểm soát bằng cách kết hợp ngôn ngữ tự nhiên và lập trình
Khuôn khổ AutoGen hỗ trợ việc sử dụng ngôn ngữ tự nhiên và lập trình trong các mẫu quản lý luồng kiểm soát khác nhau, bao gồm: Kiểm soát ngôn ngữ tự nhiên bằng LLM, kiểm soát ngôn ngữ lập trình, và chuyển đổi kiểm soát giữa ngôn ngữ lập trình và ngôn ngữ tự nhiên.
Tiếp theo, ngoài các cuộc trò chuyện tĩnh thường đi kèm với một luồng đã định trước, khuôn khổ AutoGen cũng hỗ trợ các luồng trò chuyện động sử dụng nhiều tác nhân, và khuôn khổ cung cấp cho các nhà phát triển hai tùy chọn để đạt được điều này
- Bằng cách sử dụng các cuộc gọi hàm.
- Bằng cách sử dụng một hàm tạo phản hồi tùy chỉnh.
Ứng dụng của AutoGen
Để minh họa tiềm năng của khuôn khổ AutoGen trong việc phát triển các ứng dụng đa tác nhân phức tạp, dưới đây là sáu ứng dụng tiềm năng của AutoGen được chọn dựa trên sự liên quan của chúng trong thế giới thực, khả năng giải quyết vấn đề được tăng cường bởi khuôn khổ AutoGen và tiềm năng đổi mới của chúng.
Sáu ứng dụng của khuôn khổ AutoGen là
- Giải quyết vấn đề toán học.
- Trò chuyện tăng cường bằng cách thu thập.
- Trò chuyện ALF.
- Lập trình đa tác nhân.
- Trò chuyện nhóm động.
- Cờ vua trò chuyện.

Ứng dụng 1: Giải quyết vấn đề toán học
Toán học là một trong những lĩnh vực nền tảng để tận dụng các mô hình ngôn ngữ lớn giúp giải quyết các vấn đề toán học phức tạp, mở ra một thế giới ứng dụng mới, bao gồm hỗ trợ nghiên cứu trí tuệ nhân tạo và hướng dẫn cá nhân hóa bằng trí tuệ nhân tạo.

Hình trên minh họa ứng dụng của khuôn khổ AutoGen để đạt được hiệu suất cạnh tranh trong việc giải quyết các vấn đề toán học.
Ứng dụng 2: Trả lời câu hỏi và tạo mã tăng cường bằng cách thu thập
Trong những tháng gần đây, tạo mã tăng cường bằng cách thu thập đã nổi lên như một phương pháp hiệu quả và thực tế để vượt qua các hạn chế của LLM trong việc kết hợp các tài liệu bên ngoài. Hình dưới đây minh họa ứng dụng của khuôn khổ AutoGen cho việc tăng cường thu thập hiệu quả và tăng cường hiệu suất trên các nhiệm vụ hỏi và trả lời.

Ứng dụng 3: Ra quyết định trong môi trường thế giới văn bản
Khuôn khổ AutoGen có thể được sử dụng để tạo ra các ứng dụng hoạt động với việc ra quyết định trực tuyến hoặc tương tác. Hình dưới đây minh họa cách các nhà phát triển có thể sử dụng khuôn khổ AutoGen để thiết kế một hệ thống trò chuyện ba tác nhân với một tác nhân nền tảng để tăng cường hiệu suất đáng kể.

Ứng dụng 4: Lập trình đa tác nhân
Các nhà phát triển làm việc trên khuôn khổ AutoGen có thể sử dụng khuôn khổ OptiGuide để xây dựng một hệ thống lập trình đa tác nhân có khả năng viết mã để thực hiện các giải pháp được tối ưu hóa và trả lời các câu hỏi của người dùng. Hình dưới đây minh họa rằng việc sử dụng khuôn khổ AutoGen để tạo ra một thiết kế đa tác nhân giúp tăng cường hiệu suất tổng thể đáng kể, đặc biệt là trong việc thực hiện các nhiệm vụ lập trình đòi hỏi sự bảo vệ.

Ứng dụng 5: Trò chuyện nhóm động
Khuôn khổ AutoGen cung cấp hỗ trợ cho một mẫu giao tiếp xoay quanh các cuộc trò chuyện nhóm động, trong đó các tác nhân tham gia chia sẻ ngữ cảnh và thay vì tuân theo một tập hợp các lệnh đã định trước, chúng trò chuyện với nhau một cách động. Các cuộc trò chuyện nhóm động này dựa trên các cuộc trò chuyện đang diễn ra để hướng dẫn luồng tương tác trong các tác nhân.

Hình trên minh họa cách khuôn khổ AutoGen hỗ trợ các cuộc trò chuyện nhóm động giữa các tác nhân bằng cách sử dụng Quản lý trò chuyện nhóm, một tác nhân đặc biệt.
Ứng dụng 6: Cờ vua trò chuyện
Các nhà phát triển của khuôn khổ AutoGen đã sử dụng nó để phát triển một ứng dụng Cờ vua trò chuyện, một trò chơi can thiệp tự nhiên có các tác nhân tích hợp sẵn cho người chơi có thể là LLM hoặc con người, và cũng có một tác nhân của bên thứ ba cung cấp thông tin liên quan và xác thực các động thái trên bàn cờ dựa trên một tập hợp các quy tắc tiêu chuẩn đã định trước. Hình dưới đây minh họa Cờ vua trò chuyện, một trò chơi can thiệp tự nhiên được xây dựng bằng khuôn khổ AutoGen, cho phép người chơi sử dụng các trò đùa, vai trò hoặc thậm chí các tham chiếu meme để thể hiện các động thái của họ một cách sáng tạo, làm cho trò chơi cờ vua trở nên thú vị không chỉ cho người chơi, mà còn cho khán giả và người quan sát.

Kết luận
Trong bài viết này, chúng tôi đã thảo luận về AutoGen, một khuôn khổ mã nguồn mở sử dụng các khái niệm lập trình trò chuyện và tác nhân có thể trò chuyện nhằm mục đích đơn giản hóa việc điều phối và tối ưu hóa các quy trình công việc LLM bằng cách giới thiệu tự động hóa vào đường ống quy trình công việc. Khuôn khổ AutoGen cung cấp các tác nhân có thể trò chuyện và tùy chỉnh, tận dụng sức mạnh của các LLM tiên tiến như GPT-3 và GPT-4, đồng thời giải quyết các hạn chế hiện tại của chúng bằng cách tích hợp LLM với các công cụ và đầu vào của con người bằng cách sử dụng các cuộc trò chuyện tự động để khởi xướng các cuộc trò chuyện giữa nhiều tác nhân.
Mặc dù khuôn khổ AutoGen vẫn còn trong giai đoạn thử nghiệm ban đầu, nhưng nó vẫn mở ra con đường cho các khám phá và cơ hội nghiên cứu trong tương lai, và AutoGen có thể là công cụ giúp cải thiện tốc độ, chức năng và sự dễ dàng phát triển của các ứng dụng tận dụng khả năng của LLM.












