CursorCore: Assistere alla programmazione attraverso l'allineamento di qualsiasi cosa
CursorCore: Assist Programming through Aligning Anything
October 9, 2024
Autori: Hao Jiang, Qi Liu, Rui Li, Shengyu Ye, Shijin Wang
cs.AI
Abstract
I modelli linguistici di grandi dimensioni sono stati applicati con successo a compiti di assistenza alla programmazione, come il completamento del codice, l'inserimento del codice e la modifica istruzionale del codice. Tuttavia, queste applicazioni rimangono insufficientemente automatizzate e faticano ad integrare efficacemente vari tipi di informazioni durante il processo di programmazione, tra cui la storia del codice, il codice attuale e le istruzioni dell'utente. In questo lavoro, proponiamo un nuovo quadro conversazionale che integra in modo esaustivo queste fonti di informazione, raccogliamo dati per addestrare i nostri modelli ed valutarne le prestazioni. In primo luogo, per valutare approfonditamente quanto bene i modelli si allineano con diversi tipi di informazioni e la qualità delle loro uscite, introduciamo un nuovo benchmark, APEval (Assist Programming Eval), per valutare in modo esaustivo le prestazioni dei modelli nei compiti di assistenza alla programmazione. Successivamente, per la raccolta dei dati, sviluppiamo un flusso di generazione dei dati, Programming-Instruct, che sintetizza dati di addestramento da fonti diverse, come GitHub e piattaforme di giudizio online. Questo flusso può generare automaticamente vari tipi di messaggi durante il processo di programmazione. Infine, utilizzando questo flusso, generiamo 219K campioni, ottimizziamo diversi modelli e sviluppiamo la serie CursorCore. Dimostriamo che CursorCore supera altri modelli di dimensioni comparabili. Questo quadro unifica applicazioni come la chat in linea e la modifica automatizzata, contribuendo all'avanzamento degli assistenti di codifica. Codice, modelli e dati sono liberamente disponibili su 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.