Google サービスには 20 億行のコードが含まれており、自動車システムには 1 億行のコードが含まれています。コードの作成とデバッグというこれほど膨大な作業を、AI に任せずに処理できるのでしょうか? AI による自動コード生成は多くの開発者の夢であり、近年この分野の研究が盛んになっています。しかし、有用な AI をトレーニングするには、高品質のデータを見つけることが最も重要なタスクかもしれません。 最近、IBM Research は CodeNet と呼ばれるデータセットをリリースしました。これには、プログラミング タスク用の機械学習モデルをトレーニングするための 1,400 万のコード サンプルが含まれています。このデータセットの主な機能は次のとおりです。
IBM は、CodeNet が大規模な画像データセットである ImageNet をエミュレートし、ソフトウェア開発の青写真を理解できるようにソフトウェアを指導するための主要なデータセットになることを期待しています。 IBM は、CodeNet を使用して次のような開発ツールをトレーニングできることを期待しています。
ディープラーニングによるプログラミングの自動化近年、機械学習の分野では目覚ましい進歩が見られ、AI によってプログラミングを含む多くの作業が自動化されるようになりました。しかし、ソフトウェア開発における AI の浸透は大きな困難に直面しています。 人々がプログラミングをするとき、通常、幅広い意識的および潜在意識的な思考メカニズムを使用して、新しい問題を発見し、さまざまな解決策を模索します。対照的に、ほとんどの機械学習アルゴリズムでは、同じプログラミング問題を解決するモデルを開発するために、明確に定義された問題と大量の注釈付きデータが必要です。 この課題に対処するために、研究者や開発者は、「プログラミングのための AI」システムを開発および評価するためのデータセットやベンチマークを作成するなど、多くの努力を重ねてきました。しかし、ソフトウェア開発の創造的でオープンな性質を考えると、プログラミングに最適なデータセットを作成することは困難です。 IBM の研究者は、さまざまなタスクの機械学習モデルのトレーニングに使用できる多目的データセットの作成を目指しました。 CodeNet の作成者は、これを「AI プログラミングのペースを加速させる、非常に大規模で多様性に富んだ高品質のデータセット」と説明しています。このデータセットには 1,400 万のコード サンプルが含まれており、合計 5 億行のコードが 55 のプログラミング言語で記述されています。サンプルで最も多く使用されている言語は C++ で、2 番目に多いのは Python です。コードサンプルは、オンラインプログラミングプラットフォームAIZUとAtCoderの約4,000のチャレンジへの提出物から取得され、これらのチャレンジに対する正解と不正解の両方が含まれています。 CodeNet プロジェクト アドレス: https://github.com/IBM/Project_CodeNet CodeNet の主な機能の 1 つは、コード サンプルに追加される注釈です。データセットに含まれる各プログラミング チャレンジには、テキストによる説明と、CPU 時間とメモリの制限があります。各コードコミットには、言語、コミット日、メモリ使用量、実行時間、承認、エラーの種類など、12 を超える情報が含まれています。 IBM の研究者は、プログラミング言語、受け入れ、エラーの種類に関してデータセットのバランスが取れていることを確認するために多大な労力を費やしました。 機械学習プログラミングタスクCodeNet は、プログラミング タスクを実行する機械学習モデルをトレーニングするための唯一のデータセットではありません。他のデータセットと比較して、CodeNet には次の特徴があります。まず、サンプル数や言語の多様性を含むデータセットの規模ですが、さらに重要なのは、エンコードされたサンプルに添付されたメタデータです。 CodeNet に追加された豊富な注釈により、特定のプログラミング タスクだけでなく、さまざまなタスクに適用できるようになりました。 CodeNet を使用してプログラミング タスク用の機械学習モデルを開発する方法には、次のものがあります。
CodeNet にはメモリと実行時間のメトリックに関する大量のメタデータが含まれているため、データ サイエンティストはそれを活用してコード最適化システムを開発することもできます。あるいは、エラー タイプのメタデータを使用して、ソース コードの潜在的な欠陥をフラグ付けする機械学習システムをトレーニングすることもできます。 CodeNet のより高度な使用例はコード生成です。 CodeNet は、問題のテキスト記述とそれに対応するソース コードの豊富なライブラリです。開発者はすでに高レベル言語モデル (GPT-3 など) を使用して自然言語記述からコードを生成しており、CodeNet はこれらの言語モデルを微調整してコード生成の一貫性を高めるのに役立つ可能性があります。 IBM の研究者は、コード分類、コード類似性評価、コード補完などの CodeNet に関する実験を実施しました。使用されるディープラーニング アーキテクチャには、単純な多層パーセプトロン、畳み込みニューラル ネットワーク、グラフ ニューラル ネットワーク、Transformer などがあります。 IBMとMIT-IBM Watson AI Labチームが共同でデータセットを開発し、研究における実験結果では、ほとんどのタスクで90%以上の精度を達成できることが示されました。 論文アドレス: https://github.com/IBM/Project_CodeNet/blob/main/ProjectCodeNet.pdf 効率的な機械学習システムを構築するには多大な労力が必要IBM のエンジニアは、CodeNet データセットの管理とそれをサポートするツールの開発に多大な労力を費やしてきました。 まず、研究チームは AIZU と AtCoder からコードサンプルを収集する必要があります。 2 つのプラットフォームのうち、コードを簡単に取得できるアプリケーション プログラミング インターフェイス (API) を備えているのは 1 つだけで、もう 1 つのプラットフォームには簡単にアクセスできるインターフェイスがなかったため、研究チームはプラットフォームの Web ページからデータをスクレイピングして表形式に分解するための新しいツールを開発する必要がありました。その後、研究者は 2 つのデータセットを手動で統合して統一されたスキーマにする必要がありました。 次に、研究チームは、無駄なデータを排除するために、重複コードやサンプル(デッドコードを多く含み、実行時に実行されないソースコード)を識別して削除するツールを開発する必要があります。 さらに、研究チームは、さまざまなプログラミング言語用のトークナイザー、解析ツリー、グラフニューラルネットワーク用のグラフ表現ジェネレーターなど、CodeNet コーパス上で機械学習モデルをより簡単にトレーニングできるようにする前処理ツールを開発しました。 これらすべては、効率的な機械学習システムを作成するには多大な労力が必要であることを思い出させます。人工知能がプログラマーに取って代わるまでには、まだ長い道のりがあります。 [編集者:張燕妮 TEL: (010) 68476606] |
<<: 脳コンピューターインターフェースが人間の思考を制御するのではないかと心配ですか?神経科学者:考えすぎ
>>: 生物学的視覚とコンピュータビジョンの違いを理解する方法
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
人工知能 (AI) と機械学習 (ML) の分野では、基礎はデータにあります。データの品質、精度、深...
国内の大型模型市場に新たな「プレーヤー」が誕生しました。今回は数学に特化した大型模型です。 Sync...
世界の歴史は発明の歴史でもあります。火薬の発明は世界地図を変え、電灯の発明は夜を変え、車の発明は空間...
Midjourney は多くの人が使用するグラフィック デザイン ツールです。最近アップデートされた...
ディープラーニングは人工知能の一種です。医療分野では、CTスキャン画像を使用して脳の血液供給動脈の閉...
[[426052]]人工知能の危険性は、作家や脚本家の間で長い間人気のテーマとなってきたが、これらの...
サーバー負荷分散を行う際には、ラウンドロビン、HASH、最小接続、応答時間、加重など、さまざまな負荷...
導入人工知能の重要な分野はコンピュータービジョンです。コンピューター ビジョンは、コンピューターとソ...
[[441423]]機械学習分野の研究者は皆、パラメータ調整という課題に直面していますが、言うほど簡...
[[190364]]この記事は、写真付きの 4 つの例を含む 6 時間かけて執筆されました。目的は、...
[[248782]]量子コンピュータが実用化されるまでにはしばらく時間がかかるだろうが、国際的な暗号...
[[374480]] 12月31日、AI研究所は2020年のAIの進歩トップ10を発表しました。新年...