CursorCore : Assister la programmation en alignant tout
CursorCore: Assist Programming through Aligning Anything
October 9, 2024
Auteurs: Hao Jiang, Qi Liu, Rui Li, Shengyu Ye, Shijin Wang
cs.AI
Résumé
Les grands modèles de langage ont été appliqués avec succès aux tâches d'assistance à la programmation, telles que l'auto-complétion du code, l'insertion de code et l'édition de code instructif. Cependant, ces applications restent insuffisamment automatisées et peinent à intégrer efficacement divers types d'informations lors du processus de programmation, y compris l'historique du code, le code actuel et les instructions de l'utilisateur. Dans ce travail, nous proposons un nouveau cadre conversationnel qui intègre de manière exhaustive ces sources d'informations, collectons des données pour entraîner nos modèles et évaluons leurs performances. Tout d'abord, pour évaluer minutieusement l'alignement des modèles avec différents types d'informations et la qualité de leurs sorties, nous introduisons un nouveau banc d'essai, APEval (Assist Programming Eval), pour évaluer de manière exhaustive les performances des modèles dans les tâches d'assistance à la programmation. Ensuite, pour la collecte de données, nous développons un pipeline de génération de données, Programming-Instruct, qui synthétise des données d'entraînement à partir de sources diverses, telles que GitHub et des plateformes de juges en ligne. Ce pipeline peut générer automatiquement divers types de messages tout au long du processus de programmation. Enfin, en utilisant ce pipeline, nous générons 219 000 échantillons, affinons plusieurs modèles et développons la série CursorCore. Nous montrons que CursorCore surpasse les autres modèles de taille comparable. Ce cadre unifie des applications telles que le chat en ligne et l'édition automatisée, contribuant ainsi à l'avancement des assistants de codage. Le code, les modèles et les données sont disponibles gratuitement sur https://github.com/TechxGenus/CursorCore.
English
Large language models have been successfully applied to programming
assistance tasks, such as code completion, code insertion, and instructional
code editing. However, these applications remain insufficiently automated and
struggle to effectively integrate various types of information during the
programming process, including coding history, current code, and user
instructions. In this work, we propose a new conversational framework that
comprehensively integrates these information sources, collect data to train our
models and evaluate their performance. Firstly, to thoroughly evaluate how well
models align with different types of information and the quality of their
outputs, we introduce a new benchmark, APEval (Assist Programming Eval), to
comprehensively assess the performance of models in programming assistance
tasks. Then, for data collection, we develop a data generation pipeline,
Programming-Instruct, which synthesizes training data from diverse sources,
such as GitHub and online judge platforms. This pipeline can automatically
generate various types of messages throughout the programming process. Finally,
using this pipeline, we generate 219K samples, fine-tune multiple models, and
develop the CursorCore series. We show that CursorCore outperforms other models
of comparable size. This framework unifies applications such as inline chat and
automated editing, contributes to the advancement of coding assistants. Code,
models and data are freely available at
https://github.com/TechxGenus/CursorCore.Summary
AI-Generated Summary