Image Credit:Natural Language Programming AIs are taking the drudgery out of coding

「コーディングを学びましょう」。この3つの言葉は、メディアでの解雇が発表されるたびに、インターネットのいたずらっ子たちやテックブロ「tech bros」らの口元や指先に常にあります。それ自体は無用な感情表現ですが、最近のコード生成AIの登場により、Pythonのようなプログラム言語の内側を熟知していることは、「サンスクリット語のような死んだ言語を話すこと」と同等の役に立つことになるかもしれません。実際、このようなgenAIは、プロのソフトウェア開発者がプログラミングの手間を最小限に抑え、より迅速かつ効果的にコードを生成できるようになっています。Conversational AIコーディングシステムは、GithubのCopilotやOpenAIのChatGPTなどを使って開発され、プログラマがプログラムの作成方法を人工知能に伝えると、AIが必要なコードを自動生成します。今後もこの分野は進化を続け、AIによるコード自動生成は、ソフトウェア開発のライフサイクルにおいてますます重要な役割を担うことになるでしょう。


Pexelsによる写真提供

「Learn to code(プログラミングを学べ)」という言葉が、メディアの減員が発表されるたびに、インターネットのトロールやテックブロスによって口にされたり、指で叩かれたりしている。「Pythonのようなプログラミング言語について詳しく知っていること」は、もはやサンスクリットのように死語を流暢に話すことと同等に役に立たなくなるかもしれない。これらのジェネレーティブAIが現れたことで、プロのソフトウェア開発者がプログラミングの労力を減らし、より効率的にコードを生成できるようになった。

ジャバとPythonは、今日最も広く配布・記述されているプログラミング言語の2つである。前者は、中盤の90年代にリリースされ、あらゆるものを「スマートカードから宇宙船まで」(Java Magazine 2020年)に革命をもたらした。ウィキペディアの検索機能やマインクラフトもこの言語によって動いている。一方、後者は実は数年前から存在し、 Dropbox、Spotify、Instagramなどの現代的なアプリのコードベースとなっている。

これら2つは、動作が異なる。Javaはコンパイルする必要があり、人間が読みやすいコードをコンピュータ実行可能な機械コードに変換してから動作する。これに対し、Pythonは解釈型の言語であり、プログラムが実行される際に人間のコードが行ごとに機械コードに変換されるため、コンパイルしなくても動作する。解釈型の方法は、コードを複数のプラットフォームに簡単に書き込むことができ、コンパイルされたコードは特定のプロセッサタイプに焦点を当てる傾向がある。しかし、いずれにせよ、実際のコードの書き方のプロセスはほぼ同じであり、何らかの指示を書き込む必要がある。

「自動プログラミング」では、人間が1行ずつコードを個別に記述する代わりに、コンピュータにタスクの高レベル抽象化を作成させ、その後、必要な低レベルのコードを生成する。一方、「インタラクティブプログラミング」では、既に実行中のプログラムにプログラムコードを記述できる。今日の会話型AIコーディングシステム(例:Copilot)は、自然言語の看板の背後に、コーディングプロセスを隠すように設計されている。プログラマがコード化するものと方法をAIに伝えると、機械は必要なコードを自動的に生成できる。

ディープマインドのAlphaCodeも、GitHubのCopilot AIと同様に、豊富な言語データから生成されたモデルを活用しており、人間のプログラマが問題を解決するサブプロブレムごとにコードを記述するのと同様に、大量のコード候補を生成して、最適なプログラムを見つけ出す。2022年のScience誌に掲載された調査によると、AlphaCodeはチャレンジを34%正しく解答(同じ基準でのCodexは個位数)し、5,000人の競技者を上回ったオンラインプログラミング競技会にも参加している。

GitHub Copilotは、ビジュアルスタジオコード、ビジュアルスタジオ、 Neovim、およびJetBrains統合環境(IDE)のサブスクリプションプラグインを通じて、クラウドベースのAI支援コーディングオートコンプリート機能を提供し、自然言語テキスト入力から実行可能なコードを生成したり、重複するコードセクションやプログラミング関数を自動補完したりする機能がある。

開発者が必要とするコードに応じて、Copilotの生成するコードはほとんど読みやすいが、インターネット上のトレーニングデータで訓練された大規模言語モデルによるレコメンデーションであるため、コピーライトに違反する場合がある。

そのため、Copilotは、人工知能が自動的に生成するプログラムの品質を向上させるためのコード品質分析を実行するなどの適切な安全対策が取られている。どのようなコードが生成されるかは予測できないため、開発者がセキュリティ上の観点からAI支援のコーディングを使用することに関連性があると公表するようGitHubは注意喚起している。今後は、AIの開発やレビューに利用されるなど、AI支援開発がソフトウェア開発ライフサイクルの他の部分に浸透することが予想されている。

引用元記事はこちら
Natural Language Programming AIs are taking the drudgery out of coding

error: Content is protected !!