はじめに

NTTデータ先端技術株式会社にてアジャイル開発並びに技術調査業務に従事している志田です。前回に引き続き生成AIよるシステム開発業務への影響について考察します。前回は生成AIによって業務がどう変わっていくかを主軸にしましたが、今回はもう少し具体的な例から生成AIの活用方法を考えていきます。

どこにでもLLMを適用するという潮流

生成AIは急速に普及し、様々な企業や組織が生成AIの導入を開始しています。その中でも既存のよく使われているソフトウェアやライブラリにも生成AIの機能が組み込まれています。生成AIの組み込みの例は以下です。

  1. Copilot
    Microsoft社が提供するサービスにXXX Copilotというサービスが出てきました。Microsoft社の主力製品であるMS365やGithub、また近年ではWindows OSに対するCopilotも提供され始めています。Copilotとは副操縦士という意味で、作業代行をしてくれます。例えば、MS365 Copilotではチャットで指示をすればPowerPointのスライドやWordドキュメントを生成してくれますし、Gihub Copilotでは実現したい機能を入力すると、候補となるプログラムを生成してくれます。Windows Copilotではさらに、ファイルの管理やちょっとした調べ物など、より抽象度の高い作業を代行してくれます。これまでChatGPTなどは「使う人は使う(使わない人も多い)」というサービスでしたが、OSやオフィス製品への取り込みが進み、自然と生成AIを活用していく土壌ができていくことが予想されます。
  2. Open Interpreter
    ChatGPTのサービスであるCode Interpreterをローカル環境で動かせるオープンソースのライブラリです。こちらのOpen Interpreterを導入すると、ローカルのファイルやデータを使ってコード生成と実行ができます。簡単なものは、サンプルデータの作成などをチャットを通じて実施するといったものですが、プロンプトを駆使することでPCの自動操作やメール送付の自動化などを実施できます。完全ローカルで動くように、Meta社の提供している大規模言語モデルであるCode Llamaなどのモデルも利用できます。
  3. PandasAI
    オープンソースのデータ分析用ライブラリであるPandasをAIによって操作する機能を追加したPandasAIも注目されています。Pandasに対してデータを取り込ませた後、取り込んだデータに対して統計を取ったり、グラフ出力したりといった処理をPandasのプログラムを書くことなくチャットだけで指示できます。実際のプロンプト処理はOpenAIやAzure OpenAI Serviceなどを利用し、生成されたPandasの操作コードを自動実行する仕組みです。

このように、Microsoft製品群やPandasといった従来よく利用されているソフトウェア、ライブラリに生成AIの機能が取り込まれ、ソフトウェアの利用難易度を下げる動きがあります。また、Open Interpreterのように生成AIサービスを誰でも簡単に利用できるようにし、PCの操作全体を簡便にするといった動きもあります。

PandasAIの利用

以下のグラフはPandasAIの利用例として実装したものです。Pandasに対してシステムのアクセスログを読み込ませます。その後、読み込んだアクセスログに対して「日毎にアクセス元IPの集計を取り、積み上げグラフにしてください」というように自然言語で実施してほしい内容を通知します。PandasAIは内部で自然言語からPandas操作用のコードを生成し、生成されたコードを自動実行します。

  • PandasAIでのグラフ生成

    PandasAIでのグラフ生成

ここでの重要なポイントは、Pandasの知識がなくともPandasの操作が実施できるという点です。データサイエンティスト界隈では、Pandasは必須技術として身につけておく必要がありますが、通常のアプリケーションエンジニアやインフラエンジニアはなかなか触れる機会がありません。このように非エキスパートであっても、生成AIを利用することでエキスパートと同等のことができるという点が生成AIの大きな価値です。

生成AIが普及展開した後のエンジニアの役割

生成AIが今後どのように普及展開していくかに関して、正確に予測することは難しいと感じています。各社生成AIに対して既存業務が効率的になるよう、また、生成AIを活用した新しいビジネスを確立しようと日夜進化し続けています。今後どのようなトレンドが生まれてくるか見切れない部分ではありますが、さまざまな分野やソフトウェアやサービスに生成AIが組み込まれていくことは間違いありません。すると、これまで人が手作業でやっていたものを、生成AIに任せていくことがさらに増えていきいます。例えば、2023年9月22日にFIXER社はOpen Interpreterを利用してクラウド上のインフラ構築をプロンプトで自動化するサービスの提供をアナウンスしています。これはあくまで一つの例で、人が考え、実施してきた多くの作業を生成AIによって自動化するという方向性は浸透していくことでしょう。

その中でも、最終的な良し悪しの判断は人が握ることになります。生成AIによってこれまで人が実施してきた情報収集、評価、判断決定の作業の中で特に情報収集や評価にかけるコストは非常に小さくなっていきます。ただ、判断決定はやはりAIが自動的に判断というよりも、人によって取捨選択されます。今後、エンジニアに求められるものは、AIの助けを借りながら適切に判断を行うためのスキルなのではと予想しており、適切な判断を下すためにはやはり広範にわたる知識の蓄積や経験が必要となるでしょう。これは、従来のフルスタックエンジニアに求められるスキルと大きな乖離はなく、フルスタックエンジニアの需要はより高まっていくでしょう。

生成AIの進化に追いついていく方法

生成AIという技術は私が過去遭遇したあらゆる技術に対して比較にならない速度で利用者が増加します。100万ユーザを達成するまでの時間もInstagramやSpotifyといった近年の大手SNSサービスでも2ヶ月かかっていたのに対し、たったの5日で到達しています。日本国内でもChatGPTは非常に大きな注目を集め高い認知度があります。

  • ChatGPTに、ChatGPTの普及状態を問い合わせ

    ChatGPTに、ChatGPTの普及状態を問い合わせ

これに伴い、ChatGPT並びに生成AIという技術ジャンル自体も日進月歩で進化しています。例えば、ChatGPTのプラグイン機能が公開されたときに利用できるプラグインは90プラグインほどでした。これが1ヶ月、2ヶ月で1000近いプラグインまで増加しおり、あっという間に10倍ほど増加しています。機能拡張の速度も非常に早く、Code InterpreterやFunction Callといった根幹にかかわる機能拡張でさえ1ヶ月、2ヶ月のタイムスケジュールで追加されています。生成AIの進化についていくことは、非常に大変です。

日進月歩のAI技術についていくための最も良い方法は、やはりサービスに対するアクティブなユーザになることです。生成AIは、エンジニアの視点からすると自分たちの役割を奪う、競合する技術という側面もありますが、適切に利用すれば非常に大きなメリットを享受できます。本連載記事のような技術文書を書くというシーンにも当然利用できますし、昨今筆者がセミナーなどで講演する際にはOpenAI DALL-Eで生成した画像を差し込んで講演資料を作成しています。また、日ごろの業務で障害が発生した場合は障害発生時のアプリケーションのエラーログなどから生成AIによって原因を分析させたり、検証用のダミーデータをCode Interpreterで生成しています。まずは新技術、新サービスに対して模範的なユーザとなることで、その技術が得意とすること、不得意とすることを実体験として見極め、自身の業務に適用していくというのが新しい技術に対する適切な取り組み方でしょう。

※本記事はエヌ・ティ・ティ・データ先端技術株式会社から提供を受けております。著作権は同社に帰属します。

[PR]提供:エヌ・ティ・ティ・データ先端技術