AIを使用してC++、Java、Pythonコードを翻訳し、最大成功率は80.9%です。

AIを使用してC++、Java、Pythonコードを翻訳し、最大成功率は80.9%です。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。

少し前にアメリカが60歳のプログラマーを募集していたことを覚えていますか?それはすべて、プログラミング言語の進化が速すぎるからです。

COVID-19パンデミックの影響で、米国の一部地域では失業給付システムがパンク状態に陥っており、これらのシステムは古い言語であるCOBOLで書かれています。

[[329480]]

しかし、現在世界では C/C++、Java、Python が主流となっており、 COBOL プログラムを Python に変換することは極めて困難です。

遠い過去は言うまでもなく、Python 2 は段階的に廃止され、古いプログラムを手動で Python 3 に変換することも大規模なプロジェクトです。

AIは自然言語を翻訳できるので、プログラミング言語も翻訳できるはずです。

Facebook もそう考えており、最近、プログラミング言語を翻訳する AI であるTransCoderを提案しました。これにより、 C++JavaPython間の翻訳が可能になりました。

[[329481]]

翻訳されたプログラムの成功率は最大 80.9% に達します。

さらに、TransCoder は教師なし学習アルゴリズムであるため、トレーニングに大量のラベル付きプログラミング コード データセットを必要としません。

この技術が実用化されれば、プログラマーにとって大きな恩恵となるでしょう!

著者の一人であるギヨーム・ランプル氏がツイッターで発表した後、この論文がすぐに話題になったのも不思議ではない。

プログラミング言語を翻訳する原理は何ですか?

TransCoder は、for、while、if などのキーワードや一般的な数学演算子など、プログラミング言語の機能を最大限に活用します。

次の図は、C++、Java、Python キーワードの埋め込みを示しています。同様のコンテキストで使用される異なるプログラミング言語のキーワードは、埋め込み空間で非常に近くなります。

たとえば、Python の except と Java および C++ の catch はどちらも例外をキャッチするために使用され、非常によく似た埋め込み空間の場所にマッピングされます。

マッピングの実装 (map と dict)、文字列から文字配列への変換 (c_str と toCharArray)、long、int、Integer などの同様の変数型でも、同じ現象が見られます。

では、上記のキーワードの埋め込みはどのように取得されるのでしょうか?

Facebook は、プログラミング言語の教師なし機械翻訳を実現するための 3 つの原則を提案しました。

まず、モデルは、自然言語の空欄補充問題に多少似ている、クロスリンガルマスク言語モデル ( MLM ) 前処理によって初期化されます。その結果、同じ命令を表現するコード スニペットは、プログラミング言語に関係なく同じ表現にマッピングされます。

2 つ目はノイズ除去自動エンコーディングです。これは、ノイズの多いデータが入力されても常に有効なシーケンスを生成するようにデコーダーをトレーニングし、入力ノイズに対するエンコーダーの堅牢性を向上させます。

最後に、バックトランスレーションがあり、これによりモデルはトレーニングに使用できる並列データを生成できます。 Python から C++ へのモデルが改善されるたびに、C++ から Python へのモデルのより正確なデータが生成され、その逆も同様です。

上記の手順により、TransCoder はトレーニング後に前述のクロスリンガル埋め込みを取得します。

TransCoder が各言語固有の構文、データ構造、関数ライブラリ、メソッドを正常に理解していることを確認しました。

上の図では、Java と C++ に特有の三項演算子X ? A : Bが示されていますが、これは Python に翻訳するとif X then A else B になります。

以下は、Python から C++ への変換の例です。 TransCoder は、変数と関数の戻り値の型を推測し、Python の deque() コンテナを C++ deque<> の同様の実装にマッピングし、Python の角括弧、pop、append メソッドの代わりに C++ の front、back、pop_back、push_back メソッドを使用して deque 内の要素を取得および挿入します。

実験結果

Facebook は TransCoder をトレーニングするために、数百億のトークンを含む GitHub 上の 280 万のオープンソース コード リポジトリを検索しました。

次に、GeeksforGeeks プラットフォームにアクセスして翻訳結果を確認します。このプラットフォームは、さまざまなコーディングの問題を収集し、複数のプログラミング言語でソリューションを提供します。

自然言語翻訳とは異なり、コード翻訳では逐語的な比較は必要ないため、翻訳されたコードと参照コードとの重複は実際には非常に少なくなります。たとえば、C++ から Java へのコードは Ground Truth と 3.1% しか一致しません。

さらに、NLP 翻訳における BLEU は、実際のコードと参照コード間の文法上の違いしか表せないため、コード翻訳の測定基準としては適していません。

したがって、テスト後に翻訳されたコードが参照コードと同じ出力を生成できるかどうかを示す精度を計算するという新しいメトリックが必要です。

この標準を使用すると、C++ から Java コードの精度は 60.9% になりますが、Java から C++ コードの精度は 80.9% になります。

AI コード生成システムを開発しているのは Facebook だけではありません。少し前の Microsoft Build カンファレンスで、OpenAI は GitHub データでトレーニングされ、注釈のみに基づいて対応する関数のコードを生成できるモデルを実演しました。

TransCoder はそれほどスマートではありませんが、今日のコンピュータ技術の急速な発展を考えると、次に人気の音声が何になるかは誰にもわかりません。TransCoder を使用すると、少なくともコードを移植することはそれほど難しくありません。

おそらく、米国の社会保障制度の COBOL はこれに依存しているのでしょう。

論文の宛先:

出典: arxiv.org

<<:  華中大学が主導する99ページの報告書は、人間とコンピュータの相互作用の発展状況と将来の動向を明らかにしている。

>>:  会話型ロボットをよりスマートにするために製品設計を最適化するにはどうすればよいでしょうか?

ブログ    
ブログ    

推薦する

2021年には、人工知能が私たちの生活にさらに統合されるでしょう。これは何を意味するのでしょうか?

人工知能の歴史は、アラン・チューリングがチューリングテストを発明した 1950 年代にまで遡ります。...

AIIAがAIチップベンチマークの第一ラウンドの結果を発表

3月6日、国際電気通信連合と中国情報通信研究院が共催し、人工知能産業発展連盟(AIIA)とZTEが主...

中国がAI技術の輸出を制限! TikTokアルゴリズムの名前が挙がり、売却または制限される

[[339978]]米国のTikTok狩りは続く。 8月27日、ByteDanceがTikTokの北...

企業はビッグデータ アルゴリズムを使用して効果的なリンクを構築できますか?

ビッグデータは人々にとって巨大な概念であるようです。しかし、多くの企業がすでに業務にビッグデータを活...

2024年はテクノロジー企業の終焉となるでしょうか?報告書:3年後には技術の80%が素人によって提供される

[[405703]]最近、アメリカの有名なテクノロジー調査・コンサルティング会社であるガートナーは、...

斉燕傑:Sina Weibo のパーソナライズされたプッシュにおける機械学習の応用

[51CTO.comより引用] Sina Weiboは情報交換プラットフォームであるだけでなく、メデ...

機械学習の発展の歴史と啓蒙

[[188091]]近年、人工知能の目覚ましい発展、特にAlphaGoと韓国のチェスプレイヤー、イ・...

人工知能技術の発展の概要

人工知能は、コンピュータサイエンス業界のトップテクノロジーの一つとして、1956年にダートマス会議で...

ネットワークにおける機械学習の実用的応用

各 Web アプリケーションには独自の機能とパフォーマンス パラメーターのセットがあり、これらは動的...

アンビエントコンピューティングが次の大きなトレンドになる理由

アンビエント コンピューティングとは、テクノロジーが環境にシームレスに溶け込み、日常生活に浸透する世...

マッキンゼーの中国人工知能レポートは3つの大きな課題に直面している

BAT の幹部は、先日終了した IT リーダーシップ サミットで人工知能に焦点を当てました。ロビン・...

AI のブラックボックスを開く: 「説明可能な」人工知能 (XAI) への認知ガイド!

今日、企業組織は意思決定に人工知能や機械学習モデルをますます頼りにしており、こうした意思決定は私たち...

遅めのエクスタシー!動画の動きがどんなに大きくても、写真はスムーズに主役の代わりを務めることができる|Meta & シンガポール国立大学

最後に家族は喜びました。今では、ビデオの主人公をたった 1 枚の写真に置き換えることができ、その効果...

CESの半導体大手:自動運転のオープンな競争と5Gの秘密の競争

[[255293]]明らかに、自動運転と5Gはチップビジネスそのものよりもはるかに魅力的です。 AI...