Tác giả Kunal Kejriwa
Ngày 18 tháng 10 năm 2023
Các Mô Hình Ngôn Ngữ Lớn (LLMs) hiện nay 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流. Các nhà phát triển trên khắp thế giới đang khám phá tiềm năng ứng dụng của LLMs. Những mô hình này là các thuật toán Trí tuệ Nhân tạo sử dụng kỹ thuật học sâu và lượng lớn dữ liệu huấn luyện để hiểu, tóm tắt, dự đoán và tạo ra một loạt nội dung đa dạng, bao gồm văn bản, âm thanh, hình ảnh, video và nhiều hơn nữa.
Các 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. Phát triển một mô hình như vậy là một nhiệm vụ tốn sức khá kỹ lưỡng, và xây dựng một ứng dụng sử dụng khả năng của một LLM cũng không dễ dàng. Điều này đòi hỏi kiến thức chuyên môn, công sức và tài nguyên đáng kể để thiết kế, triển khai và cuối cùng tối ưu hóa một luồng công việc có khả năng khai thác hết tiềm năng của một mô hình ngôn ngữ lớn để đạt được kết quả tốt nhất. Vì cần phải sử dụng thời gian và tài nguyên một cách rộng rãi để xây dựng luồng công việc cho các ứng dụng sử dụng sức mạnh của LLMs, tự động hóa những quy trình này mang giá trị lớn. Điều này đặc biệt đúng khi dự đoán rằng các luồng công việc dự kiến sẽ trở nên phức tạp hơn trong tương lai gần, khi các nhà phát triển đang tạo ra các ứng dụng dựa trên LLMs ngày càng phức tạp hơn. Hơn nữa, không gian thiết kế cần thiết cho những luồng công việc này vừa phức tạp vừa rộng lớn, tạo thêm thách thức trong việc xây dựng một luồng công việc tối ưu và mạnh mẽ đáp ứng các mong đợi về hiệu suất.
AutoGen là một khung công cụ được phát triển bởi đội ngũ tại Microsoft, với mục tiêu đơn giản hóa việc điều phối và tối ưu hóa các luồng công việc của Mô hình Ngôn Ngữ Lớn (LLM) bằng cách giới thiệu tự động hóa vào luồng công việc. Khung công cụ AutoGen cung cấp các đặc trưng tương tác và có thể tùy chỉnh sử 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 giới hạn hiện tại bằng cách tích hợp LLMs với các công cụ và đầu vào của con người thông qua việc sử dụng các cuộc trò chuyện tự động để khởi đầu cuộc trò chuyện giữa nhiều đặc trưng.
Khi sử dụng khung công cụ AutoGen, chỉ cần hai bước khi phát triển một hệ thống cuộc trò chuyện đa đặc trưng phức tạp.
Bước 1: Xác định một tập hợp các đặc trưng, mỗi đặc trưng có vai trò và khả năng riêng.
Bước 2: Xác định cách ứng xử tương tác giữa các đặc trưng, tức là một đặc trưng cần biết cách phản hồi khi nhận được một tin nhắn từ một đặc trưng khác.
Cả hai bước trên đều là các khối xây dựng và dễ hiểu, giúp các đặc trưng này có thể kết hợp và tái sử dụng. Hình dưới đây minh họa một luồng công việc mẫu giải quyết 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à giải thích, Safeguard đảm bảo sự riêng tư và an toàn của mã, sau đó mã được thực thi bởi Commander sau khi đã nhận được sự phê duyệt cần thiết. Nếu hệ thống gặp bất kỳ vấn đề nào trong quá trình chạy, quá trình được lặp lại cho đến khi được giải quyết hoàn toàn. Triển khai khung công cụ dưới đây giúp giảm bớt lượng tương tác thủ công từ 3 lần đến 10 lần khi 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 bớt công sức lập trình lên đến bốn lần.
AutoGen có thể là một bước đổi game, vì nó nhằm biến đổi quá trình phát triển các ứng dụng phức tạp sử dụng sức mạnh của các LLMs. Việc sử dụng AutoGen không chỉ giúp giảm lượng tương tác thủ công cần thiết để đạt được kết quả mong muốn, mà còn giảm công sức lập trình 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 các ứng dụng dựa trên LLMs không chỉ giúp tăng tốc quá trình một cách đáng kể, mà còn giúp giảm bớt thời gian, công sứ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 ta sẽ đi sâu hơn vào khung công cụ AutoGen, và chúng ta sẽ khám phá các thành phần cơ bản và kiến trúc của khung công cụ AutoGen, cùng với các ứng dụng tiềm năng. Vậy thì hãy bắt đầu.
Giới thiệu về AutoGen: Động cơ mới phát triển Ứng Dụng Mô Hình Ngôn Ngữ tương lai
AutoGen là một khung công cụ mã nguồn mở được phát triển bởi đội ngũ tại Microsoft, giúp các nhà phát triển có khả năng tạo ra các ứng dụng sử dụng sức mạnh của các LLMs thông qua việc sử dụng nhiều đặc trưng có thể tham gia vào cuộc trò chuyện với nhau để thực hiện thành công các nhiệm vụ mong muốn. Các đặc trưng trong AutoGen có thể trò chuyện, có thể tùy chỉnh và có thể hoạt động ở 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à các LLMs. Nhà phát triển cũng có thể sử dụng khung công cụ AutoGen để xác định cách ứng xử tương tác của các đặc trưng, và họ có thể 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 triển khai trong các ứng dụng khác nhau. Là một khung công cụ mã nguồn mở, AutoGen có thể xem xét là một khung công cụ chung mà các nhà phát triển có thể sử dụng để xây dựng các ứng dụng và khung công cụ có độ phức tạp khác nhau, sử dụng sức mạnh của các LLMs.
Các mô hình ngôn ngữ lớn đóng một vai trò quan trọng trong việc phát triển các đặc trưng sử dụng các khung công cụ LLM để thích nghi với các quan sát mới, việc 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 này có khả năng khai thác toàn bộ tiềm năng của LLM là một công việc phức tạp, và với sự gia tăng không ngừng về cầu đáp ứng và ứng dụng của LLM cùng với sự gia tăng về phức tạp của nhiệm vụ, việc tăng cường sức mạnh của các đặc trưng này bằng cách sử dụng nhiều đặc trưng làm việc cùng nhau là rất quan trọng. Nhưng làm thế nào để sử dụng phương pháp đa đặc trưng để phát triển các ứng dụng dựa trên LLM có thể được áp dụng trong nhiều lĩnh vực với độ phức tạp khác nhau? Khung công cụ AutoGen cố gắng trả lời câu hỏi trên bằng cách sử dụng cuộc trò chuyện đa đặc trưng.
AutoGen: Các Thành Phần và Khung Công Cụ
Trong một nỗ lực giảm bớt công sức mà các nhà phát triển cần phải đổ vào việc tạo ra các ứng dụng phức tạp sử dụng khả năng của LLMs trên nhiều lĩnh vực, nguyên tắc cơ bản của AutoGen là tập trung và tối ưu hóa luồng công việc đa đặc trưng bằng cách sử dụng cuộc trò chuyện đa đặc trưng, từ đó cũng tối đa hóa khả năng tái sử dụng của các đặc trưng đã triển khai. AutoGen sử dụng nhiều đặc trưng có khả năng trò chuyện với nhau để thực hiện thành công các nhiệm vụ mong muốn, và khung công cụ này được xây dựng dựa trên hai khái niệm cơ bản: Đặc Trưng Có Khả Năng Trò Chuyện (Conversable Agents) và Lập Trình Có Khả Năng Trò Chuyện (Conversable Programming).
Tác tử trò chuyện (Conversable Agents)
Một đặc trưng có khả năng trò chuyện trong AutoGen là một thực thể có vai trò được xác định trước có khả năng truyền thông để gửi và nhận thông tin từ và đến các đặc trưng có khả năng trò chuyện khác. Một đặc trưng có khả năng trò chuyện duy trì ngữ cảnh nội tại dựa trên các tin nhắn đã nhận hoặc đã gửi, và nhà phát triển có thể cấu hình các đặc trưng này để có một tập hợp đặc trưng độc đáo như có khả năng sử dụng các công cụ LLM hoặc tiếp nhận đầu vào từ con người.
Khả năng của Tác tử trên các yếu tố Con Người, Công Cụ và LLM
Khả năng của một đặc trưng liên quan trực tiếp đến cách nó xử lý và phản hồi tin nhắn, đó là lý do chính tại sao trong khung công cụ AutoGen, các đặc trưng cho phép nhà phát triển linh hoạt trao khả năng khác nhau cho đặc trưng của họ. AutoGen hỗ trợ nhiều khả năng kết hợp thông thường cho các đặc trưng bao gồm:
- LLMs: Đặc trưng được hỗ trợ bởi LLM tận dụng các khả năng của các khung công cụ LLM tiên tiến như can thiệp vào trạng thái ẩn, đóng vai trò, đưa ra phản hồi, và thậm chí lập trình. Nhà phát triển có thể sử dụng các kỹ thuật đặt câu hỏi mới để kết hợp các khả năng này trong một nỗ lực tăng tính tự động hoặc kỹ năng của một đặc trưng.
- Con Người: Một số ứng dụng yêu cầu hoặc cần sự tham gia của con người đến một mức độ nào đó, và khung công cụ AutoGen cho phép ứng dụng dựa trên LLMs tạo điều kiện cho sự tham gia của con người trong cuộc trò chuyện của đặc trưng bằng cách sử dụng các đặc trưng được hỗ trợ bởi con người có thể yêu cầu đầu vào từ con người trong một số vòng trò chuyện dựa trên cấu hình của đặc trưng.
- Công Cụ: Đặc trưng được hỗ trợ bởi công cụ thường có khả năng sử dụng mã hoặc thực thi chức năng để thực hiện các công cụ.
Tác tử Tùy biến và Phối hợp
Dựa trên nhu cầu và yêu cầu cụ thể của một ứng dụng, nhà phát triển có thể cấu hình các đặc trưng riêng lẻ để có một kết hợp của các loại backend quan trọng để hiển thị hành vi phức tạp trong các cuộc trò chuyện đa đặc trưng. Khung công cụ AutoGen cho phép nhà phát triển dễ dàng tạo ra các đặc trưng 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 đặc trưng 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 đặc trưng tích hợp trong khung công cụ AutoGen. Lớp ConversableAgent có thể sử dụng con người, công cụ và LLMs theo mặc định vì đây là trình trừu tượng của đặc trưng ở mức cao nhất. UserProxyAgent và AssistantAgent là các lớp được cấu hình sẵn của ConversableAgent, và mỗi trong số họ đại diện cho một chế độ sử dụng thông thường, tức là mỗi trong số hai đặc trưng này hoạt động như một trợ lý trí tuệ (khi được hỗ trợ bởi LLMs), và yêu cầu đầu vào từ con người hoặc thực thi 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 làm đại diện cho 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 khung công cụ AutoGen để phát triển một hệ thống hai đặc trưng có chức năng trả lời tùy chỉnh, cùng với minh họa của cuộc trò chuyện tự động kết quả sử dụng hệ thống hai đặc trưng trong quá trình thực thi chương trình.
Bằng việc cho phép sử dụng các đặc trưng tùy chỉnh có thể trò chuyện với nhau, các đặc trưng có khả năng trò chuyện này phục vụ như một khối cơ bản trong khung công cụ AutoGen. Tuy nhiên, nhà phát triển cần phải chỉ định và định hình các cuộc trò chuyện đa đặc trưng này để phát triển các ứng dụng mà trong đó các đặc trưng này có khả năng tiến triển đáng kể trong các nhiệm vụ được chỉ định.
Lập Trình Qua Đối thoại
Để giải quyết vấn đề được nêu trên, khung công cụ AutoGen sử dụng lập trình cuộc trò chuyện, một mô hình tính toán dựa trên hai khái niệm cơ bản: tính toán, các hành động mà các đặc trưng thực hiện trong cuộc trò chuyện đa đặc trưng để tính toán phản hồi và luồng điều khiển, các điều kiện hoặc trình tự dưới đó mà các tính toán này diễn ra. Khả năng lập trình này cho phép nhà phát triển triển khai nhiều mẫu cuộc trò chuyện đa đặc trưng linh hoạt. Hơn nữa, trong khung công cụ AutoGen, các tính toán tập trung vào cuộc trò chuyện. Các hành động mà một đặc trưng thực hiện liên quan đến cuộc trò chuyện mà đặc trưng đó tham gia, và các hành động của các đặc trưng sau đó dẫn đến việc truyền các tin nhắn cho các cuộc trò chuyện kế tiếp cho đến khi điều kiện kết thúc được đáp ứng. Hơn nữa, luồng điều khiển trong khung công cụ AutoGen được thúc đẩy bởi cuộc trò chuyện vì đây là quyết định của các đặc trưng tham gia về việc đặc trưng nào sẽ gửi tin nhắn đến và từ quy trình tính toán.
Hình ảnh trên đây minh họa một ví dụ đơn giản về cách các đặc trưng cá nhân thực hiện các hoạt động cụ thể cho vai trò của họ, 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ư việc thực thi mã và cuộc gọi can thiệp của LLM. Nhiệm vụ tiến triển với sự giúp đỡ của cuộc trò chuyện được hiển thị trong hộp thoại.
Để hỗ trợ lập trình cuộc trò chuyện, khung công cụ AutoGen có các mẫu thiết kế sau:
- Cơ Chế Tự Động Trả Lời và Giao Diện Thống Nhất Cho Cuộc Trò Chuyện Tự Động Của Đặc Trưng
Khung công cụ AutoGen có một giao diện thống nhất để thực hiện tính toán tương ứng có bản chất tập trung vào cuộc trò chuyện, bao gồm một “hàm nhận hoặc gửi” để cả nhận và gửi tin nhắn cùng với một “hàm tạo trả lời” để tạo ra một phản hồi dựa trên tin nhắn nhận được và thực hiện các hành động cần thiết. Khung công cụ AutoGen cũng giới thiệu và triển khai một cơ chế đặc trưng tự động trả lời theo mặc định để thực hiện kiểm soát dựa trên cuộc trò chuyện.
- Kiểm Soát Bằng Sự Kết Hợp Của Ngôn Ngữ Tự Nhiên và Lập Trình
Khung công cụ AutoGen giúp 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 điều khiển khác nhau bao gồm: Kiểm soát bằng ngôn ngữ tự nhiên sử dụng LLMs, Kiểm soát bằng ngôn ngữ lập trình và Chuyển đổi kiểm soát giữa lập trình và ngôn ngữ tự nhiên.
Ngoài các cuộc trò chuyện tĩnh thường đi kèm với một luồng đã được xác định trước, khung công cụ AutoGen cũng hỗ trợ luồng cuộc trò chuyện động bằng cách sử dụng nhiều đặc trưng, và khung công cụ cung cấp cho nhà phát triển hai tùy chọn để đạt được điều này:
- Bằng cách sử dụng cuộc gọi hàm.
- Bằng cách sử dụng một hàm tạo trả lời tùy chỉnh.
Các ứng dụng cơ bản của Autogen
Để minh họa tiềm năng của khung công cụ AutoGen trong việc phát triển các ứng dụng đa đặc trưng phức tạp, dưới đây là sáu ứng dụng tiềm năng của AutoGen được lựa 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 khung công cụ AutoGen và tiềm năng sáng tạo của chúng.
Sáu ứng dụng cơ bản của khung công cụ AutoGen có tiềm năng giải quyết hiện nay:
- Giải quyết vấn đề toán học.
- Cuộc trò chuyện được bổ sung bởi truy xuất thông tin.
- Cuộc trò chuyện về cuốn ALF (Anh hùng đỏ).
- Lập trình đa đặc trưng.
- Cuộc trò chuyện nhóm động.
- Cờ vua trong cuộc 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 cơ bản cho việc sử dụng các mô hình LLM để hỗ trợ giải quyết các vấn đề toán học phức tạp, mở ra một thế giới mới về các ứng dụng tiềm năng bao gồm hỗ trợ nghiên cứu trí tuệ nhân tạo và việc hướng dẫn trí tuệ nhân tạo cá nhân.
Hình ảnh đính kèm ở trên minh họa việc sử dụng khung công cụ 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ã được Bổ Sung bằng Truy Xuất
Trong vài tháng gần đây, việc tạo mã được bổ sung bằng truy xuất đã trỗi dậy như một phương pháp hiệu quả và thực tế để vượt qua nhược điểm của LLMs trong việc tích hợp tài liệu bên ngoài. Hình ảnh dưới đây minh họa việc sử dụng khung công cụ AutoGen để tạo mã được bổ sung bằng truy xuất hiệu quả và nâng cao hiệu suất trên các nhiệm vụ trả lời câu hỏi.
Ứng Dụng 3: Ra Quyết Định trong Môi Trường Văn Bản
Khung công cụ AutoGen có thể được sử dụng để tạo ra các ứng dụng hoạt động với quá trình ra quyết định trực tuyến hoặc tương tác. Hình ảnh dưới đây minh họa cách các nhà phát triển có thể sử dụng khung công cụ AutoGen để thiết kế một hệ thống cuộc trò chuyện ba đặc trưng với một đặc trưng cơ sở để nâng cao hiệu suất đáng kể.
Ứng Dụng 4: Lập Trình Đa Đặc Trưng
Các nhà phát triển làm việc trên khung công cụ AutoGen có thể sử dụng khung công cụ OptiGuide để xây dựng một hệ thống lập trình đa đặc trưng có khả năng viết mã để triển khai các giải pháp tối ưu hóa và trả lời câu hỏi của người dùng. Hình ảnh dưới đây minh họa rằng việc sử dụng khung công cụ AutoGen để tạo ra một thiết kế đa đặc trưng giúp nâng cao hiệu suất tổng thể đáng kể đặc biệt trong việc thực hiện các nhiệm vụ lập trình yêu cầu một hệ thống bảo vệ.
Ứng Dụng 5: Cuộc Trò Chuyện Nhóm Động
Khung công cụ AutoGen hỗ trợ một mô hình trò chuyện xoay quanh các cuộc trò chuyện nhóm động trong đó các đặc trưng tham gia nhiều chia sẻ ngữ cảnh, và thay vì tuân theo một loạt các lệnh được xác định trước, họ trò chuyện với nhau một cách động. Những cuộc trò chuyện nhóm động này dựa vào các cuộc trò chuyện đang diễn ra để hướng dẫn quá trình tương tác giữa các đặc trưng.
Hình ảnh ở trên minh họa cách khung công cụ AutoGen hỗ trợ các cuộc trò chuyện nhóm động giữa các đặc trưng bằng cách sử dụng “GroupChatManager”, một đặc trưng đặc biệt.
Ứng Dụng 6: Cờ Vua Trong Cuộc Trò Chuyện
Các nhà phát triển của khung công cụ AutoGen đã sử dụng nó để phát triển một ứng dụng Cờ Vua Trong Cuộc Trò Chuyện, đó là một trò chơi can thiệp tự nhiên có tích hợp sẵn đặc trưng cho người chơi có thể là LLM hoặc con người, và còn có một đặc trưng bên thứ ba cung cấp thông tin liên quan và xác minh các nước đi trên bàn cờ dựa trên một bộ quy tắc tiêu chuẩn đã xác định trước. Hình ảnh đính kèm dưới đây minh họa Cờ Vua Trong Cuộc Trò Chuyện, một trò chơi can thiệp tự nhiên được xây dựng bằng khung công cụ AutoGen cho phép người chơi sử dụng những trò đùa, giả định nhân vật hoặc thậm chí tham khảo meme để thể hiện nước đi của họ một cách sáng tạo, làm cho trò chơi cờ vua thú vị hơn không chỉ đối với người chơi mà còn đối với khán giả và người theo dõi.
Kết Luận
Trong bài viết này, chúng tôi đã thảo luận về AutoGen, một khung công cụ mã nguồn mở sử dụng các khái niệm về lập trình qua đối thoại và các đặc trưng có khả năng đối thoại tương tác) nhằm đơn giản hóa việc điều phối và tối ưu hóa các quy trình làm việc với các mô hình LLM thông qua việc giới thiệu tự động hóa vào quy trình làm việc. Khung công cụ AutoGen cung cấp các tác nhân với khả năng đối thoại/tương tác và tùy chỉnh sử dụng sức mạnh của các mô hình LLM tiên tiến như GPT-3 và GPT-4, đồng thời cũng 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 các LLM với các công cụ và đầu vào của con người thông qua các tương tác tự động để khởi đầu cuộc trò chuyện giữa nhiều tác nhân khác nhau.
Mặc dù khung công cụ AutoGen vẫn đang ở giai đoạn thử nghiệm ban đầu song nó đã mở ra nhiều cơ hội và hướng nghiên cứu ứng dụng mới để phát triển và nâng cao hiệu quả của các ứng dụng mô hình ngôn ngữ trên thực tiễn.