Hi everyone, welcome to This is My Architecture.
I'm Antonio from AWS and today I'm in Milan with Mario from ContentWise.
Mario, what do you do at ContentWise?
- ContentWise provides products that bring customisation
to digital content delivery companies. For example on-demand videos, retailer
and online news. To do that, we integrate the traditional recommended system approaches,
machine learning and editorial tools to enable customisation
not only for choosing content but for the UX architecture as well.
- Ok so you will tell us how ContentWise is using the AWS cloud
to train and use some machine learning models?
- Exactly. It all started last year, when we started using
SageMaker to perform our analysis, analyse our data sets
and find out interesting things about data. But then we realised
what the real potential of the service was.
- Ok, so little by little you have explored the new features of SageMaker?
- Correct. We started with building customised models, for us it was very important
so we have extended the basis docker images that SageMaker provides
through the SageMaker container libraries,
we have created our image and stored in the ECR registry.
Once this is done, we are able to use the same image for the first step:
training.
Everything is coordinated by our data scientists through SageMaker Notebook.
- Ok, I guess that the data that you use for the training are stored on S3.
- Yes, it's very useful having everything on S3, both data set and model.
Because the speed of training and data analysis, since everything is the same environment,
becomes a lot higher so our main choice is to store everything on S3.
- So I guess that you are using SageMaker's scalable infrastructure to train
your models quite quickly. Do you also use the hyper-parameter optimization?
- Exactly. The data scientist starts the training on a small data set
to complete the whole prototyping cycle. Once we are ready to use the whole data set,
we build a model on the whole data set that is optimised through the hyper-parameter optimization.
- So after training the model what is the next step?
- Next step is creating an endpoint.
Once we create the model and put it on S3, we are able to use
the same image that we have created, docker, to also perform
the delivery of the endpoint. By doing so we have a service ready to respond
with the predictions of our model.
- Once you create the endpoint you can use it in your application?
- There is a previous step to assess the performance and the quality of our algorithms.
There is a number of tests to make sure that there are not
any regressions in terms of response time and that there was
an improvement in terms of quality. Models that can guarantee
these two aspects are ready
to be implemented in the production.
- At that stage how does your application use the models?
- The entire production infrastructure is on EC2,
so we need to call the endpoint.
To do so we can use lambda that allows us to enrich
the raw response that we get from the endpoint, all the relevant data
that we need to answer the calls that we get in real time.
- From your perspective, what is the main advantage of using SageMaker?
- I'll give you an example, very simple.
- Last year, in 2018, thanks to this workflow we were able to create
more than 30 new algorithms for machine learning.
In the past it could take us up to a month to complete the cycle from prototyping to product.
With SageMaker in less than a week we are able to test a new algorythm.
- Great, are you thinking of any evolutions in the future?
- Yes, the main thing is to migrate from using SageMaker endpoints
by using our ECR image through ECS.
- Ok, why ECS? For more control?
- Correct. We would like to have more control in terms of scalability
and delivery of our models on our production clients
and with ECS we can do that.
- Thanks, Mario. Very interesting. - Thanks for inviting me.
- And thanks everyone for following This is My Architecture.