Deploying ML/Deep Learning Models to Production

  • It depends on that software you are using. But, you might want to check out https://cloud.google.com/ml-engine/. This works pretty good for TensorFlow. Basically, upload your model and it'll expose it as an API. Then you can flip through versions as you evolve it.

    If you use something like flask/Docker you are totally owning the entire pipeline and that might be a good/bad thing. By own, I mean hosting it yourself. Do you really want to own the pipeline, are you getting anything out of it, is this a competitive advantage to you some how? If not, you probably want to just off-load it to something else. Then, someone else can worry about all the production issues, and you can focus on what you're good at.

  • What is the title of the person that deploys ML/deep learning projects (end to end)?

    My understanding is that:

    - data scientists create the model

    - data engineers do the data wrangling and data warehousing

    - devops responsible for more software engineering oriented projects and miss (?) some of the skills that would be required for ML/DL deployment (and debugging).

    Am I missing something here or is there a gap?

    Offtopic (sorry for hijacking): if anyone has experience in deploying ML/DL projects (freelancer), shoot me an email.

  • It depends on your use case and the type of model e.g. is it from TensorFlow or scikit-learn or just a simple lookup table. Could you expand a little? Like someone else has said already, it also depends on how comfortable you are or how necessary it is to own the whole pipeline.