AGI và AI tương lai

MetaGPT: Hướng Dẫn Hoàn Chỉnh Về Trình Đại Diện AI Tốt Nhất Hiện Có

mm
Thêm Unite.AI vào các nguồn ưu tiên của bạn trên Google

Với Mô Hình Ngôn Ngữ Lớn (LLM) như ChatGPT, OpenAI đã chứng kiến sự tăng trưởng về việc áp dụng trong doanh nghiệp và người dùng, hiện đang tạo ra khoảng 80 triệu đô la doanh thu hàng tháng. Theo một báo cáo gần đây của The Information, công ty có trụ sở tại San Francisco này được báo cáo đang trên đà đạt được 1 tỷ đô la doanh thu hàng năm.

Lần trước chúng ta đã tìm hiểu về AutoGPT và GPT-Engineering, những đại diện AI mã nguồn mở đầu tiên dựa trên LLM được thiết kế để tự động hóa các nhiệm vụ phức tạp. Mặc dù những hệ thống này có nhiều hứa hẹn, nhưng chúng cũng có một số vấn đề: kết quả không nhất quán,瓶 cổ về hiệu suất và hạn chế trong việc xử lý các yêu cầu đa dạng. Chúng thể hiện sự thành thạo trong việc tạo mã, nhưng khả năng của chúng thường dừng lại ở đó. Chúng thiếu các chức năng quản lý dự án quan trọng như tạo PRD, thiết kế kỹ thuật và nguyên mẫu giao diện API.

Đến với MetaGPT — một hệ thống đa đại diện tận dụng các mô hình ngôn ngữ lớn của Sirui Hong, kết hợp các Quy Trình Hoạt Động Tiêu Chuẩn (SOP) với hệ thống đa đại diện dựa trên LLM. Mô hình mới nổi này phá vỡ các hạn chế hiện có của LLM trong việc thúc đẩy sự hợp tác hiệu quả và phân chia nhiệm vụ trong các ứng dụng thực tế phức tạp.

Điểm đẹp của MetaGPT nằm ở cấu trúc của nó. Nó tận dụng các kỹ thuật lập trình siêu để điều khiển, phân tích và biến đổi mã trong thời gian thực. Mục tiêu? Để hiện thực hóa một kiến trúc phần mềm linh hoạt, có thể thích nghi với các nhiệm vụ lập trình động.

Agile Development - Metagpt

Agile Development

SOPs đóng vai trò như một siêu hàm ở đây, điều phối các đại diện để tự động tạo mã dựa trên các đầu vào được xác định. Nói một cách đơn giản, nó giống như bạn đã biến một đội ngũ các kỹ sư phần mềm có sự phối hợp cao thành một hệ thống phần mềm thông minh, có thể thích nghi.

Hiểu Về Khung Năng Lực MetaGPT

Lớp Nền & Hợp Tác

Kiến trúc của MetaGPT được chia thành hai lớp: Lớp Thành Phần Nền và Lớp Hợp Tác.

  1. Lớp Thành Phần Nền: Lớp này tập trung vào các hoạt động của từng đại diện và tạo điều kiện cho việc trao đổi thông tin trên toàn hệ thống. Nó giới thiệu các khối xây dựng cơ bản như Môi Trường, Bộ Nhớ, Vai Trò, Hành Động và Công Cụ. Môi Trường thiết lập giai đoạn cho không gian làm việc chung và các đường dẫn giao tiếp, trong khi Bộ Nhớ đóng vai trò là kho lưu trữ dữ liệu lịch sử. Vai Trò bao gồm chuyên môn lĩnh vực, Hành Động thực hiện các nhiệm vụ mô-đun và Công Cụ cung cấp các dịch vụ chung. Lớp này cơ bản đóng vai trò như hệ điều hành cho các đại diện. Để biết thêm thông tin về cách chúng hoạt động cùng nhau, vui lòng tham khảo bài viết ‘Beyond ChatGPT; AI Agent: A New World of Workers
  2. Lớp Hợp Tác: Lớp này được xây dựng trên các thành phần nền, quản lý và tối ưu hóa các nỗ lực hợp tác của từng đại diện. Nó giới thiệu hai cơ chế: Chia Sẻ Kiến Thức và Mô Hình Hóa Lưu Trình.
    • Chia Sẻ Kiến Thức: Đây là chất kết dính hợp tác gắn kết các đại diện lại với nhau. Các đại diện có thể lưu trữ, truy xuất và chia sẻ thông tin ở các mức độ khác nhau, do đó giảm thiểu sự trùng lặp và tăng cường hiệu quả hoạt động.
    • Mô Hình Hóa Lưu Trình: Đây là nơi các Quy Trình Hoạt Động Tiêu Chuẩn (SOP) được áp dụng. SOP đóng vai trò như các bản thiết kế phân chia nhiệm vụ thành các thành phần có thể quản lý. Các đại diện được giao các nhiệm vụ con và hiệu suất của chúng được căn chỉnh với các đầu ra tiêu chuẩn.

MetaGPT cũng sử dụng “Định Nghĩa Vai Trò” để khởi tạo các đại diện chuyên môn hóa khác nhau như Product Managers, Architects, v.v. như chúng ta đã thảo luận ở trên. Những vai trò này được đặc trưng bởi các thuộc tính quan trọng như tên, hồ sơ, mục tiêu, ràng buộc và mô tả.

Hơn nữa, “Đại Diện Neo” cung cấp hướng dẫn cụ thể cho các đại diện này. Ví dụ, vai trò của một Product Manager có thể được khởi tạo với ràng buộc “tạo ra một sản phẩm thành công một cách hiệu quả.” Các đại diện neo đảm bảo rằng hành vi của các đại diện được căn chỉnh với các mục tiêu chung, do đó tối ưu hóa hiệu suất.

Quy Trình Nhận Thức Trong Các Đại Diện MetaGPT

MetaGPT có thể quan sát, suy nghĩ, phản ánh và hành động. Chúng hoạt động thông qua các hàm hành vi cụ thể như _think(), _observe(), _publish_message(), v.v. Mô hình nhận thức này trang bị cho các đại diện khả năng học tập chủ động có thể thích nghi và phát triển.

  1. Quan Sát: Các đại diện quét môi trường và tích hợp dữ liệu quan trọng vào Bộ Nhớ của chúng.
  2. Suy Nghĩ & Phản Ánh: Thông qua hàm _think(), các vai trò suy nghĩ trước khi thực hiện hành động.
  3. Phát Hành Thông Điệp: Các đại diện sử dụng _publish_message() để chia sẻ trạng thái nhiệm vụ hiện tại và hồ sơ hành động liên quan.
  4. Kiến Thức Kết Tinh & Hành Động: Các đại diện đánh giá các thông điệp đến và cập nhật kho lưu trữ nội bộ trước khi quyết định hành động tiếp theo.
  5. Quản Lý Trạng Thái: Với các tính năng như khóa nhiệm vụ và cập nhật trạng thái, các vai trò có thể xử lý nhiều hành động tuần tự mà không bị gián đoạn, phản ánh sự hợp tác của con người trong thế giới thực.

Cơ Chế Kiểm Tra Mã Cho MetaGPT

Kiểm tra mã là một thành phần quan trọng trong chu kỳ phát triển phần mềm, nhưng nó lại vắng mặt trong một số khuôn khổ phổ biến. Cả MetaGPT và AgentVerse đều hỗ trợ khả năng kiểm tra mã, nhưng MetaGPT lại đi một bước xa hơn. Nó cũng tích hợp việc thực thi trước khi biên dịch, giúp phát hiện lỗi sớm và nâng cao chất lượng mã. Nhìn vào bản chất lặp lại của việc lập trình, tính năng này không chỉ là một tiện ích bổ sung mà là một yêu cầu cho bất kỳ khuôn khổ phát triển nào trưởng thành.

Thử nghiệm định lượng được thực hiện trên nhiều nhiệm vụ cho thấy MetaGPT vượt trội so với các đối thủ của nó trong hầu hết mọi kịch bản. Pass@1 là một thước đo khả năng của khuôn khổ trong việc tạo mã chính xác trong một lần lặp. Chỉ số này cung cấp một phản ánh thực tế hơn về tính hữu ích của khuôn khổ trong một môi trường thực tế. Tỷ lệ Pass@1 cao hơn có nghĩa là ít gỡ lỗi hơn và hiệu quả hơn, trực tiếp ảnh hưởng đến chu kỳ phát triển và chi phí. Khi so sánh với các công cụ tạo mã tiên tiến khác như CodeX, CodeT và thậm chí là GPT-4, MetaGPT vượt trội tất cả. Khả năng của khuôn khổ trong việc đạt được tỷ lệ Pass@1 từ 81,7% đến 82,3% trên các chuẩn mực HumanEvalMBPP.

Comparing MBPP and HumanEval Metrics b/w MetaGPT and other Leading Models (https://arxiv.org/pdf/2308.00352.pdf)

Comparing MBPP and HumanEval Metrics b/w MetaGPT and other Leading Models (https://arxiv.org/pdf/2308.00352.pdf)

Khuôn khổ này cũng sử dụng ít token và tài nguyên tính toán hơn, đạt được tỷ lệ thành công cao với chi phí chỉ là một phần nhỏ so với chi phí kỹ sư phần mềm truyền thống. Dữ liệu chỉ ra rằng chi phí trung bình chỉ là 1,09 đô la cho mỗi dự án với MetaGPT, chỉ là một phần nhỏ so với những gì một nhà phát triển sẽ tính phí cho cùng một nhiệm vụ.

Các Bước Để Cài Đặt MetaGPT Trên Hệ Thống Của Bạn

Cài Đặt NPM, Python

  1. Kiểm Tra & Cài Đặt NPM: Trước tiên, hãy đảm bảo NPM đã được cài đặt trên hệ thống của bạn. Nếu không, bạn sẽ cần cài đặt node.js. Để kiểm tra xem bạn đã có npm hay chưa, hãy chạy lệnh này trong terminal của bạn: npm --version. Nếu bạn thấy một số phiên bản, bạn đã sẵn sàng.
  2. To install mermaid-js, a dependency for MetaGPT, run: sudo npm install -g @mermaid-js/mermaid-cli or npm install -g @mermaid-js/mermaid-cli
  3. Xác Minh Phiên Bản Python: Hãy đảm bảo rằng bạn có Python 3.9 hoặc cao hơn. Để kiểm tra phiên bản Python của bạn, hãy mở terminal và nhập: python --version. Nếu bạn không cập nhật, hãy tải xuống phiên bản mới nhất từ trang web chính thức của Python.
  4. Clone Kho MetaGPT: Bắt đầu bằng cách clone kho GitHub của MetaGPT bằng lệnh git clone https://github.com/geekan/metagpt. Hãy đảm bảo bạn đã cài đặt Git trên hệ thống của mình để thực hiện việc này. Nếu không, hãy truy cập đây.
  5. Duyệt Đến Thư Mục: Một khi đã clone, hãy duyệt đến thư mục MetaGPT bằng lệnh cd metagpt.
  6. Cài Đặt: Thực hiện kịch bản thiết lập Python để cài đặt MetaGPT bằng lệnh python setup.py install.
  7. Tạo Ứng Dụng: Chạy python startup.py "ENTER-PROMPT" --code_review True

Lưu Ý:

  • Dự án mới của bạn bây giờ nên nằm trong thư mục workspace/.
  • --code_review True sẽ cho phép mô hình GPT thực hiện các hoạt động bổ sung, đảm bảo mã chạy chính xác nhưng lưu ý rằng nó sẽ tốn kém hơn.
  • Nếu bạn gặp lỗi quyền trong quá trình cài đặt, hãy thử chạy python setup.py install --user như một giải pháp thay thế.
  • Để truy cập các bản phát hành cụ thể và chi tiết hơn, hãy truy cập trang phát hành chính thức của MetaGPT trên GitHub: MetaGPT Releases.

Cài Đặt Docker

Đối với những người thích container hóa, Docker đơn giản hóa quá trình:

  • Kéo Hình Ảnh Docker: Tải xuống hình ảnh chính thức của MetaGPT và chuẩn bị tệp cấu hình:
docker pull metagpt/metagpt:v0.3.1
mkdir -p /opt/metagpt/{config,workspace}
docker run --rm metagpt/metagpt:v0.3.1 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml
vim /opt/metagpt/config/key.yaml
  • Chạy Container MetaGPT: Thực hiện container bằng lệnh:
docker run --rm --privileged \
-v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
metagpt/metagpt:v0.3.1 \
python startup.py "Create a simple and interactive CLI based rock, paper and scissors game" --code_review True

Cấu Hình MetaGPT Với Khóa API OpenAI Của Bạn

Sau khi thiết lập ban đầu, bạn sẽ cần tích hợp MetaGPT với khóa API OpenAI của mình. Dưới đây là các bước để thực hiện việc này:

  1. Tìm hoặc Tạo Khóa OpenAI: Bạn có thể tìm thấy khóa này trong bảng điều khiển OpenAI dưới cài đặt API.
  2. Thiết Lập Khóa API: Bạn có tùy chọn đặt khóa API trong config/key.yaml, config/config.yaml hoặc đặt nó như một biến môi trường (env). Thứ tự ưu tiên là config/key.yaml > config/config.yaml > env.
  3. Để thiết lập khóa, hãy điều hướng đến config/key.yaml và thay thế văn bản tạm bằng khóa OpenAI của bạn: OPENAI_API_KEY: "sk-..."

Hãy nhớ bảo vệ khóa API OpenAI của bạn. Không bao giờ cam kết nó vào một kho lưu trữ công khai hoặc chia sẻ nó với những người không được ủy quyền.

Minh Họa Trường Hợp Sử Dụng

Tôi đã đưa ra mục tiêu phát triển một trò chơi đá, giấy, kéo dựa trên CLI, và MetaGPT đã thực hiện thành công nhiệm vụ này.

Dưới đây là một video展示 thực tế của mã trò chơi được tạo.

MetaGPT Demo Run

MetaGPT đã cung cấp một tài liệu thiết kế hệ thống ở định dạng Markdown – một ngôn ngữ đánh dấu nhẹ được sử dụng phổ biến. Tài liệu Markdown này chứa đầy đủ các sơ đồ UML, cung cấp một cái nhìn chi tiết về bản thiết kế kiến trúc. Hơn nữa, các thông số kỹ thuật API được chi tiết với các phương thức HTTP, điểm cuối, đối tượng yêu cầu/trả lời và mã trạng thái

MetaGPT Output - System Design

MetaGPT Output – System Design Markdown

Biểu đồ lớp chi tiết các thuộc tính và phương thức của lớp Game của chúng tôi, cung cấp một sự trừu tượng dễ hiểu. Nó thậm chí còn hình dung luồng gọi của chương trình, hiệu quả biến các ý tưởng trừu tượng thành các bước cụ thể.

Không chỉ giảm thiểu đáng kể gánh nặng thủ công trong việc lập kế hoạch, mà nó còn tăng tốc quá trình ra quyết định, đảm bảo rằng đường ống phát triển của bạn vẫn linh hoạt. Với MetaGPT, bạn không chỉ tự động hóa việc tạo mã, mà còn tự động hóa việc lập kế hoạch dự án thông minh, từ đó cung cấp một lợi thế cạnh tranh trong phát triển ứng dụng nhanh.

Kết Luận: MetaGPT – Cách Mạng Hóa Phát Triển Phần Mềm

MetaGPT tái định nghĩa phong cảnh của trí tuệ nhân tạo tạo sinh và phát triển phần mềm, cung cấp một sự kết hợp liền mạch giữa tự động hóa thông minh và quản lý dự án linh hoạt. Vượt trội hơn hẳn khả năng của ChatGPT, AutoGPT và các mô hình LangChain truyền thống, nó excels trong việc phân chia nhiệm vụ, tạo mã hiệu quả và lập kế hoạch dự án. Hãy tìm hiểu thêm về

Dưới đây là những điểm chính từ bài viết này:

  1. Sức Mạnh Của Lập Trình Siêu: Bằng cách sử dụng lập trình siêu, MetaGPT cung cấp một khuôn khổ phần mềm linh hoạt và thích nghi. Nó vượt qua chức năng hẹp của các công cụ cũ và giới thiệu một cách tiếp cận chuyển đổi giúp xử lý không chỉ việc lập trình, mà còn quản lý dự án và quyết định.
  2. Kiến Trúc Hai Lớp: Với các lớp nền và hợp tác, MetaGPT tạo ra một hệ sinh thái hợp tác hiệu quả, nơi các đại diện có thể làm việc cùng nhau giống như một đội ngũ phần mềm được quản lý chuyên nghiệp.
  3. Kiểm Tra Mã Tối Ưu: Ngoài việc tạo mã, MetaGPT cung cấp các tính năng thực thi trước khi biên dịch, cơ bản là một hệ thống cảnh báo sớm cho lỗi. Điều này không chỉ tiết kiệm thời gian gỡ lỗi mà còn đảm bảo chất lượng mã.
  4. Đại Diện Nhận Thức: Các đại diện thông minh của MetaGPT, đầy đủ các chức năng nhận thức như _observe(), _think()_publish_message(), phát triển và thích nghi, đảm bảo giải pháp phần mềm của bạn không chỉ được mã hóa mà còn “thông minh”.
  5. Cài Đặt & Triển Khai: Chúng ta đã minh họa rằng MetaGPT có thể được cài đặt dễ dàng, dù bạn thích cài đặt cục bộ qua npm và Python, hay container hóa qua Docker.

Tôi đã dành 5 năm qua để đắm mình trong thế giới hấp dẫn của Máy học và Học sâu. Đam mê và chuyên môn của tôi đã dẫn tôi đến việc đóng góp vào hơn 50 dự án kỹ thuật phần mềm đa dạng, với sự tập trung đặc biệt vào AI/ML. Sự tò mò liên tục của tôi cũng đã thu hút tôi đến với Xử lý Ngôn ngữ Tự nhiên, một lĩnh vực tôi渴望 khám phá thêm.