4 điểm bởi xguru 2024-08-13 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Một dự án nhằm cải thiện việc phát triển phần mềm mã nguồn mở bằng cách tạo ra các "tác nhân" hỗ trợ tự động cho công tác bảo trì mã nguồn mở
    • Có thể giúp giảm khối lượng công việc lặp đi lặp lại liên quan đến việc bảo trì mã nguồn mở
  • Khả năng phân tích ngữ nghĩa ngôn ngữ tự nhiên của mô hình ngôn ngữ lớn (LLM) và khả năng chuyển đổi giữa chỉ dẫn ngôn ngữ tự nhiên với mã chương trình mở ra những cơ hội mới để các tác nhân tương tác trơn tru hơn với con người
  • LLM sẽ là một phần của tác nhân, còn phần lớn hành vi của tác nhân sẽ là chạy mã tiêu chuẩn và có tính xác định
  • Khác với việc sử dụng LLM tập trung vào phát triển, Oscar không nhằm bổ sung hay thay thế quá trình viết mã
  • Thay vào đó, ý tưởng là tập trung vào những phần nhàm chán như xử lý issue đến, đối chiếu câu hỏi với tài liệu hiện có, v.v.

Mục tiêu dự án

  • Giảm nỗ lực bảo trì để xử lý issue [việc xử lý không phải lúc nào cũng đồng nghĩa với sửa lỗi]
  • Giảm nỗ lực bảo trì để xử lý changelist (CL) hoặc pull request (PR) [việc xử lý không phải lúc nào cũng đồng nghĩa với gửi/merge]
  • Giảm nỗ lực bảo trì để xử lý câu hỏi trên diễn đàn
  • Hỗ trợ để nhiều người hơn có thể trở thành maintainer hiệu quả

Cách tiếp cận

  • Vì các công việc lặp lại trong bảo trì mã nguồn mở không chỉ giới hạn ở dự án Go, mục tiêu là xây dựng một kiến trúc mà mọi dự án phần mềm đều có thể tái sử dụng và mở rộng
  • Đến nay đã xác định 3 chức năng sẽ là phần quan trọng của Oscar:
    1. Lập chỉ mục và hiển thị ngữ cảnh dự án liên quan trong quá trình tương tác với người đóng góp
    2. Điều khiển công cụ có tính xác định bằng ngôn ngữ tự nhiên
    3. Cải thiện theo thời gian thực ngay trong lúc gửi hoặc ngay sau khi gửi thông qua phân tích issue report và CL/PR, đồng thời gắn nhãn và định tuyến phù hợp

Lập chỉ mục và hiển thị ngữ cảnh dự án liên quan

  • LLM có thể phân tích tài liệu bằng cách tạo embedding, tức các vector đơn vị dấu phẩy động nhiều chiều, trong đó các tài liệu có ý nghĩa tương tự sẽ được ánh xạ thành các vector chỉ theo những hướng tương tự
  • Khi kết hợp với cơ sở dữ liệu vector để tìm kiếm các vector tương tự với vector đầu vào, embedding của LLM cung cấp một cách rất hiệu quả để lập chỉ mục toàn bộ ngữ cảnh của dự án mã nguồn mở
  • Tác nhân nguyên mẫu đã triển khai chức năng này và phản hồi các issue mới trong kho Go bằng danh sách tối đa 10 liên kết có mức độ liên quan cao

Sử dụng ngôn ngữ tự nhiên để điều khiển công cụ có tính xác định

  • Khi dự án mã nguồn mở phát triển, số lượng công cụ hữu ích cũng tăng lên và có thể khó theo dõi hết mọi công cụ cũng như nhớ cách dùng của từng công cụ
  • LLM rất hiệu quả trong việc chuyển đổi giữa ý định được viết bằng ngôn ngữ tự nhiên và dạng có thể thực thi như mã chương trình hoặc lời gọi công cụ
  • Đã tiến hành thử nghiệm với Gemini để chọn và gọi các công cụ có sẵn nhằm đáp ứng các yêu cầu ngôn ngữ tự nhiên, nhưng hiện vẫn chưa có gì thực sự hoạt động

Phân tích issue report và CL/PR

  • Việc đăng bài về các issue liên quan là một dạng phân tích hạn chế, nhưng có kế hoạch bổ sung các dạng phân tích ngữ nghĩa khác, chẳng hạn nhận diện issue về hiệu năng và thêm nhãn "performance"
  • Cũng có kế hoạch khám phá xem có thể phân tích report đủ tốt để xác định liệu có cần thêm thông tin để làm cho report trở nên hữu ích hay không
  • Tất cả các phân tích này và các tương tác phát sinh từ đó hoạt động tốt hơn nhiều khi diễn ra ngay sau khi report được gửi, lúc người báo cáo vẫn còn sẵn sàng và đang tham gia

Nguyên mẫu

  • Nguyên mẫu đầu tiên để khám phá Oscar có tên là Gaby (Go AI bot), chạy trên Go issue tracker và đăng bài với @gabyhelp
  • Tính đến hiện tại, Gaby lập chỉ mục nội dung issue của Go trên GitHub, lập chỉ mục tài liệu Go trên go.dev và phản hồi các issue mới bằng những liên kết liên quan
  • Cấu trúc của Gaby giúp nó dễ dàng chạy với mọi loại dịch vụ hosting, mọi LLM, tầng lưu trữ và cơ sở dữ liệu vector

Chưa có bình luận nào.

Chưa có bình luận nào.