10 điểm bởi GN⁺ 2024-04-04 | 3 bình luận | Chia sẻ qua WhatsApp
  • SWE-agent sửa lỗi và issue trong các kho GitHub thực bằng cách biến các mô hình ngôn ngữ (LMs) như GPT-4 thành tác nhân kỹ thuật phần mềm
  • Giải quyết được 12,29% issue trên toàn bộ bộ kiểm thử SWE-bench, đạt hiệu năng tốt nhất trên toàn bộ tập kiểm thử

Giao diện tác nhân-máy tính (ACI)

  • Đạt được các kết quả này bằng cách thiết kế các lệnh và định dạng phản hồi lấy LM làm trung tâm, giúp tác nhân dễ dàng khám phá kho mã, xem, chỉnh sửa và chạy các tệp mã.
  • Nhóm gọi đây là giao diện tác nhân-máy tính (ACI), đồng thời xây dựng kho SWE-agent để có thể dễ dàng lặp lại thiết kế ACI cho các tác nhân lập trình ở cấp độ kho mã.
  • Cho thấy một thiết kế ACI tốt mang lại kết quả tốt hơn nhiều khi sử dụng tác nhân.

Thiết lập

  • Cài đặt Docker và khởi động Docker trên máy cục bộ.
  • Cài đặt Miniconda và tạo môi trường swe-agent bằng conda env create -f environment.yml.
  • Kích hoạt bằng conda activate swe-agent.
  • Chạy ./setup.sh để tạo image Docker swe-agent.
  • Tạo tệp keys.cfg ở thư mục gốc của kho này và nhập các API key cần thiết cùng GitHub token.

Cách dùng

  • Pipeline SWE-agent có hai giai đoạn. Giai đoạn đầu là suy luận: nhận một GitHub issue làm đầu vào và trả về một pull request nhằm giải quyết issue đó.
  • Giai đoạn thứ hai chỉ khả dụng với các issue trong benchmark SWE-bench, là bước đánh giá để xác minh pull request được tạo ra có thực sự giải quyết issue hay không.

Đánh giá

  • Bước này chỉ khả dụng với các issue trong bộ SWE-bench.
  • Để đánh giá pull request được tạo ra, di chuyển đến thư mục evaluation/ và chạy ./run_eval.sh .

Ý kiến của GN⁺

  • SWE-agent mở rộng khả năng tự động hóa trong quá trình phát triển phần mềm bằng cách đưa ra một cách tiếp cận đổi mới trong việc tận dụng mô hình ngôn ngữ để giải quyết các issue GitHub thực tế.
  • Công nghệ này có tiềm năng giúp các nhà phát triển thoát khỏi các công việc sửa lỗi lặp đi lặp lại để tập trung vào việc giải quyết những vấn đề sáng tạo và phức tạp hơn.
  • Bằng việc nhấn mạnh tầm quan trọng của thiết kế ACI, nội dung này làm nổi bật vai trò của việc thiết kế giao diện nhằm tối ưu hóa tương tác giữa máy móc và con người.

3 bình luận

 
botplaysdice 2024-04-05

Nếu một agent như vậy làm việc bằng cách hỏi cả lập trình viên như thế này thì có vẻ sẽ rất ổn.

"Tôi đã biến cách tái hiện được mô tả trong bug report thành mã kiểm thử để tái hiện vấn đề. Bạn xem giúp tôi đoạn mã này có đúng với những gì tôi hiểu không?"

"Thay vì thiết kế này, nếu refactor theo hướng như thế này thì có vẻ có thể giảm 20312 dòng code trong toàn bộ project, do you approve?"

 
fastkoder 2024-04-04

Đây là một dự án mã nguồn mở rất hấp dẫn.

 
GN⁺ 2024-04-04
Ý kiến trên Hacker News
  • Bình luận về báo cáo lỗi:

    • Bản demo cho thấy một báo cáo lỗi rõ ràng về phép toán ma trận.
    • Báo cáo lỗi thực tế phần lớn mơ hồ kiểu như "đã nhấp vào X nhưng Y xảy ra".
    • Khó khăn trong việc sửa lỗi nằm ở chỗ xác định nguyên nhân.
    • Dù biết LLM có thể sửa các lỗi đơn giản, vẫn đặt câu hỏi điều đó chứng minh được điều gì.
    • Thắc mắc liệu có ai đã xem kỹ bài báo và sự khác biệt với các vấn đề này là gì.
  • Bình luận về dự án:

    • Được đánh giá là một dự án rất ấn tượng.
    • Trước đây đã thử các thí nghiệm tương tự, nhưng thường dẫn đến những thất bại hỗn loạn và tốn kém.
    • SWE-bench cho thấy tỷ lệ thành công 12%, nhưng câu hỏi là 88% còn lại thì sao.
    • Thắc mắc liệu SWE-bench có phải do chính nhóm đó tạo ra không, và đã từng đo điểm "giới hạn trên của con người lành nghề" chưa.
    • Chia sẻ trải nghiệm rằng ngay cả các tác vụ SWE-bench được chọn ngẫu nhiên cũng khó "giải quyết" đối với con người có kỹ năng.
  • Bình luận về phương pháp được sử dụng:

    • Có vẻ đã sử dụng phương pháp luận của langchain.
    • Đưa ra một vài prompt làm ví dụ và cung cấp liên kết GitHub.
  • Bình luận về AI và bug tracker:

    • Dự đoán sự kết thúc của các bug tracker công khai nếu pull request do AI tạo ra trở nên phổ biến.
    • Cho rằng lỗi không biến mất, mà lợi ích của dự án so với chi phí rà soát pull request sẽ trở thành một khoản lỗ lớn.
  • Bình luận về benchmark SWEbench:

    • Benchmark SWEbench chỉ bao gồm các dự án mã Python, nên không đại diện cho mọi ngôn ngữ lập trình và framework.
    • Giới thiệu rằng họ đang phát triển một framework đánh giá tác vụ SWE tổng quát hơn cho JS, SQL, Python, v.v.
  • Bình luận về so sánh demo:

    • Có ý kiến rằng demo rất giống dự án Devin nên đã kiểm tra thử.
    • Đặt câu hỏi về độ tin cậy của demo và muốn nghe đánh giá từ bên thứ ba.
  • Bình luận về công việc review:

    • Hỏi rằng việc xem xét các chỉnh sửa do AI đề xuất thực tế đã làm phát sinh thêm bao nhiêu công việc cho con người.
  • Bình luận về các dự án tương tự:

    • Giới thiệu rằng họ cũng đang thực hiện một dự án tương tự và cung cấp liên kết GitHub.
    • Tập trung vào cách xử lý khi mô hình đi sai hướng.
    • Nhấn mạnh rằng hoàn thiện vòng phản hồi giữa lập trình viên và AI là chìa khóa cho việc tăng năng suất thực sự.
  • Bình luận đề xuất cho các tác giả:

    • Chỉ ra rằng tỷ lệ thành công chỉ có ý nghĩa với các nhà nghiên cứu, và đề xuất thêm vào README các ví dụ về những bài test mà SWE-agent đã vượt qua và những bài test chưa vượt qua.
  • Bình luận về đóng góp cho dự án mã nguồn mở:

    • Với tư cách là một lập trình viên mới, muốn có một công cụ giúp tìm cách đóng góp cho các dự án mã nguồn mở.
    • Chia sẻ trải nghiệm rằng dù tài liệu về đóng gói Python khó hiểu, cuối cùng vẫn vượt qua được và thấy mọi thứ trở nên dễ dàng hơn.
    • Nêu kế hoạch tìm các dự án chưa được hiện đại hóa để đề xuất và triển khai cải tiến.
    • Muốn chia sẻ ý tưởng với những người có ý tưởng hoặc cảm hứng tương tự.