成熟した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は人工知能を推進して大規模な工業生産を実現します。

ブログ    
ブログ    
ブログ    

推薦する

第6回ドルイドチャイナミートアップがKuaishou本部で開催されました

3月16日、KuaishouとTestin Cloud Testingが共同で主催するApache ...

Upscayl、最先端のAI画像拡大技術

デジタル時代では、画像はどこにでもあります。ソーシャル メディアで写真を共有する場合でも、ビジネスの...

...

快手が1兆ドル規模のパラメータ推奨ランキングモデルを発表

正確な推奨システム モデルは、多くのインターネット製品の中核的な競争力です。パーソナライズされた推奨...

マスク氏はSpaceXの有能なインターンを称賛した。彼は放課後にAIを使ってElder Scrollsを解読し、Nature誌の表紙を飾った。

ネイチャーの公式サイトのトップページには、世界に衝撃を与えた最新の考古学的発見が掲載された。 200...

大きなモデルもスライスできます。Microsoft SliceGPTはLLAMA-2の計算効率を大幅に向上させます。

大規模言語モデル (LLM) には通常、数十億のパラメータがあり、数兆のトークンのデータを使用してト...

産業規模は500億に迫る。産業用ロボット業界は今後何をすべきか?

近年、ロボット技術は急速に発展しており、食品配送ロボットや掃除ロボットなど、さまざまなサービスロボッ...

AIがセキュリティの自動化、分析、対応にどのように役立つか

人工知能 (AI) は、チャットボットから自動運転車まで、あらゆるものを説明するために使用できる幅広...

...

2019 年の NLP における最先端のブレークスルーを振り返る

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

...

MITテクノロジーレビューが2019年の世界トップ10の画期的テクノロジーを発表

MITテクノロジーレビューは2001年以来、毎年その年の「トップ10ブレークスルーテクノロジー」を選...

...

...

AIとビッグデータでカスタマージャーニーを変革する方法

企業は AI とビッグデータを活用して、顧客体験をより良いものに変革することができます。人々はこれを...