CursorCore: Unterstützung der Programmierung durch Ausrichtung von allem
CursorCore: Assist Programming through Aligning Anything
October 9, 2024
Autoren: Hao Jiang, Qi Liu, Rui Li, Shengyu Ye, Shijin Wang
cs.AI
Zusammenfassung
Große Sprachmodelle wurden erfolgreich auf Programmieraufgaben wie Code-Vervollständigung, Code-Einfügung und instruktive Code-Bearbeitung angewendet. Diese Anwendungen sind jedoch noch unzureichend automatisiert und kämpfen damit, verschiedene Arten von Informationen während des Programmierprozesses effektiv zu integrieren, einschließlich des Code-Verlaufs, des aktuellen Codes und der Benutzeranweisungen. In dieser Arbeit schlagen wir einen neuen konversationellen Rahmen vor, der diese Informationsquellen umfassend integriert, sammeln Daten zur Schulung unserer Modelle und bewerten deren Leistung. Zunächst führen wir zur gründlichen Bewertung, wie gut die Modelle mit verschiedenen Arten von Informationen übereinstimmen und die Qualität ihrer Ausgaben, einen neuen Benchmark ein, APEval (Assist Programming Eval), um die Leistung der Modelle bei Programmierunterstützungsaufgaben umfassend zu bewerten. Dann entwickeln wir zur Datensammlung eine Daten-Generierungspipeline, Programming-Instruct, die Trainingsdaten aus verschiedenen Quellen wie GitHub und Online-Judge-Plattformen synthetisiert. Diese Pipeline kann automatisch verschiedene Arten von Nachrichten während des Programmierprozesses generieren. Schließlich generieren wir mithilfe dieser Pipeline 219K Beispiele, feinabstimmen mehrere Modelle und entwickeln die CursorCore-Serie. Wir zeigen, dass CursorCore andere Modelle vergleichbarer Größe übertrifft. Dieser Rahmen vereint Anwendungen wie Inline-Chat und automatisierte Bearbeitung und trägt zur Weiterentwicklung von Code-Assistenten bei. Code, Modelle und Daten sind frei verfügbar unter 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