Google のパートナー イノベーション チームは一連の生成 AI テンプレートを開発していますが、そうしたテンプレートは、大規模言語モデル(LLM)を既存の Google API やテクノロジーと組み合わせて、特定の業界のユースケースに解決策をもたらしたときに開かれる可能性を具体的に示すものです。
インターネットを使ってレシピを検索したり、生活の中で直面する難題を乗り越えるためのヒントをインターネットに求めたりした経験は誰にでもあるでしょう。ではそこで、生成 AI を活用し、インターネットのこうした優れた機能を融合した、一風変わったパーソナル シェフが登場したとしたらどうでしょうか?その日あったこと、そのときの気分、考えていることを伝えると、その雰囲気に合わせて、ユニークな食材を使った、独創的で斬新な料理を考案してくれるパーソナル シェフです。
MoodFood は、従来のレシピ検索サービスに遊び心あふれるひねりを加えたものです。ユーザーに今の気分やこれからなりたい気分を尋ねる「フード セラピスト」となって、「失恋を癒すスープ」や「月曜日の憂鬱を吹き飛ばすラザニア」などのよくあるお悩みに効くユーモアたっぷりの料理から、結婚を控えた相手の母親にふるまう手料理など、まさに人生のアドバイスと言える「レシピ」まで幅広いレシピを生成します。
上の例では、ユーザーは彼氏の母親にふるまう料理を作らなくてはならなくなったため大きなプレッシャーを感じている、と入力します。すると MoodFood は、「将来のお義母さんのチキン スープ」を提案します。これはユーザーが入力した情報だけをもとに MoodFood が生成した、まったく新しいレシピであり、料理名です。続いて、グラフィック レシピ「カード」を生成し、材料とレシピの情報も生成して所定の形式に整えます。この情報をパートナー サイトに渡して、そこで料理のレシピが完成します。
このように、これまでにない新しいプロダクトの見つけ方を基盤とした、さまざまなユースケースが考えられます。たとえばユーザーの気分を尋ねることによって、音楽アプリならおすすめの曲、観光事業者ならおすすめの旅行先、フード デリバリー アプリなら実際に注文できるおすすめのレシピを表示することです。さらにこのテンプレートは、e コマースや小売のユースケースでは、ディスカバリ メカニズムとしても使用できます。LLM は、データ探索とそれがもたらす可能性によって新天地を開拓しつつあります。従来の素材を使い、それをユーザーの気分などのこれまでにないコンテキストに沿って組み換えることで、新しいものを生み出してユーザーに提案できる LLM の機能をぜひ体験していただきたいと思います。
エクスペリエンスのさまざまな場面で PaLM API をどのように使用できるのかを検討したいと考え、API を複数回にわたってそれぞれ異なる目的で使用しました。たとえば、ユーモアのある応答の生成、レシピの生成、構造化されたフォーマットの作成、保護などです。
現在のデモでは、LLM を 4 回使用しています。1 つ目の LLM には、ユーザー入力とコンテキストに基づいてユーザーのためのレシピを考案する創造性が求められます。2 つ目のプロンプトは、応答を JSON 形式にフォーマットします。3 つ目のプロンプトは、保護の一環として命名が適切であることを確認します。最後のプロンプトは、構造化されていないレシピを JSON 形式のレシピに変換します。
LLM を使って、デベロッパーの仕事の 1 つであるデータのフォーマットをサポートできます。指定された任意のテキストソースに対して、PaLM API を使用することで、テキストデータを希望する形式(JSON、Markdown など)にフォーマットできます。
必要な形式を維持しながら、ユーモアもある応答を生成するために、PaLM API を複数回呼び出しました。入力をよりランダムにするために、入力時のモデルは「temperature(創造性レベル)」を高めにし、応答をフォーマットする際のモデルでは下げました。
このデモでは、PaLM API が JSON 形式でレシピを返すようにするため、フォーマット済みの応答の例をリクエストに添付します。これは、LLM に正しい形式での回答方法を示す簡単なガイダンスです。ただし、レシピを JSON にフォーマットするにはかなり時間がかかるため、ユーザー エクスペリエンスの観点から問題になる可能性があります。これに対処すべく、JSON 形式のレシピ生成と並行して、ユーモアあふれる応答を使ってリアクション メッセージのみを生成します(JSON 形式のレシピより短い時間で生成できます)。JSON レシピの応答を待っている間、まず受信したリアクション応答を 1 文字ずつ表示します。そうすることで、応答待ちの時間を長く感じさせないようにします。
応答をあらかじめ定義された形式に保ちつつも、もう少し創造性を働かせたいタスクについては、このメインタスクを 2 つのサブタスクに分けることをおすすめします。1 つは創造性レベルを高めに設定したクリエイティブな応答を生成するもの、もう 1 つは希望の形式を定義するもので、こちらは創造性レベルの設定を低くして出力のバランスをとります。
プロンプトは、大規模言語モデル(LLM)に特定のタスクの実行を指示するために使用する手法です。タスクを説明する短いテキストと、他にもタスクを完了するために必要な関連情報があれば合わせて LLM に提供します。PaLM API のプロンプトでは、context、messages、temperature、candidate_count
の 4 つのフィールドをパラメータとして使用します。
candidate_count
は、LLM が返す応答数です。Mood Food では、PaLM API への指示にプロンプトを使用しました。クリエイティブで面白いシェフとして振る舞い、ユーザーのメッセージをもとに普段は想像もしないようなレシピを返すように指示しました。また、応答の形式はリアクション、名前、材料、調理方法と説明の 4 つの部分で構成するよう指示しました。
PaLM API は、PaLM API と顧客データのシームレスな統合を容易にする埋め込みサービスを提供しています。統合を始める場合は、PaLM API 埋め込みサービスを使用して、パートナーのデータの埋め込みデータベースを設定するだけで済みます。
統合後は、ユーザーが食品またはレシピ関連の情報を検索すると、PaLM API が埋め込みスペースを検索して、ユーザーのクエリに最適な結果を見つけます。さらに、パートナーが提供するショッピング API と統合すれば、そのままチャット インターフェースからパートナーのウェブサイトの食材を購入することもできます。
インドの食品のオンライン注文・デリバリー プラットフォーム Swiggy は、MoodFood をはじめとするエクスペリエンスが可能にするユースケースの検討にあたり、大きな期待を寄せています。
MoodFood はオープンソース化されるため、デベロッパーやスタートアップ企業は、私たちが作成したエクスペリエンスをベースにして構築することができます。また、Google のパートナー イノベーション チームは、地域の市場と連携して機能やツールの開発を続け、すでに進行中の研究開発(R&D)を展開していきます。こちらの GitHub でプロジェクトをご覧ください。
このプロジェクトに貴重な貢献をしてくださった次の皆さんに感謝いたします。KC Chung、Edwina Priest、Joe Fry、Bryan Tanaka、Sisi Jin、Agata Dondzik、Sachin Kamaladharan、Boon Panichprecha、Miguel de Andres-Clavera