見出し画像

生成AIを最大限に活かした機能をリリースするために:『NAVITIME Travel』 AI開発にあたり考えたこと

こんにちは、ロクです。
ナビタイムジャパンで『NAVITIME Travel』の旅行プランニングサービスの開発を担当しています。

今回は先日『NAVITIME Travel』でリリースした生成AIを活用した新機能である『NAVITIME Travel AI』の開発にあたり、わたしが考えたことをお話します。


『NAVITIME Travel AI』とは

当社は日本国内での旅行をより楽しむための情報を提供するメディア『NAVITIME Travel』を運営しています。このメディアで提供しているサービスの1つに、行きたい場所や移動手段を設定し、オリジナルの旅行プランを立てることができる旅行プランニングサービスがあります。

そのサービスの新機能としてリリースしたのが、生成AIを活用した『NAVITIME Travel AI』です。
この機能は生成AIが提案した旅行プランと当社が整備している観光に役立つ情報や画像を集めたスポットや、広く収集しているスポット情報を組み合わせることで、ユーザーに新しい旅行プランを提案する機能です。
(2024/04/08時点、本機能はPCブラウザのみご利用いただけます)

「旅行計画」ページから「日本旅行プランニング」を選択し、日程を選択し「プランを作成する」をクリックすることでプランニング機能へ遷移します。
その後、スケジュールのある1日において出発地点と到着地点を設定することで、「おすすめの旅行プランをMr.NAVITIMEに聞く」をクリックすることで本機能が利用できます。

本機能の利用は通常、NAVITIME IDの登録が必要になっているのですが、2024年5月12日までの期間限定でどなたでも1日4回まで利用できるようになっていますので、是非ご利用ください。

生成AIの長所と短所、セキュリティリスク

さて、そんな本機能ですが「わざわざこんな機能を作らなくても生成AIに直接聞けば良い旅行プランを考えてくれるのではないか?」と思われた方もいらっしゃると思います。
ですので早速、生成APIと言えば恐らく多くの方が思い浮かべるであろうChatGPTに旅行プランを聞いてみました

行きたい場所、やりたいこと、日程を投げかけた所、以下の旅行プランを考えてくれました。

この回答から生成AIの長所を確認しましょう。

まず、質問への回答を瞬時に行ってくれて、知りたいことを調べる時間や手間がかからない点です。提案された旅行プランは指定した条件に対して欲しい情報が正しく返却されており、この内容に沿って旅行することも不可能ではないように見えます。
これまでは、旅先の情報を物事を調べたり計画を立てたりするためにはウェブ検索から欲しい情報を調べる必要がありました。これをまとめて実行できるのが『NAVITIME Travel』のプランニング機能なのですが、希望に沿ったプランを瞬時に提案するという機能は提供できていませんでした。

また、これはChatGPT等の対話形式のUIを用いた生成AIの長所になるのですが、質問した内容に対して、分かりやすい文言でリアルタイムに回答してくれる様子がワクワクする点です。あえて回答の内容を一度に表示せず、少しずつ表示させることで読みやすさや分かりやすさも良くなっているように思います。
対話形式のUIを持つ他サービスにはチャットボットがあり、こちらも質問に対しての回答を行うという点では類似したサービスになりますが、対応できる質問や回答は特定の範囲に限られています。このことからヘルプやサポートデスクでの利用が多く、堅実さを重視したUIとなっている傾向があります。

一方で回答の内容を詳細に見ていくと生成AIの短所も分かってきました。

まず、生成AIから良い回答を受け取るためには生成AIが答えやすい質問や良い回答を返してくれる文言を指定する必要がある点です。生成AIをより活用するためにはこれらのテクニックを事前に把握する必要があります。

次に、把握したテクニックを実際に利用したとしても、必ずしも良い回答が受けられるとは限らない点です。「回答は返ってきたけど、内容は参考にしたいと思えるものではなかった」という場合も考えられます。

そして、回答の内容からなんとなく何ができるかは分かるものの「どこへ行けば良いか」「どのような体験ができるか」といった具体的な内容についてはかなり抽象的である点です。
例えば、1日目のスケジュールには「北海道のグルメ」「札幌の市場周辺には多くのレストラン」という内容がありましたが、具体的にどこへ行けば良いかまでは示されていないため、その先は結局自分で何があるかを検索しなければなりません。

案内が抽象的な箇所

更には、回答によっては説明されている内容の真偽が怪しく本当ではないこともあり得る点です。
今回の例では、質問に記載した内容が2日目のスケジュールに含まれていますが、朝食後から野球観戦ができる日程というのは実際にイベントが開催される日程に限られているため、提案された旅行プランが本当に利用できるものなのかは自分で確認しなければならないでしょう。

実現できる内容か確認が必要な箇所

ChatGPTの回答から、生成AIの長所と短所を比較しました。
その上で「わざわざこんな機能を作らなくても生成AIに直接聞けば良い旅行プランを考えてくれるのではないか?」という問いに対しては、プランニング機能の開発者としては「生成AIの作る旅行プランは良い点もあるが良くない点もあるため、このまま使うには難しい」というのが回答です。

ユーザーの希望に沿った内容を瞬時に、しかも楽しく分かりやすく教えてくれるという生成AIの長所は素晴らしいのですが、質問自体を行う手間や、提案された内容が本当に実現できるか確認する手間がかかるといった生成AIの短所も大きいためです。
そのため、提供する機能に生成AIを活用する場合、その長所を活かすだけではなく、短所もフォローする必要があります。

また、生成AIを利用する機能には重大なセキュリティリスクが存在します。
ユーザーが生成AIを利用する機能に対して自由に質問(プロンプト)を入力できるようにすると、サービス提供者が事前に設定したプロンプトを無視して意図しない回答や機密情報を引き出してしまうプロンプトを設定されてしまう危険性があります。これがプロンプトインジェクションです。

ChatGPTがリリースされてから、生成AIを活用したサービスや機能が数多くリリースされていますが、それに比例してプロンプトインジェクションを仕掛けて成功したという報告も多く挙がっています。
生成AIを活用した機能を提供するにあたっては、このプロンプトインジェクションへの対策が必須になります。『NAVITIME Travel AI』の開発にあたっても、まずはこの対策を検討することになりました。

生成AIのセキュリティリスクを回避する施策

生成AIを利用した機能を提供するにあたってセキュリティリスクとなるプロンプトインジェクションを防ぐ方法を検討します。
前述の通り、このリスクを放置すると生成AIを利用した機能が意図しない発言を引き出されてしまったり、機密情報が抜き取られてしまったり、とサービス提供者が重大な損害を被ってしまいます。

検討した結果、『NAVITIME Travel AI』では、ユーザーには文章の入力ではなく、サービスで指定した情報を設定してもらうことにしました。そもそもプロンプトの入力が出来なければ、プロンプトインジェクションを仕掛けられることはないからです。

ユーザーには旅行で行く場所とプランのテーマを選択してもらい、その情報を元に生成AIへ質問するプロンプトを機能側で作成することで、サービス提供者が意図しない入出力を防いでいます。

生成AIの短所を見せない工夫

セキュリティリスクを防いだ後は短所をフォローする方法を考えていきます。
前項より、生成AIには以下のデメリットが存在しています。

  • 良い回答を受け取るためには質問をするテクニックが必要であること

  • 質問をしても必ずしもユーザーにとって良い回答を得られるとは限らないこと

  • 回答が抽象的で、具体的にどこで何をすれば良いかが曖昧なこと

  • 回答の正確さが保証されていないこと

これらをどのように解決すれば良いかを1つずつ検討しましょう。

「良い回答を受け取るためには質問をするテクニックが必要であること」については前項でのセキュリティリスクを回避する方法より、ユーザーにはサービスで指定した情報を指定してもらうUIとしたため、そもそもユーザーが質問を考える必要がありません。
そのため、ユーザーが良い回答を得るためのテクニックも習得する必要もありません。

「質問をしても必ずしもユーザーにとって良い回答を得られるとは限らないこと」については、機能の継続的な改善以外に方法はないものと考えております。
生成AIへの質問は本機能で実装しているため、開発者はより良い回答を得られるテクニックや、ユーザーにとって良い回答を得られる質問を考える必要があります。
実際にどのようなプランを生成AIが提案しているか、またユーザーがどのような行動を取っているかを分析し、その結果からより良い回答を得るための方法を検討することになります。

「回答の内容が抽象的で、具体的にどこで何をすれば良いかが曖昧なこと」については、生成AIが提案する旅行プランを具体的なものにするために当社が整備している観光スポット情報を活用することで解決を図りました。
この観光スポット情報は実際に人のチェックが入ったもので、当社としても観光におすすめであるというスポットであるため、生成AIが提案する旅行プランと当社の観光スポット情報を組み合わせることで、「どこで何をすれば良いか」を具体的に提案できるようになりました。

「回答の内容が正確かが保証されていないこと」についても、前述した観光スポット情報を紐づけることで「何ができるか」といった部分が正確になるよう解決を図りました。
生成AIを利用する以上、完全に正確な情報を常に表示するのは難しいのですが、実在を確認できているスポットの情報等と組み合わせることでその確度を上げられるようにしています。

生成AIの長所と組み合わせて良い体験を与える

ここまで生成AIを利用する機能で起こり得るセキュリティリスクを回避し、短所をフォローする施策を打つことで、生成AIを利用した機能がリリース出来る状態になりました。
ここからようやく機能を利用したユーザーに良い体験をしてもらうための検討が始まります。良い体験と一言に言ってもその定義は機能ごとに異なりますが、今回リリースする『NAVITIME Travel AI』は旅行プランを立てるプランニング機能の新機能であり、旅行プランを立てること、ひいては旅行とは楽しむための行動であるため、本機能を使うことで楽しい気持ちになってもらうことが良い体験に繋がると考えました。

ここで生成AIの長所を振り返りましょう。
生成AIが持つ長所の1つに「分かりやすい文言でリアルタイムに回答してくれる様子がワクワクする」と挙げました。この「ワクワクする」という点がどこから来ているかを検討した結果、本機能に以下のUIを取り入れました。

  • AIとユーザーが対話しているような形式

  • 情報はあえて少しずつ表示

  • AIにキャラクターを設定し、ユーザーと一緒にプランを考えているように見せる

実際の操作を動画にしました。

これらのUIは「情報を表示する」という点だけに限れば不必要な要素にはなるのですが、「ワクワクする」という点を重視するとどれも必要不可欠であると考えました。
またChatGPTを初めとした対話形式の生成AIが広く利用されるようになったのは、このUIもあってこそだと考えています。

最後に

生成AIを利用した機能である『NAVITIME Travel AI』開発にあたって考えたことをまとめました。
本機能も含めて、生成AIを利用した機能やサービスはまだ決定的なものがなく、生成AIの使い方や見せ方はまだ手探りの状態であると考えています。その中で今回執筆した内容が機能開発に少しでも参考になれば幸いです。

『NAVITIME Travel AI』、是非利用してみてください!

この記事が参加している募集

AIとやってみた