Document Intelligence Studio - custom models: how to share with team?

Dario Chemello 25 Reputation points
2024-01-04T13:15:07.9066667+00:00

Hi,

I've built some custom extraction models with Document Intelligence Studio.

Now my question is: suppose a scenario where I'm out of office and there's the necessity to modify a model an retrain it to perform better (or similar situation). How is it possible?

How is it possible for another member of my organization have access to my models, modify & retrain?
There's a way or a particular subscription to have a service (in my use case is document intelligence studio and its keys /APIs, but I'm speaking for general purposes) shared within all the team?

I'm really unable to find some informations about that.

Thanks to everyone.

Azure AI Document Intelligence
Azure AI Document Intelligence
An Azure service that turns documents into usable data. Previously known as Azure Form Recognizer.
1,497 questions
{count} vote

Accepted answer
  1. Konstantinos Passadis 17,381 Reputation points MVP
    2024-01-04T13:27:19.54+00:00

    Hello @Dario Chemell

    Welcome to Microsoft QnA!

    Here are the steps to share your project with another user:

    Navigate to the Document Intelligence Studio and select the Custom extraction models tile under the Custom models section.

    Select the desired model to share and then select the Share button.

    On the Share project dialog, copy the project token for the selected project.

    To import a project using the project token, the other user needs to follow these steps:

    Navigate to the Document Intelligence Studio and select the Custom extraction models tile under the Custom models section.

    Select the Import button.
    
    On the Import project dialog, paste the project token shared with you and select Import.
    

    Please note that both users need to have an active Azure account and configure permissions to grant access to the Document Intelligence and storage resources 1. If you encounter any issues with project sharing, check the storage account permission and ensure that the virtual networks and firewalls are turned off

    ALSO;

    https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/how-to-guides/project-share-custom-models?view=doc-intel-4.0.0


    I hope this helps!

    The answer or portions of it may have been assisted by AI Source: Microsoft CoPilot

    Kindly mark the answer as Accepted and Upvote in case it helped!

    Regards

    0 comments No comments

1 additional answer

Sort by: Most helpful
  1. Konstantinos Passadis 17,381 Reputation points MVP
    2024-01-04T19:04:20.6033333+00:00

    Hello @Dario Chemello !

    Thank you for your message

    Something happened to my answer , can you kindly Re Accept it ? ( Only if you already Accepted It otherwise lets move on, just if you think any answer helped kindly Accept It and Upvote !)

    I can see what you are looking for. There is no direct way to do that in Org Level , like a config or a Check Box

    BUT , i can provide all the details that will make this Project work like an Organization and frankly this is a Best Practice if you are working as a Team , so lets go !

    Centralized Resource Group:

    Create a resource group within Azure that's dedicated to your team or company. This resource group would be the central place where all related Azure resources reside, including your Document Intelligence Studio resources and models.

    By having a centralized resource group, any models trained within this group would be accessible to anyone with the necessary permissions.

    Service Principal for Automation (or Managed Identity):

    Create a service principal in Azure Active Directory. This service principal can authenticate to Azure services and can be granted permissions just like a user account.

    Grant this service principal the necessary roles and permissions to the resource group and associated services.

    Use this service principal for API calls, which ensures that the keys are not tied to an individual user but rather to the service principal, which represents the company or team within Azure. You can do this also with a "company" user account , but not recommended.

    Shared Access:

    Within the Azure portal, grant access to the relevant Azure resources to your team members. This can be done by adding them to the Azure role assignments for the specific resources with roles like "Contributor" or "Reader" based on what level of access they need.

    Retraining and Model Updates:

    When a model is retrained, you can update the endpoint to point to the new model version, ensuring that API calls use the latest model.

    The API keys you use to access the models via the API can remain the same if the resources like the Azure Cognitive Services account are part of the centralized resource group and your API keys are tied to that.

    Continuous Integration/Continuous Deployment (CI/CD):

    Implement CI/CD pipelines for your machine learning models using Azure DevOps or GitHub Actions. This can automate the process of retraining and deployment, keeping everything within the company's control and avoiding manual interventions.

    Through CI/CD, once a model is retrained and validated, it can be automatically deployed and made available through the existing API endpoints.

    this is a High Level of my perception and it is based on Best Practices regarding Identities and Service to Service integration. It is needed to break down all tasks and study the Engineering of the implementation.

    It also needs a good understanding of Azure Integration , Identity Clients & SDKs

    It is a strategy for a Team to Collaborate and work on a Solution , without bounding specific aspects to a user , rather to a Service Principal or a Managed Identity, which in turn can grant access and be used by team members

    This method needs careful planning and Testing , and a good understanding of the concepts of Managed Identities and Service Principals

    have a look

    https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/managed-identities?view=doc-intel-4.0.0

    https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/managed-identities-secured-access?view=doc-intel-4.0.0

    https://learn.microsoft.com/en-us/azure/ai-services/authentication?context=%2Fazure%2Fai-services%2Fdocument-intelligence%2Fcontext%2Fcontext&view=doc-intel-4.0.0&tabs=powershell

    At the end of the day your approach would be a Principal - Managed Identity client where access is granted to it and then you can abandon the sharing options as we discussed earlier


    I hope this helps!

    Kindly mark the answer as Accepted and Upvote in case it helped!

    Regards

    1 person found this answer helpful.