Cópia de modelos de Document AI entre bancos de dados, esquemas e contas¶
Este tópico explica como copiar modelos de Document AI entre bancos de dados ou esquemas na mesma conta ou entre contas diferentes na mesma organização. Por exemplo, talvez você queira copiar um modelo de uma conta de desenvolvimento para uma conta de produção.
O Document AI armazena todos os modelos publicados ou treinados no registro de modelos, que você pode usar para armazenar e gerenciar versões de modelos e replicação de modelos. Para obter mais informações sobre os recursos do registro de modelos, consulte Registro de modelo Snowflake.
Nota
Não é possível replicar uma compilação de modelos de Document AI (que inclui o modelo, os valores de dados a serem extraídos e os documentos carregados para testar e treinar o modelo). Você pode replicar somente o modelo que foi publicado ou treinado de uma compilação de modelos de Document AI.
Atualmente, o compartilhamento de modelos não é aceito para Document AI.
Importante
Ao usar os comandos CREATE MODEL e ALTER MODEL … ADD VERSION com modelos de Document AI, certifique-se de que o identificador da versão esteja no formato V<inteiro> (por exemplo, V2) para que você possa usar o método <model_build_name> !PREDICT. Observe que o número inteiro corresponde à versão da compilação de modelos de Document AI que você publicou ou treinou.
Pré-requisitos¶
Para copiar um modelo, você deve:
Conceder todos os privilégios necessários para trabalhar com Document AI. Para obter mais informações sobre os privilégios, consulte Controle de acesso da Document AI.
Nota
Você deve conceder o privilégio CREATE MODEL em qualquer esquema para o qual você copia um modelo.
Publicar ou treinar o modelo de origem. Para obter mais informações, consulte Publicação de um compilação de modelo de Document AI.
Cópia de modelos de Document AI entre bancos de dados e/ou esquemas dentro de uma conta¶
Crie o modelo a partir do modelo de origem usando a função que criou o modelo de origem:
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;
Opcional: adicione outra versão do modelo:
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;
Para ativar a função
prod_userpara usar o modelo copiado, conceda o privilégio OWNERSHIP no modelo para essa função:GRANT OWNERSHIP ON MODEL prod_doc_ai_db.prod_doc_ai_schema.invoices_model TO ROLE prod_user;
Cópia de modelos de Document AI entre contas¶
Você pode replicar um modelo de Document AI de uma conta de origem para uma ou mais contas de destino na mesma organização. Para obter mais informações sobre replicação, consulte Introdução à replicação e failover em várias contas.
Para replicar o modelo de uma conta de origem para uma conta de destino, você precisa criar um grupo de replicação na conta de origem para permitir a replicação do banco de dados no qual o modelo foi criado para uma conta de destino e configurar a função de usuário de produção.
Nota
Você deve ser um usuário com a função ACCOUNTADMIN para criar um grupo de replicação e configurar a função de usuário de produção.
Replicação do banco de dados no qual o modelo foi criado¶
Nota
Se todas as suas compilações de modelos forem armazenadas no mesmo banco de dados, você só precisará replicar esse banco de dados uma vez.
Crie um grupo primário de replicação na conta de origem:
CREATE REPLICATION GROUP doc_ai_models_replication_group OBJECT_TYPES = DATABASES ALLOWED_DATABASES = dev_doc_ai_db ALLOWED_ACCOUNTS = org.production_account;
Crie um grupo de replicação secundário em uma conta de destino como uma réplica do grupo de replicação primário na conta de origem:
CREATE REPLICATION GROUP doc_ai_models_secondary_replication_group AS REPLICA OF org.dev_account.doc_ai_models_replication_group;
Atualize o banco de dados na conta de destino a partir da conta de origem:
ALTER REPLICATION GROUP doc_ai_models_secondary_replication_group REFRESH;
Opcional: especifique o cronograma para atualizar o grupo de replicação secundário para que a conta seja sincronizada automaticamente a cada 10 minutos:
ALTER REPLICATION GROUP doc_ai_models_secondary_replication_group SET REPLICATION_SCHEDULE = '10 MINUTE';
Configuração da função de usuário de produção para extração de informações¶
Para garantir que o usuário que trabalha na conta de produção de destino (por exemplo, um usuário com a função prod_user) possa executar a função <model_build_name> !PREDICT usando o modelo replicado, siga estas etapas:
Conceda todos os privilégios exigidos para trabalhar com o Document AI no banco de dados e esquema copiados para a função
prod_user.Conceda o privilégio USAGE no banco de dados e esquema de origem, bem como propriedade em todos os modelos desse esquema, para a função
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;
Opcional: conceda a propriedade em todos os modelos futuros que serão replicados:
GRANT OWNERSHIP ON ALL FUTURE MODELS IN SCHEMA dev_doc_ai_db.dev_doc_ai_schema TO ROLE prod_user;
Depois de conceder os privilégios necessários, um usuário com a função prod_user deve seguir estes passos:
Criar o modelo a partir do modelo de origem:
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;
Nota
Você deve criar o modelo a partir do modelo de origem. Não é possível chamar o método <model_build_name> !PREDICT diretamente no modelo armazenado no banco de dados replicado na conta de destino (produção).
Com a função
prod_user, agora você pode extrair informações usando o método <model_build_name> !PREDICT na conta de destino (produção).Opcional: adicione outra versão do modelo:
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;
Notas adicionais¶
Uma nova versão do modelo não é copiada automaticamente após o treinamento. Você deve adicionar a versão manualmente usando o comando ALTER MODEL … ADD VERSION.
O modelo copiado não está visível na UI do Document AI porque não pode ser treinado novamente. Você pode ver o modelo copiado na Interface do usuário do Snowflake Model Registry, e pode chamar o método <model_build_name> !PREDICT nesse modelo.
Após o privilégio OWNERSHIP ser concedido no modelo à função de usuário de produção, você não poderá alterar a propriedade. Para permitir que outra função use o modelo após a compilação de modelos de Document AI for publicada, copie o modelo de Document AI e conceda o privilégio OWNERSHIP no modelo copiado para essa função.