Devreal

scale.bythebay.io: Thomas Gerber Interview

scale.bythebay.io: Thomas Gerber Interview

Recording: scale.bythebay.io: Thomas Gerber Interview

[Music] my name is Thomas Gerber I'm a director of engineering at Salesforce Einstein so we're building a platform to democratize access to AI at software's essentially enabling customers of Salesforce to leverage the data to predict discover recommend or automate and obviously that comes with a lot of technical challenges around data processing automating machine learning doing machine learning correctly in even doing mehta machine learning fuel let programs figure out how to properly do machine learning on unique problems [Music] too many to count actually the purpose of my talks afternoon is to talk about our journey on scale especially around number of spark shops that were running and one of the main insight that we gained is that most of the ability to scale for service is driven by Kollek decisions and so which are unlucky or unaware you are making those prog decision increasingly and that's not great it's much better to make them explicitly so you know what you're trading off and I think like most of the time you can make your ability to scale or scale much much simpler by just making trade-offs and I think that's a big lesson that we've learned and well in some cases you will have technical challenges that you have to overcome and that's fine this is where for example moving away from the JVM and instead focusing on threads with industry VM it's usually a good thing and that implies doing a lot of work using good dish rates they're passing this region system that's also obviously a good way to get past a lot of hurdles spark using functional programming that's also a good way not to say to scale but to get things right because it's much more adapted to data processing where was what you do is transforms than an imperative language okay so let's admit for a moment that we solve a complex problem like being able to automatically figure out machine learning okay so you have built a system that can do machine learning correctly out of the box on any problem that would be great right now even if you do that at some point in that process you will try a lot of different following algorithms and you will try a lot of given high parameters and this is endless meaning like you can really spend a lot of time trying to find the really best model for your specific problem and in supervised learning okay that's a lot of very expensive jobs to run because usually those involve iterative and big big joint essentially so it's costly and so so I think one of the questions it's gonna be hard which back to scale is figuring out what is good enough that's a big question and it's not an engineering one it's it's a part one finger on when it's good enough one answer could be for example we drive that buy price right we say ok we have that amount of compute available and we'll try until we reach that and then we stop that's one possible answer but it's not necessarily the only one and so I think you go it's very easy to find more things to compute to get better so the question is where does that stop and how do you bound that somehow to make sense I think that's one big challenge I just discovered I started using functional programming when I came into the data processing space I remember company adjoined was transitioning from Hadoop and Java over cascading to spark and scallop and the benefits even though Scala was newer and more complex and if you will to sort of complex with steeper ramp up the benefits yielded were immediate because it was much much much easier to design your system because essentially functional priming language like Scala for example enables you to do WYSIWYG kind of things with your data pipeline if you want to do especially with if you if use it in conjunction with spark let's say you want to do map join and filter well you do a map eternal filter you just write that down and that's it that describes it's almost it's almost declarative right and so you get very it gets very easy to do things right and spark it essentially brings a scale on top of that because it's essentially the same API my filter joined all that but it takes care of the distribution of all that processing so yeah that's how I got into function priming I wouldn't say function programming is good for everything but it's definitely good at a lot of things like data processing or with akka actor system passing messages around I think that's very good use of conforming [Music] the diversity of talks is very interesting a lot of people are you know really like pioneering in a lot of different directions and it's very exciting to see that happen [Music]