データベース、スキーマ、アカウント間での Document AI モデルのコピー¶
このトピックでは、同じアカウント内のデータベースまたはスキーマ間で、あるいは同じ組織の異なるアカウント間で Document AI モデルをコピーする方法について説明します。たとえば、開発アカウントから本番アカウントにモデルをコピーするとします。
Document AI は、モデルレジストリ内にある公開済みまたはトレーニング済みのモデルを格納します。これを使用して、モデルのバージョンやモデルの複製を保存および管理できます。モデルレジストリの機能の詳細については、Snowflakeモデルレジストリ をご参照ください。
注釈
Document AI モデルビルド(これにはモデル、抽出されるデータ値、モデルのテストとトレーニングのためにアップロードされるドキュメントが含まれます)は複製できません。Document AI モデルビルドから公開済み、またはトレーニング済みのモデルのみを複製できます。
モデルの共有 では Document AI は現在サポートされていません。
重要
CREATE MODEL コマンドと ALTER MODEL ... ADD VERSION コマンドを Document AI モデルで使用する場合、確実にバージョン識別子が V<整数> の形式(V2 など)であるようにします。これにより <モデルビルド名>!PREDICT メソッドを使用できるようになります。整数が、公開またはトレーニングした Document AI モデルビルドのバージョンに対応していることに注意してください。
前提条件¶
モデルをコピーするには、次を実行する必要があります。
Document AI で作業するために必要なすべての権限を付与します。権限の詳細については、 Document AI アクセス制御 をご参照ください。
注釈
モデルのコピー先のスキーマに対する CREATE MODEL 権限を付与する必要があります。
ソースモデルを公開またはトレーニングします。詳細については、 Document AI モデルビルドを公開する をご参照ください。
アカウント内のデータベースやスキーマ間で Document AI モデルをコピーする¶
ソースモデルを作成したロールを使用して、ソースモデルからモデルを作成します。
CREATE MODEL prod_doc_ai_db.prod_doc_ai_schema.invoices_model WITH VERSION V1 FROM MODEL dev_doc_ai_db.dev_doc_ai_schema.invoices_source_model VERSION V1;
オプション:モデルの別のバージョンを追加します。
ALTER MODEL prod_doc_ai_db.prod_doc_ai_schema.invoices_model ADD VERSION V2 FROM MODEL dev_doc_ai_db.dev_doc_ai_schema.invoices_source_model VERSION V2;
prod_userロールがコピーしたモデルを使用できるようにするには、素のロールにモデルについての OWNERSHIP 権限を付与します。GRANT OWNERSHIP ON MODEL prod_doc_ai_db.prod_doc_ai_schema.invoices_model TO ROLE prod_user;
アカウント間で Document AI モデルをコピーする¶
ソースアカウントから同じ組織内にある1つ以上のターゲットアカウントに Document AI モデルを複製できます。複製の詳細については、複数のアカウント間にわたる複製とフェールオーバーの概要 をご参照ください。
ソースアカウントからターゲットアカウントにモデルを複製するには、ソースアカウントに複製グループを作成し、モデルが作成されたデータベースのターゲットアカウントへの複製を有効にし、本番ユーザーロールを設定する必要があります。
注釈
複製グループを作成し、本番ユーザーロールを設定するには、ACCOUNTADMIN ロールを持つユーザーである必要があります。
モデルが作成されたデータベースを複製する¶
注釈
すべてのモデルビルドが同じデータベースに格納されている場合、そのデータベースを1回複製するだけで済みます。
ソースアカウントにプライマリ複製グループを作成します。
CREATE REPLICATION GROUP doc_ai_models_replication_group OBJECT_TYPES = DATABASES ALLOWED_DATABASES = dev_doc_ai_db ALLOWED_ACCOUNTS = org.production_account;
ソースアカウントのプライマリ複製グループのレプリカとして、ターゲットアカウントにセカンダリ複製グループを作成します。
CREATE REPLICATION GROUP doc_ai_models_secondary_replication_group AS REPLICA OF org.dev_account.doc_ai_models_replication_group;
ソースアカウントからターゲットアカウントのデータベースを更新します。
ALTER REPLICATION GROUP doc_ai_models_secondary_replication_group REFRESH;
オプション:アカウントが10分ごとに自動的に同期されるように、セカンダリ複製グループを更新するスケジュールを指定します。
ALTER REPLICATION GROUP doc_ai_models_secondary_replication_group SET REPLICATION_SCHEDULE = '10 MINUTE';
情報抽出用の本番ユーザーロールを設定する¶
ターゲットの本番アカウントで作業しているユーザー(たとえば、prod_user ロールを持つユーザー)が、確実に複製されたモデルを使用して <モデルビルド名>!PREDICT メソッドを実行できるよう、次のステップに従います。
コピーされたデータベースとスキーマで Document AI を扱うために 必要な権限 すべてを
prod_userロールに付与します。ソースデータベースとスキーマに関する USAGE 権限と、そのスキーマのすべてのモデルに対する所有権を
prod_userロールに付与します。GRANT USAGE ON DATABASE dev_doc_ai_db TO ROLE prod_user; GRANT USAGE ON SCHEMA dev_doc_ai_db.dev_doc_ai_schema TO ROLE prod_user; GRANT OWNERSHIP ON ALL MODELS IN SCHEMA dev_doc_ai_db.dev_doc_ai_schema TO ROLE prod_user;
オプション:複製されるすべての将来のモデルに対する所有権を付与します。
GRANT OWNERSHIP ON ALL FUTURE MODELS IN SCHEMA dev_doc_ai_db.dev_doc_ai_schema TO ROLE prod_user;
必要な権限を付与した後、prod_user ロールを持つユーザーは以下のステップに従う必要があります。
ソースモデルからモデルを作成します。
CREATE MODEL prod_doc_ai_db.prod_doc_ai_schema.invoices_model WITH VERSION V1 FROM MODEL dev_doc_ai_db.dev_doc_ai_schema.invoices_source_model VERSION V1;
注釈
ソースモデルからモデルを作成する必要があります。ターゲット(本番)アカウントの複製されたデータベースに格納されたモデルで、直接 <モデルビルド名>!PREDICT メソッドを呼び出すことはできません。
prod_userロールを使用する場合、ターゲット(本番)アカウントで <モデルビルド名>!PREDICT メソッドを使って情報を抽出できるようになりました。オプション:モデルの別のバージョンを追加します。
ALTER MODEL prod_doc_ai_db.prod_doc_ai_schema.invoices_model ADD VERSION V2 FROM MODEL dev_doc_ai_db.dev_doc_ai_schema.invoices_source_model VERSION V2;
その他の注意事項¶
モデルの新しいバージョンは、トレーニング後に自動的にコピーされません。ALTER MODEL ... ADD VERSION コマンドを使用して、バージョンを手動で追加する必要があります。
コピーされたモデルは、再トレーニングできないため、Document AI UI に表示されません。コピーされたモデルは Snowflake Model Registry のユーザーインターフェース に表示され、そのモデルで <モデルビルド名>!PREDICT メソッドを呼び出すことができます。
モデルに対する OWNERSHIP 権限が本番ユーザーロールに付与された後は、所有権を変更できません。Document AI モデルビルドの公開後に、別のロールでそのモデルを使用できるようにするには、Document AI モデルをコピーして、コピーしたモデルに対する OWNERSHIP 権限をそのロールに付与します。