コンテンツへ移動
メイン コンテンツへスキップ
News Center
AI が開発者を支援し、あらゆる人にソフトウェア開発の学習機会を提供

AI が開発者を支援し、あらゆる人にソフトウェア開発の学習機会を提供

ジョン・ローチ (John Roach)

※本ブログは、米国時間 2022 年 5 月 24 日に公開された “How AI makes developers’ lives easier, and helps everybody learn to develop software” の抄訳を基にしています。

1843 年に、世界最初のコンピュータープログラマーとも呼ばれる大学者、エイダ・ラブレス (Ada Lovelace) が、当時未完成の機械式コンピューターでパンチカードを使って方程式を解くことを提案して以来、ソフトウェア開発者は、問題の解決策を、コンピューターが理解できる段階的な指令に変換する作業を行ってきました。

マイクロソフトの CTO ケビン・スコット (Kevin Scott) によれば、そのような状況は変わりつつあります。

今日、人工知能が支援するソフトウェア開発ツールにより、人間が他者と話す時と同じ言語を使った、ソフトウェアソリューションの構築が可能になっています。これらの AI 支援ツールは、自然言語をコンピューターが理解できるプログラミング言語に翻訳してくれます。

「このツールにより、開発者が何らかの意図を自然言語で表現すれば、テクノロジがその意図を実現するためのコードに変換してくれます。それは、ソフトウェアというものが誕生してからずっと存在していた開発の考え方とは根本的に異なる考え方です」とスコットは述べています。

このパラダイムシフトを推進するのが、AI の研究開発企業 OpenAI の機械学習モデル Codex です。Codex は、自然言語によるコマンドを 12 種以上のプログラミング言語のコードに変換できます。

Codex は、インターネット上のペタバイト級の言語データで学習させた、OpenAI の自然言語モデル GPT-3 に由来します。Codex は、この言語データに加えて、GitHub のソフトウェアリポジトリなどの公開されたソースコードにより訓練されています。

OpenAI のプロダクト&パートナーシップ担当バイスプレジデント、ピーター・ウェリンダー (Peter Welinder) 氏は Codex について次のように述べています。「このツールは、ソフトウェア開発プロセスの中のあまり楽しくない作業を排除することでコーディングの生産性を高めてくれます。また、忘れていたことを思い出させてくれたり、問題解決のアプローチを考案してくれたりもします。」

Babylon.js
この例では、グラフィックスレンダリングエンジン Babylon.js で作業しているクリエイターが、テキストボックスに「太陽系のモデルを作って (create a model of the solar system)」と自然言語でコマンドを入力すると、AI 支援ソフトウェアが太陽系モデルのコードに翻訳してくれています。

スコットによれば、Codex がソフトウェア開発にもたらす生産性向上効果は驚異的です。これまで 2 時間かかっていた作業の多くを 2 分でこなせるようになるのです。

「そして多くの場合、このツールは、作業の最も面白くない部分を極めて迅速に片付けて、最も興味深い部分に到達できるよう助けてくれます。これにより、創作の体験がより心地よく、刺激的で楽しいものになります。」

AI とコードの融合

AI のブレークスルーを加速するために、マイクロソフトと OpenAI は 2019 年にパートナーシップを締結しました。このパートナーシップに基づき、世界で最も強力な AI スーパーコンピューターの共同開発、そして、Azure OpenAI Service を通じた開発者への提供による、次世代の AI アプリケーション構築が支援されています。

また、マイクロソフトの子会社 GitHub も、OpenAI と協力して、Visual Studio Code などのソフトウェア開発環境のダウンロード可能な拡張機能である GitHub Copilot に Codex を統合しました。GitHub Copilot は、Codex を使って開発者の既存コードから文脈を読み取り、追加すべきコードや関数を提案してくれます。また、開発者が達成したいことを自然言語で記述すると、知識ベースと現在のコンテキストを利用して、取るべきアプローチや解決策を提示してくれます。

2021 年 6 月にテクニカルプレビューとして公開された GitHub Copilot は、現在、数万人の常用ユーザーに向けて、Java や Python などの一般的言語のコードの約 35% を提案しています。本日、マイクロソフトは、開発者向けイベント Microsoft Build において、今夏に GitHub Copilot の一般提供を開始し、この AI 支援型コーディング機能を数百万人のプロフェッショナル開発者に提供することを発表しました。

「ソフトウェアの多くには、共通のフレームワークや基本構成要素があります。Copilot がそれらを記述する作業をすべて行ってくれるので、開発者はエネルギーと創造力を固有の問題解決に向けられるようになります」と、マイクロソフトの開発者部門担当プレジデントのジュリア リウソン (Julia Liuson) は述べています。

ジュリア リウソン
GitHub を含むマイクロソフトの開発者部門担当プレジデント、ジュリア リウソンは、今日のツールが AI 支援ソフトウェア開発の第一波になると予想しています。

Codex や GitHub Copilot を試す開発者が増えるにつれ、AI が支援するソフトウェア開発の可能性がますます明らかになっているとウェリンダー氏は指摘します。たとえば、ほとんどのソフトウェアプログラムにおいて、自然言語によるドキュメンテーションは不充分ですが、GitHub Copilot のユーザーは、ツールを使用しながら、ドキュメンテーションを自動的に作成できます。

「コード内の多くのコメントにより Copilot に何をすべきかを伝えることができます。コードを書きながらドキュメンテーションを進めていることになります。これは画期的なことです。」

これらのコメントは、自分のプログラムの改善のために他のプログラムを研究することが多い、開発者向けの教材にもなります。Codex のプログラムコードから自然言語への翻訳機能により、開発者はコーディングしながら学べるようになり、コーディングへの参入障壁を下げることができるとウェリンダー氏は付け加えます。

ローコードからノーコードへ

一方、Microsoft Power Platform で利用できるような、AI を活用したローコード・ノーコードツールにより、何十億人もの人々が独自の問題を解決するために必要なソフトウェアアプリケーションを開発できるようになっています。たとえば、オーストラリアで難聴予防サービスの書類を電子化した聴覚士、家族経営の企業の従業員が手作業で行っていたデータ入力の負担を軽減するツール、中小企業のために COVID-19 による数十億ドル相当のローン免除申請を処理するエンタープライズ向けソリューションなど、さまざまな事例があります。

マイクロソフトのビジネスアプリケーション&プラットフォーム担当コーポレートバイスプレジデントのチャールズ・ラマンナ (Charles Lamanna) によれば、今日、表計算ソフトの Microsoft Excel で数式を扱うことに慣れた何億人もの人々が、そのスキルを Power Platform に容易に適用して、これらの事例のようなソフトウェアアプリケーションを構築できるようになっています。

チャールズ ラマンナ
マイクロソフトのビジネスアプリケーション&プラットフォーム担当コーポレートバイスプレジデント、チャールズ ラマンナは、AI 支援ツールによって、何十億人もの人々がソフトウェアを開発できるようになると考えています。

「マイクロソフトが行っている重要な取り組みのひとつは、次のレベルへ進むこと、つまり、これらのツールを使える人を数億人から数十億人へ増やすことです。そして、私たちの考えでは、それを現実にしてくれるのは、AI の活用によるローコードからノーコードへの移行です。」

この目的のために、ラマナのチームは、まず GPT-3 と Microsoft Power Apps を統合し、Power App Ideas と呼ばれる機能を実装しました。この機能により、Microsoft Excel を起源とするローコード開発向けオープンソースプログラミング言語である Power Fx により、対話型言語を使ってアプリケーションを開発できるようになりました。Build で発表された次のステップは、Azure Cognitive Services の AI モデルを活用して、図面、画像、PDF、Figma の設計ファイルをソフトウェアアプリケーションに変換する Power Apps Express Design という機能です。

「画像認識により、アプリケーションの中に存在する構成要素をマッピングできるようにしたのです。ボタン、グループ化、テキストボックスの概念を理解し、図に基づいてアプリケーションを自動生成ため、それぞれの構成要素を理解して組成する必要はありません。」とラマンナは述べています。

AI 搭載の新機能 Power Apps express design は、スケッチなどの画像をアプリの骨格に変換することで、コーディング経験の少ない人のソフト開発を支援します。

AI が支援するローコードからノーコードへの移行は、長期的にコンピューティングがより身近なものになっていく一般的トレンドに沿ったものであると、彼は付け加えます。40 年前はパソコンが珍しく、30 年前は表計算ソフトが珍しく、20 年前はインターネットへのアクセスは限定的でした。そして、つい最近まで、ビデオや写真の編集は専門家にしかできないことでした。

ソフトウェア開発ももっと身近になるべきだとラマンナは言います。

「すべての人を開発者にしたくても、Python や JavaScript のコーディングを全員に教えるという計画は非現実的です。しかし、クリックやドラッグ&ドロップ、そして、身近な概念を使って素晴らしいソリューションを生み出すことができる適切な体験を作り、多くの人々の目に触れさせれば、それは可能になります。」

ソフトウェアがもたらす未来に貢献する開発者

リウソンによれば、GitHub Copilot そして、Power Platform を通じて提供されるローコード・ノーコードサービスは、AI を活用した開発の第一段階です。リウソンは、あらゆるレベルの開発者を、データの洗浄、コードのエラーチェック、プログラムのデバッグ、コードのブロックの意味を自然言語による説明などで支援してくれる、AI 支援型のモデルやツールを構想しています。

これらの機能は、開発者が問題の解決策を迅速に見つけるためのアシスタントとして機能し、アプリケーションを構築したいすべての人が頭の中のアイデアを機能するソフトウェアに変換できるよう支援してくれる、AI 支援型ツールの大きなビジョンの一部です。

「開発者であれば、誰しも『なぜこれが動かないんだ』と頭を抱えた日があるはずです。そして、経験がある開発者に相談し、正しい方向を指し示してもらうでしょう。これと同じように Copilot が『これらの問題のパターンには、こんな 4 つの共通点がありますよ』と教えてくれるようになれば、とても大きな価値があります」とリウソンは述べています。

スコットによれば、この AI 支援型ソフトウェア開発の新時代は、開発者の生産性、満足度、効率性を向上し、ソフトウェア開発をより自然で多くの人が利用できるようものにしてくれます。

たとえば、Minecraft のノンプレイヤーキャラクターを自然言語でプログラミングし、建造物構築などの作業をさせることで、ユーザーはより重要度が高い他の作業に専念できるようになります。グラフィックデザイナーは、自然言語を使って、グラフィックスレンダリングエンジン Babylon.js による 3D シーンを構築できます。教師は、FrameVR などの 3D 構築とコラボレーションツールを使って、ローバー探査車やアメリカ国旗のある月世界のようなメタヴァースの世界を実体化させることもできます。

「AI システムにあなたが達成したいことを説明すれば、AI はあなたが何を言いたいのか理解しようとし、解決策の一部を示し、あなたはそれらを改良することができます。この繰り返しのサイクルこそが、自由で自然な開発につながります」とスコットは述べています。

また、これらのツールは、今後ソフトウェアがますます重要となる世界において、開発者の層を厚くすることにも貢献するとスコットは付け加えました。

「私たちの未来はソフトウェアにかかっています。その未来の創造に参加する人々が広範で包括的であることを願っています。マイクロソフトは、さまざまなバックグラウンドや視点を持つ人々が自分たちの抱える問題を解決し、独自のビジネスを構築し、家族やコミュニティの繁栄を目指せるよう支援するために、可能な限り強力なテクノロジを提供したいと考えています。」

参考

本ページのすべての内容は、作成日時点でのものであり、予告なく変更される場合があります。正式な社内承認や各社との契約締結が必要な場合は、それまでは確定されるものではありません。また、様々な事由・背景により、一部または全部が変更、キャンセル、実現困難となる場合があります。予めご了承下さい。