ホームページ > テクノロジー周辺機器 > AI > それは成果でしょうか、それとも弱体化でしょうか? AIコード生成ツールとプログラマーの間の争い

それは成果でしょうか、それとも弱体化でしょうか? AIコード生成ツールとプログラマーの間の争い

PHPz
リリース: 2023-04-08 21:11:01
転載
972 人が閲覧しました

プログラマーは置き換えられる運命にあるのでしょうか? OpenAI の大規模言語モデル GPT-3 が、簡単な書面による指示に基づいて HTML Web サイトを作成する驚くべき能力を実証して以来、コンピューター プログラミング コミュニティはこの疑問に悩まされてきました。

それから数か月で、単純だが完全なコンピューター プログラムを自然言語記述 (人間の話し言葉または書き言葉) に基づいて作成でき、プログラマーの作業プロセスを高速化できることが判明しました。自動プログラミングアシスタント。 AI はプログラマーの仕事をどの程度代替または強化するのでしょうか?

IEEE Spectrum はこの件について何人かの専門家に尋ねましたが、悪い知らせは、プログラミングは置き換えられる運命にあるかもしれないということです。しかし、良いニュースは、コンピュータープログラミングとソフトウェア開発は、当面は人間が深く関与する仕事であり続けると思われることです。同時に、AI を活用した自動コード生成により、より短時間でより多くのコードを記述できるようになり、ソフトウェア開発がますます加速しています。

Amazon AI Services 担当副社長の Vasi Philomin 氏は、「AI が人間の開発者に完全に取って代わるとは思っていません。AI ツールはプログラマーを日常業務から解放しますが、コンピューター プログラミングは創造的です」と述べています。仕事は残り続けるのです。」

誰かが 10 年後に開発者になりたい場合、必ずしもプログラミング言語を学ぶ必要はありません。代わりに、コンピュータ プログラムを作成する際のセマンティクス、概念、論理的順序を理解する必要があり、これによりソフトウェア開発がより多くの人に開かれるようになります。

コンピュータ プログラミングはよりインテリジェントかつ自動化されています

電子コンピュータ プログラミングが 1940 年代に始まったとき、プログラマーはデジタル マシン コードを使用して記述していました。アメリカの著名な女性コンピューター科学者であるグレース ホッパーとレミントン ランド カンパニーの彼女のチームが、プログラマーが限られた英語の語彙を使用してプログラムを作成できるようにする FLOW-MATIC を開発したのは 1950 年代半ばになってからでした。

それ以来、プログラミング言語はますます効率的になり、プログラマーの仕事もより効率的になりました。

AI が作成したコードは、コーディングをまったく行わずにソフトウェアを作成できるようにする、より広範な変化の最前線にあります。現在では、Akkio のようなコード不要の AI 開発プラットフォームがあり、簡単なドラッグ アンド ドロップやボタンのクリック機能で機械学習モデルを構築できます。 Microsoft の Power Platform には、ユーザーが記述するだけで簡単なアプリケーションを生成できる一連のローコード製品が含まれています。

それは成果でしょうか、それとも弱体化でしょうか? AIコード生成ツールとプログラマーの間の争い

今年 6 月、Amazon は、Copilot に似た機械学習ベースのプログラミング アシスタントである CodeWhisperer のプレビュー バージョンを開始しました。 GitHub用。どちらのツールも、大規模なコード ベースでトレーニングされた大規模言語モデル (LLM) に基づいています。プログラマーがコードを作成すると、CodeWhisperer と Copilot の両方がオートコンプリートの提案を提供し、単純な自然言語フレーズに基づいて実行可能な命令を提案します。

それは成果でしょうか、それとも弱体化でしょうか? AIコード生成ツールとプログラマーの間の争い

数日前、GitHub は 2,000 人の開発者を対象にアンケートを実施し、コパイロットのタスク時間が半分に短縮され、開発者が仕事に対する全体的な満足度が向上します。

コードのオートコンプリートを超えるのは簡単ではありません

しかし、オートコンプリートを超えたい場合、問題はコンピューターに意図を教えることにあります。ソフトウェア要件は曖昧なことが多く、自然言語は不正確であることで知られています。

英国の人工知能スタートアップ Diffblue は、コードのチェックと修正に AI を活用することに取り組んでおり、共同創設者の 1 人であるピーター シュランメル氏は、英語の文章標準における曖昧さを解決したいと述べています。次に、人間と機械の間の対話など、段階的な改善が必要になります。

これらの問題に対処するために、マイクロソフトの研究者は最近、LLM ベースのコード生成にフィードバック メカニズムを追加して、コードを生成する前にコンピューターがプログラマーに曖昧さを明確にするよう要求することを提案しました。 TiCoder と呼ばれる Microsoft の対話型システムは、「テスト駆動型ユーザー意図形式化」(TDUIF) と呼ばれるものを生成することにより、ユーザー意図を洗練し、形式化します。

TDUIF は、反復フィードバックを使用してプログラマのアルゴリズムの意図を判断し、プログラマが表現した意図と一致するコードを生成しようとします。以下の図は、TDUIF のワークフローを示しています。

それは成果でしょうか、それとも弱体化でしょうか? AIコード生成ツールとプログラマーの間の争い

紙のアドレス: https://arxiv.org/abs/2208.05950

#関連論文によると、TiCoder は、Mostly Basic Programming 問題 (MBPP) ベンチマークで評価した場合に、自動生成コードの精度を 48% から 85% に向上させました。機械生成コードを評価するように設計された MBPP は、初心者レベルのプログラマーが解決できるクラウドソーシングされた約 1,000 の Python プログラミング問題で構成されています。

コード単位は数百行にも及ぶ場合があり、独立して保守および実行できるプログラムの最小部分です。単体テストのスイートは通常、数十の単体テストで構成されており、それぞれの単体テストには 10 ~ 20 行のコードが含まれており、ユニットが期待どおりに動作するかどうかをチェックするため、ユニットを積み重ねたときにプログラムが期待どおりに動作します。

単体テストは、個々の関数をデバッグしたり、コードを手動で変更する際のエラーを検出したりするのに役立ちます。さらに、単体テストはコード単位の仕様として機能し、プログラマーがクリーンでバグのないコードを作成できるようガイドします。単体テストが最初に書かれる真のテスト駆動開発を追求するプログラマーは多くありませんが、単体テストは単体と一緒に書かれることがよくあります。

専門家は信じています: AI コード生成によって人間のプログラマーが職を失うことはありません

2019 年の Diffblue 開発者調査の結果によると、開発者は、AI コード生成のために約 35% を費やしています。本番環境で使用するコードを作成する代わりに、品質管理テストを作成することに時間を費やすことができるため、この部分の作業を自動化すると生産性が大幅に向上します。

同時に、Copilot、CodeWhisperer、およびその他の AI プログラミング アシスタント パッケージを、単体テストを作成するための対話型オートコンプリート ツールとして使用できます。プログラマーはコーディングの提案を受け取り、最も効果的なものを選択します。

今年 2 月、DeepMind は完全に自動化されたコード生成に AlphaCode をさらに使用しました。 AlphaCode は、自然言語命令に基づいて単純なコンピューター プログラムを作成できる大規模な言語モデルです。これは、最初に問題の自然言語記述をエンコードし、次に結果のベクトルを解決に必要なコードにデコードするエンコーダー/デコーダー Transformer アーキテクチャを使用します。

それは成果でしょうか、それとも弱体化でしょうか? AIコード生成ツールとプログラマーの間の争い

#AlphaCode の概要。画像ソース: https://arxiv.org/pdf/2203.07814.pdfモデルは、ビューを生成できるようになるまで、最初に GitHub コード リポジトリでトレーニングされます。それは合理的だと思われます。モデルを微調整するために、DeepMind は 15,000 組の自然言語の問題記述と、以前のプログラミング コンテストで成功したコード ソリューションを使用して、入出力例の専用データセットを作成しました。

AlphaCode をトレーニングして微調整したら、これまでに経験したことのない問題についてテストできます。最後のステップでは、多数のソリューションを生成し、フィルター アルゴリズムを使用して最適なソリューションを選択します。 DeepMind の深層学習チームの責任者、Oriol Vinyals 氏は、言語モデルを 100 万回近くサンプリングして、さまざまなプログラムを作成したと考えています。

サンプル選択プロセスを最適化するために、DeepMind はクラスタリング アルゴリズムを使用してソリューションをグループ化します。クラスタリング プロセスでは、実行可能なソリューションがグループ化される傾向があり、プログラマーが作成したとおりに機能する可能性が高い候補の小さなサブセットを見つけやすくなります。

システムをテストするために、DeepMind は、AlphaCode で作成された 10 個のプログラムを、人気のある Codeforces プラットフォーム上のヒューマン プログラミング コンテストに提出し、ソリューションは上位 54% にランクインしました。

最近のインタビューで、Oriol Vinyals は修辞的に次のように尋ねました。「プログラムを生成するには、コーディングせずに自然言語で書くだけですか。そうすれば、解決策は次のようになります。」ヴィニャールらは、そこに到達するには時間がかかり、おそらく数十年かかるだろうと慎重だ。

Landing AI の創設者兼 CEO で、著名な AI 学者である Andrew Ng 氏は、人間が任意の複雑な関数を書くための要件をコンピュータに伝えられるようになるまでにはまだ遠いと述べました。コンピュータープログラムを作成し、自動的にコーディングを完了します。

しかし、わずか数年で AI コード生成が急速に進歩したことを考えると、最終的には AI システムが自然言語命令に基づいてコードを記述できるようになるのは避けられないようです。そして、手作業でプログラミングするソフトウェア プログラムは、ますます手編みのセーターに似てくるでしょう。

自然言語による命令をコンピューターに提供するには、開発者は論理的および機能的な概念と、物事を構造化する方法を理解する必要があります。開発者が特定のプログラミング言語を学習したり、コンピューター コードを記述したりしない場合でも、プログラミングの基礎を学ぶ必要があります。これにより、より多くのプログラマーがますます多様なソフトウェアを作成できるようになります。

ヴァシ・フィロミン氏は、AIが人間の開発者に取って代わるとは信じていないと述べています。 AI は開発者がしなければならない単純なルーチン作業を排除し、開発者がより価値の高いことに集中できるようにします。

Peter Schrammel 氏も、AI の自動コード生成により、ソフトウェア開発者はより困難でやりがいのあるタスクに集中できるという点に同意しています。ただし、少なくとも機械が理解していることが人間の意図であるかどうかを確認する必要があると付け加えた。

同氏はまた、自動コーディング ツールがソフトウェア開発者に取って代わるため、ソフトウェア開発者が職を失うことはなく、作成すべきソフトウェアは常に増えるだろうとも述べました。

以上がそれは成果でしょうか、それとも弱体化でしょうか? AIコード生成ツールとプログラマーの間の争いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:51cto.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート