Latest / Agentic Conversations (formally mlops.community) / Feature Stores at Shopify and Skyscanner // Matt Delacour and Mike Moran // Reading Group #4
Transcript
- 0:00Hi everyone. I'm Matt, I'm a date,
- 0:02engineering's a metal platform teams and machine learning
- 0:04platform, team at Shopify. And I've been, there's a main
- 0:08Tech lead of to implement a feature store at Shopify.
- 0:12So, basically, I'm going to talk about that today and feel free
- 0:15to reach out or some slack afterwards.
- 0:20Mike relm Principle, as you engineer Skyscanner a closed
- 0:26curve quite well, those could have ten years, the things you
- 0:29do that changes but the past three or four years before being
- 0:32focusing on the killer of machine relevance and machine
- 0:36learning space, which own touch on Berlin.
- 0:41Awesome. Great.
- 0:42Thank you so much guys. So to start off this session met
- 0:46will start with a sulk. Then we have a small Q&A for
- 0:50folks to feel free to shoot your questions and then we test to to
- 0:54Mike which will always which will as well.
- 0:58Give us a talk about features are as well.
- 1:00So met the please show us what you got there, please.
- 1:04Yes sir. Let me let me share my screen.
- 1:09First the high one so I'm In to talk about like what we did when
- 1:14we wanted to implement a feature thought I'd stop 5.
- 1:17I basically want to talk up that cover three.
- 1:21Main things is like the different aspect of fluctuating
- 1:25Solutions you can do like in-house open schools.
- 1:28You can go with managed Services then we I want to explain why we
- 1:33went with. This tablet is an open source,
- 1:36feature store, and how we implemented it a try.
- 1:41At Phi and what were some of the technical decision.
- 1:44They're very quickly just to make sure we're all on the same
- 1:48page sub fries tech company to make Commerce better for
- 1:53everyone. And so today we have like
- 1:56millions of merchants using our platform which means that they
- 2:01generate a huge amount of data every day.
- 2:04And so from the called the first use case, we want to turn board
- 2:08when we wanted to do a citrus tour.
- 2:11It was like about like 22 years of forfeiture years, but that's
- 2:15so that was not a huge use case because there's only 15 features
- 2:19from another perspective but it was on billions of rows.
- 2:22So what was also very important to us is, was how would that
- 2:27scale on the offline side of it that for training or batch
- 2:32production as well as on the online side side of it?
- 2:35Like for online inference? So when we wanted to choose a
- 2:43solution, we basically has three different options.
- 2:50Either we go with like a managed service that could be like
- 2:53Google is a platform that takes away from the ball.
- 2:56We could also go with like just a full in-house service.
- 3:01For example, we're thinking about doing it with Apache Flink
- 3:04and then you just build everything yourself like all the
- 3:06logic. The good thing with thing from
- 3:09the poor is like he can process batch of data, as well as
- 3:11streaming data all the other options like open source and for
- 3:17them with fist is one of them. So very quickly on the on the
- 3:24managed service, one of the problem you can have is, is to
- 3:28have this kind of locked in Vendor situation.
- 3:33So one of the issue that was for us, it's like if we go with like
- 3:37a A with a cloud providers. As soon as you want to change,
- 3:40all you want to migrate that would be a real pain to do
- 3:44migration for your users. Also, especially if you go with
- 3:49like a big managed service, you're going to have like issues
- 3:54to make changes in the roadmap even though Shopify is a big
- 3:58company. Sometimes you need features that
- 4:02only going to come in six months and then, you know, you are kind
- 4:05of block for four months because of that, So many services remain
- 4:11a good option. If you have like a limited team
- 4:12and you want to go fast and you don't want to do any
- 4:15infrastructure work, for example, then the the we thought
- 4:20about like henhouse and we explored that that option a bit
- 4:24more. What units different a bigger
- 4:27team because you need to to do like crazy infrastructure,
- 4:30create a business strategy, Craig ton of things in-house.
- 4:34One of the main current is you can drift from the standard
- 4:36practices of the ml. And that's quite a lot of tech
- 4:40companies today creates in-house project because they don't have
- 4:43Choice and then they make it open source like a dupe or like
- 4:50a patsy Iceberg. Now that was from Netflix.
- 4:53So they really try to make their tools this turned out of the
- 4:56community and to not do this to Too Much from there.
- 5:00Another thing that I think is is important with in-house
- 5:03solution. When you do everything in house
- 5:05is like, you have a very limited scope of Ins and what is good.
- 5:10When you are like from a working with like open source projects,
- 5:13like your challenge for your assumptions and you try to book
- 5:16the girl things a bit more. Let's say long term.
- 5:19So it remains good. When you have very specific
- 5:22requirements or when you can make that you know, open source
- 5:25at the end and then the last one was open tools for us.
- 5:30There are other other issues to take all the things take into
- 5:34considerations like if the project is not maintained
- 5:36anymore, you can end up with some That could it can be
- 5:40screwed to get arrestees opr has approved and it can also come
- 5:44with like a lot of and needed features that you don't need or
- 5:47components. You will need to support that
- 5:51Cummings. Good out Furniture couple of
- 5:52Engineers that can be involved in that open source community
- 5:55and therefore they are they're willing to read make changes
- 5:58directly to the repo or contribute back to.
- 6:01So on our side we decided to go with this tie was our long-term
- 6:05Solutions. What who are looking for when We
- 6:08explored those three different options.
- 6:11It was first to have like consistency between training and
- 6:14prediction to have the unified API.
- 6:19So our what our users want is like to get features for
- 6:22training and for batch production and for online
- 6:24inference, kind of in a consistent manner, they should
- 6:26not change that code to match to do that.
- 6:30Another thing that is important, at the scale of stop Phi is to
- 6:33reuse teacher cross-project and across team.
- 6:38And the for first visibility of that was was pretty important.
- 6:42And the last one because I told you quickly about the use case
- 6:46is definitely stability. So when we, when we look at
- 6:53fist, there was this diagram of what Feast is about.
- 6:58It's basically a library that try to be plug and play with
- 7:02different store or different like systems, and Then if you
- 7:08learned or and do things like a registry, or it will give you
- 7:11like a unified API with an SDK and so what was very appealing
- 7:16to us? It was like softening and Zone.
- 7:19Next door can be, I'm not part of this.
- 7:23This is just a library that connect to those store.
- 7:25So if I am appalled at five, we use bigquery.
- 7:29But we also use a trainer or Presto that is not also also
- 7:35another distributed SQL engine. We just created a community
- 7:40pregnant of the tree. No offering store, and we just
- 7:43made it available to the community.
- 7:46But that was very important to us because if this was really
- 7:49storing the data as a lot of features to work, it would mean
- 7:52that it would have to endured the scale of short time which
- 7:55was not necessarily. Something that would be obvious
- 8:01on the online store for Nepal. Another thing that is we have
- 8:05our own key value store and the For what was important to us, is
- 8:09to reuse this key Value Store, instead of using radius or
- 8:12dynamodb or any other key value stores.
- 8:15And so it's the same, we created our own custom on next door and
- 8:19and feast is now able to read our customer, our next tool that
- 8:23is not open source it's just private code and this is fine
- 8:27with it. So we really like this
- 8:30plug-and-play a DDT of fist that we could not have with like
- 8:36managed service going on Pole or Have with other Solutions.
- 8:42Another things like that was important for us is to add this
- 8:45unified API where you can fetch features for batch or for online
- 8:50inference. In a pretty consistent way, I'm
- 8:53going to get back to that because we still created a thin
- 8:56layer between the fist API and our users and we have our own
- 9:00internal SDK for that and I will explain the why of that too.
- 9:07So the Y is is fist, is so this is how things are done.
- 9:14In my mind, it's like cyst is like the open source solution,
- 9:17then we have a shop for internal library that is build on top of
- 9:21this. And we don't really hide that
- 9:23like we even sometimes tell our users to check the sister
- 9:26condition, and we're fine with this.
- 9:28The thing is that, our users are going to interact with our
- 9:30internal library on Lee. So that first, if they are
- 9:33unblocked and we can unblock them.
- 9:35Is if they are block and we can unblock Them with some quick
- 9:38hack. Well just going to make changes
- 9:42into internal library and then we poured the issues back to the
- 9:46community and back to fist through a races detail PRS
- 9:51guitars issues. Another thing is like fistfight
- 9:55on poor comes with a lot of features and flexibilities that
- 10:00we don't necessarily want to earn and therefore we have an
- 10:05abstraction layers that try To remove some of the flexibility
- 10:11of this, but it sometimes makes things much more easy to use for
- 10:15our users. And that's definitely a that was
- 10:21a technical decision for us because you are like, if you
- 10:23want to talk too much, what the point of using this', but the
- 10:26same time, if you don't abstract enough, and then Feast make
- 10:30breaking changes in the future, everyone will need to migrate.
- 10:33So it's, there's definitely Traders here in the satisfaction
- 10:36of life. How do we make sure we can do
- 10:39Muslims immigration, and support for Jesus, why?
- 10:44You know, they, they have what they need basically.
- 10:49And last but not least is like. Otherwise may be saying at the
- 10:51beginning of the presentation is that when you contribute back to
- 10:54an open source software, you are challenged by your challenge for
- 11:00for your assumption. So, for example, Twitter is
- 11:02using fees today and Robin Hood is using face as well as
- 11:05Shopify. And last time, you know, we had
- 11:08like very interesting conversation with the Tweet of
- 11:10people just because we didn't necessarily have the same point
- 11:13of view which is fine but it just makes you know your
- 11:16assumptions a bit bigger. Like the set of assumptions bit
- 11:20bigger on your site. So internally how we did we
- 11:27really Implement that I think that for us when we decided to
- 11:32go with feel, there were two approaches either you go with
- 11:34like a military report approach to you.
- 11:36You tell our group of users to create a repo and you have like
- 11:40a scaffold loose, you scaffold everything and and they find
- 11:44important interact with this directly.
- 11:46That was one option. Another one is that Like to
- 11:49under that option is very appealing or so to, to make your
- 11:53users owning the code and owning what they purchase.
- 11:59So that if there is migration work to do, you are not the team
- 12:03responsible to, its your users are responsible to do it.
- 12:06Another approach is to do more like mono repo, and that's the
- 12:10one we chose just because we wanted, like one of the main
- 12:14reason is because we wanted to Try to get as many features
- 12:21reusable by as many teams. And if it's in the same repo,
- 12:26everyone can see what other features available I think.
- 12:29At the end it's also because he's today does not have a wet
- 12:33UI. They are working on that but
- 12:36maybe if there was a wet UI we would have done things
- 12:39differently. But like today there is one repo
- 12:41where all the features are defined and everyone can you
- 12:45know say oh there's something II should use before.
- 12:48Said of creating a new one. And on that note for another
- 12:52four days no, good or bad answers.
- 12:53I think if I'm not mistaken, the Twitter folks are doing a multi
- 12:57Rico approach. So I snapped like you know, it's
- 12:59not one size fits all here. So how our repository is is
- 13:07careful or is organized is that there's a entities folder and an
- 13:11entity and face is just like a concept like a user, a driver, a
- 13:15product, a customer, then there's a citrus.
- 13:18Product and those features is like where do they come from?
- 13:22I talked about the offline stores that are next also for
- 13:24not force, the sales tax feature of you.
- 13:26So with this concept of the feature of you come from some
- 13:32data like batch data in bigquery and some data data sets in the
- 13:37key value store. So and then there is like a
- 13:40feature set is that is more user facing where you say my foot
- 13:43detection V1 is composed of ten features coming from different
- 13:47entities. Buy them for and my V2 is
- 13:50composed of different like of the same time features but maybe
- 13:54with two extra and therefore it's very easy to just say in
- 13:57your notebook in your local environment or on your
- 14:00production pipeline. To just say, give me right
- 14:02features for for detection V1 and then do some editing of
- 14:06sight and then compared with for direction V 2.
- 14:09So those this is why we also like the mono repo approach.
- 14:12It's because if someone wants to create an entity, they are going
- 14:16to go to these entities folder and say eh.
- 14:18There's already a user or driver or product entity.
- 14:20Maybe I should we use that instead of creating a new one
- 14:23and same for the features in general.
- 14:26As I told you there's a service. As I told you that doctors the
- 14:32SDK we windows and what is the goal is, is to say to plug all
- 14:39the fat file Logic on in there. So, for example, when you create
- 14:43a feature, we created a feature of the class python class, that
- 14:48inherits from the cysts teacher python class and we just enrich
- 14:53it with just add like things. That is very specific to shop fi
- 14:58on. We also add maybe validation
- 15:00Like naming or how things should be organized that we try to be
- 15:04opinionated here. The good thing with this manner
- 15:07approach concept is like as soon as you merge appear in this repo
- 15:14also continuous deployment. He's done for our users so like
- 15:17create like a dating service registry creating data sets
- 15:21somewhere if there is a need for that and making sure that those
- 15:25future are like available to all as soon as the pr is Emerge, and
- 15:31the other. Good thing with the SDK is like,
- 15:33this, our own SDK were there is the fist apis, as well as like
- 15:40enriched. So the, with the Shopify logic,
- 15:43this SDK is used within the entire ecosystem of Shopify
- 15:49which is like a substandard books production jobs.
- 15:52It can be local environment or even in our Ruby app.
- 15:57For example. So for example, today we do not
- 15:59necessarily Your panel or like this mono repo Ruby as we carry.
- 16:05But we could definitely just build a small SDK in rubies,
- 16:08that is doing what we need to do in Ruby.
- 16:12And the for we kind of try to get the benefit from from this.
- 16:16And we try to contribute as much as possible with this as
- 16:20explained here and with the maintainers but the same time
- 16:23have the Liberty to to just like extend that and not, wait on
- 16:27them to build what we need. But also just Just build what we
- 16:31need beforehand. Yeah.
- 16:35So I think I will just let people ask us question, thanks
- 16:39for thanks for listening, feel free to reach out on strike or
- 16:43LinkedIn or whatever. And and yeah, I'm not happy to
- 16:48transfer your your questions. Thank you, meant great
- 16:55presentation. So who wants to go first?
- 17:01I have a I have a question Madam so regarding the scale of
- 17:07Shopify I will assume. It's it has a very large traffic
- 17:12and 30 sensitive latency requirements.
- 17:15Those fees satisfy your need to the regarding the online
- 17:19inference. Because I saw the like these
- 17:22Benchmark recently, it seems to improve the performance, has
- 17:26been improved. Just curious if that, and if
- 17:30that's an issue, Shopify. That's a great question.
- 17:35I think for me on in on an inference that component there
- 17:38is like the latency when you ask for features and this is not
- 17:43really in the picture because we have our own key value store.
- 17:46Right. This is just, this is just a
- 17:48library that is going to ask our key values told to fetch a
- 17:51features for the user. So on that side we don't use the
- 17:56fist server. For example, we have our own
- 17:58like online store so Latency is not video concern or it's not
- 18:03really a fist issue. And then when I think about
- 18:07online on the infant's, I'm also thinking about like data
- 18:10freshness. We're like, how fresh is your
- 18:13data in your online store? And it's the same.
- 18:15Its, this is like this happens outside of his.
- 18:19So, basically, we have like buttons, training pipeline, but
- 18:22populate or more put the data in the offline and online store
- 18:26with like custom. Could we give them like custom
- 18:29loaders or sink? And then we just have csas
- 18:34online data is here in our own key value.
- 18:36Stores are offering these toys here with our bakery or own a
- 18:40Frank store just, you know, do the glue to the magic to our
- 18:43users, right? So in that case latency and and
- 18:47freshness is really control outside of a cyst is not like
- 18:50this itself, doing it. And that's, that's what was
- 18:54happening for shock value because this does not store the
- 18:57data. We don't rely on the system
- 18:59infrastructure or the fiscal. Linens on those critical
- 19:03questions. I see, but I wonder like you
- 19:08imagine like Shopify Bill its own in-house online store.
- 19:12A then it does it rely on. Does it still rely on Feast to
- 19:17like serialize the data inside? I mean serialize the data and
- 19:21write them into the online store.
- 19:25No, it does not feel like I'm face for that.
- 19:27We have our own. So basically, we have our own
- 19:31connections, our own tools to move data from one.
- 19:35Um from one storage to another. So from like a flank storage or
- 19:40online storage. Love, we have our own pipelines,
- 19:43doing that to magically Sophie's is not going with.
- 19:46That being said, what you said is important, like this is
- 19:49working on this optimizing this online inference.
- 19:52And try to sterilize data in certain way.
- 19:55So, maybe, at some point, it would even make more sense to
- 19:58use fists and like a redis cluster directly than to use our
- 20:02key Value Store. Maybe, at some point, it will be
- 20:05even more. O stands for Shopify to do so it
- 20:06just like, we did not start that way for now.
- 20:09Okay, cool thanks up front but this is the internal libraries,
- 20:15like, kind of a subset of the feast, libraries.
- 20:17It like whatever the features needed for Shopify had taken as
- 20:21a copy and modified it for Shopify user.
- 20:29Yeah, I think it's kind of the opposite.
- 20:32I think it's like this is a subset of the internal
- 20:34libraries, like the internal Library as like as as a
- 20:40dependency fist as a requirements, right?
- 20:44And then we just like you have access to the fist apis like
- 20:48public apis, but you have access to other apis that we built on
- 20:52top of it because they make sense in the context of Shopify.
- 20:56Right? So it's kind of more the
- 20:58opposite. Like this is a subset of the
- 21:00internal library, but the internal library is a thin layer
- 21:03for now. Like, we don't try to reinvent
- 21:05everything, we try to just like, you know, builds a list amount
- 21:08of things, but still, we still need to add logical order things
- 21:12on top of that, okay? Good.
- 21:18There's also questions from Victor.
- 21:20Did you guys consider when thinking about mature approach
- 21:24using, maybe get some models or subtrees to unify the features
- 21:27under of your repo? Yeah, that's, I mean, yes, we
- 21:31considered a lot of approaches and as I'm like, as I told you,
- 21:37There is no like good or bad answers on that one.
- 21:40I think we still preferred. Like we had back on the we had
- 21:44like long conversation about that's one we still prefer to do
- 21:47like as a mother report at the beginning to like control or so.
- 21:50How's data like how people create it features and to make
- 21:54sure the features in the future store was like met at a certain
- 22:01standard in terms of naming, in terms of like data quality, like
- 22:05we wanted to make sure that was not to do.
- 22:07Is it restore or database? That being said, maybe
- 22:12especially if Feast at some point, build a web UI.
- 22:15Add on top of it. That could be easy to have,
- 22:17like, the full like to understand what are all the
- 22:20features available. Maybe at that time, we will
- 22:24decide them to just break that one repo and do like a different
- 22:28approach. And I think like, I need to
- 22:31confirm what I think. David's from Twitter, that that
- 22:34is one of the main point of contact.
- 22:36I have I think they have do, is they are doing well too.
- 22:40T repository on the side where you do like you scaffold project
- 22:45for the users and you do things a bit different.
- 22:47So you know, that's definitely a viable approach to what's what?
- 22:59Okay, thanks. Yeah, go ahead.
- 23:03So do you use a feast for storing the embeddings?
- 23:06If yes. How will you write the ability
- 23:09to store embeddings in Fist and whether fist is a good option to
- 23:13store and look at the embeddings for inference.
- 23:17Yeah, we don't have today I use case doing and bidding with
- 23:22Fists So today it's a no. Like we don't do it.
- 23:31I think ideally everything is in fist, one of the.
- 23:35So one of the use case, I have in mind, they also rely I rely
- 23:41on images and those to store like and buildings and images to
- 23:45store can take a lot of space in the, in the future store.
- 23:49And I one of the main issue could have is like maybe
- 23:53scalability of the futurist or like because your data set or
- 23:56your data is going to be way too big to to be really well
- 24:00optimized and A beam that case it's makes more sense to not use
- 24:04the features door. Like my point is today we don't
- 24:07use this with embeddings. I don't know if we're going to
- 24:11do it in the endzone, your future or not.
- 24:14So yeah, so I don't have a good answer on that, I think if you
- 24:16are curious, but that you should ask any fees maintainer, or
- 24:20asking the fists like channel to get good examples of people
- 24:25doing that and you might have a, some, some people doing it.
- 24:29Might I also have one Question, I think it was regarding the
- 24:32slide 19, where you showed on your mono repo, the feature
- 24:36services and like features. I was wondering what kind of
- 24:42like, I'll do you regarding that repo where I'll do you persist
- 24:47data? If you use, like features for
- 24:49that or in like feature engineering, if you could give a
- 24:52like, do you do other the feature Services is like a
- 24:56feature, engineering code where and then you persist tables.
- 25:00How do you do it? And also, I'll do you know like
- 25:04for example, the more the feature engineering you apply
- 25:07and start those features, the less likely it is for data
- 25:10scientists to you to use it. In terms of, you may have like
- 25:15feature engineered it too much. How do you tackle this sort of
- 25:18issues? Yeah, so that's a very good
- 25:23question. I think one thing that we tried
- 25:29to explain to our users on how we would build the vicious
- 25:31towards the scope of the project of the features toilet rephrase
- 25:34that feature engineering is outside of the future, so that
- 25:38might sound a bit silly, but it's kind of like we're having a
- 25:41food tools to do, but Transformations at Shopify.
- 25:45One in using DBT, one using pi spark and the for you do feature
- 25:49engineering. Those tools you make data
- 25:51available in like offerings to our online store.
- 25:56We are we help them to to, to standardize how they do feature
- 26:01engineering. So for example, we created like
- 26:04a couple of what we call in a house like loaders like bigquery
- 26:07loader to make sure that the data is loaded to be curry in a
- 26:11certain way or in an optimized way.
- 26:13So we help them in loadings data the right place in the right
- 26:18format. But that remained out of scope
- 26:22of the features to itself. Kind of it's like old, your
- 26:25batch and streaming tools are used for creating like citrus to
- 26:33do feature engineering. Then you help them to go to the
- 26:36features talk like the offerings online store in the future
- 26:39story, really project, you you tell where's data lived?
- 26:43Okay, because this is kind of taken place not to Features tool
- 26:46that stores data starts naming can be confusing and Because you
- 26:50just reference was data. Is then the SDK of the of the
- 26:56feature story, just going to do the blue and the magic of like
- 26:59SQL query or this kind of things to fetch data for you.
- 27:03So yeah, tldr future engineering is kind of like out of scope of
- 27:08our team and we try to help them without like doing dishes, doing
- 27:11it for them. Got it great.
- 27:15Thank you folks. Does anyone has more questions?
- 27:20The yeah. So the internal resistor is yeah
- 27:28I mean it's a free free to ping me on the envelopes Community or
- 27:33I'll make there's a good Channel and Ray for that but I'm sure I
- 27:36think I'll I think there's a otherwise you had the lack of
- 27:40there. Maybe it can be enough to open
- 27:42public channel for more people to jump.
- 27:45Yeah. Actually.
- 27:45You are giving a good idea. Maybe we should open like a
- 27:48channel for future source. That would be nice.
- 27:50For example, I'll talk to the m about that.
- 27:53Thank you so much for the presentation.
- 27:56Yeah, yeah. Thanks Mike.
- 27:59Go ahead, man. Please.
- 28:02So I'm going to go without any slate so it's just me talking
- 28:06and keep it but like me. So what I'm going to go over is
- 28:10system called Kaleidoscope which is kind of something to use
- 28:13internally which has one face of is a feature of store and
- 28:17collect explain, whether is are going to go over the history.
- 28:20I say we are where we are there and then come topics for future
- 28:23stuff. So and the reason I came from a
- 28:26canal project since I Skyscanner called machine relevance.
- 28:30So about four years ago, we can have identifying we had a few
- 28:34kind of attempts to control o machine learning in different
- 28:37bits and pockets of the company but haven't really kind of
- 28:40scaled out. And and so probably take
- 28:43advantage of the opportunity, the whole bunch people
- 28:47effectively just fit together and said, okay, let's focus.
- 28:50One ranking problems. Let's try and work out what all
- 28:54the things problems are and they included can have not just
- 28:58technical problems but organizational, things of how
- 29:02are you recording that idea like everything.
- 29:04So that's where that's where clintus got came from but it
- 29:07wasn't it didn't even didn't exist at the start.
- 29:12And so the machine relevance effort, kind of move forward.
- 29:15We got to the point where we were curve, we were we got a few
- 29:18successes, As a big group and we were starting to Cano faintly,
- 29:22decomposed into small teams and start kind of like point about
- 29:27the architecture and say, okay, that is a thing of thing.
- 29:30So it's not become obviously needed.
- 29:33Something like feature storm and we can start implementing that.
- 29:37And at the time, for years ago, there was things like you floor
- 29:39was arrived and there are some features storage stuff there,
- 29:43but it was either kind of not busy, wasn't robust or Killers
- 29:47like mature enough for what we wanted. so the first version of
- 29:50latest book before I even had a name, was the fact that I got a
- 29:53bunch of tables in a database That 80s, And but that mature
- 30:00over time to linger on, do things like storing and Daniel
- 30:04DVD. What it is though that can see
- 30:07and the one of the things that happened like partway through
- 30:09with you about halfway issue, Therefore your story and there
- 30:13was a part of the company that is we typically referred to as
- 30:17the life cycle teams, visually using marketing tools to Target
- 30:22people went there. Several points in their purchase
- 30:26or kind of their kind of life cycle.
- 30:27Over getting a fight that kind of thing.
- 30:30And this ended up with the corner system.
- 30:33We will be going from one vendor going to another.
- 30:37We didn't have any idea where and it was kind of a bit of a
- 30:39pivot where it's like, all right, wait a minute.
- 30:41We've got this thing. This being used for machine
- 30:44learning, so that's very similar.
- 30:46They are very similar patterns eat Community for pasta to also
- 30:51publish to these third party Marketing Systems.
- 30:54So that will affect with the second of the two The two main
- 30:58customers of Kaleidoscope came from which basically marketers.
- 31:03And that kind of led us to our capabilities as moreover syncing
- 31:08with external systems rather than what you typically find a
- 31:12feature story. And so that's kind of like a
- 31:16very very quiet history and one of the things that happen on the
- 31:19way is a got big enough guy named.
- 31:21It's also got a logo which is on the laptop, which is actually
- 31:24done by 100, is on the call. And so I became more and more of
- 31:28a kind of my thing and I kind of became something of lived
- 31:31separately from. General learning Stacks, they're
- 31:34still able to use the products back, but it's gone too.
- 31:38It's got lots of different users but the two big main users of
- 31:41marketing and machine learning. And I'm with the particular cell
- 31:46service Focus as credit was quite interesting, listening to
- 31:48some of those questions where people is because we've adopted
- 31:51adopted woman, hdk approach where if you take a dataframe
- 31:55that a notebook and you publish that looks like the scope.
- 31:58We will automatically create a schema.
- 32:01We will automatically all of it. Publish care of things.
- 32:03So we've gotten very much towards the, how do you think as
- 32:06easy as possible for someone to basically go from having an idea
- 32:10getting in a data frame and getting it out into production
- 32:13within like an hour or a day ago?
- 32:14Kids and the other thing is, I think another thing that came
- 32:19through in Matt's talk was kind of like being a kind of reactor
- 32:22for reusability. So one of the things we find is
- 32:25that there are nice kind of flywheel effect where if someone
- 32:30in marketing has an idea was taught Today scientists begin
- 32:34them to produce what we call attribute, which is our problem
- 32:36of features in and Kaleidoscope, two months later.
- 32:40Someone says, oh, wait a minute, we could do that as well.
- 32:43And then that gets used in machine learning and vice versa.
- 32:46We thought that happened recently with like some
- 32:49attributes to do with feelings of destinations where originally
- 32:53it was created to support a destination, recommendation
- 32:55model. And now, we're using it for
- 32:56targeting in Marketing System, canceling.
- 33:00So it's a deliberate and reach. 24 of us have stuff and also
- 33:06regular technical point of view. This problem of cross-cutting
- 33:08concerns with anxiety DVR and we're inclined is good sense.
- 33:12And the companies can avoid the kind of internal boundary
- 33:14between internal systems and kind of external usage and
- 33:19that's what we apply all over. A GTP are constraints the same
- 33:23constraints. Apply whether you're using it
- 33:24for machine learning or marketing.
- 33:27Like there's different consensus of life, but the logic is very
- 33:30similar, so you get a lot of value of having a single system.
- 33:32Um, does it? And one of the things that
- 33:35doesn't support right now because it's in a real time,
- 33:39what have you we read me? Very deliberately made a
- 33:43compromise. The start that we would go for
- 33:44very smooth India, but Lord knows they are so we typically
- 33:48only update their once a day, when it comes to writing,
- 33:51publishing stuff. But obviously, that's not enough
- 33:54and does lat. And again, there's like needs
- 33:58coming in from both machine learning and for marketing of,
- 34:00we would like world today and they are.
- 34:02So again, Later on 801 system, which is used in multiple places
- 34:07for, for solving very similar problems.
- 34:11So that's going to be real men and women School in the future.
- 34:13So the world has changed inside of us.
- 34:16And so there's plenty of things that are that are are very
- 34:20mature, Feast is one of them. And so one of the things that
- 34:25were considering is effectively doing about consolidation and
- 34:28one of things that we found was like worldly mapping, so it's
- 34:31like talked about to monetization that kind of thing.
- 34:33So, One of the ways you can see Kaleidoscope in the features a
- 34:37bit more of a brand and the sense that a lot of the stuff
- 34:39that we incline is called, is about helping, internal
- 34:42customers that we didn't change. If we took the internals and
- 34:46made it be a made on Feast. So like there's a useful
- 34:50separation between. What is the what is the
- 34:52documentation once they're going to experience, you give the
- 34:55internal customers versus what are you using it right now for
- 34:59supporting them by technically. And and I think is like there's
- 35:07some stuff that the Kaleidoscope is doing was kind of becoming a
- 35:10better many data warehouse, but really shouldn't be.
- 35:13I am so we can have need to go back and we integrate some but
- 35:16somewhere or other internal systems to take some of the
- 35:20features of Kaleidoscope evocative.
- 35:22And well the main thing in well as they sent up to Andre was
- 35:25there and they don't think about very close to his that the
- 35:30cross-cutting concerns aspect, there's no no thank you.
- 35:33This is certainly the case that every company to expand to have
- 35:36their feature store be used for different things but there is an
- 35:40opportunity there where I think. If you looked at your use cases
- 35:42that been talked to your marketers or other similar
- 35:45groups, there's going to be very similar needs and you can be DQ
- 35:49your work. Okay, I'll stop there about was
- 35:53about what your brain dump. I can't quite easy to offer over
- 35:56quite a scope to ensure algunos and, but I'll stop there.
- 36:00Questions. Thank you so much.
- 36:02Mike. Folks, does anyone want to
- 36:06start? Well, I can keep on this one off
- 36:09mic when like a bigger scientist updates.
- 36:12When one feature that for example imagine that also a
- 36:15marketeer also uses that that feature from the feature start.
- 36:18I'll do you communicate. I'll do you like warned that a
- 36:22feature has been changed and a new version of it has been
- 36:26updated. So so one of the things that we
- 36:30do is We will do version check. So one of the things that
- 36:35mention is that we very explicitly built it for
- 36:38evolution. So first up, doesn't have a
- 36:42strong opinion about CA keeping to your attributes and sink.
- 36:46So what that means is that you cannot actually two versions of
- 36:50your attribute live at the same time.
- 36:52And what we typically do is we don't automatically communicate,
- 36:56kind of like there will be a new version.
- 36:58We just make it possible for the assignment of a Action with
- 37:02their banking customers. Mediated by Kaleidoscope to
- 37:05healthier Options under the same time.
- 37:08And but one of the things that we're doing for us to try and
- 37:10keep things kind of correct is that we will sport breaking
- 37:13changes and basically if someone tries to accomplish but if we
- 37:18are locked and somebody has deliberately.
- 37:20So for example, someone can extend the definition of an
- 37:23attribute to our next, which wanted to the attribute.
- 37:25And because I are out to be S of more more like feature sets than
- 37:29individual features, we have can have attributes and Components.
- 37:32So we'll add will add, always someone to add stuff to an
- 37:35attribute. But if they make a breaking
- 37:37change will be will work safely published by the SDK that they
- 37:40are saying. We were just say, nope, sorry,
- 37:42you can't do that. You'll have to either create a
- 37:44new version, or you have to do, do what you're going to do
- 37:47because think so I had to go eventually.
- 37:50When can we don't explicitly kind of message anyone?
- 37:52That's one things that we can have?
- 37:54We have enough metadata that we could do that.
- 37:56We just this is not be little feature of us today nuclear
- 37:59testing but we so it's more than me. me trying to kind of put in
- 38:05the support for a vulnerability of of attributes and then kind
- 38:10of like, step back and alone. The designers to talk to
- 38:13marketers and clutters was more, kind of like staying in the
- 38:17background helping as opposed to kind of wait telling people what
- 38:19to do. Got it, got it.
- 38:26And by creating those levels of a relief, I understood right.
- 38:29If by creating those levels of like by extending you keep like
- 38:35it like maybe your place and feature engineering, but you
- 38:39also have the previous step. So that increases really the
- 38:42likelihood and the probability that you end up like having a
- 38:46lot of features that everyone can use, right?
- 38:48It does it, it never reaches the point where you cannot go back
- 38:52to the feature engineering that you applied.
- 38:54So I think there's a there's a there's a big thing between kind
- 38:56of there's nothing a few things here and there because like
- 39:01there's some types of changes that are actually changing the
- 39:03shape of the day and which are most images.
- 39:05And there's other ones where you just improving stuff over time
- 39:08and you're not creating a new shape, but you're just turning
- 39:11your instance of that, for a new daycare.
- 39:13Like we tend not to get in the way or, you know, whatever we
- 39:16try and one or that one or one. Yes you can see your question
- 39:22again because I lost the thread. So basically you keep extending
- 39:26those instances to keep everything more and more.
- 39:29Like you still retain the information from like it because
- 39:36behind the scenes when you read even if you know as long as you
- 39:43could have, no ability of a thing then any all components of
- 39:47that thing will look into it. And but there's a kind of
- 39:51interesting social aspect here of and there's always a
- 39:55trade-off between the flexibility, the freedom of any
- 39:58particular user or the marketer or kind of data scientists.
- 40:03And one of the things that we do is that, although, although we
- 40:08allow people to automatically publish the SDK, and all Market
- 40:12creates a steamer that still grows and creates a PR and Rico,
- 40:16which be that up to approve of growing on the user.
- 40:19So, it gives up. Well bit of an opportunity for
- 40:21us to go our women. At that thing, you're proposing
- 40:24to create looks pretty damn similar to the other thing that
- 40:27already exists. You want to be when talk to them
- 40:30first and before we improve it, that, that, that kind of thing.
- 40:34And so there's always been a deliberate tension between
- 40:37trying to enable people so that they can get away and let go
- 40:40with it. But then also not know kind of
- 40:43raise anything, if it is like, if everyone does, an extra 10%
- 40:47of work, then the whole company benefits.
- 40:50You get a baronet Improvement rather than trying to make any
- 40:53one person's life, the easiest test.
- 40:55Okay. I have a question so we're like,
- 40:57well, in when we are doing a development we might have
- 41:01different kind of Transformations, we would have
- 41:03tested it out right and four different client perspective,
- 41:06maybe one set of Transformations we would need for one client set
- 41:11of data or something like that. How we can support through Feast
- 41:14is it only with a version changes or like with questioning
- 41:18will be able to manage. Or.
- 41:21Have you talked to Stephanie but Feast then that's really more of
- 41:24a question form a thing. Okay.
- 41:29No. But man, clearly mentioned that
- 41:31features in any part, they have not used much in the shop Fest
- 41:35of, right? Like Matt or want to take that
- 41:38question. And to do it, what I'm going to
- 41:42be answering the question based on stuff.
- 41:44We'll see if you're quite a scope and then maybe my you
- 41:45could have a go at it with these.
- 41:47So like one of the things about the kind of having attributes
- 41:50with components is that one of things we find is that producer
- 41:55might produce enough food with lots of different components.
- 41:58So one example is reverse angle origin preferences which is
- 42:02basically a gaze that your home airport.
- 42:04Now, the original users or usage of that had a fairly complex
- 42:08kind of breakdown of scoring for each.
- 42:10Station, whereas some consumers, only wanted, like the tops, good
- 42:16one. And so we asked the producer of
- 42:19to go or they have to do stuff to go back and add a summary
- 42:22component. And then when that's being used
- 42:25for same marketing use cases, they can actually subsets.
- 42:29And only publish that particular component that they care of
- 42:32Erica think. So, is there any way to say we
- 42:35would be allowed more flexibility by allowing
- 42:38subsetting of features of feature sets as opposed to
- 42:42trying to support a new feature for every use case concern but
- 42:48do you know, it was the feast us because they deserve Yeah, I
- 42:54don't I'm not sure I completely get your question.
- 42:58Did you have? But maybe, maybe you can take it
- 43:03off right now. I think on that side.
- 43:09So Mike, you can I have a question for you, by the way.
- 43:13So, I think if I understood properly, this is implemented in
- 43:16go, right? So this is all a mix of java and
- 43:23python, okay, Devin? Okay, so the interface devices.
- 43:33So, what we actually behind the scenes is that the cause Because
- 43:38a lot of our service tax, we can have one have one face.
- 43:41The, the life is the feature stories effectively can approve
- 43:45of service vending service. So I'm a lot of the kind of
- 43:49lifestyle that we have is java-based for performance
- 43:52reasons, but the way the data is published is typically formed an
- 43:57optic or from some sort of Welcome each opening times and
- 44:00so behind the scenes about some stuff, the converse just email
- 44:04from spark effect as a to to probe of all of that as in Java.
- 44:10So like they deserve a little bits of the surface which are
- 44:13different languages. We go, go python both in Java
- 44:17and nude kind of sdks. But the core of it is is pretty
- 44:20much all javac. I guess I'm good.
- 44:28I also have a question maybe for both of you guys.
- 44:30If you want to have a take on this, like I still have, it's
- 44:34not still clear to me. What, regarding performance,
- 44:37performance wise? How do you decide what sticks to
- 44:42spark or pandas depend bus? Probably not maybe Lex Lex takes
- 44:47Park and what stays in SQL. How do you like manage those
- 44:53two? So we really, really good word
- 44:55to each other internally is, as, with all the feature, which
- 45:06generation happens outside of this book.
- 45:08So, cleanest cop is the place that gets saved and then can be
- 45:13laundered over again. And there's lots of different
- 45:17trade-offs around to respond. ugliest, and about the costs of
- 45:28Saving stuff and converting, as who plunders.
- 45:31And it's not another perfect kind of story for the exciting.
- 45:35It's like, no, for both online and online.
- 45:37But took a, then they could definitely improved.
- 45:40And there's some bottle makes there that are to do with pandas
- 45:42and stuff like that. But the tricky thing tends to be
- 45:44that, for example, spark is very well designed for executing at
- 45:50scale and batch moves, but there's no really good
- 45:53equivalent for or line. There's kind of spark streaming,
- 45:56but that's not as mature. Mr. Estes Park, and that sort of
- 45:59stuff. So but it's definitely the case
- 46:03that for us internally, we can have a way better story of that
- 46:08unified kind of experience for this is that I still gently
- 46:12tricky and that's actually why I'm interested in in the future
- 46:17will be going for a more commodity thing because that's
- 46:19not a new problem. Everyone has that problem.
- 46:22So you can use shared kind of so jointly kids.
- 46:25Yeah. I have some thoughts on that.
- 46:28It's like, I think, what, if you look at like, and our pipelines,
- 46:32what you try to have is different stages that are kind
- 46:36of atomic, I would say. So it's like you want to have a
- 46:40stain that is Rich with features metabolize that even though
- 46:44sometimes it's not the most efficient word that matter like
- 46:46that. So that then you have your
- 46:48training step or even pre-processing step training and
- 46:51and so from someone so it's kind of like you can use any fit.
- 46:56Restore that you said about In store to retrieve the features.
- 47:00Put that in your data warehouse, for us, it's for example, GTS
- 47:03with packet formats, and then have your training, step
- 47:07readings data. And just like, do we get scared,
- 47:10but we spice park or we use array.
- 47:13That is a way to distribute python code.
- 47:15So, you know, like you just don't have to use the same tools
- 47:18from from all your NL pipeline, right?
- 47:21So I think for us, it's also like this concern is more like
- 47:25what did to run at scale and what does not need to run.
- 47:28On that scale and how you just differentiate the different
- 47:30steps of your email pipelines. And it's holding on to that is
- 47:35the tricky thing of combining. All the day I was near there so
- 47:41they you might have the situation where So it's really
- 47:45typical and kind of our domain where people don't come and
- 47:49visit, guys, get every single day because you're not, you're
- 47:51not as they do here all day every single day.
- 47:53So you sir, but you might still have quite a lot of
- 47:56historically, derived to be for the person I am when they come
- 48:01and visit down, do you do you try and represent that as a
- 48:05separate attribute? So you have kind of like the
- 48:07same thing. One of them was like a
- 48:09historical snapshot and one's a kind of newer version of it or
- 48:13do you try and get of? Push some of that emerging into
- 48:16the feature store and I think one of the things that take you
- 48:19about the features of boundary is how much how clever you want
- 48:23to make it versus. How much do you want to layer on
- 48:25top of that kind of thing? And that's one of those tricky.
- 48:27Things going to come back to is of combining a large amount of
- 48:32older data with a small amount of newly updated India.
- 48:38I'm trying to make the easiest experience for users futurist
- 48:42orgasm. Guys, does anyone has more
- 48:44questions for our guests? And so is its for the invitation
- 48:48and raise that was, that was fun, but as we go, yeah, thank
- 48:51you. Thank you so much for both of
- 48:53you guys to come and join us. It's recognizing, I think you
- 48:57can practice one off then. Yes to everything to share down
- 49:02pivot to share. This is like General waiver
- 49:04where people can, yeah, I'll talk with the m for that.
- 49:08Oh, oh the and these are I have this recording will be then
- 49:12uploaded to YouTube and I'll share with you guys a link as
- 49:14well. Sure.
- 49:15And I feel free to ask me. Any questions on the envelopes
- 49:19luck. Thank you so much pleasure.
- 49:22Well, thanks, everyone. Have a good day.