プレビュー提供中の、BigQuery MLからVertex AIのAnthropic Claudeモデルを利用する方法を確認してみた

プレビュー提供中の、BigQuery MLからVertex AIのAnthropic Claudeモデルを利用する方法を確認してみた

BigQuery MLのML.GENERATE_TEXT関数からVertex AIのAnthropic Claudeモデルを、プレビュー提供で利用できるようになりました。
Clock Icon2024.09.07

データ事業本部 インテグレーション部 機械学習チームの鈴木です。

8月末にプレビュー提供で、BigQuery MLからVertex AIのAnthropic Claudeモデルを利用できるようになったアナウンスがありました。

https://cloud.google.com/blog/products/data-analytics/integrating-bigquery-with-anthropics-claude?hl=en

BigQuery MLから利用できるLLMの種類が増えると、BigQuery内のデータを処理するためのモデルの選択肢が広がって嬉しいので、早速試してみました。

なお、プレビュー提供版ですので、内容は記事執筆時点のものになります。

紹介したい機能について

今回紹介するアップデートは、マネージドAPIとして提供されているAnthropic ClaudeモデルをリモートモデルとしてBigQueryに設定することで、ML.GENERATE_TEXT関数で利用できるというものになります。

以下の関数のガイドにもClaudeの情報が追加されています。

https://cloud.google.com/bigquery/docs/reference/standard-sql/bigqueryml-syntax-generate-text

マネージドAPIは、Vertex AIが提供するデプロイ不要なLLMのAPIになります。現時点では Anthropic Claudeを含むいくつかのパートナーモデルが提供されています。Anthropic ClaudeのマネージドAPI自体は一般提供されています。

https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-claude

BigQuery MLから利用できるパートナーモデルのマネージドAPIは、Anthropic Claudeが初めてになります。

マネージドAPIの料金については以下にガイドに記載があります。

https://cloud.google.com/vertex-ai/generative-ai/pricing?hl=ja#claude-models

利用例の紹介

利用までに必要な内容

BigQueryで使用するにあたって、以下の内容を行う必要があります。

  1. Anthropic Claudeの使用したいモデルのマネージドAPIを有効化する。
  2. BigQueryで外部接続を作成する。
  3. BigQueryでリモートモデルを作成する。
  4. BigQueryでML.GENERATE_TEXT関数を使い、マネージドAPIにリクエストを送る。

手順はML.GENERATE_TEXT関数のガイドを主に参考にしました。

https://cloud.google.com/bigquery/docs/generate-text

1. マネージドAPIの有効化

Model GardenでマネージドAPIを有効化します。今回はClaude 3.5 Sonnetを利用しました。

Model GardenでClaude 3.5 Sonnetのモデルカードを開きました。

スクリーン ショット 2024-09-07 に 14.29.54 午後

スクリーン ショット 2024-09-07 に 14.30.51 午後

有効にするをクリックしました。有効化にあたり、利用規約と料金に関する承諾が求められるため、内容を確認して同意しました。

今回はBigQueryのSQLから利用しますが、モデルカードではPythonやCurlなどでのモデルの利用方法について紹介されているため、全般的な使い方について参考になるので一読することをお勧めします。

2. BigQueryで外部接続・リモートモデルを作成

BigQueryでモデルにアクセスするための設定を行いました。

手順自体は以前ご紹介したtext-bisonのものと同じなため、ポイントとなる点を中心にご紹介します。

https://dev.classmethod.jp/articles/bigquery-japanese-text-gen-sentiment-analysis-ml-generate_text-text-bison/

まず、外部データソースのリージョンはus-east5を選びました。記事執筆時点では、Claude 3.5 SonnetのマネージドAPIはus-east5およびeurope-west1で提供されているためです。

スクリーン ショット 2024-09-07 に 14.44.47 午後

外部接続が作成できたら、外部接続のサービスアカウントにVertex AIユーザーを追加しておきました。

スクリーン ショット 2024-09-07 に 14.47.34 午後

次にリモートモデルを作成しました。まず、us-east5のデータセットを作成しました。

スクリーン ショット 2024-09-07 に 14.49.11 午後

以下のSQLでリモートモデルを作成しました。(プロジェクトIDは自身のものに置き換えてください)

CREATE OR REPLACE MODEL
`プロジェクトID.claude_sample.vertex_ai_claude_sonnet35`
REMOTE WITH CONNECTION `プロジェクトID.us-east5.claude35sonnet`
OPTIONS (ENDPOINT = 'claude-3-5-sonnet@20240620');

ENDPOINTで使用するモデルを指定しました。今回はモデルカードで表示されていたバージョン付きのclaude-3-5-sonnet@20240620を指定しました。バージョンを指定しない場合は、モデルの最新バージョンが使用されます。

3. テキストの生成

接続ができたので、SQLからLLMを利用しました。

SELECT *
FROM ML.GENERATE_TEXT(
  MODEL `プロジェクトID.claude_sample.vertex_ai_claude_sonnet35`,
  (
      SELECT '次の文章の感情を教えてください:今日は暖かくて過ごしやすい日なので嬉しいです。' AS prompt
  ),
  STRUCT(
    100 AS max_output_tokens, 0.5 AS top_p,
    40 AS top_k, TRUE AS flatten_json_output)
);

スクリーン ショット 2024-09-07 に 14.59.58 午後

temperatureの指定ができないなど微妙な違いはありますが、ほかのモデルと同じ関数で、BigQueryからClaude 3.5 Sonnetが利用できました。

最後に

8月末にプレビュー提供開始がアナウンスされた、BigQuery MLからVertex AIのAnthropic Claudeモデルを利用する方法を確認しました。

これまではGemini以外を使う場合は、LLMを利用するためのAPIにリクエストを送るCloud Functionsを自作してリモート関数として使う必要がありましたが、ML.GENERATE_TEXT関数でパートナーモデルが利用できるようになることで選択肢が増えてとても嬉しいですね。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.