Microsoft傘下のGitHubやAmazon Web Services(AWS)などが生成AIによるプログラミング支援サービスに力を入れ、普及に期待が高まっている昨今。各社が提供するサービスは、具体的にどのようなものなのだろうか。ITジャーナリストの山口健太氏に聞いた。
「GitHubの『GitHub Copilot』、AWSの『AWS CodeWhisperer』は、インターネット上などに公開されているソースコードを学習したAIで、プログラムを書くときにさまざまな提案をしてくれます。ネット検索や解説書などからサンプルを探す作業をAIが代行してくれるイメージです」(山口氏)
プログラミング支援サービスは「AIがプログラムを書いてくれる」というよりは、作業効率の向上を手助けしてくれるものという認識が正しいようだ。個人でも利用できるサービスはあるが、社内のエンジニアに向けて試験的に導入する企業が増えているという。
生成AIのプログラミング支援サービスの現状
各社のサービスは、開始以降にどのような経緯をたどったのだろうか。
「2021年6月にGitHubが発表した後、2022年にはAWSが参入しています。GitHubはサービスを有料化したのに対し、AWSは個人向けには無料で提供しています。今後は生成AI分野で出遅れたGoogleの参入もありそうです。
基盤となる技術は文章や画像の生成AIと似ていますが、プログラマー向けの支援に最適化されているのが特徴です。今後は反復的な作業や、プログラムの中から誤りを探すなど、人間が苦手とする仕事を担っていく可能性があります」(同)
「GitHub Copilot」とは
企業での試験導入が進む「GitHub Copilot」は、GitHubがChatGPTの開発元であるOpenAIと共同開発したサービスだ。Copilot(コパイロット)とは副操縦士の意味だが、どのような特徴があるのか。
「生成AI以前から、プログラマー向けの開発ツールには入力を補完したり、書き方のヒントを出したりする支援機能がありました。GitHub Copilotはその延長にあるサービスといえるものですが、自然言語で対話しながら使える機能を取り入れるなど、AIを活用することで次の段階に進化しつつあります」(同)
ChatGPTに指示を出すようにプログラマーが日本語で作業内容を伝えることができる半面、新たな業務を求められる可能性もあるという。
「AIに指示を出すのは意外と難しく、思い通りの結果を得るには指示の出し方を学ぶ必要があります。これまでのプログラマーとしての仕事が減る一方で、新しい業務が増えることも考えられます」(同)
自然言語で作業を依頼できるとなれば、プログラマーでなくても指示を出すことが可能になる。しかし、AIの提案を採用するかどうかを決めるのは人間であり、その成果物をチェックするには高度な知識を持った人材が欠かせない。
「生成AIへの効果的な指示の出し方を探る『プロンプトエンジニアリング』という分野が盛り上がっていますが、そこまでやるなら自分でコードを書いたほうが早いという場合もあるでしょう。また、プログラミングではシステム全体の整合性も重要になるため、AIによる提案の良し悪しを判断できない人が扱うことは難しいです」(同)
AI導入のメリット・デメリット
生成AIによるプログラミング支援サービスの普及は、プログラミングの世界にどのような影響や変化を与えると予想されるのだろうか。
「プログラミングではコピー&ペーストや繰り返しの作業も多く、ベテランは省力化の工夫をしてきましたが、生成AIがあればそうしたスキルの底上げを図れる可能性があります。また生産性の向上という面では、『GitHub Copilotを使用した開発者は、同サービスを使用しなかった開発者より55%も早くタスクを完了した』というGitHubによる調査もあります」(同)
AIに仕事を任せることによって生産性が上がる可能性はあるものの、その一方で、本格的に導入するためには数々の問題をクリアしなければならないようだ。
「ChatGPTが不正確な文章を出してくる場合があるように、プログラミングにおいても生成AI特有の間違いには注意が必要です。また、学習元となったデータの権利関係に加えて、プログラミングではオープンソースソフトウェアにおけるライセンスの問題もあり、完全には解決していません。AIを活用することが前提になれば、プログラミング教育にも変化が生じるでしょう」(同)
プログラマーもAIに仕事を奪われるのか
最近では「AIによって仕事がなくなる」と騒がれており、一部では「プログラマーが不要になる」といった声も。今後、そのようなことが起きる可能性はあるのだろうか。
「生成AIの普及により、プログラマーに求められるスキルが変化する可能性はあるものの、AIが成果物の責任を取ってくれるわけではありません。当面の間、プログラマー自体が不要になることはないでしょう。
また、システム開発においてプログラミングのスキルを活かせる仕事はまだまだ残っています。AIにできる仕事はAIに任せることで、プログラマーは人間にしかできない付加価値の高い仕事に集中できるようになります」(同)
(文=LUIS FIELD、協力=山口健太/ITジャーナリスト)