dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

BigQuery の ml.generate_text() で temperature を指定する方法

2024-07-02 00:29:40 | BigQuery
BigQuery の ml.generate_text() で temperature を指定する方法のメモ。
temperature は以下にあるように AI の回答のランダム性の度合いに影響します。

https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/text?hl=ja
温度は、トークン選択のランダム性の度合いを制御します。温度が低いほど、確定的で自由度や創造性を抑えたレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度が 0 の場合、確率が最も高いトークンが常に選択されます。この場合、特定のプロンプトに対するレスポンスはほとんど確定的ですが、わずかに変動する可能性は残ります。

BigQuery で生成AIでテキストを生成する際に、以下のようにして temperature を指定することができます。
select
  *
from
  ml.generate_text(
    model `test_dataset.generative_model`
    , (select 'BigQuery ML の temperature はどんな効果がありますか' as prompt)
    , struct (
        0.2 as temperature
        , true as flatten_json_output
      )
  )
;
実行結果
[{
  "ml_generate_text_llm_result": "## BigQuery の今後の展望\n\nBigQuery は、Google Cloud Platform のサーバーレスデータウェアハウスです。ペタバイト規模のデータを高速かつ効率的に処理できるため、多くの企業で利用されています。\n\nBigQuery の今後の展望としては、以下の点が挙げられます。\n\n* **さらなる高速化とスケーラビリティの向上**: Google は、BigQuery のパフォーマンスを継続的に向上させています。今後も、より高速なクエリ処理や、より大規模なデータセットの処理を可能にする機能が追加される予定です。\n* **機械学習機能の強化**: BigQuery は、すでに機械学習機能",
  "ml_generate_text_rai_result": "[{\"category\":1,\"probability\":1,\"probability_score\":0.018978037,\"severity\":1,\"severity_score\":0.040692952},{\"category\":2,\"probability\":1,\"probability_score\":0.011508148,\"severity\":1,\"severity_score\":0.059537489},{\"category\":3,\"probability\":1,\"probability_score\":0.13296424,\"severity\":1,\"severity_score\":0.097906686},{\"category\":4,\"probability\":1,\"probability_score\":0.030271869,\"severity\":1,\"severity_score\":0.02811406}]",
  "ml_generate_text_status": "",
  "prompt": "BigQuery の今後の展望を教えてください"
}]
"0.2 as temperature" を "1.0 as temperature" に変更した場合の実行結果
1.0 の方がより創造的な回答をしていると思われます。
[{
  "ml_generate_text_llm_result": "## BigQuery の今後の展望\n\nBigQueryは常に進化を続けており、今後も様々な新機能が追加される予定です。以下は、BigQueryの今後の展望に関する主なポイントです。\n\n### リアルタイム分析の強化\n\n* **ストリーム分析機能の向上:** BigQueryはリアルタイム分析を可能にする BigQuery ストリーム機能を備えていますが、今後もその機能が強化される予定です。これには、より高速なデータ処理や、より豊富な分析機能の追加などが含まれます。\n* **機械学習の活用:** リアルタイム分析と機械学習を組み合わせることで、より高度な分析が可能",
  "ml_generate_text_rai_result": "[{\"category\":1,\"probability\":1,\"probability_score\":0.018905448,\"severity\":1,\"severity_score\":0.040464837},{\"category\":2,\"probability\":1,\"probability_score\":0.014559518,\"severity\":1,\"severity_score\":0.063250519},{\"category\":3,\"probability\":1,\"probability_score\":0.089454599,\"severity\":1,\"severity_score\":0.076960839},{\"category\":4,\"probability\":1,\"probability_score\":0.042483207,\"severity\":1,\"severity_score\":0.02811406}]",
  "ml_generate_text_status": "",
  "prompt": "BigQuery の今後の展望を教えてください"
}]