AI はコードの内容に基づいて関数名を自動的に生成するため、標準的な方法で名前を付けない同僚について心配する必要がなくなります。

AI はコードの内容に基づいて関数名を自動的に生成するため、標準的な方法で名前を付けない同僚について心配する必要がなくなります。

[[414747]]

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

探偵小説のようなコードを書ける人もいます。

一時変数が必要な場合は、 tempと呼ばれます。複数の一時変数が必要な場合は、 var1およびvar2と呼ばれます。

関数名としてピンインの略語を使用するものもあります。たとえば、注文クエリ関数はcxddと呼ばれます。

このようなコードを理解するには、文脈の中で繰り返し考え、各部分の真の機能を復元する必要があります。

このプロセスは難読化解除と呼ばれます。

面倒だ。本当に面倒だ。もっと面倒な方法はないのでしょうか?

AIが来ますように!

最近、Facebook はコードの難読化に対処するために特別に設計された言語モデルDOBFをリリースしました。

下の図のように、動作に影響のない変数名、関数名、クラス名はすべて意味のない記号に置き換えられます。AIが推測して復元を試みます。

正解との比較を見てみましょう。完全に同じではありませんが、AIの修正によりコードの可読性が大幅に向上しています。

たとえば、FUNC_0 はソース コードでは「パラメータをリセット」と書かれていますが、AI はこれを「重みを初期化」に変更しました。これは完全に理にかなっています。

DOBF モデルは現在、Python に加えて C++ と Java もサポートしています。

結局のところ、標準化された方法でコードを書かない人は少数派です。このモデルのより一般的な用途は、次のような知的財産権を保護するために意図的に難読化されたコードを復元することです。

コードが書かれた後、コンパイルや動作に影響しない部分が、人間が判別しにくい記号に一括で置き換えられ、解読がさらに困難になります。

これ以前には、マスクされたテキストを復元するために使用されるマスク言語モデル (MLM) もありました。

コード復元手法としては、ハルビン工科大学とマイクロソフトが開発したCodeBERTやFacebookが開発したTransCoderなどがあるが、その効果は最新のDOBFほど高くない。

DOBF は、モデル アーキテクチャの革新やデータセットの改善ではなく、新しい事前トレーニング タスクを提案することでそれらを上回ります。

合理的なタスクがAIの学習を導く

これまでのマスク言語モデルでは、マスクする部分をランダムに選択することがほとんどで、括弧やカンマを選択することが多かったのですが、AI にとって難しいものではありませんでした。

DOBF のアプローチは、マスクされた変数名、関数名、クラス名を指定して、AI に復元させるというものです。このタスクはより困難であり、AI により深いルールを学習させる可能性があります。

さらに、複数回出現する同じ名前を置き換えるために同じ記号が使用されています。これにより、一部の名前がコピーアンドペースト可能であることを発見した後、AI がショートカットを学習するのを防ぐことができます。

上図の変数 V3 と同様に、AI は 3 行目の定義からこの変数が List 型であることを把握でき、次に 5 行目で pop(0) が呼び出されていることがわかります。

これは先入先出法ではないでしょうか? AI はこれをスタックではなくキューと名付けます。

さらに驚くべきことはこれから起こります。DOBF は、コードの内容から、対応する関数がフィボナッチ数列を生成しベクトルのドット積を実行することであると判断することさえできます。

DOBF のアーキテクチャには、実際には特別な設計はありません。公平な比較のために、CodeBERT および TransCoder と同じ数のレイヤーを持つ 2 つのモデルをトレーニングするだけです。

成功の鍵は、合理的なトレーニング タスクにあります。

微調整により、より多くのタスクを達成できます

Facebook はこの方法が有効であることを確認した後、このトレーニング タスクを抽出し、DOBF タスクと名付けました。このタスクは他の言語モデルのトレーニングにも使用できます。

たとえば、DOBF は TransCoder モデルの事前トレーニング タスクとして使用され、その後 CodeXGLUE ベンチマークのダウンストリーム タスクを使用して微調整されます。

結果は、DOBF または MLM + DOBF 事前トレーニングを使用すると、コード盗用検出コードの要約によるドキュメントの生成コードスニペットの自然言語検索という3 つのタスクでより良い結果が得られることを示しました。

Facebook の次のステップは、DOBF をガイドとして使用して、自然言語のより優れた事前トレーニング目標を設計できるかどうかを確認することです。

しかし、コードは物語の終わりではありません。人間はコードを混乱させるためにあらゆる手段を試してきました。

国際C言語カオスコードコンテストの変態コードもAIが理解できるようになる日を楽しみにしています。

Githubアドレス:

https://github.com/facebookresearch/CodeGen/blob/master/docs/dobf.md

論文の宛先:

https://arxiv.org/abs/2102.07492

国際C言語難読化コードコンテスト:

http://www.iocc.org/ 翻訳会社

<<:  コンテナ内の AI と機械学習のワークロード: 知っておくべき 6 つのこと

>>:  2022 年の 5 つの主要な AI と機械学習のトレンド

ブログ    

推薦する

顔認識の急速な発展は落ち着くはずだ

[[283549]] Xipo/Textいつから始まったのかは分かりませんが、顔認証が普及し、「顔認...

GPT-3オープンソースのPutianバージョン:事前学習済みモデルGPT Neoと同等の再現

[[389187]] GPT-3 はオープンソースですか? Eleuther AI のオープンソース...

言語は「絆」であり、イメージバインドを超えて、さまざまなモードでパンチとキックを行う

北京大学とテンセントがマルチモーダル15角形の戦士を制作しました!言語を中心に据えて、ビデオ、オーデ...

Zooxロボットタクシーが半プライベートルートでテストを開始

Zooxの共同創業者兼CTOのジェシー・レビンソン氏によると、同社は数十台のカスタム電動ロボットタク...

ロボットに髪を切らせるという突飛なアイデアを思いついた

一人でいて理髪店に行きたくない場合はどうすればいいでしょうか? YouTube ビデオブロガーの S...

...

Pika 1.0 はアニメーション業界に完全な革命をもたらします!ドリームワークスの創設者は、3年後にはアニメーションのコストが10分の1に下がると予測

最近、ドリームワークスの創設者ジェフリー・カッツェンバーグ氏は、生成AIの技術がメディアとエンターテ...

...

...

ファーウェイ、AI人材育成と科学研究の革新を促進する2つのAscendプロジェクトを開始

ファーウェイは6月25日、成都で開催された2022 Ascend AI開発者イノベーションデーで、人...

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

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

百度のAIが海淀区の「スマートスクリーン」を実現、1秒で全状況を把握

今年初め、海淀シティブレインのインテリジェントオペレーションコマンドセンター(IOCC)が正式に公開...

ディープラーニングは壁にぶつかる?ルカンとマーカスの間の争いを引き起こしたのは誰ですか?

今日の主人公は、AI の世界で互いに愛し合い、憎み合う古くからの敵同士です。ヤン・ルカンとゲイリー・...