TransCoder: нейросеть переводит код программы на другой язык |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2020-07-28 17:04 TransCoder — это нейросеть, которая переводит код программы с одного языка на другой. Модель не нуждается в размеченных параллельных данных для обучения. На данный момент TransCoder успешно переносит функции на C++, Java и Python 3. Нейросеть обходит существующие открытые и коммерческие программы по переводу кодовой базы. Описание проблемы Перенос кодовой базы с устаревшего языка, как COBOL, на альтернативные современные языки, как Java или C++, является ресурсоемкой задачей. Процесс предполагает наличие экспертизы в обоих языках: исходном и целевом. Что внутри TransCoder TransCoder позволяет облегчить процесс переноса кодовой базы на другой язык. Предыдущие подходы упирались в необходимость наличия параллельного корпуса данных для обучения. TransCoder обходит это ограничение. Модель опирается на исходный код на одном языке. При этом масштабируется на другие языки. Кроме того, исследователи ввели новую метрику для оценки корректности переведенного кода. В качестве архитектуры модели в TransCoder использовали XLM. Для всех языков использовалась одна общая модель. Исследователи обучали TransCoder, учитывая best practices из unsupervised машинного перевода. Оценка работы модели По результатам экспериментов, модель верно переносит более 90% Java функций на C++, 74.8% С++ функций — на Java и 68.7% Java функций — на Python. Для сравнения, платный инструмент корректно переводит 61% функций из C++ на Java. При этом опенсорсное решение справляется с задачей перевода Java функций на C++ с точностью в 38.3%. Источник: neurohive.io Комментарии: |
|