MLOps Conference

MLOps Conference

On DataOps, productionizing ML models, and running experiments at scale.

haridas n

@haridasn

Process of Open Source your ML Service

Submitted Apr 17, 2021

Pic2Card is an Opensource ML service that helps to create AdaptiveCards from an Image. We have recently contributed this service to AdaptiveCards, an Opensource card authoring framework from Microsoft.

Would love to share the experience of making our Pic2Card Object Detection model production ready, and what are the tradeoffs and constraints that we covered in this process. This helps to see how much software engineering practices require to maintain a production level ML service, and ensure the quality of the inferences in a cost-effective manner.

Agenda:

  • High-level ideas of the End-to-End release process
  • How we used GitHub Actions to simplify the CICD process for our ML service
  • Running inference in a cost-effective manner using Docker and Azure Functions
  • How we optimized trained model and Application to pack them in a single Docker Image or multiple.
  • Pluggable ML Service design for faster and independent iterations.

Attaching the community call video, where we introduced Pic2Card to the AdaptiveCards’ community.

Pic2Card service is available under AdaptiveCards designer, you can try this out by clicking New Card button (https://adaptivecards.io/designer/) and then select Create Card from Image.

Community Blog: https://adaptivecards.io/blog/2020/Community-Call-November/
Pic2Card source code: https://github.com/microsoft/AdaptiveCards/tree/main/source/pic2card

Level

Begineers to Indermediate

Takeaway

  • How we met the standard opensource demands.
  • How we setup the end-to-end pipeline and make the process streamlined.
  • Is there any real difference between DevOps and MLOps ?, Will get some clarity on this.
  • Solid Software Engineering Practices wins always.

Thank you,
Haridas N (https://haridas.in)

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}