The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Facebook развивает TransCoder для перевода кода с одного язы..."
Отправлено Ordu, 07-Окт-20 04:02 
> Полная хрень.

Прежде чем кидаться такими утверждениями о проделанной кем-то работе, стоит поинтересоваться тем, какие конкретно задачи автор решал, и насколько эти задачи актуальны. В новости есть ссылка на научную статью, а в научных статьях принятно об актуальности писать в абстракте (кратко) и во введении. Там же во введении всегда можно найти отсылки к related works, и узнать про то, как данное исследование/данная разработка вписывается в эти related works. И если бы ты открыл эту статью, то ты легко бы нашёл там следующее:

> Migrating an existing codebase to a modern or more efficient language like Java or C++ requires expertise in both the source and target languages, and is often costly. For instance, the Commonwealth Bank of Australia spent around $750 million and 5 years of work to convert its platform from COBOL to Java. Using a transcompiler and manually adjusting the output source code may be a faster and cheaper solution than rewriting the entire codebase from scratch. In natural language, recent advances in neural machine translation have been widely accepted, even among professional translators, who rely more and more on automated machine translation systems. A similar phenomenon could be observed in programming language translation in the future.

Это про востребованность решения. В области, где баксы крутятся сотнями миллионов, работа нацеленная на повышение продуктивности труда и снижение стоимости может оказаться очень прибыльной. При этом, если ты подумаешь, то ты поймёшь, что чем дешевле будет перевод с языка на язык, тем больше таких переводов будет выполняться -- это закон спроса-предложения из экономики. А чем больше переводов тем, потенциально, больше денег.

Правда тут есть интересные утверждения, которые не подкреплены ссылками -- было бы неплохо ссылку на описание того, что именно делал Commonwealth Bank of Australia, и по поводу профессиональных переводчиков полагающихся на поддержку машинного перевода очень хочется ссылку: откуда авторы знают про них? Где-то что-то слышали об этом? Насколько их информация достоверна? Может они на опеннете слышали об этом? Но на опеннете чего только не услышишь.

А насчёт того, что реально было сделано:

• We introduce a new approach to translate functions from a programming language to another,
that is purely based on monolingual source code.

Демонстрация нового подхода, бла-бла-бла... любопытно, конечно, но ни о чём.

• We show that TransCoder successfully manages to grasp complex patterns specific to each
language, and to translate them to other languages.

Вот это уже интереснее: человек мыслит о коде паттернами. Чтобы понять код, программист не столько разглядывает индивидуальные выражения и строчки, сколько пытается ухватить полную картину и переформулировать код в терминах типа "итерация по элементам массива", "поиск элемента в массиве", "операция fold/filter/...", инициализация... Человеку, при наличии некоторого опыта, это даётся легко, а вот алгоритмы вечно с этим имеют огромные проблемы. В то же время нейросетки отличаются от алгоритмов тем, что им выявление паттернов даётся довольно просто.

• We show that a fully unsupervised method can outperform commercial systems that leverage
rule-based methods and advanced programming knowledge.

Не совсем ясно, что имеется в виду под "advanced programming knowledge" -- но парой абзацев выше можно найти "Currently, the majority of transcompilation tools are rule-based; [...] they apply handcrafted rewrite rules. Creating them requires a lot of time, and advanced knowledge in both the source and target languages." То есть фишка в том, что для создания rule-based системы нужны дорогущие специалисты, которые шарят в исходном и целевом языке. С системой же на нейросетках можно сэкономить, посадив вместо команды таких специалистов студента, который будет принимать багрепорты в виде примеров кода, которые плохо транслируются, и загонять их в набор сэмплов для обучения нейросетки. Такого студента можно за месяц научить выполнять все эти работы и платить ему не $200k в месяц, а $50k. Это круто, резко скидывает стоимость проекта.

Но стоимость была бы не важна, если бы не "outperform commercial systems", что уже серьёзная заявка. Если коммерческие системы, которые зарабатывают денег тем, чтобы такие системы пилить и применять, могут проиграть конкуренцию нейросетке, которую может натренировать любой Васян, скачав код с github'а и прикупив себе парочку видеокарт, то это очень серьёзно. Это потенциальный game changer.

• We build and release a validation and a test set composed of 852 parallel functions in 3
languages, along with unit tests to evaluate the correctness of generated translations.

Что говорит нам о том, что эта статья не просто теоретическая статья, но вполне практическая статья, где можно надеятся найти методологию оценки/контроля качества перевода кода, которая на практике важнее, чем автоматизация перевода.

• We will make our code and pretrained models publicly available.

Ок. Это значит, что можно поиграться, и оценить перспективы "на глаз", прежде чем тратить время на серьёзное погружение в тему.

> Но до этого нынешние нейросети никогда, то есть ни завтра, ни послезавтра, ни через 100 лет не дорастут.

Такого рода утверждения в голове у человека возникают примерно так: явление X никогда не наблюдалось в прошлом, следовательно, по принципу индукции, явление X никогда не будет наблюдаться в будущем. Но фишка в том, что индукция (не матиндукция, а индукция как инструмент естественных наук) -- это довольно хитрая штука, и применять её надо аккуратно. Люди, чтобы не забывать об этом, придумали мудрое высказывание "всё когда-нибудь случается в первый раз". Оно не покрывает всех граблей применения индукции, но иногда всё же полезно.

Собственно я это к тому, что если ты не будешь думать о том, что ты думаешь, как ты думаешь, и зачем ты это думаешь, то ты продолжишь думать о всякой туфте, доказывая никому не нужные утверждения, причём потенциально ложные утверждения. Ведь ты бы мог думать совершенно другие мысли. Например о том, что у этой разработки есть потенциал изменить игровую площадку, на которой разворачивается бизнес по переписыванию кода. Такие изменения игровых площадок дают возможность новым игрокам присоединиться к игре, и одним из таких игроков можешь быть ты. Может быть тебе это неинтересно -- но это другой вопрос: если ты не научишься видеть такого рода изменения игровых площадок, у тебя не будет возможности заметить вовремя такие изменения, которые тебе будут интересны, и ты будешь узнавать об интересных тебе возможностях задним числом, то есть они для тебя будут упущенными возможностями.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру