Tuy nhiên, các nhà nghiên cứu từ MIT , Đại học McGill , ETH Zurich , Đại học Johns Hopkins , Yale và Viện Trí tuệ nhân tạo Mila-Quebec đã phát triển một phương pháp mới để đảm bảo rằng các mã do AI tạo ra chính xác và hữu ích hơn. Phương pháp này bao gồm nhiều ngôn ngữ lập trình khác nhau và hướng dẫn mô hình ngôn ngữ lớn (LLM) tuân thủ các quy tắc của từng ngôn ngữ.
Nhóm nghiên cứu nhận thấy rằng bằng cách áp dụng các phương pháp lấy mẫu mới, các mô hình AI có thể được hướng dẫn tuân theo các quy tắc ngôn ngữ lập trình và thậm chí nâng cao hiệu suất của các mô hình ngôn ngữ nhỏ (SLM), thường được sử dụng để tạo mã, vượt trội hơn so với các mô hình ngôn ngữ lớn.
Trong bài báo , các nhà nghiên cứu đã sử dụng phương pháp Monte Carlo tuần tự (SMC) để “giải quyết một số vấn đề phân tích ngữ nghĩa đầy thách thức, hướng dẫn tạo dữ liệu bằng phân tích tĩnh và động gia tăng”. Monte Carlo tuần tự đề cập đến một họ các thuật toán giúp tìm ra giải pháp cho các vấn đề lọc.
João Loula, đồng tác giả chính của bài báo, cho biết trong một cuộc phỏng vấn với tờ báo của trường MIT rằng phương pháp này “có thể cải thiện trợ lý lập trình, phân tích dữ liệu hỗ trợ AI và các công cụ khám phá khoa học”. Nó cũng có thể cắt giảm chi phí tính toán và hiệu quả hơn các phương pháp xếp hạng lại.
Các nhà nghiên cứu lưu ý rằng mã do AI tạo ra có thể mạnh mẽ, nhưng nó cũng thường có thể dẫn đến mã bỏ qua các quy tắc ngữ nghĩa của ngôn ngữ lập trình. Các phương pháp khác để ngăn chặn điều này có thể làm méo mó các mô hình hoặc quá tốn thời gian.
Phương pháp của họ khiến LLM tuân thủ các quy tắc ngôn ngữ lập trình bằng cách loại bỏ các đầu ra mã có thể không hoạt động ở giai đoạn đầu của quá trình và “phân bổ nỗ lực cho các đầu ra có nhiều khả năng hợp lệ và chính xác hơn”.
Thích ứng SMC với việc tạo mã
Các nhà nghiên cứu đã phát triển một kiến trúc giúp SMC có thể tạo mã “trong những ràng buộc cú pháp và ngữ nghĩa đa dạng”.
Các nhà nghiên cứu cho biết trong bài báo: “Không giống như nhiều khuôn khổ trước đây để giải mã bị ràng buộc, thuật toán của chúng tôi có thể tích hợp các ràng buộc không thể được đánh giá gia tăng trên toàn bộ vốn từ vựng mã thông báo, cũng như các ràng buộc chỉ có thể được đánh giá theo các khoảng thời gian không đều trong quá trình tạo”.
Các tính năng chính của việc điều chỉnh lấy mẫu SMC để tạo mô hình bao gồm phân phối đề xuất trong đó việc lấy mẫu từng mã thông báo được hướng dẫn bởi các ràng buộc rẻ, trọng số quan trọng để hiệu chỉnh sai lệch và lấy mẫu lại để phân bổ lại nỗ lực tính toán cho các thế hệ một phần.

Các nhà nghiên cứu lưu ý rằng mặc dù SMC có thể hướng dẫn các mô hình theo hướng mã chính xác và hữu ích hơn, nhưng họ thừa nhận rằng phương pháp này có thể có một số vấn đề.
“Mặc dù lấy mẫu quan trọng giải quyết được một số thiếu sót của giải mã cục bộ, nhưng nó cũng có một điểm yếu lớn: các hiệu chỉnh trọng số và tiềm năng tốn kém không được tích hợp cho đến khi một chuỗi hoàn chỉnh được tạo ra từ đề xuất. Mặc dù thông tin quan trọng về việc liệu một chuỗi có thể đáp ứng một ràng buộc hay không thường có sẵn sớm hơn nhiều và có thể được sử dụng để tránh lượng lớn tính toán không cần thiết”, họ cho biết.
Kiểm tra mô hình
Để chứng minh lý thuyết của mình, Loula và nhóm của ông đã tiến hành các thí nghiệm để xem liệu việc sử dụng SMC để thiết kế mã chính xác hơn có hiệu quả hay không.
Những thí nghiệm này là:
- Tạo mã Python trên các tác vụ Khoa học dữ liệu, sử dụng Llama 3 70B để mã hóa từng dòng và thử nghiệm các phiên bản đầu tiên
- Tạo Text-to-SQL với Llama 3 8B- Hướng dẫn
- Suy luận mục tiêu trong các nhiệm vụ lập kế hoạch để dự đoán điều kiện mục tiêu của tác nhân và cũng sử dụng Llama 3 8B
- Tổng hợp phân tử để khám phá thuốc
Họ nhận thấy rằng việc sử dụng SMC cải thiện các mô hình ngôn ngữ nhỏ, nâng cao độ chính xác và độ mạnh mẽ, đồng thời hoạt động tốt hơn các mô hình lớn hơn.
Tại sao nó lại quan trọng
Các mô hình AI đã giúp các kỹ sư và các lập trình viên khác làm việc nhanh hơn và hiệu quả hơn. Nó cũng tạo ra một loại kỹ sư phần mềm hoàn toàn mới: lập trình viên rung cảm . Nhưng đã có những lo ngại về chất lượng mã, thiếu hỗ trợ cho mã hóa phức tạp hơn và chi phí tính toán cho việc tạo mã đơn giản.
Các phương pháp mới, chẳng hạn như điều chỉnh SMC, có thể giúp mã hóa hỗ trợ AI hữu ích hơn và cho phép các kỹ sư tin tưởng hơn vào mã do các mô hình tạo ra.
Các công ty khác đã khám phá những cách để cải thiện mã do AI tạo ra. AI và Agentica đã cùng nhau phát hành DeepCoder-14B , khai thác ít tham số hơn. Google cũng đã cải thiện tính năng Code Assist của mình để giúp nâng cao chất lượng mã.