Google Cloud でのプロンプト管理は Vertex AI Studio を使おう
背景
Google Cloud では Google Cloud Next '24 にて Vertex AI Studio の Prompt Version Management とその SDK Support が発表されました。[1]
将来的には Google Cloud におけるプロンプト管理はこの機能を使うことになると思われますが、本記事執筆時点では SDK Support は公開されていません。
そのため現時点で Google Cloud でプロンプトを管理するのにどのサービスを使うべきか検討した結果を共有します。
検討にあたっては以下の観点を考慮しました。
- バージョン管理機能があること
- 非エンジニアもマネジメントコンソールなどブラウザ上で編集できること
- プログラムからプロンプトを利用可能であること
検討対象は以下のサービスです。
- Vertex AI Studio
- Cloud SQL
- Spanner
- BigQuery
- Bigtable
- Firestore
- Memorystore
- Cloud Storage
調査
Vertex AI Studio
画面上でのプロンプトの保存/編集と履歴管理が可能です。[2]
SDK Support は公開されていません。
ただ、ドキュメントには記載がないですがプロンプトは Dataset として保存されており、クライアントライブラリを利用して取得できます。[3]
import json
from typing import TypedDict
from google.cloud import aiplatform_v1
class Prompt(TypedDict):
topP: float
temperature: float
maxOutputTokens: int
prompt: str
def get_prompt(
api_endpoint: str,
project: str,
location: str,
dataset_id: str,
) -> Prompt:
client_options = {"api_endpoint": api_endpoint}
client = aiplatform_v1.DatasetServiceClient(client_options=client_options)
response = client.get_dataset(
name=f"projects/{project}/locations/{location}/datasets/{dataset_id}"
)
text = json.loads(response.metadata["text"])
return Prompt(
topP=response.metadata["topP"],
temperature=response.metadata["temperature"],
maxOutputTokens=response.metadata["maxOutputTokens"],
prompt=text["prompt"][0]["parts"][0]["text"],
)
Cloud SQL
クエリを書くことで画面上でデータ更新は可能です[4]が、非エンジニアには難しいです。
バージョン管理機能はありません。
データにはクライアントライブラリから取得可能です。[5]
Spanner
クエリを書くことで画面上でデータ更新は可能です[6]が、非エンジニアには難しいです。
バージョン管理機能はありません。
データはクライアントライブラリや ORM を利用して取得できます。[7]
BigQuery
DML(データ操作言語)を書くことで画面上でデータ更新は可能です[8]が、非エンジニアには難しいです。
バージョン管理機能はありません。
データはクライアントライブラリでクエリを書くことで取得できます。[9]
Bigtable
Bigtable にはセルにタイムスタンプによるバージョニングがされます[10]が、こちらは今回求めているものではないです。
また画面上での編集機能はありません。
データはクライアントライブラリを利用して取得できます。[11]
Firestore
コンソール上でデータを編集することができます。[12]
またデータはクライアントライブラリを利用して取得できます。[13]
バージョン管理機能はありません。
Memorystore
データはクライアントライブラリを利用して取得できます。[14]
バージョン管理や画面上での編集機能はありません。
Cloud Storage
オブジェクトのバージョニングによってバージョン管理が可能です。[15]
またコンソールやプログラムから非現行バージョンのオブジェクトを復元することができます。[16]
オブジェクトについてはクライアントライブラリを利用することで中身をメモリ上にダウンロードすることができます。[17]
オブジェクトをマネジメントコンソール上で編集することはできません。
プログラム、もしくは手動でオブジェクトをダウンロードし、再アップロードする必要があります。
まとめ
サービス | バージョン管理 | 画面上での編集 | プログラムから利用可能か |
---|---|---|---|
Vertex AI Studio | o | o | o |
Cloud SQL | x | x | o |
Spanner | x | x | o |
BigQuery | x | x | o |
Bigtable | x | x | o |
Firestore | x | o | o |
Memorystore | x | x | o |
Cloud Storage | o | x | o |
SDK Support がまだですが、他のサービスを利用する場合は将来的な乗り換えも必要ですし、現時点でも既に Vertex AI Studio を使うのが良さそうです。
Discussion