Latest / Agentic Conversations (formally mlops.community) / Griffin, ML Platform at Instacart // Sahil Khanna // MLOps Podcast #145
Transcript
- 0:00Hey, this is saw how I look at mr.
- 0:02Cod, as a machine-learning engineer, where we are
- 0:04developing a centralized platform to support training the
- 0:09voting deployment and managing different.
- 0:11I'm an applications, this might be controversial, but if you
- 0:14don't drink coffee, I love green tea.
- 0:18Actually this happened like what?
- 0:20I gave my first thing to you and someone mentioned that in don't
- 0:23drink coffee, you are notice of engineer basic.
- 0:26Okay bye. I dude, thanks to you.
- 0:31I got a funny-looking mustache. Love it.
- 0:34Tell everybody why you got the mustache.
- 0:36So last week I was in Spain and I was hosting the apply
- 0:42conference but I couldn't host it at the Airbnb because my wife
- 0:47and daughter are there. And so I ended up going to my
- 0:51buddy's place which is a barbershop and I figured well
- 0:54you know since I'm here hosting the apply conference I might as
- 0:57well get a haircut and a shave While I'm at it.
- 1:01So I killed two birds with one stone and I managed to come out
- 1:04with this funny-looking mustache future podcast.
- 1:08Participants to should be requirement as well.
- 1:11I kind of just was a fly on the wall, letting you guys chat
- 1:14because it was super cool to see your experience.
- 1:17It Uber and what he's been doing in instacart, and how much
- 1:22overlap there was and how many different ways you both went
- 1:26about things. But then there was that, like,
- 1:30You come back to the same learnings, almost what were some
- 1:33key takeaways from your side? I mean, I think I think these
- 1:37guys are doing it right and saw Hill super smart and I love
- 1:40these. Super humble guy, just
- 1:42explaining like it was to the problems we had and this is how
- 1:44we solved it. The patterns that they've put
- 1:46together are the same kind of patterns that were seeing kind
- 1:49of like the industry Converge on some people build stuff and how
- 1:53some people like by solutions for for like more or less parts
- 1:58fit but like He talked a lot about this journey from going
- 2:02from hey we were all batch to we were partly badge and sometimes
- 2:07some little bit of real time and then kind of went to like the
- 2:10full real time and he and I had a really good idea of like
- 2:14internal motivation of why should we go real time?
- 2:17And they did all the right things of starting simple and
- 2:20and easing into something without just building.
- 2:23Some super complicated thing from the beginning that would
- 2:26invariably end up being the wrong thing.
- 2:28At the end of the day, Yes, I really like like kind of the
- 2:32journey that they went through, seems like a pretty relevant
- 2:36Journey for ML team that may be listening to this.
- 2:39I think one of the kind of interesting assumptions that is
- 2:44super relevant for obviously true for instacart that I think
- 2:47is increasingly true for most. Most businesses Is that real
- 2:50time is important and instacart, it was obvious to them much like
- 2:55early on and I think, like, just from the conversations were
- 2:58having and a Ops community. Oh and Beyond I think a lot more
- 3:01people are starting to get to the point.
- 3:03Where okay, our batch ml story like is pretty straightforward.
- 3:08Now, how do we make our recommenders personalized in
- 3:11real time? How do we detect fraud in real
- 3:13time and the instacart guys have from their blog post like 12
- 3:16plus different use cases that they can point to that have been
- 3:20improved by going real time and so it's a really interesting
- 3:23case study of the value of that. Yeah, for anybody that has not
- 3:27read both of their blog posts. One is how they put like 3x.
- 3:31I think like 1,000 models into production at instacart and then
- 3:35the other one is going real time and the journey of going real
- 3:38time. Both of those are highly
- 3:40recommended. Some of the best reads that you
- 3:42can find over this last year in the ml aab.
- 3:45Space and sahil is one of the culprits behind both of those
- 3:49blogs. So it was super cool to hear his
- 3:51story. One thing that I loved that I
- 3:53will just say was Was awesome is how he said, you know what, if
- 3:58you need to get something proven to the greater organization, get
- 4:04it up and running with badge as fast as you can and then you can
- 4:08go and figure out how to make those steps towards real time
- 4:13because he's like this, use case needs to at least have some kind
- 4:17of data behind it that it's worthy of pursuing.
- 4:20So let's just get it up. Let's deploy it.
- 4:22Let's do what we can and then we can go and we can Figure out
- 4:26like that real time and it's very much like what you're
- 4:28saying. Yeah, I think there's just
- 4:29generally a different factors that affect their success.
- 4:33There's hard factors like we chose the wrong technology or we
- 4:35chose the wrong problem and then there's soft factors.
- 4:38Like we just kind of had the wrong approach about being
- 4:41customer-focused war or we had the right approach about that.
- 4:45It was where we focus on scale at this stage, versus the stage
- 4:49kind of thing. And I would say, in this
- 4:51conversation you can see repeatedly add a lot of If it's
- 4:55not even super obvious when he's not even making a point.
- 4:57Really just saying, right here are some things that we did, but
- 5:00the soft factors in addition to the art, vectors the soft
- 5:03factors. He just got right?
- 5:04Repeated. He's like a lot of wisdom.
- 5:06What kind of like bundled into the stuff?
- 5:08He's saying, for example, he, one of the things he said, was
- 5:11early on. We stood super customer-focused,
- 5:13we just help every one of our customers 101, like we did pair
- 5:16programming and then we got to a point where it for our platform
- 5:21team. It didn't make sense to do that
- 5:22anymore and we intentionally switched to effectively Can
- 5:25changing how we work with that, kind of intentionally for an
- 5:30internal platform team. Honestly, it's like a little bit
- 5:33more rare than it should be and I think that's really needed to
- 5:36make for a very successful platform.
- 5:37So they do two thumbs up on their Journey.
- 5:40These guys are they know what they're doing and it's a really
- 5:42good case study for everybody. Exactly.
- 5:45So enjoy it. We're going to get right into
- 5:48it. Thank you Mike.
- 5:49I got to give you a huge shout out because tecton has been
- 5:52incredible sponsor of the ml Ops community.
- 5:54So anybody looking Going to go real time, check out tecton for
- 5:58sure. Check this out.
- 5:59And we talked a lot about like, batch streaming and real-time
- 6:02features and this conversation. And that's something that we
- 6:06specialize in a tecton. So if we're doing any real time
- 6:08stuff, check this out. And there you go.
- 6:09So hop on the call with you and if you're looking to get more in
- 6:14the MLS Community, we've got a newsletter that you should
- 6:17probably subscribe to if you're not already and we also are in
- 6:22over 30 cities around the world from Melbourne, Australia to Tel
- 6:27Aviv to Berlin to San Francisco to New York, Chicago.
- 6:31You Name It. We are everywhere.
- 6:32Even Mike your hometown, we got one in Toronto man, right now
- 6:36the right on and I'll I'll be there.
- 6:39I don't know what we're doing a meet up there.
- 6:40I'll fly out. We do it outside in the winter
- 6:43on a frozen lake actually, and people play hockey and then say,
- 6:48this is my presentation, there's all kinds of cool.
- 6:50Meetups happening. We will see you on the other
- 6:53side. Enjoy this conversation.
- 6:55Well, cheers enjoy it. We're going to get to talking
- 7:03about instacart and what you all have been doing.
- 7:05So he'll because it is incredible.
- 7:07I remember when the blog post came out, I couldn't stop
- 7:10sharing it. I really appreciate the
- 7:13transparency. You all put into talking about
- 7:16your journey from this batch prediction style to real-time.
- 7:21And considering all the hype that real-time gets, I thought
- 7:24it was only perfect for us to talk about that and maybe you
- 7:30can just Just explain to us, like, you told me before we
- 7:33started recording, how much things have changed, and how you
- 7:38have to iterate quickly, and you have to really stay in touch
- 7:41with your users, but let's start from the beginning.
- 7:44When you were just serving things in this batch style, what
- 7:50did that look like? And where were the paints?
- 7:54Yeah, so I think so I think is very near a testicle.
- 7:57I can started two years ago. So at that time the simplest
- 8:02thing I need machine learning Engineers can do.
- 8:04As a first step is to train a model deployed in a batch mode
- 8:08so that they don't have to manage any production critical
- 8:11application. So they used to do that a lot.
- 8:13And we used to have are all centralized Catalog Store so
- 8:17they used to like create all this patching for predictions.
- 8:20Is put it in the catalog store and then catalog stole will.
- 8:23Handle all the joy and sold filtering all the candidate
- 8:26generation and stuff like that, which was easiest thing to do at
- 8:30that time. But it is it has an imitation
- 8:34side like you can't do lot with batch because the data is still
- 8:39your model. Doesn't get any real-time
- 8:41Obsession context, even like the simplest things, like, you can't
- 8:46refresh the data on a very regular Cadence because you have
- 8:51to, like wait for the whole batch inference of Complete and
- 8:54then batch inches or ball. So you can't predict all the
- 9:00items or score for every single thing we have.
- 9:03Like I think the world's biggest catalog I believe like it's been
- 9:07years of items so you can't. The cardinality is Houston.
- 9:12You can't predict scores for every single item.
- 9:14So that there was a lot of challenges which also stars were
- 9:18visible on the products because you the experience was not great
- 9:23because One of the things that I find is tricky for people who
- 9:28are working on ML Ops related stuff is that there's there's a
- 9:32lot of good advice out there but it's always hard to determine
- 9:35because like most people are new to ml abs.
- 9:38And then they're trying to figure out like, hey, how
- 9:39relevant is this thing for me at like, is this something that I
- 9:41should know how to do or something?
- 9:43That's like in my situation? Not even relevant for me because
- 9:47there's no chance I could build this kind of thing or like this
- 9:49problem. Domain is whatever the solution
- 9:52is relevant for a I'm delaying where they have 1 million x, the
- 9:56amount of data or something like that.
- 9:57And so do you mind just kind of giving some like high-level
- 10:01like, what kind of problem are do we have here?
- 10:03Like, what's the data look like what's the it infrastructure?
- 10:06What's the internal team like? Is it ml platform team?
- 10:09What are the use cases? Just kind of the some of the
- 10:11high-level stuff to help people kind of triangulate?
- 10:13Like what was your context when taken in too hot?
- 10:17Yeah, that's a very good question.
- 10:19Especially like, this is something which is very
- 10:21interesting to me for a style against the card.
- 10:24I just don't have all that multiplication and we'll accept
- 10:28the value per signal processing like me do computer vision.
- 10:32We do recommendation drinking ads Logistics like all the
- 10:39domain because it has from store to the website, like me manage,
- 10:44all the applications. Which is a lot of different
- 10:48problems we are trying to solve, and it requires an order,
- 10:50different tools and Frameworks, which is also very biggest
- 10:54challenge for us. So that that's the new of line.
- 10:57They are sounds pretty similar to what we do the who were
- 11:00actually in all the thing is gooses.
- 11:03Yeah, it's so that that that provides complexity, in terms of
- 11:10how we will support these different use cases which are
- 11:12different requirements and team is different.
- 11:16These two Handle it. And because Instagram is a very
- 11:19fast growing company, right? We are V to launch a lot of
- 11:23things, very quickly to try it out, just to see whether it
- 11:26works or not like me, don't want to let wait for 6 months to
- 11:29build something and they'll see whether this is the right
- 11:32solution for our problem. So because of this space and we
- 11:36have to create a lot of flexibility In Articles, it
- 11:39starting you. So that if we forget it, go with
- 11:42the least, something to batch quickly, try it out.
- 11:45If things make sense. Then do a further education to
- 11:48improve their products. So that that's the start of how
- 11:52we started. Building a lot of camel
- 11:55infrastructure, Bill -, and what is your team are you the ml, the
- 11:59centralized ml platform team? Yes.
- 12:01So that's also we, the localization structure is little
- 12:05different. We are trying to create a
- 12:08centralized machine Any platform, but our organization
- 12:11structure is tied to different orgs.
- 12:14So it doesn't mean that That we will only cater to that org.
- 12:18So when we started our vision was to create a centralized
- 12:21platform so that we can support, all the organization at esta.
- 12:24Got involved, including the data, scientists have product
- 12:29teams. So that that's that's a vision
- 12:32in, didn't start like that. We started with one
- 12:34organization, so we built a lot of tools to get to that
- 12:37organization, but because we were the only team who were
- 12:40focusing on building this tool. So we try to expand to set to
- 12:45different organizations A sure. So now we are working on from
- 12:48tools to platform. We are going to build and like
- 12:51we are going in that direction where we're building a
- 12:53centralized platform. Yeah, I think I've seen like
- 12:56sure we talked to a lot of ml platform teams and the I think
- 13:00there's kind of two has a roughly two types of ml platform
- 13:05teams or like, like stories of the birth of an ml platform
- 13:08team. One is maybe what you're
- 13:10describing where it's kind of like, There's one business case,
- 13:13right? Say like one product use case,
- 13:15like just going to choose a random what fraud detection,
- 13:18where the fraud detection team that made me have a couple
- 13:21models. So they start like, kind of
- 13:22centralizing some of their attack and then it becomes a
- 13:25little bit of like a fraud detection, ml platform and then
- 13:29the other team like the recommender team is like, hey,
- 13:31can we use some of that? And it kind of is platform, kind
- 13:33of, organically comes out from from like rooted in concrete,
- 13:37use cases and slowly generalize has over time and then In can
- 13:42become maybe the company-wide ml platform and then the second
- 13:46kind of like genesis story. I see 4ml platforms is, is the
- 13:50kind of like, hey, we had a bunch of like ml use cases
- 13:53across the projects, across the company.
- 13:55And then from the the chief data officer, whatever the top down,
- 13:58they said, build an ml centralized ml team and probably
- 14:01someone made the big pitch to do that.
- 14:03And then they're just tasked with like starting from zero.
- 14:06A Greenfield project. And it sounds like you're more.
- 14:09Like your story is more. The former is that right?
- 14:11Yeah. That's correct.
- 14:12That's interesting. And part of the part of the nice
- 14:15things about that, is that you always have very concrete
- 14:19requirements, you have a much lower risk of building stuff
- 14:23that nobody cares about, right? If you, if you're kind of
- 14:26starting as, as this platform generic platform team, you're
- 14:28just trying to like help out everybody.
- 14:30You have to win the buy-in from those other team hits in the
- 14:33first place, they're probably doing their own thing and so you
- 14:35kind of build on your own before.
- 14:37You can convince them to use your system but you're kind of
- 14:39like always you always had some concrete.
- 14:41Eat customers on your platform from the beginning.
- 14:43That He I think that's a very good point that's to initially V
- 14:48because there wasn't any tunes, which can cater to a lot of
- 14:53feature requests user side. So we were the only team over
- 14:55catering to it. So we always had a used user or
- 14:59an application, which will use the future instantaneously, and
- 15:04it's the least. But now we are, because we are
- 15:06no building decentralized faculty are going into that
- 15:09Direction Where We have to collaborate with the notary
- 15:12organization find alignments. Figure out what feature makes
- 15:16eyes to release decide priority. So they has been a lot of
- 15:19changes in the processes. Like I think I was mentioning
- 15:22like we used to do like a lot of one-on-one session.
- 15:25Priya programming code Labs with juices.
- 15:29That was Kate, initially word. That is a scale.
- 15:32So now we are changing processes.
- 15:34Where we have like centralized consoles, we have meetings,
- 15:38where we hear like customer voice so that we can get more
- 15:42requirements, which show? Until our teachers which we have
- 15:47built during the time period. So that's that's the shift is
- 15:50happening in the process is because that's I think needed
- 15:53right now to figure out the way you mentioned before that you
- 15:58had done something where you winner when you went off and you
- 16:02build some feature or some tool and then you came back and you
- 16:06realize that the needs had changed and it wasn't useful
- 16:10anymore. Can you tell us about that
- 16:12story? Yeah, that does it may
- 16:14experience. I learned And for my previous
- 16:15work, so we they can easily, then we do planning, the get
- 16:19older requirements from users. We plan, we design the
- 16:22architecture of a system and then we go and go into the
- 16:25implementation phase. The mistake.
- 16:27We did by, like, we didn't, and to incremental planning.
- 16:33Which means like me didn't find the deliverables based on the
- 16:38Milestone so that we can keep getting the feedback from users.
- 16:41See whether the needs are saying whether it's changing.
- 16:44And also we went into the implementation that weight of
- 16:47it. We deliver something out the
- 16:49six-month analyze things change, use it for need this anymore or
- 16:53that shows users change. They are like more about the
- 16:57moon more control and stuff like that and that was a learning and
- 17:00learn for previous experience with machine learning is a very,
- 17:03very Dynamic feel like you can't Plan for six months, you have to
- 17:09plan for months, late quarters, that's the cycle.
- 17:13We do right? Well, hey, Lazlo here, if you're
- 17:16serious about ml Ops, you get subscribed right now.
- 17:24It's a really interesting Journey going from the sixth
- 17:27scale where you have a manageable number of internal
- 17:31customers where you can provide them one-on-one or unscalable
- 17:37support and and kind of like success helped to go into this
- 17:42thing into the scale where the you just you can't do that and
- 17:46so you got to figure out how to have your internal product.
- 17:49B be able to allow the internal customer.
- 17:53To become self-sufficient with your platform.
- 17:56And and so, what are some of the things you learned in that
- 17:58Journey? Yeah, I think said
- 18:00serviceability is like our mean, dwell going principle.
- 18:05Like anytime you build something, we try to make it
- 18:07sell serviceable to start with the create this documents, like
- 18:11guide State Court map, so that people can actually play with
- 18:15it. And see how things works with a
- 18:16simple example. And and now we are Also changing
- 18:22that kind of interface where instead of having a lot of
- 18:25guides document processes are trying to build this centralized
- 18:29unified web page web application and the front-end UI.
- 18:33So that the you I can direct users how to use this platform.
- 18:37Like, what's the recommended way where you should start.
- 18:40So that's, that's a shift is also happening in our tool such
- 18:43as we're having set of libraries, or set of things
- 18:49people can use to go to this. A webpage start here.
- 18:53And then from there you will get to the next tab.
- 18:55You will get to the next segment then in the end you can deploy
- 18:58you training Bob flow. So we are trying to build in
- 19:02Google you--if this which is also kind of a we user
- 19:08experience. You want to provide to data
- 19:09scientist, specially like machine learning Engineers are
- 19:12stated in our company are used to set up their local
- 19:16environment and things test things but data scientist Cleo
- 19:22only working on notebooks. So for them, it's a very big
- 19:25steep learning curve from going from notebooks to like putting
- 19:29some coding someplace. We can go p-- i-- bill, so going
- 19:33or like Johnny Test and things like that.
- 19:36And I was going to ask exactly about who your internal
- 19:39customers are as well. Because when we talked to
- 19:41different ml platform teams, sometimes their customers are
- 19:44Engineers. Sometimes their data scientists,
- 19:46who are great at writing python code, but not great, at managing
- 19:49production stuff, or Times. It's kind of just like an
- 19:52internal analyst kind of person who doesn't want to write any
- 19:55code at all and it sounds like you're you guys kind of Spike
- 19:59with that middle bucket of data scientists who live in the
- 20:02jupyter notebook world. And so you're building for that
- 20:04set of workflows. Yes.
- 20:06Because we have these, just kale Navy can cater to machine
- 20:11learning ingenious before. Our directors has then machine
- 20:14learning Engineers used to work with the scientists.
- 20:16Now in order to grow a scale and Malatesta card you won't do.
- 20:21Provide data scientist, direct user interface, which they can
- 20:25use and then go and deploy their own machine learning models and
- 20:30have to get more features into the products.
- 20:32That's that's one thing sir. Do you let me just ask one more
- 20:35question here because I think it was just like a super
- 20:37interesting Journey here. So it sounds like you started
- 20:41with ML Engineers. You're like a, the first people
- 20:44were going to make this work for is the text super technical
- 20:46people and and the customer teams and then and then
- 20:51naturally it's like a my data scientist wants to use this
- 20:53thing to the data scientist art began supporting the data
- 20:56scientist but that was teams that had ml.
- 20:59He's and data scientist so that had like some Here, who could
- 21:03kind of like help maintain this thing in production and now
- 21:06you're transitioning. This is the most interesting
- 21:08part for me. Now, you're transitioning even
- 21:10away from requiring, the engineering Persona, and at all,
- 21:13so you can support or is you can tell me if I'm if I'm getting
- 21:17this right? But it sounds like you can
- 21:19support a data scientist who can without any engineering.
- 21:22Help maintain a production ml application, is that correct?
- 21:25Yeah, that's good. I like it better than then them
- 21:28weren't dating. We are going towards a sin
- 21:30standardized platform them. How about on standardized around
- 21:34times? Our own things of read data
- 21:36Senate is needs needs to just configure their workflow.
- 21:39Like, these are the features. I need is training, parameter,
- 21:43click on submit button. And then all the management will
- 21:46happen through our platform. And then we will manage the
- 21:49production models are services, and they still have greatest
- 21:53quite similar to what we did with Michelangelo, Uber, but we
- 21:56always had an engineer, like, let's say, you're doing the the
- 21:59estimated time of arrival stuff, right?
- 22:01Then On the customer team, we always still had some
- 22:04engineering person, plug into those predictions and integrated
- 22:07into the front end of the product and stuff.
- 22:08And I assume that's when you guys have a slow rate.
- 22:10Yes. So we have a whole back end
- 22:12ingenious for old product so they help integrate Mortals into
- 22:17the products. Yes.
- 22:19And so this is Griffin that you're talking about, right?
- 22:22This is the yes this is not form Cliff.
- 22:25Yeah. And so in the blog post that you
- 22:28wrote about going from this basically batch to real time,
- 22:33You spoke about three different stages and for me I looked at it
- 22:37as like there was batch and then there was like this bridge stage
- 22:41where you were trying to get off batch and then there was
- 22:45actually real time and you told me earlier that one of the
- 22:50things that you're very proud about is the architecture design
- 22:54that you chose for Griffin. Can you speak a little bit to
- 22:59how that? Like became what it was like.
- 23:03How did that manifest in the world and how did you decide on
- 23:05these different choices? Yeah one thing I mentioned they
- 23:09can previously is that I use has required a lot of flexibility
- 23:14initially because we we were very new team.
- 23:17We didn't know the requirements we wanted to gather the
- 23:19requirements. So we wanted to provide
- 23:21flexibility and we providing flexibility from platform.
- 23:25Team is a scary thing because it leads to a lot of support
- 23:29request. As technical director or problem
- 23:32in maintaining things in production, in order to ensure
- 23:35that we can still provide flexibility and scale and extend
- 23:39our platform to most and a nice. We introduced three different
- 23:44layers. Like one was we decided on using
- 23:47Docker reusable component so that every time we do local
- 23:51development we do it in Docker and we provided command line
- 23:56tools to deploy those chokers on a remote environment and people
- 23:59can deny believe Build their applications test their
- 24:02application from local to production, we can you show that
- 24:06all the environment setup around and their development and
- 24:09production will consistent? So, that's one thing we did, we
- 24:13started with the unified interface, which actually, the
- 24:16command line tool. So that we know the entry point
- 24:19for user and then we can change things around it so that we can
- 24:23slowly and slowly migrated to this standard things.
- 24:25Like one example, I would give it is, We might have a custom
- 24:30application for Docker. Now we can use standard
- 24:33application for Docker behind the scene as user.
- 24:36Don't need to do a lot of changes in there Bob slope and
- 24:40then from there because we were like small teams we didn't have
- 24:44a lot of resources to build a lot of things you wanted to buy
- 24:47a lot of Technologies or use open source tools, which was
- 24:51already out there, which can fulfill any.
- 24:54So in order to use those tears and still be flexible to like
- 24:58change, Having moved things. So we build it this sensible
- 25:02abstraction layer so that we can easily plug in any technology
- 25:06with the consistent API and then replace the technology behind
- 25:09the scene with different technology when the requirement
- 25:11changes with time. So this whole three like
- 25:15principles help but build a lot of Tools around it which we
- 25:19gradually scaled. Like, we changed a lot of
- 25:23technology. For example, the ability to
- 25:25store started with that, is then Coast became an issue.
- 25:28We started introducing more disk space and it has database
- 25:32Solutions behind this for workflow management manager.
- 25:36Like we started with airflow, we started with sage Nick.
- 25:40Now, we are moving from foch maker to like, really cute flow
- 25:44pipe. So all these things we could do
- 25:47because we had this abstraction layers in front of it, which
- 25:51ensures that we have a consistent interface for users
- 25:54and user, don't need to like change a lot of things when we
- 25:57move the technology. LG behind the same.
- 26:00And so yeah, that three things really helped us where we
- 26:04release something quickly which was easily available.
- 26:07And now we are you and your editing and changing
- 26:10Technologies behind the scenes to scale and sorry, what are the
- 26:13keys. Just summarize the three things.
- 26:15It sounded like local like using Docker.
- 26:18Local remote development is consistent and then clean
- 26:20interfaces. Yes.
- 26:22So do you just above the top? Curve is component side
- 26:25interface and an extensible that sections.
- 26:29Got it, got it. And one thing that that's really
- 26:32interesting, and I've I've seen those principles be for really
- 26:36useful Beyond insta card. So it seems like that's like
- 26:39just general really great practices on the local and
- 26:42remote consistent development. Sometimes we see a lot of people
- 26:47have this kind of situation where the local environment is
- 26:51not representative of the production environment.
- 26:54And so when they're writing their code, even if these are
- 26:57the same docker, Otters and stuff like that.
- 26:59They either don't have access to the production systems or are
- 27:04like, it's just like a kind of a mess to run this thing locally.
- 27:07And particularly, in the feature, platform feature, still
- 27:10ruled that that I spend a lot of time on as well, that's, that's
- 27:14one of the challenges that we intend to solve for the data
- 27:17Flows. At least, what are some of the
- 27:19kind of challenges that your team had for managing the online
- 27:23and offline? Or we can even think of it as
- 27:25Dev, prod, environment, consistency, what are some of
- 27:28the things? Things you dealt with and how
- 27:29did you address them? Yeah, that's a very good
- 27:32question. So we have V use AWS, very
- 27:36heavily and like for us Davenport is different account
- 27:41which has its own this sections because it has its own resources
- 27:45and network building and stuff like that.
- 27:48So in order for us to like ensure we can have same
- 27:51environment, so we we allow only do development in the Deb
- 27:56account. You don't allow users to do any
- 27:58development in production. So, All the configuration, which
- 28:02we use to the remote machine, we Mount the same configuration.
- 28:06When they run things locally which ensures that they have
- 28:09same exercise to the, you dpw's credential, they have same
- 28:13environment configuration. They need to run things locally
- 28:16and all the devil resources are accessible from their local
- 28:19environment as well. So they can learn, they can
- 28:21integrate and they can test things.
- 28:25In order to go from Dev to prod, they are different strategies,
- 28:30which Slick. But the most important one for
- 28:33unlikely just or related, I place the Vivi do that is when
- 28:37people run into have Pipeline and it's successful.
- 28:42And it registers all the features to death.
- 28:45We in our platform Tao zi Shan that pipe time to production.
- 28:50Rather the issues is deploying a new pipeline to production
- 28:53bread. So like our Dev pipeline success
- 28:55is for us, our signal saying this pipeline box with all the
- 29:00This to set we have and it's Computing.
- 29:02The feature little, I believe we can transition now that pipeline
- 29:05from Death to production. So that's that's something which
- 29:09we use in order to Transitions accounts or states for features
- 29:16for other things, the workflow is little bit different.
- 29:19For example, for model training as touring, we don't want people
- 29:23to deployed have models to production like we have our own
- 29:27precise or then they release a code to me.
- 29:30Stairs to make sure things are deep reducible and then they
- 29:35follow that possessed production as any so we sort of model but
- 29:39procedures manage like anymore because the production it's
- 29:42actually your system that manages the training of that
- 29:45model and then the promotion to production.
- 29:48Yes. So your date, your customer user
- 29:52whatever would not ever build a model in some way that you guys
- 29:56will need to know about and then just give you a model and then
- 29:58you serve it. So one thing we try to do.
- 30:00Do is we try to standardize the interfaces between different
- 30:06products? So for them to use like model
- 30:08solving back from we have they have to package their motor
- 30:11without SDK so that we can reliably deploy dark model to
- 30:15sew and then in order to test that deployment, we have like
- 30:20stepwise deployment be redeployed to that first.
- 30:23Then some sort of integration test to make sure it meets old
- 30:27as hell is then we deploy to production with like a canary.
- 30:30Primary so that we can roll back every time there's a nation.
- 30:33So that's how we try to make it tonight.
- 30:35But we do support users taking the custom models and
- 30:40applications. The only thing is, they have to
- 30:43use that on the interfaces which we have created in order to
- 30:46integrate Faith, or a kind of a little bit more on Iran and
- 30:48there's less problems if I come with her and stuff like that.
- 30:50Yeah, we're going back to the, the kind of feature management
- 30:53point. So you said, hey, we have a way
- 30:56for people to author feature pipelines in the deaf world and
- 31:00Then and then I think you said we don't our maybe I got this
- 31:04wrong but I think you said we don't ask them to rebuild a new
- 31:06feature pipeline. We just did you say we you
- 31:09upgrade it or promote it to the production for them so they
- 31:12don't have to rebuild it in production?
- 31:14Yes. Sold the feature by blending, do
- 31:16it computes. If computes feature based on
- 31:19some crazy or something and it's stored data in a dab, in
- 31:24Margaret, then once the pipeline is working fine, we just export
- 31:29that data to production. Insane, this feature is
- 31:31production is now. It's immutable.
- 31:33You can't change it. You click on computer data, the
- 31:37production of like the pipe pipe pipe.
- 31:40And so there, we compute every day in production in, but the
- 31:43moment we do that transition. We make the whole pipe and
- 31:47immutable so that people can't change any of the logic goal.
- 31:51And one challenge that I've seen other teams deal with in that
- 31:55same when they try to do what you're doing and often.
- 31:58It's unsuccessful is The data sources that are available to a
- 32:03production or did the dev environment and the production
- 32:06environment are different. And so it's hard for them to do
- 32:10a to, like, you actually take that same data Pipeline and just
- 32:13promote it. What are the details of that for
- 32:16you? How do you, how is that not a
- 32:18challenge for you got Vienna sent the legislative leaders
- 32:21like me currently juice off eight.
- 32:22So it's accessible all the data sources, websites accessible, to
- 32:26both the environment. And then we have a real-time
- 32:29pipe and ending on cough cough, which is also accessible to both
- 32:33the environment. So, okay for us because we have
- 32:35a centralized storage for this data.
- 32:38So it's not a big challenge but they call the isolation happens
- 32:44on the computer. Level got to stall it, shiver
- 32:47Dot It Go. And so maybe we can talk through
- 32:49some of the the stages that you went through to adopt more and
- 32:53more real-time ML and maybe we can just start with like
- 32:57understanding why you even did that, like why?
- 33:00Is it real time and important? And how did you know it was
- 33:02important? Yeah.
- 33:05So I was saying like, bats infants was good for us to test
- 33:08things very quickly, right? Then we move to Davis this
- 33:11bridge which we mentioned going to all line service, so that was
- 33:16useful for us too. Did the speeches for
- 33:19infrastructure? Plus it was useful for us to
- 33:23handle those stale qualities, which we couldn't compute the
- 33:26other pads. So that was an upgrade from bats
- 33:29and then we introduced a production critical system.
- 33:32So the next upgrade was, now we are using all the batch features
- 33:36in our future store, which are Computing every day, or every
- 33:39week. Now, let's introduce more
- 33:42real-time features, which are computed every minute, or every
- 33:45few minutes and before doing that, or how did you know?
- 33:48Know that now would like, because going to real-time
- 33:51features. That's a big effort.
- 33:53And so, was it obvious that that would be worth it?
- 33:56Or were you like, hey, let's try this one.
- 33:57It's a big. Guess he?
- 33:59Yeah, that's a kind of, like, I think that these are the, what
- 34:03we tried for the first application we want to do new
- 34:06personalized recommendation, and we could only do personalized
- 34:10recommendation, if we start dealing in order user session
- 34:14information, so that, that was the first use case.
- 34:16So we tried, Dad use case where we've been some user specific
- 34:21features. So then we can recommend
- 34:22products which are more preferable to that particular
- 34:26user based on their history. During that session, that was
- 34:29the first you scale. Everything we wanted to test the
- 34:32use case and they had a hypothesis that this will
- 34:36provide a benefit so that that's how it started.
- 34:40So once we had a successful one use case, then we'll like the
- 34:44whole group around you live here.
- 34:48Teachers will it had a representation from machine
- 34:51learning engine has the infrastructure Engineers from
- 34:53both data back from and machine learning platform and that, that
- 34:57group will decided decided like, which is the next set of
- 35:00features. They want to know and tell me,
- 35:02what are the application which can benefit from.
- 35:04So, that's how it started. Let's now we are in the stage
- 35:07where you want to make an Excel serviceable so that people can
- 35:10just go and deploy their used in pipelines and compute reaches,
- 35:14without worrying about a lot of infrastructure to the good
- 35:17stuff. And do you, do you guys have
- 35:19this concept for real-time? Only say, real-time features in
- 35:22the, in the tecton feast world. We talk about batch, computed
- 35:26features streaming, aggregation features, and then actual
- 35:30real-time features. We call them on demand features,
- 35:33which use something that comes from say, like a search query or
- 35:36something something that's only available at at prediction time.
- 35:39You have all three of those or you could classify things in a
- 35:42different way. So that's something good.
- 35:43So, in the second stage, the equal to actually use the batch
- 35:46Bluster, the astounding I'm in fact on board where we could
- 35:49send context in a request, which is only available at the back
- 35:54end of that time. So that's, that's the
- 35:55introduction in the second stage where we could now, use the
- 36:00context of the request to do, like better prediction.
- 36:03And then the third stage was like this streaming aggregate
- 36:06features, which requires tunic aggregate a set of buying, and
- 36:11they events in some time frame so that we can compute so
- 36:14information from it. So yeah, so that they were three
- 36:17stages So the second stage was useful because first we could
- 36:21handle the eighth grade is and then we can also introduce her
- 36:24context based in the backend available in the back end or
- 36:28Goldie. Where we going to say I was
- 36:29thinking about how now you're trying to move more towards this
- 36:33self-serve motion and I'm wondering what other things you
- 36:37have on your mind. You went from batch to
- 36:40streaming. What does the future look like?
- 36:42What are some things that you're trying to accomplish in the next
- 36:45couple quarters? Yeah.
- 36:47So like well yeah, moving towards his sentiments back for
- 36:51like we had a lot of tools and libraries and systems in order
- 36:55to provide this abilities. But now we have been doing this
- 36:57sentence pair and our vision. Is that user will go on this
- 37:01platform. We're in the first page, they
- 37:04can Define what features they want to use.
- 37:06Whether if it exists, they can just use those feature.
- 37:09If it doesn't exist, they can submit a job from the, you are
- 37:13compute those features and then they can move to the next step.
- 37:17Where they can train the model, they can publish the model and
- 37:20then they can deploy the motor to production.
- 37:23So we want to, we have building this web application which will
- 37:26have all this API so that we can standardize.
- 37:29Unload the management around, how to train a model, how to
- 37:32deploy model, how to compute features, how to deploy a
- 37:35feature pipe wise and do alerts and stuff like that in the
- 37:40platform. So that's where we are going.
- 37:41So, All the tools are looking for customized application.
- 37:45We have users can go and I did some code and deploy things.
- 37:49Now we have moving towards providing standard application,
- 37:52where user will go and provide some configuration rather than
- 37:56code. And then we will deploy that
- 37:58configuration to a standard code to compute things.
- 38:01Really, really interesting and maybe one other topic that may
- 38:05be interesting to dig into is just what is the reason to do
- 38:09real-time or streaming features? And so, what I'm getting It is
- 38:13like, probably, it's because there's a different kind of
- 38:16data, different, kind of signal different, kind of information
- 38:18that you aren't able to make available to the model.
- 38:21And I heard you talk about like session, you mentioned sessions
- 38:24and so what I'm seeing increasingly people are really
- 38:27trying to feature eyes sessions. So find some Way in real time to
- 38:31say, based on a user, clicking on this and then going to this
- 38:33page or coming back and they were just here, five minutes
- 38:36ago. It's more likely.
- 38:38They're looking for X over y. So, so beyond just saying it
- 38:41Beyond just the like, Hey we support support streaming
- 38:44features and stuff like that. What is the kind of like the
- 38:47turning? The feature ization of a session
- 38:49look like in your world and is that been a focus or do you kind
- 38:52of just leave that to the that your users?
- 38:55They has been initiated. So that's part of linked data
- 38:58platform which manages to email by blessed Sunday has been a lot
- 39:02of initiatives around them to make all the events but the
- 39:06source eat is source of the data more reliable tested and
- 39:11validated. So that Can clean.
- 39:13These are acts sources which are tested by us and you can touch
- 39:17them. And then people can use those
- 39:19sources to create different features and we have lot of
- 39:22applications where we need at this kind of streaming.
- 39:28Aggregations? Yeah, like one of the major use
- 39:31case, we are now, working one is managing fraud on a backhaul,
- 39:35when the most of the things, which we need to manage for this
- 39:40type. Whether this user like Purchase
- 39:44thousand dollars of, but production, like last minute.
- 39:47But yeah. Like last five minutes, how many
- 39:49transactions are they make a 2000?
- 39:51Something's weird great. If that's interesting in, are
- 39:54you looking to a more sophisticated ways to turn this
- 39:58sequence data? That is this the session events
- 40:02into features? If you have a lot of initiatives
- 40:07around it right now, the way we do it is we use slink?
- 40:11Yeah, we started exploding spot screaming as then.
- 40:15We are also thinking of building our own domain specific language
- 40:20here for defining those competitions.
- 40:23So they has right now we are using Flink dominantly but they
- 40:28help. They are different initiatives
- 40:32going on, talking prove that feature engineering Real-time
- 40:36events. That's also part of this making
- 40:38itself serviceable. So that user K is, you need the
- 40:42pipeline, like how they want to compute the feature on this
- 40:45real-time events so that the initiative is also going on
- 40:48here. There's so the opportunity we
- 40:52got to wrap up but I got one last question.
- 40:54I feel like it's only fitting right now because you mentioned
- 41:00that what are your key takeaways that you were thinking about for
- 41:03this conversation is something you wanted to hit home and it's
- 41:08buying third-party products. Requires, careful, evaluation
- 41:13and integration with the platform to provide great user
- 41:16experience and I figured it's only fitting since we got Mike
- 41:20on this call. What would you School Mike
- 41:22about? Out for that experience.
- 41:25What are some things that we need to keep in mind when going
- 41:28through that from the engineer side and then from also the
- 41:32vendor side. Yeah, I think one thing I think
- 41:37about like, very normally, like they has done lot of open source
- 41:42and we'll factor out there like the steel companies have to
- 41:45build their customer things internally.
- 41:49If you think about this fact, there must be some missing
- 41:53pieces for us. It was like just not very easy
- 41:56for us to interpret like integrating those things into
- 41:59our platform. Some of the things were might be
- 42:02or what hand or somewhat things. Dependency on the big
- 42:06infrastructure, the climber like Cuban, and is so all those
- 42:10things makes a lot of difference and then some platforms out
- 42:13there couldn't even meet our requirement like latency over
- 42:17cos Delta X. Like so when we start
- 42:20introducing like we had to go through a lot of deep valuations
- 42:26of this pack for way, we used to run.
- 42:28We used to integrate this platform into our tool set
- 42:32design, real application it to figure out whether this will
- 42:36work for us a lot. And most of the time we find out
- 42:40that it's going to create more Force user experience from like
- 42:44for you suspect user for specially for machine learning
- 42:47Engineers. Like if we say we use x, y z
- 42:50Technologies, they you get overwhelmed by requests lie.
- 42:53If you don't Don't provide proper interfaces in front of it
- 42:57and it takes time to provide or integrate this platform
- 43:01completely into a system so that they have a centralized logging.
- 43:04They have a centralized UI. We have all these centralized
- 43:07Matrix things like that. So that that's has been the
- 43:10challenge and we we still use a lot of Open Source tools which
- 43:14works and this with this initiative of creating like a
- 43:17centralized web application and you Ivy are trying to make the
- 43:22user experience less over. Me as well.
- 43:26So just to clarify. Did you mean like when there is
- 43:29a system that is a vendor or go open source that you're
- 43:34considering bringing on board integrated typically?
- 43:37There's a variety of dependencies that they have.
- 43:39So it's kubernetes like, dynamodb whatever and what's and
- 43:43it sounded like you were saying, what's, and an important detail
- 43:47of those platforms is how modular her swappable.
- 43:50Those dependencies are, so maybe you don't, you know, if you
- 43:54guys, Don't use Dynamo you use redis.
- 43:56So can the same platform plug into the data infrastructure
- 43:59that you were other infrastructure that you already
- 44:02have rather than requiring you to change some of your
- 44:05underlying data infrastructure elements.
- 44:08Is that, is that kind of what you're saying?
- 44:10Yeah, I think that that takes its hits a point.
- 44:14Like, first ample, like, even if we use golf clausel flake, we
- 44:19don't want to introduce a new solution which would require us
- 44:22to make build the whole intersected.
- 44:24Has to use, it is snowflake, they then that kind of overhead
- 44:27is big for small teams Like Us in the company where we only a
- 44:31few people. So we can only and we have a lot
- 44:34of support requests and features.
- 44:35We want to really so so providing like those flexibility
- 44:40to extend this open source, tools or many solutions to
- 44:45different Technologies is like key to us.
- 44:50Cool solid answer. Well, so I hope thanks for
- 44:53sharing this element. This is so good.
- 44:55It's really cool because so many people are going through the
- 44:57same journey of adopting real-time ML.
- 45:00And well, if I look at the blog post so you put together, it's
- 45:03very data focused, it's like this is how we solved the data
- 45:07side of this because that's the challenge when you move to real
- 45:10time and that's one of the focuses that I've been what I'm
- 45:13spending a lot of time on and and I'm seeing a lot of patterns
- 45:16and how people are going through the same Journey again and
- 45:19again. So Thank you for sharing all of
- 45:20this yet. Ted, thank you thing.
- 45:23I didn't, I didn't even realize, it's all the phone with my
- 45:25doctor and I like they conversation and find us Clyde
- 45:30goes like that, man. That's what we hope for is
- 45:34Skyler. I lead machine learning and
- 45:36health rhythms, if you want to stay on top of everything
- 45:39happening in ml. Ops, subscribe to this podcast.
- 45:43Now. Now, now now now now now, Now.
- 45:53Now.