Hiện nay, chúng ta đang chứng kiến sự gia tăng các giải pháp khác nhau được đưa ra liên quan đến việc tạo mã bằng trí tuệ nhân tạo (AI), và lĩnh vực xử lý ngôn ngữ tự nhiên (NLP) đã mở đường cho một loạt các AI tạo mã trong nhiều ngôn ngữ lập trình khác nhau.
Trong số đó, chúng ta có thể kể đến GitHub Copilot, AlphaCode và Codex, và giờ đây chúng ta có thể bổ sung thêm một giải pháp mới từ các nhà nghiên cứu tại Đại học Carnegie Mellon, những người gần đây đã giới thiệu "PolyCoder", một trình tạo mã dựa trên mô hình ngôn ngữ GPT-2 của OpenAI được huấn luyện trên cơ sở dữ liệu mã 249 GB bằng 12 ngôn ngữ lập trình.
Giới thiệu về PolyCoder
Các tác giả của PolyCoder tuyên bố rằng phần mềm này có khả năng viết mã C với độ chính xác cao hơn bất kỳ mô hình nào đã biết, kể cả Codex.
Trí tuệ nhân tạo tạo mã, có khả năng viết mã nguồn bằng nhiều ngôn ngữ lập trình khác nhau chỉ từ một lời nhắc, hứa hẹn sẽ giảm chi phí phát triển phần mềm đồng thời cho phép các nhà phát triển tập trung vào các nhiệm vụ sáng tạo và ít lặp đi lặp lại hơn.
PolyCoder được huấn luyện bằng dữ liệu từ một số kho lưu trữ GitHub, bao gồm 12 ngôn ngữ lập trình phổ biến: C, C#, C++, Go, Java, JavaScript, PHP, Python, Ruby, Rust, Scala và TypeScript.
Tập dữ liệu chưa được lọc có tổng dung lượng 631 GB và 38,9 triệu tệp. Nhóm nghiên cứu cho biết họ đã chọn huấn luyện PolyCoder với GPT-2 do hạn chế về ngân sách. PolyCoder được cung cấp dưới dạng mã nguồn mở, và các nhà nghiên cứu hy vọng nó có thể dân chủ hóa nghiên cứu trong lĩnh vực tạo mã AI, lĩnh vực vốn từ trước đến nay vẫn do các công ty được đầu tư mạnh thống trị.
Các nhà nghiên cứu tin rằng PolyCoder hoạt động tốt hơn các mô hình khác trong việc tạo mã bằng ngôn ngữ C. Tuy nhiên, Codex luôn vượt trội hơn nó trong các ngôn ngữ khác. "PolyCoder vượt trội hơn đáng kể so với Codex và tất cả các mô hình khác trong ngôn ngữ C."
“Khi Copilot ra mắt trên GitHub vào mùa hè năm ngoái, rõ ràng là các mô hình mã ngôn ngữ rất lớn này có thể rất hữu ích trong việc trợ giúp các nhà phát triển và tăng năng suất của họ. Nhưng không có mô hình nào gần với quy mô đó được công bố rộng rãi ", các nhà nghiên cứu nói với VentureBeat qua email. “Vì vậy [PolyCoder] bắt đầu với việc Vincent cố gắng tìm ra đâu là mô hình lớn nhất có thể được đào tạo trên máy chủ phòng thí nghiệm của chúng tôi, cuối cùng là 2700 tỷ thông số… và mô hình đó là một giải đấu vượt trội so với các mô hình hướng mã khác mà chúng tôi có . đã được công bố rộng rãi vào thời điểm đó. "
“ Khi chỉ so sánh các mô hình mã nguồn mở, PolyCoder hoạt động tốt hơn mô hình GPT-Neo 2.7B có kích thước tương đương trong các ngôn ngữ C, JavaScript, Rust, Scala và TypeScript,” họ lưu ý. “Trong 11 ngôn ngữ còn lại, tất cả các mô hình mã nguồn mở khác, bao gồm cả mô hình của chúng tôi, đều kém hơn đáng kể (độ phức tạp cao nhất) so với Codex,” các nhà nghiên cứu của CMU nói thêm.
Với điều này, PolyCoder được định vị là một giải pháp rất thú vị, vì trong khi các phòng thí nghiệm nghiên cứu như OpenAI của Elon Musk và DeepMind của Alphabet đã phát triển AI tạo mã mạnh mẽ, thì nhiều hệ thống thành công nhất lại không có sẵn trong mã nguồn mở. Các công ty có thu nhập thấp không có khả năng tiếp cận nó và tình trạng này hạn chế việc nghiên cứu của họ trong lĩnh vực này.
Ví dụ: dữ liệu đào tạo từ OpenAI Codex, hỗ trợ tính năng Copilot của GitHub, đã không được công khai, ngăn cản các nhà nghiên cứu tinh chỉnh mô hình AI hoặc nghiên cứu một số khía cạnh của nó, chẳng hạn như khả năng tương tác.
Các nhà nghiên cứu cho biết: “Các công ty công nghệ lớn không phát hành công khai các mô hình của họ, điều này thực sự đang kìm hãm nghiên cứu khoa học và quá trình dân chủ hóa các mô hình mã ngôn ngữ lớn như vậy”. “Ở một mức độ nào đó, chúng tôi hy vọng rằng những nỗ lực mã nguồn mở của chúng tôi sẽ thuyết phục những người khác cũng làm như vậy. Nhưng vấn đề lớn là cộng đồng có thể tự đào tạo những người mẫu này. Mô hình của chúng tôi đã đẩy giới hạn những gì bạn có thể đào tạo trên một máy chủ duy nhất - bất kỳ thứ gì lớn hơn đều yêu cầu một nhóm máy chủ, điều này làm tăng đáng kể chi phí ”.
Cuối cùng, nếu bạn muốn tìm hiểu thêm về vấn đề này , bạn có thể xem chi tiết tại liên kết sau.