データベース、スキーマ、アカウント間での 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 モデルをコピーする

  1. ソースモデルを作成したロールを使用して、ソースモデルからモデルを作成します。

    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;
    
    Copy
  2. オプション:モデルの別のバージョンを追加します。

    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;
    
    Copy
  3. prod_user ロールがコピーしたモデルを使用できるようにするには、素のロールにモデルについての OWNERSHIP 権限を付与します。

    GRANT OWNERSHIP ON MODEL prod_doc_ai_db.prod_doc_ai_schema.invoices_model
      TO ROLE prod_user;
    
    Copy

アカウント間で Document AI モデルをコピーする

ソースアカウントから同じ組織内にある1つ以上のターゲットアカウントに Document AI モデルを複製できます。複製の詳細については、複数のアカウント間にわたる複製とフェールオーバーの概要 をご参照ください。

ソースアカウントからターゲットアカウントにモデルを複製するには、ソースアカウントに複製グループを作成し、モデルが作成されたデータベースのターゲットアカウントへの複製を有効にし、本番ユーザーロールを設定する必要があります。

注釈

複製グループを作成し、本番ユーザーロールを設定するには、ACCOUNTADMIN ロールを持つユーザーである必要があります。

モデルが作成されたデータベースを複製する

注釈

すべてのモデルビルドが同じデータベースに格納されている場合、そのデータベースを1回複製するだけで済みます。

  1. ソースアカウントにプライマリ複製グループを作成します。

    CREATE REPLICATION GROUP doc_ai_models_replication_group
    OBJECT_TYPES = DATABASES
    ALLOWED_DATABASES = dev_doc_ai_db
    ALLOWED_ACCOUNTS = org.production_account;
    
    Copy
  2. ソースアカウントのプライマリ複製グループのレプリカとして、ターゲットアカウントにセカンダリ複製グループを作成します。

    CREATE REPLICATION GROUP doc_ai_models_secondary_replication_group
    AS REPLICA OF org.dev_account.doc_ai_models_replication_group;
    
    Copy
  3. ソースアカウントからターゲットアカウントのデータベースを更新します。

    ALTER REPLICATION GROUP doc_ai_models_secondary_replication_group REFRESH;
    
    Copy
  4. オプション:アカウントが10分ごとに自動的に同期されるように、セカンダリ複製グループを更新するスケジュールを指定します。

    ALTER REPLICATION GROUP doc_ai_models_secondary_replication_group
      SET REPLICATION_SCHEDULE = '10 MINUTE';
    
    Copy

情報抽出用の本番ユーザーロールを設定する

ターゲットの本番アカウントで作業しているユーザー(たとえば、prod_user ロールを持つユーザー)が、確実に複製されたモデルを使用して <モデルビルド名>!PREDICT メソッドを実行できるよう、次のステップに従います。

  1. コピーされたデータベースとスキーマで Document AI を扱うために 必要な権限 すべてを prod_user ロールに付与します。

  2. ソースデータベースとスキーマに関する 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;
    
    Copy
  3. オプション:複製されるすべての将来のモデルに対する所有権を付与します。

    GRANT OWNERSHIP ON ALL FUTURE MODELS IN SCHEMA dev_doc_ai_db.dev_doc_ai_schema TO ROLE prod_user;
    
    Copy

必要な権限を付与した後、prod_user ロールを持つユーザーは以下のステップに従う必要があります。

  1. ソースモデルからモデルを作成します。

    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;
    
    Copy

    注釈

    ソースモデルからモデルを作成する必要があります。ターゲット(本番)アカウントの複製されたデータベースに格納されたモデルで、直接 <モデルビルド名>!PREDICT メソッドを呼び出すことはできません。

    prod_user ロールを使用する場合、ターゲット(本番)アカウントで <モデルビルド名>!PREDICT メソッドを使って情報を抽出できるようになりました。

  2. オプション:モデルの別のバージョンを追加します。

    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;
    
    Copy

その他の注意事項

  • モデルの新しいバージョンは、トレーニング後に自動的にコピーされません。ALTER MODEL ... ADD VERSION コマンドを使用して、バージョンを手動で追加する必要があります。

  • コピーされたモデルは、再トレーニングできないため、Document AI UI に表示されません。コピーされたモデルは Snowflake Model Registry のユーザーインターフェース に表示され、そのモデルで <モデルビルド名>!PREDICT メソッドを呼び出すことができます。

  • モデルに対する OWNERSHIP 権限が本番ユーザーロールに付与された後は、所有権を変更できません。Document AI モデルビルドの公開後に、別のロールでそのモデルを使用できるようにするには、Document AI モデルをコピーして、コピーしたモデルに対する OWNERSHIP 権限をそのロールに付与します。