Giúp AI giải quyết vấn đề tốt hơn trong các cuộc thi viết mã

Giúp AI giải quyết vấn đề tốt hơn trong các cuộc thi viết mã

Phỏng vấn Khả năng giải quyết các vấn đề lập trình cạnh tranh của các mô hình ngôn ngữ lớn thương mại có thể được tăng cường đáng kể bằng cách hướng dẫn cẩn thận các quy trình của nó thông qua kỹ thuật nhanh chóng thông minh.

Để chứng minh điều này, Codium AI, có trụ sở tại Israel, đã xây dựng AlphaCodium và phát hành phần mềm trên GitHub trong tháng này. AlphaCodium bản chất không phải là một mô hình ngôn ngữ lớn. Thay vào đó, đây là một phương pháp cải thiện khả năng giải quyết vấn đề của các công cụ AI tổng hợp như GPT-4 bằng cách sử dụng cái mà CEO Itamar Friedman gọi là “kỹ thuật dòng chảy”.

Đầu tiên, một câu hỏi lập trình được đưa vào mô hình ngôn ngữ lớn cơ bản và được yêu cầu mô tả và tóm tắt vấn đề. Thông tin đó sau đó sẽ hướng dẫn cách bắt đầu giải quyết vấn đề. AlphaCodium xác định mọi thứ, chẳng hạn như đầu vào và đầu ra phải như thế nào khi đưa ra giải pháp. Tất cả điều này được chỉ định bằng ngôn ngữ tự nhiên.

Sau đó, mô hình bắt đầu tạo mã phù hợp với các thông số kỹ thuật mà nó vừa mô tả. Các cuộc thi lập trình yêu cầu người thi viết mã theo thông số kỹ thuật thường cung cấp các bài kiểm tra cho thấy tập lệnh sẽ xuất ra nội dung gì cho một đầu vào nhất định. AlphaCodium tạo ra nhiều trường hợp thử nghiệm hơn và sau đó chạy các giải pháp khả thi để kiểm tra xem mã có hoạt động như mong đợi hay không.

Nếu nó không khớp với bất kỳ kết quả đầu ra nào được xác định trong bất kỳ thử nghiệm nào, mô hình sẽ tạo ra các giải pháp khác nhau cho đến khi chúng vượt qua tất cả các thử nghiệm hoặc thất bại. Lỗi có thể phát sinh khi mã của nó không biên dịch được hoặc sai.

Bạn có thể xem các bước khác nhau trong quy trình kỹ thuật dòng chảy trong sơ đồ bên dưới. Phần lớn nó được chia thành giai đoạn tiền xử lý, trong đó hệ thống phân tích vấn đề bằng ngôn ngữ tự nhiên và giai đoạn lặp mã, nơi hệ thống chạy các giải pháp khả thi chống lại các thử nghiệm công khai và do AI tạo ra.

bảng chữ cái

Tất cả các bước tổng quát hướng dẫn AlphaCodium tạo mã để giải quyết vấn đề

Friedman nói: “Chúng tôi không giải quyết vấn đề rồi đi đến mô hình và nói với nó rằng: 'Này, vui lòng đưa ra giải pháp cuối cùng'. Đăng ký. “Chúng tôi yêu cầu người mẫu vui lòng xác định lại vấn đề này bằng các gạch đầu dòng.” Việc đơn giản hóa nó và chia mọi thứ thành nhiều phần giúp mô hình sau này dễ dàng tạo mã cho các phần khác nhau của thuật toán.

Về cơ bản, kỹ thuật dòng chảy là một quy trình hướng dẫn quá trình giải quyết vấn đề của mô hình bằng cách chia nó thành các bước được xác định rõ ràng. Chúng tôi được biết, việc nhắc nó “chia mã được tạo thành các hàm phụ nhỏ, với các tên và chức năng có ý nghĩa”, sẽ dẫn đến ít lỗi hơn và giúp mã dễ kiểm tra và sửa lỗi hơn.

Friedman nói thêm: “Về cơ bản, chúng tôi đã dành 95% thời gian cho kỹ thuật dòng chảy và chỉ 5% cho kỹ thuật kịp thời và chúng tôi không thay đổi lời nhắc cho mỗi [bước]”.

Các kỹ sư từ Codium đã kiểm tra hiệu suất mô hình của họ đối với hàng trăm vấn đề được sử dụng trong các phần xác minh và kiểm tra của bộ dữ liệu CodeForces do Google DeepMind biên soạn hai năm trước. Họ cho rằng AlphaCodium giải quyết các vấn đề về mã hóa tốt hơn các mô hình AlphaCode và AlphaCode2 của Google DeepMind.

Trong kết quả được báo cáo trong arXiv giấy [PDF], AlphaCodium có thể trả lời chính xác 44% câu hỏi so với 24% của AlphaCode, trong khi chỉ tạo ra 107 giải pháp so với 165 giải pháp được AlphaCode chọn cho 29 vấn đề xác thực. Điều thú vị là khoảng cách đã được thu hẹp khi có 28 bài kiểm tra mà AlphaCodium giải được XNUMX% so với XNUMX% của AlphaCode.

AlphaCode chọn ra mười giải pháp hứa hẹn nhất trong số hàng chục nghìn hoặc hàng trăm nghìn tập lệnh có thể mà nó tạo ra – khiến cho việc chạy nó đòi hỏi nhiều tính toán.

Friedman nói: “Chúng tôi tập trung nhiều hơn vào toàn bộ quy trình thử nghiệm. “Đối với [Google], họ đã làm rất nhiều việc cho thế hệ này. Họ cố gắng tạo ra hàng trăm tùy chọn khác và chúng tôi tạo ra rất ít giải pháp, nhưng hãy thử nghiệm chúng thật kỹ để hướng dẫn cải tiến mã.”

Ông nói thêm rằng AlphaCodium tốt hơn một chút so với mẫu AlphaCode2 mới nhất của Google DeepMind, hiệu quả hơn 10,000 lần so với mẫu AlphaCode tiền nhiệm của nó.

alphacodium_2

AlphaCodium so sánh với các mô hình tiên tiến khác như thế nào về độ chính xác và hiệu quả

Friedman cho biết ông tin tưởng rằng hiệu suất của AlphaCodium không phải do rò rỉ dữ liệu, trong đó mô hình cơ bản đã được đào tạo và thử nghiệm trên các vấn đề tương tự. Phiên bản GPT-4 cung cấp năng lượng cho AlphaCodium đã được đào tạo về văn bản được lấy từ Internet cho đến tháng 2021 năm XNUMX, trong khi các vấn đề mà nó kiểm tra hệ thống của nó được lấy từ bộ dữ liệu CodeForces nói trên được phát hành muộn hơn nhiều.

Tuy nhiên, một so sánh tốt hơn giữa các táo để đánh giá quy trình kỹ thuật dòng chảy là xem xét khả năng của GPT-4 trong việc giải quyết những câu hỏi tương tự đó khi có và không áp dụng AlphaCodium. GPT-4 cũ đơn giản chỉ có thể trả lời chính xác lần lượt 19 và 12 phần trăm các vấn đề trong bộ xác thực và kiểm tra, so với 44 và 29 phần trăm của biến thể chạy bằng AlphaCodium.

Nói tóm lại, có vẻ như việc triển khai một quy trình cẩn thận tạo ra dữ liệu bổ sung để hướng dẫn cách tạo mã và cải thiện quy trình thử nghiệm có thể hiệu quả hơn việc cố gắng đào tạo một mô hình ngôn ngữ lớn từ đầu.

Codium gần đây đã phát hành một công cụ mới để hỗ trợ các nhà phát triển Python, những người hiện có thể gọi AlphaCodium để trực tiếp giải quyết vấn đề mã hóa trong IDE của họ. Bạn có thể chơi với nó đây. ®

Dấu thời gian:

Thêm từ Đăng ký