BigQuery MLからVertex AIのModel Registryに登録したモデルの評価と更新

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

おはこんハロチャオ~!何者(なにもん)なんじゃ?じょんすみすです。

BigQuery ML(以下BQML)で機械学習モデルを作成する際に、optionで model_registry="vertex_ai" を指定することで、 Vertex AIのModel Registryにもモデルを登録することができます。

Model Registryに登録されたモデルは、Vertex AI側でバージョン管理したりリアルタイム推論のためのエンドポイント作成に利用したりといったことが可能です。

今回は、その仕組みに新たに追加された2つの機能を紹介します。

モデルのアップデート

BQMLのmodel_registryオプションはCREATE MODEL文にて指定するものでした。 そのため、既に作成済みのモデルをModel Registryに登録しようと思った際には従来通り一度BigQuery側でエクスポートしたものをVertex AIでインポートする必要がありました。

今回新たにできるようになった機能として、BQMLで作成済みのモデルを別途Vertex AIのModel Registry側にも登録できるようになります。 やり方としてはALTER MODEL文を使ってモデルの変更を行い、その際にModel Registryを指定します。

alter model if exists 
    <データセット名>.<モデル名> 
set 
    options(vertex_ai_model_id="<Vertex AI側のモデル名>")

最初に指定するのは、BQML側でのモデル名です。 vertex_ai_model_idにVertex AI側のモデル名を指定しますが、こちらは存在しない場合は新規で作成され、存在する場合は新しいバージョンが作成されます。

注意点としては、BigQuery側の同じモデルを複数の名前でVertex AI側に登録することはできません。 既に紐づいているモデルをもう一度ALTER MODELしようとした場合はエラーとなります。

モデルの評価をVertex AI側で確認する

もう一つの機能は、コンソール上でのモデルの評価結果の表示となります。 BQMLではモデルを作成する際に評価も行われており、その結果をモデルの「評価」タブから確認できるようになっています。

また、Vertex AIのモデルにも同様に評価を行う仕組みが搭載されています。 AutoMLを利用した際には自動的に評価を行ってその結果が表示されますし、カスタムトレーニングやインポートでModel Registryに追加したモデルに対しては後から評価を行ってその結果を表示させることが可能です。 表示される評価結果はBQML側と同じ内容となっています。

この機能は特別な設定は必要なく、CREATE MODELやALTER MODELによってVertex AIに登録したモデルで自動的に表示されます。

なお、この機能が追加される以前に登録したモデルには表示されませんのでご注意ください。

おわりに

今回は、BQML → Vertex AIの連携の仕組みの新機能としてモデルのアップデートと評価結果の表示を紹介しました。

データはBigQueryに蓄積しつつ、基本的なモデルであればSQLだけで機械学習が実現可能なBQMLですが、その先の利用用途としてVertex AIとの連携が強化されたのは嬉しいですね。