pandas(Pythonで表データを扱う定番ライブラリ)を使っている人は、BigQueryのAI関数を手元のコードから呼び出せるようになります。必要なのはGoogle Cloudのプロジェクトです。pandasを使っていない人には何も変わりません。
Google Cloud公式ブログによると、今回の機能は「BigQuery DataFrames(BigFrames)」の「.bigquery」アクセサーです。
BigQuery DataFramesは、pandasと似た書き方でBigQuery上のデータを扱うためのライブラリです。アクセサーとは、既存のpandasの表や列に新しい機能を足す仕組みです。
回帰が1回の関数呼び出しで済む
公式ブログは、線形回帰を例に違いを示しています。従来は、CSVを読み込み、説明に使う列と目的の列を分けていました。scikit-learnで標準化と学習のパイプラインを作り、新しいデータで予測していました。
新方式では、学習用の表に対して「train_df.bigquery.ai.predict(new_data_df, label_col='target_metric')」を呼ぶだけです。予測にはTabFMというモデルが使われます。
TabFMは、表データの回帰と分類のために、Google Researchが開発した学習済みの基盤モデルです。9月1日の公式ブログによると、BigQueryではプレビュー提供です(Google Cloud公式ブログ、11/8確認)。学習や調整の手順を省いて予測できる点が特徴です。
手元では計算せず、SQLに変換して実行
仕組みはこうです。「.ai.predict()」のようなメソッドを呼ぶと、BigFramesがpandasの操作をGoogle標準SQLに変換します。そしてBigQueryの基盤上でモデルを実行し、結果をふつうのpandasの表として返します。
結果はpandasのSeriesやDataFrameなので、絞り込みや並べ替えにそのまま使えます。
使える関数は14種類
公式ブログが挙げる関数は、列(Series)向けと表(DataFrame)向けに分かれます。
- Series向け: embed()、generate_embedding()、generate_table()、generate_text()、similarity()
- DataFrame向け: classify()、forecast()、generate()、generate_bool()、generate_double()、generate_int()、if_()、predict()、score()
embed()は、「text-embedding-005」を指定して文字列をベクトル(意味を表す数値の並び)に変えます。similarity()は、要素と目標の文字列との類似度(コサイン類似度)を返します。例では、「dog」と「fish」を「shrimp」と比べ、0.629751と0.768028が出ています。






