CursorCore: Ondersteun programmeren door alles uit te lijnen
CursorCore: Assist Programming through Aligning Anything
October 9, 2024
Auteurs: Hao Jiang, Qi Liu, Rui Li, Shengyu Ye, Shijin Wang
cs.AI
Samenvatting
Grote taalmodellen zijn succesvol toegepast op programmeertaken, zoals code-aanvulling, code-invoeging en instructieve codebewerking. Echter blijven deze toepassingen onvoldoende geautomatiseerd en worstelen ze met het effectief integreren van verschillende soorten informatie tijdens het programmeringsproces, waaronder programmeergeschiedenis, huidige code en gebruikersinstructies. In dit werk stellen we een nieuw gesprekskader voor dat deze informatiebronnen uitgebreid integreert, verzamelen we gegevens om onze modellen te trainen en hun prestaties te evalueren. Ten eerste introduceren we een nieuwe benchmark, APEval (Assist Programming Eval), om de prestaties van modellen in programmeerhulptaken uitgebreid te beoordelen en te evalueren hoe goed modellen zich afstemmen op verschillende soorten informatie en de kwaliteit van hun uitvoer. Vervolgens ontwikkelen we voor gegevensverzameling een gegevensgeneratiepijplijn, Programming-Instruct, die trainingsgegevens synthetiseert uit diverse bronnen, zoals GitHub en online beoordelingsplatforms. Deze pijplijn kan automatisch verschillende soorten berichten genereren gedurende het programmeringsproces. Ten slotte genereren we met behulp van deze pijplijn 219K voorbeelden, verfijnen we meerdere modellen en ontwikkelen we de CursorCore-serie. We tonen aan dat CursorCore beter presteert dan andere modellen van vergelijkbare omvang. Dit kader verenigt toepassingen zoals inline chat en geautomatiseerde bewerking, draagt bij aan de vooruitgang van code-assistenten. Code, modellen en gegevens zijn vrij beschikbaar op 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