2023年6月14日から15日にかけて、日本CTO協会が主催するカンファレンス「Developer eXperience Day 2023(DxD)」が開催されました。さまざまなテーマのセッションがおこなわれたなかで、本記事では「Generative AI 時代のサービス開発者への道」をテーマにしたセッションの内容をお届けします。
セッションには、日本マイクロソフト株式会社の大森 彩子さんが登壇。
Generative AIの歴史や業務に適用するまでの道のり、サービス開発などを通して、Generative AIを活用するためのステップを紹介してくれました。
日本マイクロソフト株式会社 クラウドソリューション統括本部/Azure Specialist
2010年 Microsoft Azure(当時 Windows Azure)発表直後からサービスの最新情報や利用シナリオ、Tips、採用事例などについて情報発信開始。2016年ごろよりMicrosoft AI Technology、とくにCognitive Services(Azure OpenAI Service 含む)& Bot Frameworkを中心に情報発信や技術支援、コミュニティ等にも携わる。
目次
AIそしてGenerative AI(生成AI)とは
今やGenerative AI(生成AI)の時代となっていますが、実は7年ほど前にCognitive AIというものがありました。前半はこの歴史を振り返って、AIは何が変わったのか、また開発者はどう捉えたらよいのかについてお話しします。
後半は、Generative AIを実際のサービスやアプリケーションに適用する際の考え方をお話しします。
最初に人工知能、AIについての復習をしておきましょう。
AIとは、コンピュータ上で人間の知能を模倣しているものです。人間が見たり聞いたりして、どうしようかなと考えるところを真似したものが人工知能です。
Generative AI前のAIをCognitive AIといいますが、これは人間が見たり聞いたりして決断するまでに考える知能の部分を指しています。
なお、ビッグデータなどのさまざまなデータとマシンラーニングの技術を用いた予測や推測をする手法は、今のGenerative AIでも変わってはいません。
Generative AI(生成AIへの道のり)
たとえば写真を見て何の画像かを判別する。工場などでエラーを弾く。Cognitive AIの時代に、そういった認知の技術が人間を超えるというブレイクスルーが起きたのは、5〜7年前です。
現在は2021年ごろからの研究技術が結集して、Generative AIの時代となりました。
では、これまでのCognitive AIとGenerative AIでは何が違うのか。
Cognitive AIは、個別のタスクに特化したAIでした。たとえば「この文章を要約して」「翻訳して」とお願いすると、それだけが単品で返ってくる。当時は要約できる、翻訳できるだけでもすごかったのですが、今の時代はそれだけではなくなってきています。
最近のGenerative AIは、とくに言語系に突出したChat GPTができて、一つのモデルでいろいろなことができるようになっているのが特徴です。
Generative AIは、それまでなかったものをあたかも生成するかのように見えるので、生成AIと呼ばれています。ただ、技術的にはコンプリーションにすぎず、AIは次に何が続くのか、要約として何が正しいのかを推測、推論しています。そういった意味では、AIがしていること自体は基本的には変わっていません。
Cognitive AIとGenerative AIの違い
AIがどうやって進化してきたか。
Bing Chatに音声で「旅行プランを考えてください」と入力してみましょう。以前はいろいろな検索結果が出てきて、そこから自分で情報を見る必要がありました。それが今では、いい感じに要約をしてくれて「こんなプランはどうですか」と出してくれる。これが、今までのCognitive AIとGenerative AIの一番大きな違いです。
ただサービス全体としては、すべてをGenerative AIに任せているわけではありません。サービスは、今までのCognitive AIの技術とうまくかみ合わせながら作られています。
たとえば情報抽出、翻訳、分類などは、従来のAIでもできていたタスクです。Generative AIは、これに加えて文章生成など、より生成に近いタスクが可能となっています。
なぜChat GPTがここまで注目されたのか
Chat GPTの何がすごいのか。
口語体で入力したところに答えが返ってくる。もちろんそれもすごいのですが、一つのChat GPTというモデルに対して何かを投げると、複雑なことをいっぺんにしてくれるように見える。あとはハイコンテクスト、「なんとなくいい感じにやってください」とできるのが、すごいところです。単に口語がすごいのではなく、隠れた前提も含めて解釈してくれる、自動化してくれているのが新しいと言えます。
こうしたChat GPTやGPTシリーズでさまざまな動作ができるのは、Large Language Model(LLM)という大規模言語モデルにより解析が可能になったからです。
さまざまな技術を使って、学習データとして与えたさまざまな文章データを解析して、関連付けて、重み付けをして学習させることで成り立っています。
たとえば「日本の首都は?」と入力すると、Chat GPTにとってはこのあとをコンプリートする、推定する動作になります。だからさまざまな学習データの中から行われたもので、最も近いものを推定します。
知らないものを知っているわけではなく、 GPTエンジンもLLMを使って推定をしているのです。だからある程度の常識はあるけど、すべての答えを知っているわけではないことに注意してください。
GPT-3→GPT-4の進化
GPT-3や3.5から4に進化して、どのような違いが生じているのか。パラメータが非常に増大して、複雑なこともできるようになっています。とくに言語関係の能力が上がっています。
実際に、GPT-3からGPT-4になってどれくらい向上しているのか。
今回、事前に30名ほどの参加者の方から「Chat GTPを定義してみて ください」とお話をお聞きしておきました。Chat GTPにそのデータを渡して、「3点くらいでサマリーしてください」と言った結果、きちんと指示通りに3点くらいでまとめられて返ってきました。
これがGPT-4になるとどうなるか。同じデータを「300字くらいでまとめてください」と書いてみました。GPT-3.5でもできますが、4に食べさせてみたところ、いい感じに文章の構成ができています。非常にナチュラルで「日本語とし てきちんとわかる」という形で構成してくれるのが、現在のGPT-4です。
LLMを利用する上での課題
現状チャットが流行していて、「何でもかんでもチャットでやりたい」という風潮もありますが、全部が全部チャットでよいとは限りません。チャット以外の使い方も考える必要があるのです。
「コントロールがしにくい」「思ったような答えを出してくれない」といったお話も聞きますし、トークン数と呼ばれる、プロンプトと一緒に与えられるデータの量にも上限があります。たとえば用語集のデータを与える時に、すべて一度に与えられるとは限らないため、限界を感じるといったお話もあります。
そんなときは、どう考えたらよいか。Microsoftが発表したCopilot Stackというフレームワークを例としてお話しします。
Generative AIを実際に利用していく上でどのような形でアプリケーションを開発するか、どのような場面で使うとよいかを示したのがCopilot Stackです。
Copilotと呼ばれるUIの部分と、その下のオーケストレーションの部分をMicrosoftがご提供します。
将来的には、Copilotと呼ばれるUIの部分をMicrosoftが提供します。その上で、中間にあたるオーケストレーションなどのソリューションは、別途プラグインの形で使えるようにしていきます。みなさまに一番注力していただきたいのは、フロント部分ではなくそのうしろの部分、Generative AIを使うファウンデーションモデルと呼ばれる部分です。
料理メニュー提案(サンプルデモ)
実際にソリューションデモとして、一例をお話しします。
冷蔵庫の中身や家族構成などを考えて、今夜の献立を提案し、レシピまで出してくれるという事例です。こういった事例はひと昔前もありましたが、最近はわたしたちがあまり考えなくても、Generative AIが やってくれる部分が増えているのです。
冷蔵庫にあるもの、家族構成、好き嫌い、アレルギーなどは入力するとして、そこから「こんなメニューにするとバランスがよい」というメニューとレシピの提案までは、簡単にできます。
ただ、レシピはやはり人間が作ったものにはかないませんから、APIなどを使ってレシピのサイトなど他のサービスを連携させて使います。全部が全部AIに任せればよいわけではなく、既存のサービスと組み合わせて、推定できることはAIにさせるのです。
たとえば、栄養アドバイスなどの文章はGenerative AIが生成できるでしょう。
こういったサービスを作りたいときに、Generative AIを使うといいかもしれないと考えてみてください。
実際にGenerative AIがどれくらいできるかは、リクエストを投げてみて、結果を見ていただくとよいでしょう。一度にできない場合は、さらにそれを細分化して考えていく。その上で、適切なものが何なのか、本当にGenerative AIなのか、既存のサービスのほうがよいのか、人間が考えたもののほうがいいのかを考えながら、組み合わせを考えていただければと思います。
ゴールシーク目標達成アシスタント(サンプルデモ)
ゴールシークプロンプトをもとに、さまざまな目標を設定する事例です。
たとえば「新しい調理家電を考えたい」というときに、市場調査をAIに委ねられます。
GPT-4に「今の調理家電の流行りを教えて」と投げられますし、データを持たせておいて参照させて、今の市場動向を作らせることもできるのです。
目標設定するにしても、Generative AIは「今の市場動向はこうなので、この要素が足りません」といった感じで、言葉を補います。
使い方としては、データをうまくベクトル化して、いい感じの距離感を測らせて、データを 格納させておいて、実際に使う場面になったらベクトルの距離が近いところ、類義語などをとってきて文章を生成して、まとめてもらう。あとはわれわれの言葉が足りない、具体的ではないところを補完したり、もしくはそれを質問したりする文章をつくることもできます。
ただ、AIがしているのはあくまで推論にすぎません。会話のように見えても会話ではなく、補填したり探したりしながら推論をする技術です。
Generative AIの世界になっても、あくまでも生成されるものは正解ではなく、推測であると忘れないようにしていただきたいです。
また、「すべてGenerative AIに投げればよい」ではなく、ステップに分けることを念頭に置きつつ、今のAIの動向も知っていただければ、サービスとしてのコストパフォーマンスもよりよくなるかと思います。
(文:谷口智香)