Nâng cao khả năng lập trình bằng các ngôn ngữ ít tài nguyên
Những tiến bộ mới nhất về mô hình của chúng tôi giúp nâng cao khả năng xây dựng và chuyển đổi phần mềm viết bằng các ngôn ngữ lập trình ít tài nguyên như COBOL, Fortran và Visual Basic. So với Python và JavaScript, các ngôn ngữ này có ít mã nguồn và tài liệu hơn để mô hình học hỏi, nhưng lại là nền tảng cho cơ sở hạ tầng quan trọng và các dịch vụ thiết yếu trên toàn thế giới. COBOL hỗ trợ vận hành(mở trong cửa sổ mới) hơn 40% hệ thống ngân hàng trực tuyến, 80% giao dịch thẻ tín dụng trực tiếp và 95% giao dịch ATM, còn Fortran được dùng trong dự báo thời tiết(mở trong cửa sổ mới) và phân tích an toàn lò phản ứng hạt nhân(mở trong cửa sổ mới). Việc cải thiện khả năng của AI khi làm việc với các ngôn ngữ này có thể giúp các nhóm bảo trì và hiện đại hóa phần mềm mà những dịch vụ thiết yếu dựa vào.
Nỗ lực này được định hướng bởi phản hồi từ các nhà phát triển và khách hàng doanh nghiệp. Họ cho biết các mô hình lập trình thường gặp khó khăn với những ngôn ngữ này. Việc bảo trì và hiện đại hóa phần mềm này có thể rất khó khăn: tài liệu có thể không đầy đủ, các nhà phát triển ban đầu có thể đã rời công ty, và những quy tắc nghiệp vụ quan trọng có thể chỉ tồn tại trong mã nguồn. Dù đang sửa lỗi hay chuyển sang ngôn ngữ khác, các nhóm vẫn cần giữ nguyên hành vi mà hệ thống của họ phụ thuộc vào.
Để đo lường tiến bộ, chúng tôi đã xây dựng hai bài đánh giá. MultiLangBench kiểm tra xem mô hình có thể xây dựng từ đầu một bộ máy cơ sở dữ liệu tương thích với SQLite bằng 20 ngôn ngữ lập trình khác nhau hay không. Bài đánh giá chuyển đổi mã COBOL của chúng tôi kiểm tra xem mô hình có thể chuyển các chương trình hiện có sang ngôn ngữ khác mà vẫn giữ nguyên hành vi hay không. Hai bài đánh giá này kiểm tra hai kỹ năng bổ trợ cho nhau: xây dựng phần mềm mới và giữ nguyên cách hoạt động của phần mềm hiện có.
Các mô hình mới nhất của chúng tôi cải thiện đáng kể trên cả hai bài đánh giá, đạt độ chính xác cao hơn nhiều với chi phí thấp hơn.
Trên MultiLangBench, GPT‑6 Astra đạt tỷ lệ vượt qua kiểm thử trung bình 87,4% trên 20 ngôn ngữ lập trình, tăng từ mức 26,8% của GPT‑5.6 Sol, với kết quả cải thiện ở mọi ngôn ngữ được kiểm tra. GPT‑6 Luna cũng vượt GPT‑5.6 Sol, đạt 40,3% với chi phí API ước tính thấp hơn khoảng 78%.
Trong bài đánh giá chuyển đổi mã COBOL, GPT‑6.1 Sol đạt độ chính xác 86,6% ở mức nỗ lực suy luận thấp, so với chỉ 5,4% của GPT‑5.6 Sol, trong khi chi phí thấp hơn 39%. Ở mức nỗ lực suy luận cao hơn, độ chính xác đạt 97,9%, gần chạm ngưỡng tối đa của bài đánh giá.
Nhìn chung, những kết quả này cho thấy các mô hình của chúng tôi đang làm việc tốt hơn đáng kể với nhiều ngôn ngữ lập trình, đồng thời tiết kiệm chi phí hơn.
MultiLangBench yêu cầu mô hình xây dựng một bộ máy cơ sở dữ liệu tương thích với SQLite bằng một ngôn ngữ lập trình được chỉ định. Mô hình phải tổ chức cơ sở mã, quản lý trạng thái, xử lý lỗi và bổ sung tính năng mới mà vẫn giữ nguyên chức năng hiện có.
Để so sánh các bản triển khai bằng những ngôn ngữ khác nhau, chúng tôi dùng tệp cơ sở dữ liệu làm giao diện chung. Chương trình được đánh giá nhận một cơ sở dữ liệu ban đầu và một truy vấn SQL, sau đó tạo ra cơ sở dữ liệu đã sửa đổi. Chúng tôi dùng bản triển khai SQLite tham chiếu để kiểm tra xem cơ sở dữ liệu đầu ra có nội dung như mong đợi hay không. Nhờ vậy, chúng tôi có thể áp dụng cùng các bài kiểm thử bất kể ngôn ngữ dùng để xây dựng bộ máy cơ sở dữ liệu.
Chúng tôi đã điều chỉnh các bài kiểm thử trong bộ kiểm thử hiện có của SQLite theo định dạng này. Bài đánh giá đo lường lượng chức năng hoạt động được mà mô hình có thể xây dựng trong một phiên lập trình kéo dài, đồng thời báo cáo tỷ lệ vượt qua kiểm thử và chi phí API.
Ở mức nỗ lực suy luận tối đa, GPT‑6 Astra đạt tỷ lệ vượt qua kiểm thử trung bình 87,4% trên 20 ngôn ngữ, tăng từ mức 26,8% của GPT‑5.6 Sol. Kết quả được cải thiện ở mọi ngôn ngữ được kiểm tra, bao gồm COBOL (từ 10,9% lên 72,1%), OCaml (từ 25,6% lên 85,8%), Fortran (từ 21,4% lên 83,5%) và Visual Basic (từ 27,5% lên 89,4%). Astra đạt trên 83% ở 19 trong số 20 ngôn ngữ; COBOL vẫn là ngôn ngữ khó nhất với kết quả 72%.
GPT‑6 Luna là lựa chọn có chi phí thấp hơn và cũng vượt GPT‑5.6 Sol ở mọi ngôn ngữ được kiểm tra. Ở mức nỗ lực suy luận tối đa, mô hình này đạt tỷ lệ vượt qua kiểm thử trung bình 40,3%. Các mức cải thiện bao gồm COBOL (từ 10,9% lên 17,1%), OCaml (từ 25,6% lên 34,1%), Fortran (từ 21,4% lên 31,4%) và Visual Basic (từ 27,5% lên 41,6%). Những cải thiện này đi kèm chi phí API trung bình ước tính là 0,77 USD mỗi mẫu, so với 3,48 USD của GPT‑5.6 Sol, tức thấp hơn khoảng 78%.
Chúng tôi đang công bố cấu hình đánh giá và bộ kiểm thử MultiLangBench trên GitHub(mở trong cửa sổ mới), cùng với kết quả cho từng ngôn ngữ. Các nhà phát triển có thể xem bài đánh giá kiểm tra những gì, xem xét hiệu quả ở các ngôn ngữ họ sử dụng và xác định những hạn chế ảnh hưởng đến công việc của mình.
Bài đánh giá thứ hai yêu cầu các mô hình chuyển chương trình COBOL sang C++, Java, Kotlin, Python hoặc Rust mà vẫn giữ nguyên cách hoạt động của từng chương trình.
Để chuyển đổi thành công, mô hình cần hiểu cả logic nghiệp vụ của chương trình lẫn cách hoạt động đặc thù của ngôn ngữ COBOL. Các chương trình COBOL thường xử lý giao dịch tài chính và hồ sơ nghiệp vụ, trong đó những chi tiết như quy tắc làm tròn và cách xử lý bản ghi bị thiếu phản ánh các yêu cầu nghiệp vụ. Ví dụ, phép toán dấu phẩy cố định của COBOL loại bỏ các chữ số thập phân dư thừa, trừ khi có yêu cầu làm tròn rõ ràng. Nếu bản viết lại làm tròn các giá trị đó thay vì loại bỏ chữ số dư, chương trình có thể chạy không gặp lỗi nhưng lại cho ra kết quả tài chính khác.
Để kiểm tra xem các hành vi này có được giữ nguyên hay không, chúng tôi đánh giá mô hình bằng các bài kiểm thử ẩn, yêu cầu đầu ra quan sát được phải khớp từng byte. Việc chuyển đổi chỉ được coi là thành công khi vượt qua tất cả các bài kiểm thử. Khả năng giữ nguyên hành vi như vậy hữu ích cho các nhóm bảo trì và hiện đại hóa hệ thống cũ. Tuy nhiên, khi áp dụng vào phần mềm đang vận hành thực tế, vẫn cần chuyên gia rà soát và kiểm thử dựa trên các quy tắc nghiệp vụ cùng những thành phần mà hệ thống phụ thuộc vào.
Trong bài đánh giá này, GPT‑6.1 Sol đạt độ chính xác 86,6% ở mức nỗ lực suy luận thấp, so với 5,4% của GPT‑5.6 Sol ở cùng thiết lập, trong khi chi phí API chỉ bằng 61%. Ở mức nỗ lực suy luận cao hơn, độ chính xác đạt 97,9%, gần chạm ngưỡng tối đa của bài đánh giá. Những kết quả đánh giá này cho thấy tiến bộ hướng tới việc chuyển đổi mã chính xác hơn, với chi phí hợp lý hơn cho các nhóm đang hiện đại hóa phần mềm mà doanh nghiệp của họ dựa vào.
Các bài đánh giá này, cùng phản hồi trực tiếp từ nhà phát triển và khách hàng doanh nghiệp, giúp chúng tôi thấy rõ các mô hình đang cải thiện ở đâu và còn hạn chế ở đâu.
Mục tiêu của chúng tôi là giúp mô hình áp dụng các kỹ năng kỹ thuật phần mềm trên nhiều ngôn ngữ hơn: tìm hiểu kho lưu trữ chưa quen thuộc, lập kế hoạch thay đổi, dùng công cụ xây dựng, chạy kiểm thử và gỡ lỗi.
Bạn có thể thử các mô hình mới nhất của chúng tôi qua API cho những tác vụ lập trình bằng ngôn ngữ mà nhóm bạn sử dụng. Phản hồi của bạn về những gì hoạt động tốt, những điểm mô hình còn gặp khó khăn và các ngôn ngữ hoặc quy trình nên được ưu tiên tiếp theo sẽ giúp định hướng cách chúng tôi huấn luyện và đánh giá mô hình, để hỗ trợ tốt hơn cho phần mềm mà bạn dựa vào.





