Copier des modèles Document AI entre des bases de données, des schémas et des comptes

Cette rubrique explique comment copier des modèles Document AI entre des bases de données ou des schémas du même compte ou entre différents comptes de la même organisation. Par exemple, vous pouvez vouloir copier un modèle d’un compte de développement vers un compte de production.

Document AI stocke tous les modèles publiés ou entraînés dans le registre de modèles, que vous pouvez utiliser pour stocker et gérer les versions des modèles et la réplication des modèles. Pour plus d’informations sur les capacités du registre de modèles, consultez Registre des modèles de Snowflake.

Note

Vous ne pouvez pas répliquer une version intermédiaire d’un modèle Document AI (qui comprend le modèle, les valeurs de données à extraire, et les documents chargés pour tester et entraîner le modèle). Vous pouvez répliquer uniquement le modèle qui a été publié ou entraîné à partir d’une version intermédiaire d’un modèle Document AI.

Le partage de modèles n‘est actuellement pas pris en charge pour Document AI.

Important

Lorsque vous utilisez les commandes CREATE MODEL et ALTER MODEL … ADD VERSION avec des modèles Document AI, assurez-vous que l’identificateur de la version est sous la forme d’un V<entier> (par exemple, V2) de façon à pouvoir utiliser la méthode <model_build_name>!PREDICT. Notez que l’entier correspond à la version intermédiaire du modèle Document AI que vous avez publié ou entraîné.

Conditions préalables

Pour copier un modèle, vous devez :

Copier des modèles Document AI entre les bases de données ou les schémas d’un compte

  1. Créez le modèle à partir du modèle source en utilisant le rôle qui a créé le modèle source :

    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. En option : Ajoutez une autre version du modèle :

    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. Pour activer le rôle prod_user pour utiliser le modèle copié, accordez le privilège OWNERSHIP sur le modèle à ce rôle :

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

Copier des modèles Document AI entre différents comptes

Vous pouvez répliquer un modèle Document AI depuis un compte source vers un ou plusieurs comptes cibles dans la même organisation. Pour plus d’informations sur la réplication, consultez Présentation de la réplication et du basculement à travers plusieurs comptes.

Pour répliquer le modèle depuis un compte source vers un compte cible, vous devez créer un groupe de réplication dans le compte source pour permettre la réplication de la base de données dans laquelle le modèle a été créé vers un compte cible, et configurer le rôle d’utilisateur de production.

Note

Vous devez être un utilisateur doté du rôle ACCOUNTADMIN pour créer un groupe de réplication et pour configurer le rôle d’utilisateur de production.

Répliquer la base de données dans laquelle le modèle a été créé

Note

Si toutes vos versions intermédiaires de modèles sont stockées dans la même base de données, vous n’avez besoin de répliquer cette base de données qu’une seule fois.

  1. Créer un groupe de réplication principal dans un compte source

    CREATE REPLICATION GROUP doc_ai_models_replication_group
    OBJECT_TYPES = DATABASES
    ALLOWED_DATABASES = dev_doc_ai_db
    ALLOWED_ACCOUNTS = org.production_account;
    
    Copy
  2. Créez un groupe de réplication secondaire dans le compte cible en tant que réplica du groupe de réplication principal dans le compte source.

    CREATE REPLICATION GROUP doc_ai_models_secondary_replication_group
    AS REPLICA OF org.dev_account.doc_ai_models_replication_group;
    
    Copy
  3. Actualisez la base de données dans le compte cible à partir du compte source :

    ALTER REPLICATION GROUP doc_ai_models_secondary_replication_group REFRESH;
    
    Copy
  4. En option : Spécifiez la planification d’actualisation du groupe de réplication secondaire de sorte que le compte soit synchronisé automatiquement toutes les 10 minutes :

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

Configurer le rôle de l’utilisateur de production pour l’extraction d’informations

Pour vous assurer que l’utilisateur qui travaille sur le compte de production cible (par exemple, un utilisateur avec le rôle prod_user) peut exécuter la méthode <model_build_name>!PREDICT en utilisant le modèle répliqué, suivez les étapes suivantes :

  1. Accordez tous les privilèges requis pour travailler avec Document AI sur la base de données et le schéma copiés vers le rôle prod_user.

  2. Accordez le privilège USAGE sur la base de données et le schéma source, ainsi que la propriété sur tous les modèles de ce schéma, au rôle 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. En option : Accordez la propriété sur tous les futurs modèles qui seront répliqués :

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

Une fois que vous avez accordé les privilèges requis, un utilisateur avec le rôle prod_user doit suivre les étapes suivantes :

  1. Créez le modèle à partir du modèle source :

    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

    Note

    Vous devez créer le modèle à partir du modèle source. Vous ne pouvez pas appeler la méthode <model_build_name>!PREDICT directement sur le modèle stocké dans la base de données répliquée dans le compte cible (de production).

    Avec le rôle prod_user, vous pouvez désormais extraire des informations en utilisant la méthode <model_build_name>!PREDICT dans le compte cible (de production).

  2. En option : Ajoutez une autre version du modèle :

    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

Remarques complémentaires

  • Une nouvelle version du modèle n’est pas automatiquement copiée après l’entraînement. Vous devez ajouter la version manuellement en utilisant la commande ALTER MODEL … ADD VERSION.

  • Le modèle copié n’est pas visible dans l’UI de Document AI, car il ne peut pas être réentraîné. Vous pouvez voir le modèle copié dans l’Interface utilisateur de Snowflake Model Registry, et vous pouvez appeler la méthode <model_build_name>!PREDICT sur ce modèle.

  • Une fois que le privilège OWNERSHIP est accordé sur le modèle au rôle d’utilisateur de production, vous ne pouvez plus changer la propriété. Pour permettre à un autre rôle d’utiliser le modèle après la publication de la version intermédiaire du modèle Document AI, copiez le modèle Document AI, puis accordez le privilège OWNERSHIP sur le modèle copié à ce rôle.