When Einstein Predictive Vision was announced, I joined the pilot and tried it out immediately. Back then, the responses were some special kind of awkward, but it improved quickly. Yet, building and transmitting a dataset and training a model was a bit clumsy when doing it just by the API. And then, there came my friend Jean-Michel and said: “Here’s my new product. Let me know how you like it!”
Well, the discussion was a bit more eloquent and business-like, as we both make our living in the Salesforce ecosystem and neither of us baldforcers has starved so far. But still, there I was with a fully functional SharinPix installation including Einstein Predictive Vision Service.
The service itself is free for everyone with a monthly quota of 2000 predictions. And SharinPix is a very decently priced package – considering what it can deliver, you might even call it a bargain.
Installation is very straightforward – the same old AppExchange routine, and there we go. We need to sign up for an Einstein account and retrieve a public key. Currently, you need to send your org id plus the public key to SharinPix support, so they link both of it to your account in the backend. SharinPix uses a cloud container for its business logic and storage, so any predictions of the data in your SharinPix has to be negotiated from their cloud instance.
Now, here comes the most tedious part of training a model: Find enough samples! As some you might know, we’re a bald company. Both co-founders and CEOs traded all of their hair to make a living, and my hairdo isn’t very extravagant either. Some people even mistake me for my boss, sometimes. Let’s put that at a test: Do I really look like Hendrik? Einstein should be able to keep us apart.
Face recognition and biometrics isn’t exactly what Einstein Predictive Vision has been built for. So it will rather judge overall experience and shapes more than actual facial features. Einstein has – even more – no idea what a face is. So whenever I start training a model, the first thing it will “learn” is the feature that all of the images have in common before it can determine differences.
Setting things up is absolutely easy: SharinPix lets you start a predictive vision project, where you can dump a lot of images. To build a model of a dataset, the absolute minimum is 50 images, but Salesforce recommends to use 1000 per tag. I chose to use the bare minimum – it’s enough for a prototype, but won’t be reliable. If you’ll use it as a productive use case, go big in terms of samples. For every batch of images, SharinPix will allow to apply a tag to everything you just uploaded, so collect everything into a folder per tag, drop in SharinPix and apply the tag to the batch.
As soon as all samples are loaded and tagged, you can create a dataset. And finally, if that’s done, you can send this to the Einstein API and build the model.
So, no code until now. No API interaction. Nothing. Once the modell is processed, you can start probing and training the model. The result is quite stunning: It can tell my two bosses apart – even if I try some rather “different kind of quality” shots.
It proves that I indeed look a bit like my boss.
And Jean-Michel, the founding father of the baldforce empire… well, for him, Einstein is more than .2 away from “really sure”. Remember – the numbers are correlations, not percentages, so .74 rather means: “If this is any of both, then it is probably”, while .26 says something like “It’s none of both, but if I had to pick one that is more like than the other, then Y has a little likelihood of being correct”.
Where can you take it from here?
- First, it proves again that SharinPix is a great app to rapidly prototype (and eventually build) image-based applications.
- And second: It can serve as a handy, purely declarative interface to build datasets and and train a model. Very, very handy for customers that want to get started with AI capabilities but due to the lack of skills, money, time, OR EASE, OR FUN won’t ever build such a thing from scratch, and that’s from the barebones API.
Thanks, Jean-Michel and SharinPix for letting me try!