SelfCodeAlign: Tự căn chỉnh để tạo mã
Author
Venue
NeurIPS 2024
Abstract
Điều chỉnh hướng dẫn là một phương pháp tinh chỉnh có giám sát giúp cải thiện đáng kể khả năng tuân theo hướng dẫn của con người của các mô hình ngôn ngữ lớn (LLMs). Chúng tôi đề xuất SelfCodeAlign, quy trình đầu tiên hoàn toàn minh bạch và linh hoạt để tự động điều chỉnh mã nguồn cho các mô hình ngôn ngữ lớn mà không cần lượng lớn chú thích của con người hoặc quá trình chưng cất. SelfCodeAlign sử dụng cùng một mô hình cơ sở cho quá trình suy luận trong suốt quá trình tạo dữ liệu. Nó trước tiên trích xuất các khái niệm lập trình đa dạng từ các đoạn mã mẫu chất lượng cao để tạo ra các tác vụ mới. Sau đó, nó lấy mẫu nhiều phản hồi cho mỗi tác vụ, ghép mỗi phản hồi với các trường hợp thử nghiệm và kiểm tra chúng trong môi trường sandbox. Cuối cùng, các ví dụ đạt yêu cầu được chọn để tinh chỉnh hướng dẫn. Trong các thí nghiệm chính, chúng tôi sử dụng SelfCodeAlign với CodeQwen1.5-7B để tạo ra bộ dữ liệu gồm 74.000 cặp hướng dẫn-phản hồi. Việc tinh chỉnh trên bộ dữ liệu này dẫn đến một mô hình đạt 67,1% pass@1 trên HumanEval+, vượt qua CodeLlama-70B-Instruct mặc dù nhỏ hơn gấp mười lần. Trên tất cả các bộ dữ liệu thử nghiệm, mô hình được tinh chỉnh này luôn vượt trội so với phiên bản gốc được đào tạo bằng OctoPack, phương pháp tiên tiến nhất trước đây cho việc tinh chỉnh hướng dẫn mà không cần chú thích của con người hoặc chưng cất. Ngoài ra, chúng tôi chứng minh rằng SelfCodeAlign hiệu quả trên các mô hình ngôn ngữ lớn (LLMs) có kích thước đa dạng, từ 3B đến 33B, và rằng các mô hình cơ sở có thể hưởng lợi nhiều hơn từ việc căn chỉnh với phân phối dữ liệu của chính chúng. Chúng tôi tiếp tục xác nhận hiệu quả của từng thành phần trong quy trình của mình, cho thấy SelfCodeAlign vượt trội hơn cả việc chưng cất trực tiếp từ GPT-4o và các phương pháp chưng cất hàng đầu dựa trên GPT-3.5, như OSS-Instruct và Evol-Instruct. SelfCodeAlign cũng đã dẫn đến việc tạo ra StarCoder2-Instruct, mô hình ngôn ngữ lớn (LLM) mã nguồn mở đầu tiên có mã nguồn hoàn toàn minh bạch, được cấp phép theo giấy phép mở và tự điều chỉnh, đạt được hiệu suất lập trình hàng đầu.
