成熟した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も独自に進化しており、考えてみると恐ろしいことだ。

[[427578]]動物の知能は、環境と相互作用するにつれて、その体の形に合わせて進化します。例え...

Nature Review: 機械学習の物理的発見 - 隣にあるもう一つの機会の道

[[437564]]この記事はLeiphone.comから転載したものです。転載する場合は、Leip...

...

...

北本重型トラック、易欧、松山湖材料研究所が「易本デュアルカーボン研究所」設立に向けた戦略協力協定を締結

8月4日、中国北方工業集団公司、北奔重型トラック集団有限公司、渤海、松山湖材料研究所は調印式を開催し...

春節祭でロボットが書道を行う。書道家は職を失うことになるのか?

毎年、春節の祝祭舞台ではさまざまな「ブラックテクノロジー」が必ず使われています。2021年の丑年春節...

アルゴリズムなしでもTikTokを購入する価値はあるでしょうか?技術専門家:購入者がその魔法を再現するのは難しい

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

2021年にデータセンターに起こる変化と傾向

2020 年は、IT プロフェッショナルがインフラストラクチャを管理およびプロビジョニングする方法を...

仕事の脅威? AIはマーケティング担当者の仕事を奪うのでしょうか?

先週、コピーライターのパネルがAIによってコピーライターの必要性がなくなるかどうかを議論した。一部の...

スマート健康システムがコロナウイルス隔離中の人々を監視

新型コロナウイルスの世界的な感染拡大は187の国と地域に広がり、417万人が感染している。ほとんどの...

エンコーダー・デコーダーアーキテクチャを放棄し、エッジ検出に拡散モデルを使用する方が効果的です。国立国防科学技術大学はDiffusionEdgeを提案しました。

既存のディープ エッジ検出ネットワークは通常、マルチレベルの特徴をより適切に抽出するためのアップサン...

あなたは人工知能の前で「透明な人」ですか?

プライバシーがないと感じる人が増えているのは紛れもない事実です。最も直接的な例は、買い物をしたい場合...

...