Đã phát hành bộ dữ liệu DeNovoSWE để tạo mã với khoảng thời gian dài

icon MarsBit
Chia sẻ
AI summary iconTóm tắt

Với khả năng của LLM Code Agent không ngừng được cải thiện, ngày càng nhiều nhà nghiên cứu nhận ra đã đến lúc bước sang giai đoạn tiếp theo — thực hiện các nhiệm vụ dài hạn gần với nhu cầu thực tế hơn. Do đó, một số benchmark đánh giá nhiệm vụ dài hạn đã xuất hiện, chẳng hạn như NL2RepoBench và BeyondSWE. Kỳ vọng về vai trò của Code Agent đang dần chuyển từ người duy trì kho mã nguồn thành kiến trúc sư, có khả năng lập kế hoạch và hoàn thành các nhiệm vụ dài hạn toàn bộ mã nguồn trong kho.

Gần đây, Trường Cao học Nhân văn và Học viện Trí tuệ nhân tạo Gaoling của Đại học Nhân dân Trung Quốc đã hoàn thành nghiên cứu liên quan và công bố chính thức bộ dữ liệu DeNovoSWE, tập trung vào các nhiệm vụ kỹ thuật phần mềm dài hạn, đặc biệt là nhiệm vụ tạo mã cấp kho lưu trữ từ đầu.

DeNovoSWE

Liên kết bài báo: https://arxiv.org/pdf/2606.10728

Liên kết kho: https://github.com/AweAI-Team/DeNovoSWE

Liên kết dữ liệu: https://huggingface.co/collections/AweAI-Team/denovoswe

Sử dụng cơ chế Divide & Conquer và Critic & Repair để xây dựng bộ dữ liệu chất lượng cao, đồng thời thành công trong việc mở rộng khả năng xử lý các nhiệm vụ SWE dài hạn, tạo ra bộ dữ liệu mở gồm 4.818 dữ liệu thực tế về các nhiệm vụ SWE dài hạn — thành tựu này cung cấp lượng dữ liệu lớn để huấn luyện khả năng dài hạn của Code Agent, nâng cao đáng kể năng lực xử lý nhiệm vụ dài hạn của Code Agent.

DeNovoSWE

Bài viết cũng cung cấp phương pháp lọc điểm dựa trên độ khó của câu hỏi, giúp giảm nhẹ vấn đề đánh đổi giữa tỷ lệ câu hỏi khó và chất lượng quỹ đạo.

DeNovoSWE

Các thí nghiệm cho thấy Qwen3-30B-A3B-Instruct được huấn luyện trên DeNovoSWE đã tăng từ 5,8% lên 47,2% trên BeyondSWE-Doc2Repo và từ 4,3% lên 23,0% trên NL2RepoBench, thể hiện sự cải thiện đáng kể khả năng tạo mã cấp kho lưu trữ nhờ dữ liệu dài hạn.

Khôi phục toàn bộ kho từ một tài liệu

Trong năm qua, với sự mở rộng các bộ dữ liệu SWE quy mô lớn như Scale-SWE, các tác nhân mã đã tiến bộ nhanh chóng trên các nhiệm vụ kỹ thuật phần mềm thực tế như SWE-bench. Tuy nhiên, khi các mô hình ngày càng thành thạo trong việc “sửa một issue” hay “chỉnh vài dòng bug”, một câu hỏi quan trọng hơn bắt đầu nổi lên: Liệu các tác nhân thực sự có khả năng kỹ thuật phần mềm dài hạn không? Dựa trên hiệu suất của các mô hình tiên tiến như BeyondSWE-Doc2Repo và NL2RepoBench, kết quả vẫn chưa lý tưởng.

Phát triển phần mềm trong thế giới thực thường không chỉ là sửa một hàm, thêm một điều kiện kiểm tra, mà còn là hiểu yêu cầu, lên kế hoạch kiến trúc, tạo tệp, thiết kế API, xử lý phụ thuộc, kết nối các mô-đun, và cuối cùng là làm cho toàn bộ kho lưu trữ chạy thành công trong kiểm thử.

Nói cách khác, thách thức nằm ở việc tạo sinh ở cấp độ kho lưu trữ với khoảng thời gian dài: xuất phát từ một tài liệu nhiệm vụ, tạo ra một kho phần mềm hoàn chỉnh, có thể thực thi và xác minh. Đây chính là vấn đề DeNovoSWE muốn giải quyết.

Tài liệu nhiệm vụ "Tạo kho từ đầu" chất lượng cao

Trong quá trình tạo từ tài liệu sang kho lưu trữ, tài liệu không chỉ là README hay danh sách API đơn giản. Về bản chất, đây là điểm vào duy nhất để trí tuệ nhân tạo tái tạo toàn bộ kho lưu trữ.

Một tài liệu nhiệm vụ chất lượng cao cần đáp ứng ít nhất hai tiêu chí cốt lõi.

Đầu tiên, nó phải được tổ chức tốt.

Các nhiệm vụ cấp kho chứa bản chất phức tạp, bao gồm nhiều mô-đun, giao diện, cấu hình, cấu trúc dữ liệu và quy trình tương tác. Nếu tài liệu chỉ đơn thuần liệt kê các mô tả hàm một cách rời rạc, tác nhân thông minh rất dễ bị lạc trong các thông tin mảnh vỡ. Do đó, tài liệu nên cung cấp tổng quan rõ ràng về kho trước, sau đó chia các chương theo năng lực hoặc luồng công việc, để mỗi phần đều tương ứng với ranh giới chức năng rõ ràng.

Thứ hai, nó phải xuất phát từ góc độ đánh giá đáng tin cậy.

Tài liệu không nên quá ít, nếu không nhiệm vụ sẽ trở thành vấn đề không được xác định rõ, có thể khiến mô hình phải dự đoán bừa bãi mới có thể vượt qua đánh giá; cũng không nên quá nhiều, nếu không sẽ tiết lộ chi tiết triển khai, làm mất đi tính thách thức của nhiệm vụ.

Tài liệu chất lượng cao thực sự nên mô tả các hành vi then chốt mà đánh giá dựa vào: bao gồm đường dẫn nhập, API công khai, đầu vào và đầu ra, tham số mặc định, hành vi ngoại lệ, các tùy chọn cấu hình, chuỗi mẫu, các trường trả về, v.v., đồng thời cũng nêu rõ các chức năng cơ bản cần hoàn thành. Nói cách khác, tài liệu phải đủ để agent có thể tái tạo hành vi có thể kiểm thử, nhưng không trở thành bản sao của mã triển khai.

Đây cũng là tư tưởng cốt lõi của DeNovoSWE: làm cho tài liệu vừa dễ đọc, dễ thực hiện, vừa có thể xác minh.

Phương pháp DeNovoSWE

DeNovoSWE đã cấu trúc "tạo ra kho lưu trữ đầy đủ từ tài liệu" như một nhiệm vụ kỹ thuật phần mềm dài hạn, quy mô lớn và có thể xác minh. Thay vì tài liệu được viết thủ công, nó tự động xây dựng các ví dụ chất lượng cao thông qua một quy trình đa tác nhân trong môi trường cách ly. Toàn bộ phương pháp có thể được tóm tắt thành hai bước: Chia và Trị.

Trong giai đoạn Divide, hệ thống đầu tiên phân tích kho mục tiêu, chia nó thành nhiều repository capabilities.

Mỗi capability tương ứng với một năng lực hoặc quy trình cốt lõi trong kho lưu trữ, chẳng hạn như xác thực và kết nối, đọc ghi dữ liệu, xử lý hàng loạt, quy trình xuất v.v. Nhờ đó, vấn đề sinh ra kho lưu trữ lớn được chia thành nhiều chương tài liệu có cấu trúc rõ ràng.

Đồng thời, DeNovoSWE sẽ chạy các bài kiểm tra đơn vị gốc và thu thập trace thực thi, xác định những hàm, lớp và giao diện nào thực sự ảnh hưởng đến đánh giá, từ đó phân biệt rõ các thành phần trực tiếp, thành phần gián tiếp cốt lõi và thành phần gián tiếp không cốt lõi: các giao diện được gọi trực tiếp trong bài kiểm tra phải được ghi chép chi tiết; các thành phần gián tiếp cốt lõi ảnh hưởng đến hành vi có thể quan sát cũng cần được bao phủ; trong khi các triển khai nội bộ không cốt lõi có thể để cho tác nhân tự do phát huy.

Trong giai đoạn Conquer, DeNovoSWE sử dụng cơ chế Draft-Critic-Repair để tạo tài liệu từng năng lực một. Agent Draft tạo bản nháp đầu tiên; Agent Critic kiểm tra xem tài liệu có bỏ sót thông tin quan trọng nào về API, hợp đồng hành vi hoặc cấu trúc không; sau đó Agent Repair sửa lại tài liệu dựa trên phản hồi. Chu trình này được lặp lại liên tục cho đến khi mỗi chương năng lực đủ rõ ràng, đầy đủ và phù hợp với đánh giá.

Cuối cùng, các tài liệu năng lực khác nhau sẽ được hợp nhất thành một tài liệu nhiệm vụ hoàn chỉnh, làm cơ sở duy nhất để agent tạo kho từ đầu.

Độ khó: Tại sao đây là nhiệm vụ dài hạn?

Độ khó của DeNovoSWE xuất phát từ một sự thay đổi cơ bản: nó không còn là việc sửa lỗi ở cấp độ issue, mà là tạo ra toàn bộ kho lưu trữ.

Trong các nhiệm vụ SWE truyền thống, tác nhân thường đối mặt với một kho lưu trữ đã có sẵn, chỉ cần xác định lỗi, sửa đổi mã cục bộ và vượt qua các bài kiểm tra.

Trong DeNovoSWE, tác nhân đối mặt với một môi trường đã được làm sạch: mã nguồn gốc và bài kiểm tra đã bị xóa, lịch sử git đã được đặt lại, và các kênh rò rỉ tiềm ẩn như bộ nhớ đệm, phần còn sót lại của site-packages, pip wheel, và các sản phẩm biên dịch tạm thời cũng đã được xóa sạch. Điều này có nghĩa là tác nhân phải thực sự dựa vào tài liệu để tái tạo toàn bộ kho lưu trữ. Nó cần lập kế hoạch cấu trúc dự án, tạo các tệp mô-đun, xác định giao diện công khai, triển khai tương tác giữa các tệp, xử lý phụ thuộc và cấu hình, đồng thời liên tục sửa lỗi thông qua nhiều vòng chỉnh sửa và phản hồi từ bài kiểm tra.

Mọi sai lệch về chữ ký API, trường trả về, loại ngoại lệ hoặc hành vi mặc định đều có thể dẫn đến thất bại trong kiểm thử. Lỗi còn tích lũy theo thời gian: một module được thiết kế không hợp lý từ sớm có thể ảnh hưởng đến nhiều tệp và chuỗi gọi sau này.

Để xử lý thêm sự khác biệt về độ khó giữa các kho lưu trữ, DeNovoSWE còn đề xuất bộ lọc quỹ đạo nhận biết độ khó. Nói một cách đơn giản, các nhiệm vụ dễ dàng nên yêu cầu tỷ lệ vượt qua cao hơn, trong khi các nhiệm vụ khó không nên bị loại bỏ hoàn toàn chỉ vì không đạt điểm hoàn hảo. DeNovoSWE thiết lập các ngưỡng lọc khác nhau cho các khoảng độ khó dựa trên độ phức tạp cấu trúc và đánh giá độ khó của LLM, từ đó đạt được sự cân bằng giữa chất lượng và tính đa dạng.

Điều này đặc biệt quan trọng đối với các nhiệm vụ dài hạn: các kho càng phức tạp thì càng khó vượt qua toàn bộ bài kiểm tra trong một lần, nhưng những quỹ đạo khó khăn, điểm số thấp và một phần thành công vẫn chứa đựng khả năng lập kế hoạch và thực hiện dài hạn quý giá.

DeNovoSWE

Kết quả thí nghiệm

DeNovoSWE đã xây dựng cuối cùng 4818 ví dụ nhiệm vụ document-to-repository chất lượng cao. Là môi trường kỹ thuật phần mềm dài hạn có thể thực thi, đánh giá và huấn luyện.

DeNovoSWE

DeNovoSWE

Kết quả thí nghiệm cho thấy DeNovoSWE đã mang lại sự cải thiện đáng kể cho khả năng tạo kho dài hạn của mô hình. Trên Qwen3-30B-A3B-Instruct, mô hình gốc chỉ đạt 5,8% trên BeyondSWE-Doc2Repo và 4,3% trên NL2RepoBench. Việc huấn luyện Scale-SWE-Agent bằng dữ liệu SWE cấp issue thông thường có thể nâng cao lên 29,2% và 18,3%, cho thấy dữ liệu SWE thông thường thực sự có hiệu ứng chuyển giao. Tuy nhiên, khi mô hình được huấn luyện bằng DeNovoSWE, hiệu suất tiếp tục được nâng lên mức 47,2% và 23,0%.

Điều này cho thấy dữ liệu hướng đến việc "sửa bug" không thể hoàn toàn thay thế dữ liệu dài hạn hướng đến việc "tạo ra kho lưu trữ đầy đủ". Để agent thực sự học được kỹ thuật ở cấp độ repository, cần xây dựng môi trường huấn luyện chuyên biệt cho các nhiệm vụ dài hạn.

Trên nền tảng backbone Qwen3.5-35B-A3B mạnh hơn, DeNovoSWE cũng mang lại lợi ích ổn định: BeyondSWE-Doc2Repo tăng từ 43,8% lên 50,0%, NL2RepoBench tăng từ 23,5% lên 27,1%. Điều này càng cho thấy lợi ích của DeNovoSWE không phải là sự điều chỉnh ngẫu nhiên với một mô hình cụ thể, mà đến từ chính dữ liệu dài hạn chất lượng cao.

Kết luận

Giai đoạn tiếp theo của tác nhân mã hóa không chỉ là sửa nhanh các vấn đề đơn lẻ, mà còn có thể hiểu tài liệu, lên kế hoạch kiến trúc, tổ chức các mô-đun, triển khai giao diện và cuối cùng tạo ra một kho phần mềm hoàn chỉnh và chạy được.

DeNovoSWE đã hệ thống hóa mục tiêu này để tạo ra một bộ dữ liệu có thể huấn luyện, xác minh và mở rộng. Nó trả lời một câu hỏi then chốt: Loại dữ liệu nào thực sự có thể huấn luyện các tác nhân có khả năng kỹ thuật phần mềm dài hạn?

Câu trả lời không phải là nhiều mã rời rạc hơn, cũng không phải là các câu hỏi đơn giản hơn, mà là nhiệm vụ tạo toàn bộ kho lưu trữ với chất lượng cao, có cấu trúc, phù hợp với đánh giá và chống rò rỉ.

Bắt đầu từ một tài liệu, tái tạo toàn bộ repository. Đây là ranh giới mà các tác nhân mã dài hạn cần vượt qua.

Tài liệu tham khảo: https://arxiv.org/pdf/2606.10728

Bài viết này đến từ tài khoản công chúng WeChat "New Intelligence", biên tập: LRST

Tuyên bố miễn trừ trách nhiệm: Thông tin trên trang này có thể được lấy từ bên thứ ba và không nhất thiết phản ánh quan điểm hoặc ý kiến của KuCoin. Nội dung này chỉ được cung cấp cho mục đích thông tin chung, không có bất kỳ đại diện hay bảo đảm nào dưới bất kỳ hình thức nào và cũng không được hiểu là lời khuyên tài chính hay đầu tư. KuCoin sẽ không chịu trách nhiệm về bất kỳ sai sót hoặc thiếu sót nào hoặc về bất kỳ kết quả nào phát sinh từ việc sử dụng thông tin này. Việc đầu tư vào tài sản kỹ thuật số có thể tiềm ẩn nhiều rủi ro. Vui lòng đánh giá cẩn thận rủi ro của sản phẩm và khả năng chấp nhận rủi ro của bạn dựa trên hoàn cảnh tài chính của chính bạn. Để biết thêm thông tin, vui lòng tham khảo Điều khoản sử dụngTiết lộ rủi ro của chúng tôi.