ChatPaper.aiChatPaper

Ядро Курсора: Помощь в программировании путем выравнивания любых элементов.

CursorCore: Assist Programming through Aligning Anything

October 9, 2024
Авторы: Hao Jiang, Qi Liu, Rui Li, Shengyu Ye, Shijin Wang
cs.AI

Аннотация

Большие языковые модели успешно применялись в задачах программирования, таких как автозавершение кода, вставка кода и редактирование инструкционного кода. Однако эти приложения остаются недостаточно автоматизированными и испытывают трудности с эффективной интеграцией различных типов информации во время процесса программирования, включая историю кодирования, текущий код и инструкции пользователя. В данной работе мы предлагаем новую конверсационную структуру, которая всесторонне интегрирует эти источники информации, собираем данные для обучения наших моделей и оцениваем их производительность. Во-первых, чтобы тщательно оценить, насколько хорошо модели соответствуют различным типам информации и качеству их выводов, мы представляем новый бенчмарк, APEval (Assist Programming Eval), для всесторонней оценки производительности моделей в задачах программистской помощи. Затем, для сбора данных, мы разрабатываем конвейер генерации данных, Programming-Instruct, который синтезирует обучающие данные из различных источников, таких как GitHub и платформы онлайн-судей. Этот конвейер может автоматически генерировать различные типы сообщений на протяжении процесса программирования. Наконец, используя этот конвейер, мы генерируем 219 тыс. образцов, настраиваем несколько моделей и разрабатываем серию CursorCore. Мы показываем, что CursorCore превосходит другие модели сопоставимого размера. Эта структура объединяет приложения, такие как встроенный чат и автоматическое редактирование, способствуя развитию помощников по кодированию. Код, модели и данные доступны по адресу 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

PDF132November 16, 2024