ProgramBench: Thách thức khả năng tái tạo phần mềm từ con số không của các Mô hình Ngôn ngữ
ProgramBench là bộ tiêu chuẩn đánh giá mới nhằm kiểm tra khả năng kiến trúc và triển khai toàn diện của các tác nhân AI. Kết quả cho thấy các mô hình hiện tại vẫn gặp khó khăn lớn khi tái tạo các phần mềm phức tạp như FFmpeg hay SQLite, thường thiên về viết mã đơn khối thay vì cấu trúc chuẩn.

ProgramBench: Thách thức khả năng tái tạo phần mềm từ con số không của các Mô hình Ngôn ngữ
Việc sử dụng các Mô hình Ngôn ngữ lớn (LLM) để biến ý tưởng thành các dự án phần mềm hoàn chỉnh đang trở thành một xu hướng phổ biến. Các tác nhân AI (AI agents) ngày càng được triển khai để khởi tạo, duy trì và phát triển mã nguồn trong thời gian dài với sự giám sát tối thiểu của con người. Tuy nhiên, một câu hỏi lớn được đặt ra là: Liệu AI có thực sự khả năng đưa ra các quyết định kiến trúc phần mềm ở tầm cao hay không?
Để trả lời câu hỏi này, một nhóm các nhà nghiên cứu đã giới thiệu ProgramBench — một bộ tiêu chuẩn đánh giá (benchmark) mới được thiết kế để đo lường khả năng phát triển phần mềm một cách toàn diện của các kỹ sư phần mềm sử dụng AI.
Hạn chế của các phương pháp đánh giá hiện tại
Trước đây, các benchmark đánh giá khả năng lập trình của AI thường tập trung vào các nhiệm vụ hẹp và giới hạn. Ví dụ điển hình là việc sửa một lỗi duy nhất (bug fix) hoặc phát triển một tính năng cụ thể đã được mô tả chi tiết. Mặc dù các bài kiểm tra này hữu ích để đo lường khả năng suy luận và viết mã ngắn hạn, nhưng chúng không phản ánh đúng thực tế của việc xây dựng một hệ thống phần mềm phức tạp từ đầu.
Trong môi trường thực tế, việc phát triển phần mềm đòi hỏi khả năng thiết kế kiến trúc hệ thống, quản lý sự phụ thuộc giữa các module và duy trì tính nhất quán của toàn bộ dự án. ProgramBench ra đời để lấp đầy khoảng trống này.
ProgramBench hoạt động như thế nào?
Trong ProgramBench, các tác nhân AI được cung cấp một chương trình và tài liệu hướng dẫn sử dụng của nó. Nhiệm vụ của AI là phải kiến trúc và triển khai một mã nguồn (codebase) sao cho hành vi của nó khớp hoàn toàn với chương trình tham chiếu.
Điểm đặc biệt của ProgramBench là phương pháp đánh giá:
- Các bài kiểm tra hành vi end-to-end được tạo ra thông qua kỹ thuật fuzzing do tác nhân điều khiển.
- Phương pháp này cho phép đánh giá hiệu suất mà không bắt buộc AI phải tuân theo một cấu trúc triển khai cụ thể nào, tập trung hoàn toàn vào kết quả hoạt động của phần mềm.
Các thử nghiệm thách thức
Bộ dữ liệu của ProgramBench bao gồm 200 nhiệm vụ với độ khó đa dạng, bắt đầu từ các công cụ dòng lệnh (CLI) nhỏ gọn cho đến các phần mềm được sử dụng rộng rãi trên toàn cầu như:
- FFmpeg: Công cụ xử lý video và âm thanh hàng đầu.
- SQLite: Hệ thống quản lý cơ sở dữ liệu nhúng phổ biến nhất.
- PHP Interpreter: Trình thông dịch ngôn ngữ lập trình PHP.
Đây là những dự án phần mềm thực tế, phức tạp, đòi hỏi kiến trúc chặt chẽ và tối ưu hóa cao, tạo ra thách thức lớn cho khả năng lập trình tự động.
Kết quả đánh giá và những hạn chế của AI
Nhóm nghiên cứu đã đánh giá 9 Mô hình Ngôn ngữ (LM) khác nhau trên ProgramBench và kết quả cho thấy bức tranh chưa thực sự sáng sủa đối với công nghệ AI hiện tại:
- Không có mô hình nào giải quyết hoàn toàn bất kỳ nhiệm vụ nào.
- Mô hình tốt nhất chỉ vượt qua 95% các bài kiểm tra trên chỉ 3% số lượng nhiệm vụ.
- Xu hướng chung của các mô hình là ưu tiên các triển khai đơn khối (monolithic) trong một tệp tin duy nhất. Cách tiếp cận này khác biệt hoàn toàn so với mã nguồn do con người viết, vốn thường được chia nhỏ thành nhiều module và tệp tin để dễ quản lý.
Kết luận
ProgramBench đã làm lộ ra khoảng cách lớn giữa việc viết các đoạn mã ngắn và khả năng xây dựng hệ thống phần mềm quy mô lớn của AI. Mặc dù các mô hình ngôn ngữ đã tiến bộ vượt bậc trong việc hỗ trợ lập trình viên, chúng vẫn chưa sẵn sàng để thay thế con người trong vai trò kiến trúc sư phần mềm chính. Việc chuyển từ tư duy "viết mã" sang tư duy "thiết kế hệ thống" vẫn là một rào cản lớn cần được vượt qua trong tương lai gần.
Bài viết liên quan
Phần mềm
Lo ngại về Bun: Liệu sự suy giảm của Claude Code có phải là điềm báo cho tương lai của runtime này?
04 tháng 5, 2026

Phần mềm
Bun công bố hướng dẫn chuyển đổi sang Rust, nhưng gọi dự án viết lại là "chưa chín muồi"
05 tháng 5, 2026

Công nghệ
Nhà xuất bản cáo buộc Mark Zuckerberg cá nhân chỉ đạo vi phạm bản quyền để đào tạo AI Llama
05 tháng 5, 2026
