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] |
<<: 脳コンピューターインターフェースが人間の思考を制御するのではないかと心配ですか?神経科学者:考えすぎ
>>: 生物学的視覚とコンピュータビジョンの違いを理解する方法
[[206073]] ####背景:#### Spark graphxは最大クリークマイニングアルゴ...
お金を稼ぐこと以上に満足できることがあるでしょうか? もちろん、何もせずにお金を稼ぐことです。私たち...
システム統合は、ソフトウェア システム、情報システム、エンタープライズ システム、モノのインターネッ...
人工知能と機械学習は、組織がビッグデータからより優れたビジネス洞察を得るのにどのように役立つのでしょ...
AI人工知能技術は、電子商取引、物流、輸送、工業など、多くの業界で応用されています。人工知能は、あ...
私たちの生活、仕事、交流の仕方に革命をもたらす技術の進歩によって、未来は常に形を変えています。今後 ...
最近、Andrei Kovalevという外国人ネットユーザーがMidjourney V6の非常に詳細...
従来、高性能コンピューティング (HPC) は、数値解析を利用して物理方程式を解き、素粒子から銀河に...
[[381380]]人工知能 (AI) はスマートビル管理の究極の未来と考えられていますが、それが定...
大規模言語モデル (LLM) はさまざまな推論タスクで優れたパフォーマンスを発揮しますが、ブラックボ...
翻訳者 |李睿レビュー | Chonglou OpenAI が立ち上げた GPT は現在、世界で最も...
GPT には画像認識機能があるため、さらに強力になり、特に ChatGPT のビジュアル テクノロ...