成熟したAIは独自のコードを書くべきだ。IBMは55の言語で5億行のコードデータセットを公開

成熟したAIは独自のコードを書くべきだ。IBMは55の言語で5億行のコードデータセットを公開

[[400902]]

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

ImageNet は今日のコンピューター ビジョン研究で頻繁に登場しており、IBM は独自のデータセットである CodeNet も AI for Code に導入しました。

1,400 万のプログラミング プロジェクト、5 億行のコード、55 を超えるさまざまなコーディング言語。研究者たちは、このデータセットが、大規模プロジェクト コードのデバッグ、メンテナンス、移行などのコーディング自動化の領域を促進することを期待しています。

△ ダウンロードリンクは記事の最後をご覧ください

独自のデータ基盤

CodeNet のデータベースは、2 つの OJ (オンライン ジャッジ) プラットフォーム AIZU と AtCoder によって提出された例に基づいています。

△世界で一番いい言語は何なのか、大きな声で教えてください。

このオンライン プログラミング プラットフォームに送信されたソリューションには、大規模なコード データに加えて、高品質のメタデータと注釈も多数含まれています。

たとえば、OJ プラットフォーム上の問題の場合、問題の説明、メモリ制限、問題の難易度などの情報があります。

ユーザーが提出したケースについても同様です。

プラットフォームの自動レビューメカニズムでは、提出されたソリューションのさまざまなステータスも重要な参照データとして機能します。

CodeNet は何ができますか?

ベンチマーク

同じ MISIM モデルを CodeNet-1K (C++1000 ベンチマーク) と最大の公開データセットの 1 つである GCJ-297 でトレーニングし、両方のトレーニング済みモデルを 3 番目の独立したデータセット POJ-104 でテストすると、次のようになります。

△ CodeNet-1KでトレーニングしたモデルのPOJ-104テストスコアは、GCJ-297でのスコアより12%高い

これは、CodeNet-1K の方が一般化能力が優れていることを示しています。

MLP、CNN、C-BERT、GNN を使用していくつかの CodeNet ベンチマークでコード分類、コード類似性評価、コード補完に関する実験を実施した結果、ほとんどのタスクで 90% を超える精度が達成されました。

実用化

異なるプログラミング言語間のルールに基づいて、AI が複数のコードを他の言語に変換することは難しくありません。

しかし、コードが数千行または数万行に及ぶ場合、あるいは大規模なプロジェクトの場合、コード セマンティクスにはコンテキストが関係し、コンテキストには複数のコード ベースが関係する可能性があります。このような複雑な状況での言語翻訳は大きな課題です。

従来、機械は通常、プログラム移行の 50% ~ 60% を完了し、複雑なルールを含む部分は人間が処理していましたが、これは非常に困難で時間がかかりました。

しかし、IBM はつい最近、CodeNet をベースとした AI for Code を通じて、大手自動車業界の顧客 (複数世代の Java テクノロジーで開発された 3,500 個の Java ファイルと 100 万行を超えるコード) の継続的なコード移行プロセスを 1 年から 4 週間に短縮することに成功しました。

CodeNet データベースでは、問題の説明、入力形式の指示、出力形式の指示の 90% 以上、および提出されたコードの入出力サンプルの 50% 以上が、異なる言語間のコードが同等かどうかを判断する鍵となるためです。

これにより、コード翻訳の強化学習技術が大きく推進されました。

メモリ制限、実行時間、エラーの種類に関する大量のメタデータを使用して、ソース コード内の潜在的な欠陥をマークし、コード最適化システムの開発をさらにトレーニングすることもできます。

CodeNet データセットは、理解しやすく使いやすい一連のテクノロジを提供します。開発者や研究者がアルゴリズムを開発し、AI コーディングを進化させるのを支援すると同時に、企業が IT の近代化を開始するのに継続的なビジネス価値をもたらします。

技術的に実装する方法

データを収集する際、研究者はすべてのデータを厳密なディレクトリ構造に整理しました。最上位は Project CodeNet ディレクトリで、その下のサブディレクトリは次のとおりです。

*データ

各質問ではソースコードとスクリプト言語に細分化されています。

*メタデータ

すべての問題を保存する problem_list.csv ファイルと、送信されたケースの csv ファイル。

* 問題の説明

問題を含む HTML ファイル。テキストの包括的な説明が含まれています。

次に、ls や grep などのコマンド ライン ツールまたはアプリケーションを使用して抽出し、csv ファイルの場合は csvstat などの csvkit コンポーネントを使用します。

データ セットの場合、bash スクリプトを使用してアクセスし、選択します。

△台本を渡されました。

最後に、トークナイザーはトークン ストリームを生成し、AST は抽象構文木に解析され、データ フロー グラフが構築されてコードが分析され、最終的にコード サンプルは AI アルゴリズムが認識して使用できる形式に変換されます。

△加工に使用した道具。

プログラミング自動化の未来

IBM の研究者たちは、CodeNet が AI プログラミングのアルゴリズムの進歩を加速できることを期待して、現在も継続的に改善と開発を続けています。

機械学習の分野が継続的に発展するにつれ、コードの「実装」だけでなく「設計」もコンピュータ側に傾き始めています(例えば、GAN は敵対的学習を通じて最適解を見つけます)。

将来、DNAの自己編集のような完全な自動プログラミングを実現することは可能でしょうか?

最初に数人の人間のプログラマーをカプセル化して、コンピューターがアルゴリズムの最初のステップである「問題の要件を正確に記述する」ことを完了できるようにすることをお勧めします。

<<:  絶えず繰り返されるアルゴリズムとプログラミング技術が若者の発達を促している

>>:  イノベーションを統合し、障壁を下げ、PaddlePaddleは人工知能を推進して大規模な工業生産を実現します。

ブログ    
ブログ    
ブログ    

推薦する

...

マイクロソフトとパートナーは、AIへのアクセスを制限するデータ砂漠の縮小に取り組んでいる。

Microsoft は、多くの非営利団体のパートナーと協力して、これらのツールが失明や運動障害など...

人工知能技術は交通にどのように応用できるのでしょうか?

都市交通の分野では、AI信号制御、インテリジェントな街路交通監視、スマートバス停、スマート高速道路な...

...

2020年の情報セキュリティ:人工知能(AI)はさまざまな情報セキュリティシステムで広く利用されている

マーク・カネル、イマジネーション・テクノロジーズ、 戦略およびセキュリティ担当副社長[[281448...

...

ニューロンクラスタリングはAIの学習戦略をシミュレートできる

人間や機械がタスクをよりうまく実行できるようになるたびに、証拠の痕跡が残ります。パフォーマンス向上の...

海外メディア:アップルは2025年までに完全自動運転車を発売する可能性

アップル社が2025年までに完全自動運転車を発売する計画だとブルームバーグが報じたことを受け、同社の...

AIの安全性:中国のAIに100本の毒

人間がAIを見つめると、AIも人間を見つめる。大規模 AI モデルの大規模な応用と進化において、ネッ...

ついに、トップNLPカンファレンスACLへの投稿は匿名である必要がなくなりました

自然言語処理分野の研究者にとって朗報があります。最近、計算言語学会(ACL)の年次総会は、この一連の...

人工知能は物流の自動化の方法を変え、労働集約型産業に革新をもたらすだろう

自動化はテクノロジーを利用して、人間がより多くのタスクを完了できるようにします。物流においては、自動...

...

...

2018年のAIトレンドはこちら

ビッグデータの計算分析は決して時代遅れではありません。それどころか、データ量が増え続けるにつれて、デ...