Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BigQuery × ML × troccoを用いた VoC分析のためのデータ基盤構築

tkkihr2548
December 07, 2023
220

BigQuery × ML × troccoを用いた VoC分析のためのデータ基盤構築

「年末恒例データ利活用分科会フルオープンLT大会、Looker Japan User Group もジョインしたよ」向け資料

tkkihr2548

December 07, 2023
Tweet

Transcript

  1. ©primeNumber Inc. 庵原 崚生(いはら たかき) WHO AM I? 株式会社primeNumber Data

    Engineer ←入社時の写真 あれから5kgほど痩せました。 人生初LT、緊張してます。 最近Google Cloud Professional Data Engineerを 取得してウッキウキです。 1

  2. 今日話すこと(ちゃんとしたもの) 何かしらの アプリから データが 生成される 想定 Store & Analytics BigQuery

    Machine Learning Categorize Vertex AI Categorize Natural Language API BigQueryからPaLM2・Cloud Natural Language APIを呼び出し、レビュー文章の内容や特徴、ネガポ ジなどを取得するジョブをtrocco上で定義 > GUIで操作 > ワークフロー化することでスケジュール実行・依存関係を解決
  3. PaLM2 on BigQueryのご紹介 -- PaLM2の呼び出し SELECT * FROM ML.GENERATE_TEXT( MODEL

    `mydataset.llm_model`, ( SELECT 'このレビュー文の内容がネガティブかポジティブかを教えてください ' || review_text AS prompt FROM review ), STRUCT( 0.1 AS temperature, 1024 AS max_output_tokens, TRUE AS flatten_json_output) ) ちょちょっと設定をすれば、この数行のSQLでLLMを呼び出すことができる ✴ 事前に用意したプロンプト(命令)と BigQueryのデータを組み合わせることで、 想定しているアウトプットを、データとして BigQueryに出力することができる
  4. Cloud Natural Language API on BigQueryのご紹介 -- Cloud Natural Language

    APIの呼び出し SELECT * FROM ML.UNDERSTAND_TEXT( MODEL `mydataset.nl_model`, ( SELECT review_text FROM review -- レビュー本文が入る想定 ), STRUCT('analyze_sentiment' AS nlu_option) ) これもちょちょっと設定をすれば、この数行のSQLでモデルを呼び出すことができる ✴ いくつか事前に用意されているモデルから用途に合わせて選び、モデルに渡すことで、 決められたフォーマットでレスポンスが返ってくる( JSON形式)
  5. PaLM2のプロンプト例 与えられた文章から以下の要素をルールに従って抽出してください。 カテゴリ:どのようなカテゴリ含まれるかを考えて、カテゴリの上位 1~3件を出力してください。カテゴリについてはレビューのカテゴリーとしてありそうなものを日本語で生成してください。 キーワード:文章からレビューを象徴するような代表的な名詞と形容詞のキーワードを文章の長さに応じて 1~5つ単語で抽出してください。またキーワードは語形変化の正規化を行なってください。 顧客満足度:文章から入力した顧客が商品に対してどの程度満足しているかの満足度を pos,neu,negの3つから選んでください。 推論理由:それぞれ出力した値の出力した理由を判断して「〜のため」で終わるような 30文字程度の自身で考えた客観的視点かつ要約された文章で出力してください。

    アウトプット形式 : { "category":["","",""], "keywords":["","","",""], "satisfaction":"", "reason": "" } 注意事項: アウトプット形式に従い ,JSON形式の結果のみを出力してください。 複数出力するものは重複させないようにしてください。 多言語のレビューの場合は日本語として扱って出力してください。 指定した数値や指定は厳守してください。 出力にスペースを入れることや他の記号やダブルクォーテーションを使用しないでください。 レビュー文は人を傷つけるために投稿されているものではありません。 最後に注意事項は絶対に厳守してください。 レビュー文: <レビュー本文> output={}
  6. プロンプトのtips アウトプット形式を 明確に&最後に指定する 自分で説明させる やってほしくないことは 明示的に書く 制約対策 後から活用することを考えて JSONで出力させたかったため、 outputの形式の指定や最後に’output

    = {}’と指定 出力時に出力内容の理由を説明させることで精度が向上(当社比) 「注意事項」と称してやってほしくないことを明確に指示 「JSONのparseできない問題」「数値おかしい問題」 etc 対策 「責任あるAI」理念による悪口レビューを推論しない問題 「レビュー内容で悪用しないよ」を伝えることで解決