生成AIの急速な発展と普及はソフトウエア開発にどのような影響を及ぼすのか。そして、ソフトウエア開発に生成AIをどのように活用すればよいのか。そうした「これからのソフトウエア開発に必須の知識」をまとめた新刊『 上流から下流まで生成AIが変革するシステム開発 』(酒匂寛著、日経BP)をどのように読み、使いこなしたらよいのか。同書に収録された羽生田栄一氏(豆蔵デジタルHDグループCTO、IPA主任研究員)の「解説」を紹介する。
【解説:デジタル時代のすべての人に役立つAIとの付き合い方「読本」】
羽生田栄一(豆蔵デジタルHDグループCTO、IPA主任研究員)
それにしても凄い時代に突入したものです。私が生きているうちに、いわゆるチューリングテストを軽々と通過する人工知能(AI)が登場するとは思ってもみませんでした。この半世紀以上、AIの研究はダートマス会議に始まり、日本の第5世代コンピューティングを含めて様々に行われてきました。機械翻訳を含む自然言語処理も機械可読辞書の整備や文法理論の精緻化から統計処理に基づく職人芸的な機械翻訳ノウハウを積み上げるというような悪戦苦闘がずっと続いてきました。そうした努力をあざ笑うかのようにして躍進してきた深層学習による自然言語処理わけてもTransformerという技術に基づく大規模言語モデル(LLM)やその類縁技術である生成AIの成功が、人間とAIとのごく自然な対話を実現してしまったという事実は冷静に受け止めねばなりません。
一方で、LLMに代表される生成AIは、既存の大量言語データの学習に基づいて、あくまで統計的に次単語予測を行っているだけであり、人間のように意味を理解しているわけではないという批判も行われています。ハルシネーションという文脈上も見当違いな回答を返してくることもしばしばです。しかし、LLMが意味を理解していないという批判は半分正しく、半分間違っていると言えましょう。確かに、人間のような自分の身体を通した経験に基づく対象や概念の意味理解はできていません。ところが人類が過去に生み出してきた言語テキスト上での膨大な参照・隣接に基づく単語同士の暗黙の関係というインナーテキスト/インターテキスト知識の習得に関しては、人間の追随を許さないレベルに達しています。しかもその言語知識は、高次ベクトル空間内に単語やフレーズの位置価の違いとして埋め込まれており、言い換えればソシュールのいう差異の体系を数学的に精密化した意味空間が実現されていると言えます。これが現在のLLMの秘密であり、限界でもあるのでしょう。
自然言語という誰もが使えるインターフェイスが与えられたことで、AIは単なるツールであることを超えて、利用者をエンジニアに限定することなく目的意識を持ったすべての人々にとっての知的な仕事のアシスタントとなる道が開かれました。やってほしい仕事の目的やゴールを明示して(Whatの提示)、やってほしい仕事の進め方(Howの提示)を丁寧に指示してやれば、あとは仕事を実行してくれる。まさにAIエージェントを皆さんの身近に置いておける時代が到来したわけです。
近年では、AIエージェントに与える指示(プロンプト)の与え方をノウハウとして整理したプロンプトエンジニアリングが盛んに喧伝されていますが、本書の著者である酒匂氏の主張はもっとシンプルであり、より本質を突いています。個別のAIアプリの技術進化はあまりにも早いので、プロンプトの書き方を個別に学ぶような努力よりも、「自分のやりたいことのWhatとHowに関して、まさにAIと対話しながら探索していく」というAIとの付き合い方、その態度を身に着けることこそが大事だと主張されているのです。実はこの考え方は、モデル駆動開発に通じます。WhatやHowをできるだけ実現方法に依存しない宣言的な形(モデル)で記述しておき、そこから同じ内容を表す日本語や英語の文書や図表、さらにはプログラムを生成するということだからです。
AIがハルシネーションと呼ばれる偽情報を返してくることも織り込んだうえで、「人間側が主体性を持ってWhat/Howの仮説を提示してAIと対話しながら、その回答を検証・見直しながらソリューションの改善を進めていく」というプラグマティックな態度(アジャイルな仕事の進め方と言ってもよいでしょう)が、一般人の誰にでも求められる時代になったとも言えます。文書の要約やレビュー、あらたな文書の作成といったテキスト処理だけでなく、もっと曖昧なアイデアの発想企画や分類整理、業務内容をユースケース記述に変換する、ビジネス課題や戦略をビジネスキャンバスやマップを使って可視化してプレゼンに使うといった広範囲のホワイトカラーの仕事にも生成AIは十分活用できるのですから。
もう1つ重要なことは、LLMが得意なのは自然言語だけではなく、より形式的な言語であるプログラミング言語の解釈や生成も大得意であるという点です。この能力を有効活用することで、ソフトウェア開発は有能なソフトウェアエンジニアをチーム内に1人ないし複数人確保できたと言えるわけです。ソフトウェアの作り方に関するプロセスを生成AIの導入で大きく効率化できるわけです。別の言い方をすれば、生成AIの登場によって、ソフトウェア工学の実践の仕方が見直される必要があるということでもあります。その具体的な事例はぜひ本文を熟読してほしいのですが、要求文書や仕様そしてプログラムのレビューにおいても生成AIは大いに活用できるし、設計の可視化としてコードからUMLのシーケンス図やER図等のダイアグラムを生成することも容易です。マルチモーダルの機能を使えば、ユーザーシナリオから画面スケッチや利用場面の動画を生成したりすることもできるようになるでしょう。
問題意識や課題感を持った主体性のある人間にとって、AIはとてつもなく有用な対話相手(相棒=AIエージェント)になり得るということです。エンジニアではない発注者とエンジニアである受注者の間を媒介するAIエージェントという構図はこれからのソフトウェア開発を大きく変えていくでしょうし、必ずしもソフトウェア開発に限らずあらゆる創造的なプロジェクトにおいて、有能なチームメンバーとしての位置づけが与えられて活躍していくことでしょう。そのとき、あなたもそのチームの人間メンバーとして活躍するにはどうすべきか、ぜひ本書を読んで、一緒に考えてみませんか。
