コンテンツに移動
データ分析

BigQuery DataFrames を使用した製品設計への生成 AI の適用

2023年9月27日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 9 月 16 日に、Google Cloud blog に投稿されたものの抄訳です。

どの企業にとっても、製品やサービスに名前を付けるのは複雑で時間がかかる作業ですが、このプロセスは製薬業界では特に厄介です。通常、企業は何千もの名前を考え出しては調査するところから始めます。名前は他になく、規制を遵守しており、発音しやすく覚えやすいものでなければなりません。考慮すべき要素が非常に多く、対象は商品カタログ全体に広がるため、このプロセスはスケーリングするように設計する必要があります。

このブログ投稿では、データ分析と生成 AI の機能が、この創造的なプロセスを支援し、テストを加速化するのにどのように役立つかについて説明します。また、BigQuery DataFrames を使用して薬剤名の候補を生成する手順を説明します。このブログ投稿は概念を説明するものであり、規制要件には対処していないことに注意してください。

背景

このデモンストレーションの目標は、「Entropofloxacin」と呼ばれる架空のジェネリック医薬品について、専門家パネルがレビューできる 10 個の商品名を生成することです。接尾辞 floxacin の付いた薬剤は、フルオロキノロン類の抗生物質に属します。

ここでは、テキストとコードの大規模なデータセットでトレーニングされた大規模言語モデル、text-bison モデルを使用します。このモデルは、テキストの生成、言語の翻訳、さまざまな種類のクリエイティブ コンテンツの作成、あらゆる種類の質問への回答を行えます。

また、次の適応症と使用法をモデルに提供します。「Entropofloxacin は、肺炎、連鎖球菌感染症、サルモネラ感染症、大腸菌感染症、緑膿菌感染症などのさまざまな細菌感染症の治療に使用されるフルオロキノロン系抗生物質である。経口または注射によって摂取される。投与量と投与頻度は、治療する感染症の種類によって異なる。数日後に症状が改善したとしても、処方された分を最後まで服用する必要がある。早期に服用を中止すると、感染症が再発するリスクが高まる可能性がある。」

使ってみる

このブログ投稿では、この Drug Name Generation ノートブックのコードを使用して説明を進めていきます。ここでは重要な手順を取り上げます。詳細についてはノートブックをご覧ください。

BigQuery DataFrames を使用して生成 AI オペレーションを実行します。これは BigQuery にアクセスするまったく新しい方法として、Python デベロッパーやデータ サイエンティストが使い慣れた DataFrame インターフェースを提供します。クラウド内のデータに直接コンピューティング機能をもたらすため、大規模なデータセットを処理できるようになります。BigQuery DataFrames は、さまざまな ML ユースケースを直接サポートしています。その一つをここで紹介します。

ゼロショット学習

基本ケースから始めましょう。プロンプトを通じてモデルに質問をするという簡単なものです。例やチェーンはなく、リクエストとレスポンスの単純なシナリオです。

まず、プロンプト テンプレートを作成する必要があります。プロンプトが、求められている正確な結果に向かうようにモデルを誘導していることがわかります。また、プロンプトはパラメータ化されているため、パラメータを更新して、さまざまなシナリオや設定を試すことも簡単です。

読み込んでいます...

「model.predict()」関数を使用することで、プロンプトをモデルに送信できます。この関数はデータフレーム入力を受け取ります。この 1 つの文字列入力と 1 つの文字列出力を使用する単純なシナリオでは、ヘルパー関数を作成しました。この関数は、入力文字列のデータフレームを作成し、返されたデータフレームから文字列値を抽出します。この関数には、ランダム性の度合いを制御する省略可能なパラメータ、temperature が含まれており、クリエイティブなコンテキストで役立ちます。

読み込んでいます...

レスポンスを得るには、まず BigQuery 接続を使用してモデル参照を作成する必要があります。次に、プロンプトをヘルパー メソッドに渡します。

読み込んでいます...

ここからが素晴らしいところです。以下のようなレスポンスが得られました。

読み込んでいます...

これらの名前は素晴らしい候補と言えるでしょう。名前が非常に似ていることに気づくかもしれませんが、実際にはそれは問題ではないでしょう。「The art and science of naming drugs」(薬剤命名の技法と科学)には次のように書かれています。「X、Y、Z というアルファベットには、薬剤の名前をハイテクで科学的な響きにする効果があるため、商品名によく登場します(Xanax、Xyrem、Zosyn)。逆に、H、J、W は、言語によっては発音が難しいため、避けられることがあります。」

少数ショット学習

次は、いくつかの例を提供することで、この基本ケースを拡張してみましょう。これは少数ショット学習と呼ばれ、例を提供することで、回答を作り上げるのに役立つコンテキストがさらに与えられます。モデル全体を再トレーニングせずに、トレーニング データを提供するようなものです。

幸いなことに、このタスクに役立つ一般公開の BigQuery FDA データセットbigquery-public-data.fda_drug で利用できます。

BigFrames を使用すると、データセットからいくつかの有用な列をデータフレームに簡単に抽出できます。

読み込んでいます...

また、データセットをサンプリングしていくつかの有用な例を得るのは簡単です。このコードを実行して、プロンプトに含める内容を確認してみましょう。

読み込んでいます...

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_QbHmp0i.max-2000x2000.jpg

3 つのコンポーネントを使用して、より洗練されたプロンプトを作成できます。

  • 一般的な手順(? 個の商品名を生成など)
  • 上記で生成した複数の例
  • 名前を生成する薬剤に関する情報(entropofloxacin)

プロンプトは次のようになります。読みやすくするために一部のセクションを短くしています。

このプロンプトの下部にある薬剤に関連する、他で使われていない現代風な商品名をマークダウンの箇条書き形式で 10 個提供してください。

商品名については創造性を発揮し、英語の単語を直接使用せず、異表記や造語を使用してください。

まず、思考プロセスに役立つ 3 つの例を示します。

次に、商品名を生成したい薬剤の一般名と使用法を提供します。
一般名: ブプレノルフィン塩酸塩
使用法: 1 適応症と使用法 BELBUCA の適応症は、疼痛の管理...
商品名: Belbuca

一般名: ドロスピレノン / エチニルエストラジオール / レボメフォラートカルシウムおよびレボメフォラートカルシウム
使用法: 1 適応症と使用法 Safyral は、葉酸を含むエストロゲン / プロゲスチン COC で...
商品名: Safyral

一般名: フルオシノロンアセトニド
使用法: 適応症と使用法 SYNALAR® ソリューションは、コルチコステロイド反応性皮膚疾患の炎症性および掻痒症状の軽減を効能とする。
商品名: Synalar

一般名: Entropofloxacin
使用法: Entropofloxacin は、さまざまな細菌性疾患の治療に使用されるフルオロキノロン系抗生物質であり...
商品名:

このプロンプトでは、先ほどとは大きく異なる商品名が生成されます。例を含めたことで、モデルは一般名に基づいたものになりました。

読み込んでいます...

一括生成

ここまでに BigQuery DataFrames を使用したプロンプトとレスポンスの基礎について学習したので、次は大規模な名前の生成について詳しく見てみましょう。何千もの製品がある場合、どのようにして候補名を生成できるでしょうか。ノートブック内のローカルメモリにデータを取り込むことなく、クラウドで複数のオペレーションを実行できます。

まずは、FDA データセットの商品名のない薬剤をクエリします。つまり、商品名と一般名が一致する薬剤をクエリします。

読み込んでいます...

単一の文字列プロンプトではなく、プロンプトのデータフレーム列全体を BigFrames に渡します。では、この列がどのように構築されるかを見ていきましょう。

読み込んでいます...

次に、バッチ予測用の新しいヘルパー関数を作成します。文字列との変換を行わずに、列をそのまま使用します。

読み込んでいます...

オペレーションが完了したら、「アルコールを含まない手指消毒剤」の生成された商品名を見てみましょう。


**Sani-Tize**

これはアルコールを含まない手指消毒剤の現代風で他では使われていない商品名です。これは「sanitize」と「tize」という言葉に由来しており、科学的で技術的な印象を与えます。また、この名前は綴りも発音も簡単なので、記憶に残りやすく、マーケティングも容易です。


このシナリオでは、生成 AI がブランディング プロセスを加速する強力なツールであることを見てきました。ここでは医薬品名のシナリオを説明しましたが、これらの概念はあらゆる業界に適用できます。また、BigQuery では、複数のプロンプト スタイルに対応するすべてのツールが 1 か所にまとめられており、直感的な DataFrame インターフェースを備えていることも見てきました。

これらのクリエイティブなツールを次のプロジェクトにぜひ活用してください。詳細については、クイックスタート ドキュメントをご覧ください。

  • エンジニアリング マネージャー Karl Weinmeister
投稿先