fbpx
  • Deep TabNine: инструмент на нейросетях, который помогает писать код

    TabNine — это инструмент для автодополнения кода. Разработчики обучили GPT-2 на 2-х миллионах файлов с GitHub. Текущая версия работает для Python, Java, Haskell и C++. Чтобы получить доступ к бета-версии, необходимо зарегистрироваться по ссылке.

    Новость о GPT-2 была громкой среди NLP-исследователей и вне сообщества, потому что модель показала результаты, схожие с человеческими, на задаче генерации текста. Недавно исследовательская компания HuggingFace открыла свою библиотеку с предобученными state-of-the-art моделями для NLP.  Среди них — GPT-2.

    Несмотря на успехи в глубоком обучении, на текущий момент инструменты для разработчиков чаще всего не задействуют глубокое обучение для оптимизации написания кода.

    Что внутри TabNine

    Данные для обучения модели разработчики собрали с открытых репозиториев на GitHub. Во время обучения модель должна была предсказывать следующий токен на основе предыдущих токенов. В NLP токен — это единица анализа текста. Deep TabNine может использовать тонкие подсказки, которые не могут уловить существующие инструменты. Например, система распознает разные типы выходных данных у методов app.get_user() и app.get_users().

    Пример распознавания типов выходных данных

    Deep TabNine основывается на GPT-2, которая использует Transformer архитектуру. Эта архитектура изначально разрабатывалась для решения проблем в обработке естественного языка. Задачи моделирования кода и моделирования естественного языка схожи по подходам, которые применяются для их решения. Это связано с структурированностью программного языка и последовательностью кода.