Latest / Agentic Conversations (formally mlops.community) / Ax a New Way to Build Complex Workflows with LLMs // Vikram Rangnekar // #259
Transcript
- 0:00My name is Vikram Ramneker. I'm not, you know, I'm not with
- 0:05any specific company right now. I'm just consulting, building my
- 0:09framework and, you know, like trying to figure out where this
- 0:13whole level on thing is going and you know, where I I fit in
- 0:18my coffee. I I just like any good like a
- 0:21light roast, you know, love all the stuff that came out of, you
- 0:25know, comes out of SF and like the Pacific Northwest and they
- 0:29got and if you ask me what's my favourite coffee, I'd say Caden
- 0:32Cloud in Santa Cruz, Verva Caden Cloud, both both those places
- 0:38are you cannot go wrong with them.
- 0:41What up MO OPS community, we are back for another podcast.
- 0:45I am your host Dimitrios. Today it's all about DS pie.
- 0:49Vikram broke down so many concepts that I thought I
- 0:53understood, but I didn't. I'm not going to lie, I didn't
- 0:58and you get to hear me working it out in real time.
- 1:00Hopefully it helps you understand.
- 1:02Let's get right into it. But before we do, I've got a
- 1:05little recommendation engine helper for your music listening.
- 1:11If you have not heard of these guys, they're called Black
- 1:15Coffee and they are so good. They are so good.
- 1:20I'm just absolutely in love with them right now.
- 1:23I can't get enough. Let's have a little listen to
- 1:28their top rated song called The Rapture.
- 1:31And I want you to picture the scene.
- 1:36It's 5:00 AM, the sun's coming up, you're looking out over the
- 1:43Mediterranean Sea. You've been dancing all night
- 1:49just on vibes. No help from any kind of
- 1:54substance Let's get into this conversation
- 3:17with Vikram all about DS Pie. As always, if you enjoy this
- 3:22episode, just tell one friend. All right, real quick, I want to
- 3:26tell you about our virtual conference that's coming up on
- 3:28September 12th. This time we are going against
- 3:31the grain and we are doing it all about data engineering for
- 3:35ML and AI. You're not going to hear rag
- 3:39talks, but you are going to hear very valuable talks.
- 3:42We've got some incredible guests and speakers lined up.
- 3:48You know how we do it for these virtual conferences.
- 3:50It's going to be a blast. Check it out right now you can
- 3:53go to home dot ML OPS dot community and register.
- 4:00Let's get back into the show dude.
- 4:14Well, let's start by telling me what you've been working on
- 4:19because I want to start there and then go into like the
- 4:21nuances of it and all the different challenges you've
- 4:24encountered. Well, I started like building
- 4:28with LMS a while back and you know, like a bunch of startup
- 4:31ideas, first one being this thing called 42 papers back
- 4:35before I for all the archive excitement, I I predicted sort
- 4:39of like the archives, kind of like take off and and and I
- 4:44wanted to build this like way to discover like what everyone's
- 4:48reading like right now on archive and stuff related to you
- 4:52like, you know, I want. To see the trending.
- 4:54Sort of exactly, but also like related trending.
- 4:58Yeah. And so I was like exploring ways
- 5:00and, and I didn't just want to throw the papers out there and
- 5:02want to like extract the, the, the key points and stuff like
- 5:05that and just show that like, you know, forget, forget the
- 5:08papers kind of thing, the whole thing.
- 5:09No one's reading the math anyway.
- 5:11So. So I was like, yeah, and we're
- 5:15trying to figure that out. And we had this whole idea
- 5:17around let's get like, let's get and this was early, like 20-17
- 5:22ish maybe, and and called it 42 papers, you know, named it after
- 5:26the Douglas Adams whole 42 things.
- 5:29Yeah, but and we were saying we had this idea where let's get
- 5:33all these people sort of like, you know, the Amazon service
- 5:36where they can like all these like PhDs or whatever can help
- 5:39us and do this and we give them like points or money or
- 5:42something karma and, and, and we had this whole thing and we're
- 5:46planned and, and I was like, you know what this is?
- 5:48I don't know how fast it's going to scale.
- 5:50It's going to be hard. And you know, like get people
- 5:52like wheat papers and extract value and stuff like that.
- 5:54And so when I stumbled onto like the early models coming out of
- 5:57Allen EI, these were like Burt models and stuff like that.
- 6:00And and they had trained them on archive maybe like small models
- 6:04like today's standard, like probably like I, I don't even
- 6:06remember probably like 500 million parameters.
- 6:09Yeah. Maybe.
- 6:10And the thing could summarise. Yeah.
- 6:11And this thing could like summarise the paper and.
- 6:13And the first time I actually saw it, I was like blown away,
- 6:16honestly. You know, till then, I was, I
- 6:17was, I was very familiar with the ML world, you know, from
- 6:21being at LinkedIn. They used ML everywhere.
- 6:24Yeah. And they're the best, but they
- 6:26definitely use it. Yeah, I mean they, they, they
- 6:29use it right. It looks like ad relevance, a
- 6:31fraud and all kinds of stuff right everywhere.
- 6:33Yeah, these are like not LM models, these are not GPU
- 6:36models. These are models that ran on
- 6:37Hadoop or whatever. These are most statistics
- 6:40leaning sort. Of the traditional ML world.
- 6:43Traditional ML and and I and I this thing was like magic
- 6:48because that I could kind of, you know, I could roughly wrap
- 6:51my head around what's going on, but this thing could summarise
- 6:54like a BLOB of text into like points.
- 6:56I was like, how does that what just happened?
- 6:59And that, that was like really mind blowing.
- 7:01And, and then kind of, I took, you know, went down that rabbit
- 7:04hole and I need, I needed sort of like a framework, I realised
- 7:10to like build with these things. And so I started like an early,
- 7:15like the early work of building a framework.
- 7:18And, and there was a lot of learnings around the way and,
- 7:21you know, and it like evolved along the way.
- 7:25And that's where like I am today.
- 7:26But in terms of EX. Incredible.
- 7:29So starting in with the fine-tuned verb model for 42
- 7:34papers and then going from Mechanical Turk I guess is what?
- 7:40You dropped that real quick when we realised the model could just
- 7:43do that right, I mean. Yeah, it's, it's incredible to
- 7:48see. And now it feels like you can
- 7:52still probably get what you're looking for with that fine-tuned
- 7:57bird model, or maybe like a fine-tuned small model.
- 8:02I think a fine-tuned small model, there were a lot of like
- 8:04issues with that bird model. There was like a lot of like
- 8:07literal heuristics like, oh, if you, if you, if your word is
- 8:11like broken here, then let me just like join it together.
- 8:14There was, you know, a lot of like and, and they were sort of,
- 8:19I think super like, obviously they could do it, but a small
- 8:21model, I think would not cost too much more or be slower.
- 8:25And, and I'm not even sure if you probably need a fine tune
- 8:29model at this point. I I don't know, I mean, some of
- 8:32these like really small models coming out today are, are like
- 8:36super powerful. You know, this Nisten guy, he
- 8:38had this like merged model he launched yesterday.
- 8:40It was like you did this ternary one bit quantizing on it.
- 8:45It came down to like one like 65 MB or something.
- 8:50And this this model was like, apparently like super fast and
- 8:54really good. And so you know.
- 8:57Yeah, exactly. You, you can get so much further
- 9:00with some of the stuff that's out there these days and that it
- 9:05is funny to think about how no, you out of necessity had to
- 9:12create something to help you along the way from that, Burt.
- 9:15But along the way, things just blew up with in the space.
- 9:21And so you were able to level up really quickly.
- 9:25And we mentioned too, before we hit record that you're very much
- 9:29focused on the JavaScript TypeScript world because it is
- 9:32so fast and you can iterate and you can do things really
- 9:36quickly. So talk to me about first, just
- 9:41like maybe give us a bit of background on what the actual
- 9:44tool is that you built. And then why this love for
- 9:49JavaScript, TypeScript? Sure.
- 9:52So the tool I built it's, it's basically a framework.
- 9:55It's called AX and it doesn't stand for anything really just
- 10:01cool sounding name. So for me, you call it agent
- 10:05framework or whatever. I mean, so the idea was like
- 10:08when I, I started, I needed initially a way to abstract out
- 10:13the LLMS. So that was my first thing.
- 10:15It was like, OK, all these like client libraries have their own
- 10:17set of bugs and all of this. And these are just like API
- 10:19calls. Let me abstract this out.
- 10:21And that was just a simple goal. And I think I achieved that
- 10:25with, you know, like this pretty quickly essentially.
- 10:29And then I realised on top of that that's like, you know, I
- 10:32need a way to improve prompting. And then I realised these blobs
- 10:37of text that I have to maintain like, you know, it's .1 do this
- 10:40.2 don't do this .3, you know, do that.
- 10:43And like I, I hated that honestly, that I did not, it
- 10:45caused me not to reach for an lol more often in my like code
- 10:50'cause there was like this whole like dance I had to do and then
- 10:53there was like loops around it to make sure it didn't break.
- 10:55And you know, there was a whole bunch of stuff and I.
- 10:58Find myself too, just on that fact really never being able to
- 11:03quit because I always think the next prompt is going to be
- 11:07better. And so it's like, yeah, that's
- 11:10there's, I can never be like, yeah, that's good enough.
- 11:12You know, it's 'cause prompting is so yeah, yeah.
- 11:16And. You don't know what word in
- 11:18there is messing things up and you know.
- 11:20Yeah. And and that just like just
- 11:22feels the key to me. And I, I didn't like it.
- 11:24I know instruction kind of following is obviously the way
- 11:27all of these things have been trained, you know, at the, you
- 11:29know, final stage of training. But I was like, try to look for
- 11:32a better way and that and I tried a bunch of stuff.
- 11:36I was like, there was this templating thing and blah, blah,
- 11:38blah. And it just didn't quite fit.
- 11:39And then I stumbled onto the DS by papers or, you know, the
- 11:43demonstrate search predict papers from Omar and Stanford.
- 11:46So the, the key, I know you've like covered this before, but
- 11:50essentially to me that they were like, so what's really
- 11:53interesting about that paper is there's this trend where people
- 11:56just take like an idea and then chop it up into like 10 papers,
- 11:58right? And then all these papers are
- 11:59really light because they're now they have 10 public published
- 12:02papers. But Omar like took all his best
- 12:05ideas and put it like into this one paper.
- 12:07And people don't notice that like people like, oh, OK, it's
- 12:09like these examples. You can tune these models, but
- 12:12there's a lot more to that. If you start the paper, the
- 12:14first part starts with signatures, right?
- 12:16Like that signatures concept. Really like to me it made sense
- 12:20because they're basically functions.
- 12:22What they're saying is they're a bunch of inputs, bunch of
- 12:24outputs and and then, you know, obviously with the X, we took
- 12:28that even further. We added the concept of types on
- 12:30those things. So essentially we say I have two
- 12:33string inputs and I need a boolean and, and like, and a
- 12:37number output it. Then we'll enforce that
- 12:41automatically. And that's basically what you
- 12:43need in your code. You want something with inputs
- 12:46and something with outputs. You don't want, you know, blobs
- 12:48of text that you're like trying to substring through, right?
- 12:52So that that was a real clear abstraction to me.
- 12:55And then I was like, you know, there's so much more that could
- 12:57be built on the abstraction because these inputs and
- 12:59outputs, what are the, you know, when put together, what is this,
- 13:02this an API, right? Once you have this kind of
- 13:05structure on a prompt, it's very easy to like say, oh, that this
- 13:08is not a prompt anymore. It's an API.
- 13:11And now if you, if you have and and also another realisation
- 13:15came on is you don't want to do too much in a prompt.
- 13:17There are, there are, you know, talks by open the eye guys and
- 13:20stuff. I've, I've, you know, so I don't
- 13:22know the exact, I can't tell you the exact like technical reasons
- 13:29behind this, but ascent at a high level from like a builder,
- 13:33you don't want a prompt to do too much.
- 13:36You want it because there are all these like tasks that these
- 13:39things are trained on. And when you essentially ask it
- 13:42to do something, the LLM is pulling on those tasks.
- 13:45And kind of like there is some sort of like a, like a
- 13:47limitation because of the size of the LLMS and all of the stuff
- 13:51you contact site, you know, honestly, I don't know where
- 13:53that limitation comes from, But if you say, oh, can you classify
- 13:56this? Can you summarise this?
- 13:57Can you also call these functions?
- 13:59Can you also do this? Like it's going to mess up more.
- 14:01So you want to like focus it down and say, OK, let's
- 14:04summarise here. Let's take that output.
- 14:06Let's put into another one that then does function calling based
- 14:09on it, augments it with more data.
- 14:11Then let's take that result, put it in a third prompt.
- 14:14Like if you have these like long contact, I mean, yes, we do have
- 14:17longer contexts now, but that does not mean you can have a
- 14:21longer multi step, blah, blah, blah.
- 14:23Because these things are not trained for that kind of a
- 14:27thing. Even if you notice, like Google
- 14:29talks about needle in the haystack like tests, which is
- 14:33fine, which is basically an extraction step and saying we
- 14:36put a lot of text and we can find the right step.
- 14:39They don't say you can also then do function calling and then do
- 14:42this and then do that, right? I mean, so there's this whole
- 14:45like multi step like task thing. They, I think they refer to it
- 14:49as long horizon tasks and and most of these models are not
- 14:53trained on that yet. So, you know, even though you
- 14:55have the long context, you still want to like get your work done
- 14:58as quickly as possible. Yeah, you can put a lot of text
- 15:01in there and then say, oh, you know what, find the things you
- 15:04need from here. But you know, that's you are
- 15:07limited to that. And then you want to take those
- 15:09texts and then do something else anyway.
- 15:11So the point is that it defined an API and that API made it
- 15:15really easy to then plug in all these like work flows together.
- 15:18So if I have like an extraction step, a classification, a
- 15:21function calling augmentation step.
- 15:23And so it's basically sort of like code.
- 15:27Yeah. And that that, that that
- 15:28signature piece was really, really like, honestly, that blew
- 15:31my mind first. I mean, it's not, it's not
- 15:35anything like out of the blue. It's functions, I mean, but like
- 15:38to apply that idea to like LMS was is, you know, a paper on to
- 15:43itself, sort of. Right.
- 15:45Yeah. Gives you so much more
- 15:46stability. Yes, exactly.
- 15:48So. And like with AX, we think that
- 15:51even further because now these functions we, we have, we, we
- 15:55focused on the concept of agents.
- 15:57These are basically these like, sort of like prompts, but they
- 16:00have the capability to do multi turn reasoning, function
- 16:04calling, I mean, reasoning, you know, as much as these things
- 16:07reason function calling and like try to get a task done.
- 16:11But when they call these functions, these functions
- 16:13aren't necessarily just functions like like other, like
- 16:18some remote API, but they can call other agents because there
- 16:21is this like input output structure.
- 16:23You can easily plug agents into agents as functions.
- 16:27You can have a tree of agents and you could have something
- 16:30like, hey, you know, this is like the one that you asked this
- 16:33agent about the stock, about a certain like, you know, stock.
- 16:38And then it has like a agent as it calls like an agent to do
- 16:41like a analysis on something and then something else and
- 16:44something else. And then these four agents like
- 16:46return their results. And then this main thing like
- 16:49decides, OK, here's your answer sort of thing, right?
- 16:52So it makes it really easy to plug agents together and stuff
- 16:55like that. The other thing with the paper
- 16:57that really blew me away was the concept of examples.
- 17:01So essentially a lot of times we like, you know, we just talked
- 17:04about it. You put all these like
- 17:06instructions in there and instructions are really great
- 17:10with large models, right? I mean, like you want to like
- 17:13the, the bigger the model. And the way I, I understand it
- 17:17from the paper is you want to use these big models to generate
- 17:19these examples from these instructions.
- 17:22And what are example examples are?
- 17:25If this is my input, then this should be mapped.
- 17:28If this is my input, these should be mapped.
- 17:30And these should be rich. Try to cover as much as
- 17:33possible. And then you plug these into
- 17:36your prompt. And now this has this allows the
- 17:40LMP in four patterns that you and I might not even see.
- 17:45So it's sort of like if I told you to write something sort of
- 17:49like Shakespeare, but not, I mean, how do I really
- 17:52communicate that I could use just his name, but.
- 17:55And that would infer patterns. But if I give it like an example
- 17:58of what I want, it's much more powerful, right.
- 18:00There are patterns in there that I couldn't even use, you know,
- 18:03English words to communicate to you.
- 18:05Yeah, right. So, so these patterns are what
- 18:08these LMS are able to like leverage, you know,
- 18:11distributions, whatever they want to call them.
- 18:12I I don't know the exact term. And, and so this is just like
- 18:17this took all my work flows like to the next level, like they
- 18:20were a lot more solid. And, and how many, like, you
- 18:24know, how many examples can you add in there?
- 18:26There's, there's a new Google Paper that said add 1000.
- 18:29Obviously I'm not going to do that.
- 18:30But like then input tokens are cheaper than output tokens.
- 18:34So use those input tokens to get more solid output tokens.
- 18:39You're not error correcting and all of that and wasting your
- 18:42output tokens, right? Yeah.
- 18:44That's such a good point. Yeah.
- 18:46So that that's a sort of like the second piece here and.
- 18:49In DS Pi it that's when the when they do the teacher student type
- 18:56of stuff. That that is also in there.
- 18:59That is actually like a third step.
- 19:01So once you set the examples and then you do the teacher student
- 19:03bootstrapping, that's when it uses these basic.
- 19:07So in DS by examples are very simplistic.
- 19:11You don't have too much information in them.
- 19:13You just have like the input and the quick output and and that's
- 19:17only of the whole tree. So it's sort of like if you have
- 19:19a tree of of tree of functions or prompts, whatever you want to
- 19:24call them DSPY programmes that does like a like a whole
- 19:26workflow. The examples, you just set it at
- 19:29the top, say this is the inputs and at the bottom these are the
- 19:32outputs I'm expecting. And then when the bootstrap
- 19:35iterates, it captures all the inputs and outputs of the whole
- 19:38tree. Do you get it?
- 19:40So like, so essentially you have this like database of all those
- 19:43traces whenever you have a good output.
- 19:46So if you're, you know, every time you get a good output, you
- 19:48say pause, save that. Yeah, pause, save that.
- 19:51So essentially now you have a database of all these like good
- 19:54out inputs, outputs that when you are putting your code into
- 19:57production, you apply them on those things.
- 20:00So this one gets it's set of 10 great examples.
- 20:03This gets it's set of 10 great examples, this one.
- 20:05And then the whole tree works so much better.
- 20:09Yeah. And that's funny because I had
- 20:12heard others talk about how and they weren't using DS Π but they
- 20:17talked about how important it was for them and their workflows
- 20:21to have the high quality examples.
- 20:23And they were saying, I spend so much time just going around the
- 20:28web and collecting examples that I weren't.
- 20:32And I have a database of examples.
- 20:35So, and this was for marketing use cases, right?
- 20:39So if it's an intro to a blog, they go around and anytime they
- 20:45see a great intro for a blog, they'll collect that and throw
- 20:48it in their database. And now with these different
- 20:51tones, and then they actually they try to label it so that
- 20:55they can say this is this type of tone and this is this type of
- 21:00formality. And then they can give it in
- 21:03those prompts. They can almost reference like
- 21:06this database and say, here's here's what you're doing.
- 21:09It sounds like with the way that DS Pi does it, you wouldn't even
- 21:16need that. Or would you still want it have
- 21:19something like that? Or are they 2 separate things?
- 21:25So those are, it really depends. You're right.
- 21:28DSPI is about having exact, exact examples for your inputs
- 21:32and your outputs. So if you're expecting like
- 21:34three things, inputs that you have a question, a context and
- 21:38like and another thing as inputted like, and then and then
- 21:43you want the outputs and like a classification or something,
- 21:45some three things. And then you want like a
- 21:48category and then you want an output that's like a summary and
- 21:51something else. And you want the exact inputs
- 21:56and outputs like the whole chain as an example, right?
- 21:59But if, if you're like, if you're getting it to do
- 22:03something and you want to make it better and you want to add
- 22:06these examples in there as one, as like just a thing to, you
- 22:10know, improve the prompt. That's fine, right, Because your
- 22:12inputs could just be write me a marketing, you know, your, your
- 22:17first input could just be essentially you could give it a
- 22:20marketing task. You could build like an agent to
- 22:22do marketing tweets or whatever. And then you could have the
- 22:25first input could be the task. The second input could be the
- 22:31the examples that you're like sort of inserting yourself like
- 22:35a context, you know, and and then it would just like the
- 22:39output would be the tweet, right?
- 22:42So, so essentially, yes, you could provide your own examples,
- 22:46but the examples that you know, at a high level, they're not
- 22:51different. They're basically putting
- 22:53something in there based on what you want, like output.
- 22:55So you could use those as example outputs and build your
- 22:58own like sort of tree. And they're, they're just high
- 23:03quality things that you have hand picked, you know, in the
- 23:08end. Because yes, even though the
- 23:10bootstrap thing is sort of like it captures all the traces in
- 23:13between, but the final input, the input and the final output
- 23:17is something you still pick, right?
- 23:18You say, OK, even though you're going through 10 steps, It's
- 23:21like when this is the input sort of, I mean, it's not exactly, I
- 23:24want this to be the output, right?
- 23:26Yeah, like sort of I like an output like this and then maybe
- 23:2915 steps in the middle that you don't have to go and set values
- 23:33on, right? The LLM is the the values are
- 23:36flowing. The LLM, the first LLM activates
- 23:38and that generates an output that goes into the second, then
- 23:41that activates and then goes into the third, right?
- 23:43I mean sort of like function calling the next function
- 23:45calling the next function. And now you don't have to sit
- 23:48and capture all the variables within all those like the state
- 23:52within the the the whole chain of functions, right?
- 23:56And. That's really the key to like
- 24:01DSP. It's basically saying that, you
- 24:03know, yes, sure, set high quality examples, found them
- 24:06from the web or whatever. That's cool.
- 24:07And then we'll help you capture all of the traces in between so
- 24:11that when you put this into production, like there are good
- 24:14examples set for everything. Because your your tweet example
- 24:18might be good for like the final output, but it might not be good
- 24:20for the one classification or extraction step you have in the
- 24:23middle, right? That might need it's own sort of
- 24:26example. So that that essentially was
- 24:29like sort of blew my mind because I was like, it's really
- 24:32simple. Again, none of this is like, you
- 24:33know, like a bit it, it, it really like solved problems that
- 24:38I was having and I, I could see others kind of struggling with
- 24:41that as well. Yeah, it also allowed me to like
- 24:44take my models to smaller, take my work to smaller models and
- 24:50still kind of have that same performance.
- 24:52And something I'm like exploring now is there is more and more
- 24:55tuning APIs that are popping up, right?
- 24:57Every service provider has like their inference API, but now
- 25:01they have a tuning API. In fact, Gemini is like sort of
- 25:04made it like almost free to run to small models.
- 25:07So if you take this information that DSP wise capture and
- 25:12essentially just push it to the tuning API and have like a tune
- 25:16model, right? So then you might not even have
- 25:18to set those on the. So, you know, there, I think
- 25:23there's a lot of value in in in, you know, taking this ahead.
- 25:27Fascinating. Yeah.
- 25:28And retracing our steps and going back to something that you
- 25:32said originally that IA 100% agree with is the idea of making
- 25:39sure that the tasks themselves are as small as possible.
- 25:44But then where you can really let yourself go is the context
- 25:48that you're giving it on the task.
- 25:50You're able to say, and that's why I think the context windows
- 25:54are great. Having larger context windows
- 25:56are really useful. But the task itself that you're
- 25:59trying to get done, you're not trying to get 3 or 4 tasks done
- 26:02at the same time in the same prompt.
- 26:05You're just trying to say, do this one thing, do it really
- 26:07well. Here is all the context you need
- 26:10on how to do it, and then it outputs that.
- 26:13And then we can go along to the next thing.
- 26:17And, you know, there's actually a really interesting thing
- 26:19you're even though we see that people often do not realise
- 26:24they're adding another task. That's another thing I've seen
- 26:26often. So they're they're basically
- 26:28it's like this, let's do this thing and then I want Jason
- 26:31output. Guess what?
- 26:33You've added another task. So you don't realise that it
- 26:36like, oh, you know what? I got Jason everywhere.
- 26:38Like, yeah, but you know, dude, this is like it's another task
- 26:42and it's quite a heavy task now, you know, So like that's
- 26:47another, that was another breakthrough that the paper had
- 26:49for me. Like I've struggled with outputs
- 26:53and I've tried to figure my way around and I and even early on I
- 26:56realised that Jason and stuff was just like a nice to have.
- 26:59I think people without like overthinking it.
- 27:01They were like, oh, I use Jason everywhere.
- 27:03So this should just pop out Jason.
- 27:04Oh, Jason doesn't work. Well, let me try Yamils.
- 27:07I was like, no, you know, what about key values?
- 27:09Just like, do you really need the nested structure out from
- 27:12this thing? Like mostly not so, so I the, so
- 27:17if you look at the paper, they use key values and that's really
- 27:21great because a lot of the models, when they're trained,
- 27:23they're also trained on the key value format.
- 27:26There's always like a title of what the The thing is.
- 27:29And then The thing is right. And then and there are a lot of
- 27:33advantages to key value. Firstly, yes, there are no extra
- 27:36tokens that this thing has to figure out.
- 27:38It's not, it's not really like the you're wasting tokens.
- 27:41Sure, that's maybe one thing, but it's, it's like it has to
- 27:45generate those tokens and then it has to, and it's got to do a
- 27:48worse job on something else because it's making room to do
- 27:52that, Jason, right. And then if you you're like,
- 27:55yeah, but you know, the, the so and so API does this really
- 27:58fine. This model provider, you know,
- 28:01if you notice often those things are slower because they're doing
- 28:04something else. It's sort of like having a
- 28:06second model or, or like trying to force it somehow and the
- 28:10error correcting in the background and, and they're like
- 28:12hiding that from you. So it's and then what about
- 28:15streaming? Often these things completely
- 28:17break for streaming, even like there are model providers, there
- 28:19are just like Jason streaming function calling is broken,
- 28:24right? And they just don't because no
- 28:25one's using that or something, you know, maybe people using
- 28:28that just like whatever. But so the key value, the
- 28:33advantage of going just key value for inputs and outputs or
- 28:36outputs specifically is you can now process things as they
- 28:40stream in. So once you get the key and then
- 28:42you start getting an output and you're expecting the output to
- 28:44be a set of points like say you know, one dot blah 2 blah, 3
- 28:49blah. You can now ensure you can like
- 28:52literally validate it as it flows in.
- 28:55And if it's not doing the one dot blah, 2 dot blah, whatever,
- 29:00then you can like early stop and say, you know, hold on, hold on.
- 29:03This is not what I want. I, I specifically want it to
- 29:07follow this format. That's the concept of assertions
- 29:10that, that the DSPY paper has. So and so in EX.
- 29:16We took that further and we, we built something called streaming
- 29:18assertions. So streaming assertions allowed
- 29:21you to basically do this like early stopping on like whether
- 29:26on key values, like OK, where, where there is like an output,
- 29:29which is like a summary and then the summary.
- 29:31And sure, I look at the whole summary and I can then decide,
- 29:34oh, this is wrong, blah, whatever reason.
- 29:36Or while the summary is streaming out, I can actually
- 29:39look at the thing and say, oh, you know what I wanted this is
- 29:41in points and this is not in points stop.
- 29:44Now this obviously is good because it's early stop.
- 29:48So you're going to, you know, your latency and all that is
- 29:52better and you're going to save tokens.
- 29:54So you know, this something is really that's possible, That's
- 29:57not possible if you go any other route, right?
- 30:00And it's built into the framework.
- 30:02So you don't have to like sit, enter, write this complex thing.
- 30:05And because the framework is vertically integrated like we
- 30:08there, there's no dependency. So Axe has like 0 dependencies
- 30:11in the packages. So it's, it's the API's, all the
- 30:14LLM AP is, are built from scratch.
- 30:17So the the beauty of that is we can actually like, you know,
- 30:21vertically build the most solid thing we want.
- 30:24We want streaming assertions or whatever, right?
- 30:26We can just build it now because we don't have to go past the
- 30:29boundary of someone else's like, you know.
- 30:32And I didn't quite understand the idea of these assertions and
- 30:40building out the API, basically being able to validate the type
- 30:45and how you said, all right, well, one abstraction is what
- 30:50they were doing with DS Π, but another abstraction is saying
- 30:53this can now be an API. And so when we give whatever
- 30:58output to someone, it comes in inherent with the idea of it's
- 31:03going to be in the type that you specify.
- 31:06Is that what I understand? Yes.
- 31:09So there are two types of assertions. 1 is.
- 31:11You put them, you assert a type. Essentially you say, you know,
- 31:15while you're creating the function signature, you just say
- 31:17this output type is string or string array or number or
- 31:21boolean or whatever, or you know, and.
- 31:23And the second type of assertion is like a custom function where
- 31:27you want to like, like actually do something with the output.
- 31:30You might just you might actually call another LLM if you
- 31:32really want, you'd be like, hey, is this, is this good enough?
- 31:36If not, throw a like a error, you know, essentially.
- 31:39And then the first LLM can correct itself, right?
- 31:41So it's, it's, it's a function called on this input output
- 31:45value. And, and this can be done either
- 31:48when the whole value is available, you can wait till the
- 31:51end of value. You might have like multiple key
- 31:52values that are outputted. So you know, in which case then
- 31:55you know, you might want to look at the whole value or you can do
- 31:58it as the value streaming out because it's not Jason.
- 32:01If you can somehow validate it, maybe you know, you're looking
- 32:04for some prefix or something before, so you can chop up every
- 32:08line that's coming, wait for a line to come in, then then kind
- 32:11of look at it with the regex and think, you know, sorry, you
- 32:13know, you're messing up sort of thing.
- 32:15And this early failure is is great because now, firstly, the
- 32:19assertions concept makes it easy to code because now you have all
- 32:22of this like captured within your DSPY programme.
- 32:27And when you initially put in the examples and you run the
- 32:29bootstrap, all of this gets engaged, right?
- 32:32So the error correction, all that.
- 32:33So your outputs, all the traces are high quality in between
- 32:36because the assertions have ensured.
- 32:38So in production, less of the stuff happens, right, because
- 32:43you have already fine-tuned it down to the correct what you
- 32:46need in terms of code. You're not saying please add a
- 32:48dash in front of you know, like you have an assertion.
- 32:51It's explain that so you got high quality examples, you just
- 32:53save those in there and the LLM goes, oh, I know what this guy
- 32:56needs. I see.
- 32:59OK. And one thing that you mentioned
- 33:01before we hopped on too, is that you feel like there's not a lot
- 33:08of people really thinking about building with LLMS or sometimes
- 33:12the way we go about building can be off.
- 33:15And it makes me think about some of the stuff that I, I tend to
- 33:21talk a lot of shit on how the things that we are building
- 33:25aren't really that valuable. And so I am looking around and
- 33:31saying like, this is the future we were promised.
- 33:34You know, this isn't what I was hoping for.
- 33:37So what? What's your take on that?
- 33:41For one caveat, I would say we are still early.
- 33:46So you know, we we shouldn't forget this game are like, you
- 33:50know, production ready, sort of like, you know, beginning of
- 33:52this year, mid last year, maybe maybe, you know, so we're like
- 33:56super early. I think people just haven't
- 33:58built their LLM muscle, right? They're they're just like a lot
- 34:02of people don't reach for an LLM naturally yet.
- 34:05I mean, there's so many like, you know, who was this is that
- 34:07joke about how like, you know, just Google it or whatever,
- 34:10right. And now just don't ask me sort
- 34:12of thing and like just LLM it. Then I think even in code,
- 34:15people don't like haven't wrap their head around what's
- 34:17possible. Like, you know, I've I've come
- 34:19across people who do not believe Melan can write stuff like the
- 34:23whole they're like, yeah, but it's not as good as law.
- 34:25You know, I was like, yeah, that's because you just like
- 34:26prompted it wrong. He's like, oh, I tried it.
- 34:28I was like, did you OK, hold on, Did you try that for chat?
- 34:31GPD 3.5 free? And, you know, it's like, yeah,
- 34:34I was like, dude, you're like, whatever engineer in this
- 34:37company pay the 20 bucks, you know, get get GPD 4 and then,
- 34:41you know, like prompted better give it some examples, right.
- 34:44So it's sort of like people like, I think haven't like
- 34:48internalised it. And yes, I, I don't think a lot
- 34:51like like I have experimental tooling start-ups.
- 34:54So I was, I was experimenting the observability sort of
- 34:58spacing, you know, maybe there's something I can build there that
- 35:01I tried, like I experimented with this, another tooling idea
- 35:05where we'll build like make it easy to build these LLM work
- 35:07flows and, and you know, everyone, it's so early.
- 35:11Then obviously these spaces are super crowded.
- 35:13So I, you know, I'm not like I, I'm kind of holding off to
- 35:16figure out what really is the thing here.
- 35:19But also customers, right? I mean, they're, they're most
- 35:23are like just not, they don't have the people to build this
- 35:26essential. I think that's really like the
- 35:28job. I feel like AX can help with
- 35:30this, make it really, really accessible, right?
- 35:33Like I, I think the model guys are doing a phenomenal job.
- 35:35They're accelerating much faster than anyone else.
- 35:38And a lot of the people building like on the framework end of
- 35:41things, I almost feel like they're not building with real
- 35:45customers because I, I see a lot of like over complication of
- 35:50stuff and, and like, you know, it's not production ready.
- 35:53There's like no, you know, there's no telemetry.
- 35:55Like like EX has open telemetry built in.
- 35:58So there's always tracing happening.
- 36:00So you plug in a tracer like from, you know, open telemetry
- 36:03is like an open standard, you can plug it.
- 36:06So a lot of these stream bus don't have that, for example,
- 36:08just built in. And you know, there's a lot of
- 36:10like production stuff that you need.
- 36:12It's you know, there is just lots of dependencies.
- 36:15And then you're, you know, like every little like NPM for this
- 36:18and that and whatever, you know, Python.
- 36:20Break all the time, yeah. And people, you know, obviously
- 36:22don't want to use stuff that as all that.
- 36:24And then they have the link that's created the whole world
- 36:26on top of their own, like terminologies and blah blah.
- 36:28Like that's why I like dspy because it's sort of like
- 36:31standardising some of that. And there's a lot more people
- 36:35saying, Oh, OK, you know, what if all of us can have the shared
- 36:37understanding, this open thing with like that's, you know, an
- 36:40open paper, it's going to help. And, and then the framework on
- 36:45top of that helps with all of this other stuff because it's
- 36:47actually implements it and takes it like, you know, steps ahead.
- 36:51But yes, I, I will tend to agree with you.
- 36:54People need to build more useful stuff.
- 36:57And you're thinking about it at not even at the level of what's
- 37:00the actual output there. You're just thinking about how
- 37:04difficult it is to get to that output because of how we've
- 37:10architected this ecosystem. The ecosystem that we live in is
- 37:14just convoluted. And it's like, I mean.
- 37:16You know, I got to hit it. Ellen's also raw, right?
- 37:19I mean, they're like super. They're like raw power.
- 37:22And you have to sort of like, you know, help someone like, you
- 37:26know, you just like cannot throw a guy into a Ferrari and be
- 37:28like, you know, just like you sort of have to give him some
- 37:31way to control it. And, and I feel like like 11
- 37:35good example is really like, you know, like stop, stop, stop.
- 37:41What do you call those things like word, like generation
- 37:44output limits, right? And often, sometimes you might
- 37:47have like a small output limit and you hit it and then a person
- 37:51doesn't really know why his workflow is not like working
- 37:53because like somehow the frameworks not exposing the fact
- 37:56that this has stopped for this reason or and, and I've seen
- 38:00people struggle with like things like that because a lot of these
- 38:03frameworks and stuff are sort of immature in that sense, right?
- 38:06They haven't, Yeah. Or for example, why not just
- 38:09continue, right? You know, why not have like some
- 38:11capability in there saying that if you do hit the, the output
- 38:15count of like 200 tokens, then just, you know, like then run it
- 38:19again and then again until you get your exact structure that
- 38:22you need out, you know, or this whole thing about like Jason
- 38:25everywhere. And you know, people struggle
- 38:26and cry about it not generating Jason.
- 38:30Like, you know, do you just have a key and a value?
- 38:32I have another key and a value, you know, I have key and a
- 38:34value. Do you really need this value to
- 38:35have another key and value? And then like, you know, this
- 38:38whole whatever you don't, I mean, or just leveraging
- 38:43multimodal. So the AX, like when you have
- 38:45the signature, these are inputs and outputs, right?
- 38:47So the inputs don't always have to be text.
- 38:51It could be because now these frameworks model support
- 38:54multimodal, they could be images.
- 38:56So EX has that built in and how do you make that work with DS by
- 39:00that's not in the paper or anything.
- 39:01So there's a lot of stuff that EX is like taking the paper and
- 39:05then build stuff on top. Like yes, those those things are
- 39:09still examples. So people forget those images
- 39:11are base 64 encoded or whatever. They are still part of the
- 39:14prompt. So they can still be captured as
- 39:16examples and there are still there are patterns in those
- 39:19images. So, you know, so you can have
- 39:23images as examples with text. So if you have like something
- 39:26that classifieds cat, you know, like, I don't know, cat faces,
- 39:30you know, or something like is this cat happy or sad or
- 39:33whatever. And then you want examples.
- 39:35And now if you run through this and you give it a few examples
- 39:37and get all the traces right now you have your, your examples
- 39:41contain like, you know, stuff about the cat, maybe some text
- 39:44BLOB and then like the image of the cat's face or something.
- 39:47So you so that like almost no frameworks doing stuff like
- 39:51that, right? I mean.
- 39:52Yeah, trying to just think about it and as how can we give it a
- 39:55richer prompt so that there is better understanding.
- 39:59And make that work with the whole DSPY examples, tuning and
- 40:03all of that, yeah. One thing that I know it took me
- 40:07a while to wrap my head around and now I can't even remember
- 40:11how it works, but I would love to know if you messed around
- 40:15with it. Was the idea of like compilers
- 40:19in DS Π or I don't think they're called compilers, they're called
- 40:23something else. But Omar was telling me to think
- 40:27of them as compilers. And that's where they, Omar and
- 40:32team have had to spend the majority of their work because
- 40:37it is something that most people just have a really hard time
- 40:41wrapping their head around. But it is very powerful.
- 40:44So I, I, I think what you're talking about is what they
- 40:48initially called teleprompters and then they realised people
- 40:52are getting confused and, and then they, I think they call it
- 40:55compilers now, I'm not 100% sure.
- 40:57I think that it's basically the whole bootstrapping stuff,
- 41:00basically a thing that takes the, the, the basic set of
- 41:03inputs and examples where you, so you have a model, you have a
- 41:06teacher model. Yeah.
- 41:07I mean, you don't even a teacher model is just basically a big
- 41:10model and you don't, you know, you're not really teaching a
- 41:13small model, you're just doing a context.
- 41:15You don't really need the second one, but sure.
- 41:17And, and then you set some examples on it in terms of like
- 41:21your top level input and your final output.
- 41:24So and then the compiler, basically it creates on it with
- 41:27some kind of strategy where it it runs that once and then maybe
- 41:31it like changes the temperature a little bit or it changes
- 41:34something else a bit and then runs it again with another sort
- 41:38of like adding some sort of some sort of entropy to the whole
- 41:42thing. And then like that keeps running
- 41:45it. And then you evaluate the
- 41:46output. You can like manually do it or
- 41:48you have some sort of function or another LLM and then you find
- 41:51like the the traces are in in the DSPY paper, they call it
- 41:55demos, demonstrations. That's that's basically the
- 41:58inputs and outputs of the whole chain.
- 42:01Yeah. That store that that is a
- 42:03compiler, but they have other compilers too.
- 42:05They have something called the pro so that I haven't they have
- 42:08a whole range of them and I haven't really dug in this this
- 42:11new research coming out about MIP Pro, which is actually kind
- 42:14of optimising the the So there is, I know I'm talked a lot
- 42:18about examples, but there are some level instructions.
- 42:22So there are like the prompt signature does get compiled into
- 42:25a prompt and there are some level of like text that the high
- 42:30level instructions that you do give it like, OK, here I need
- 42:33you to classify the faces of these cats or whatever.
- 42:36There is some instructions and the Mipro at least a cursory
- 42:41what I kind of glanced at the paper is a way of like doing
- 42:44this kind of creative trying to come up with better text that
- 42:48improves the output of the LLM with the like interesting
- 42:52classify the faces of these cats.
- 42:53It'll say, you know, whatever dwell on the features of this
- 42:56cat and come up with, you know, whether it's happy.
- 42:59I don't know whatever right. I mean and and just like
- 43:02changing the language there gives you better outputs.
- 43:06So there are there are there's research happening there solid
- 43:10stuff. I mean, I am and I definitely
- 43:12I'm going to incorporate all of that, but I've also like I've
- 43:17just focused on like, you know, people aren't even using this
- 43:19right now. You know, that's like, well,
- 43:21let's get people to use this and even just setting examples,
- 43:24you're already like, you know, 8080 X, like 100 X from where
- 43:29you were. Yeah, your capabilities go up so
- 43:33much. And I had a friend talk about
- 43:37all the different ways that you can think about using LLMS
- 43:42because a lot of times you you get stuck in your capability or
- 43:49what you think it should do and how it should do it.
- 43:53And he just has been compiling different personas that he tries
- 43:59to give the LMS like 1 is a critic, 1 is the, what was he
- 44:05calling it, the adapter. So if there and there's all
- 44:10these different personas and then when you look at that, you
- 44:12can get inspired and you can think, OK, well, maybe I could
- 44:17plug it into this little piece of my workflow or whatever.
- 44:21In the EX, those can be agents. Essentially.
- 44:23You could have these like personas, which are basically
- 44:26like agents. You can even give them some
- 44:27tools like you can say this has this persona and it can now it
- 44:31also is able to use these tools to do this thing.
- 44:34It's like, I don't know, the searcher or something in it and
- 44:37then the researcher and then you connected into like an archive
- 44:40API or something, you know, like, so it's, it's able to
- 44:42like, and then you improve that little guy over time, giving him
- 44:47a little more capabilities, improving him to, you know,
- 44:49like, like sort of like independently.
- 44:51And then you can plug him with the X into any workflow you
- 44:54want. So you like you're doing
- 44:55something with doing something with like stocks or like some
- 44:59papers research. And you can say, oh, here I have
- 45:02this like, like scientific researcher.
- 45:05Let me plug him in. And now suddenly everything
- 45:07improves because now it has that extra capability, right?
- 45:10That that little agent comes with his own context, his own
- 45:14examples, his own functions. He doesn't pollute the main
- 45:18flow, essentially. And when I'm building out that
- 45:21little agent I am, as you said, I'm tuning it so that I get the
- 45:26best performance for that specific small task that I'm
- 45:29going for, and then I can plug him in into the greater Lego
- 45:33Masterpiece. According to the DS by when he
- 45:36would get tuned into your workflow, so there would he
- 45:39would not come with his own example as a state.
- 45:41So essentially when you plug him into your workflow and then you
- 45:44run the DSPY compiler or the bootstrapper or whatever you
- 45:48want to call it on it, then he would get his like as the as the
- 45:53the the as the text flows from the top to the bottom.
- 45:58His examples would get preserved the ones that have, you know,
- 46:01result in good outputs for you in your workflow.
- 46:04Does. That make sense?
- 46:06Sort of like. Yeah.
- 46:07I, I'm just thinking about, So I guess maybe I'm not thinking
- 46:13about Asian examples per SE, but I'm thinking about one use case
- 46:18that we had on here like a year and a half ago when Phillip from
- 46:22Honeycomb came on and he said they have certain things in
- 46:27their product and the product, Honeycomb can be fairly
- 46:32difficult sometimes to figure out what, what and how to do
- 46:36what you need to do. And so for that they said, oh,
- 46:39we'll just prompt it, figure out and then ask what you're trying
- 46:44to do or tell us what you're trying to do.
- 46:45And then we will try and do it for you.
- 46:49And on some level, I can imagine that's a lot of agents going,
- 46:55especially if it's the doing it for you.
- 46:56If it's just, hey, let me pull up a document page that'll show
- 46:59you how to do this, that's one thing.
- 47:01But if it's let's go and now let's try and do what you're
- 47:04trying to do, it's a whole another thing.
- 47:07And so. In EX, there's some support for
- 47:10that. The way to do that again, you
- 47:12know, I'm coming back to the start where I just said, like,
- 47:15you got to chop the problem right.
- 47:16And now there are different ways to chop the problem up.
- 47:18So when initially you get a task that's asked of you and that's
- 47:21broad saying, Hey, I, I either I need you to do my taxes and then
- 47:25you come in, Hey, I need you to, you know, I don't know, classify
- 47:29my cat's face, right? They're two pretty different
- 47:31things. And now if you put a lot of
- 47:34agents, a lot, you get an LLM to make this decision, right?
- 47:37You can, I mean, that's one way to do it.
- 47:39You could have these, but there is something you can give like,
- 47:42you know, 20 function basic agents or functions, whatever
- 47:45you want to call them into the main thing and say, Oh, you're
- 47:47only your job is only to send the control to one of these
- 47:51guys, right, Basically hand off control flow.
- 47:53And then you know that that that agent sort of takes off from
- 47:56there or there's this concept called a Symantec router or
- 48:01routing. So that there is this whole
- 48:02world around routing LLMS. There are start-ups that are funded
- 48:05here. And AX comes with something
- 48:08called a Symantec router where basically it uses embeddings to
- 48:12to classify sort of like find the closest match to send your
- 48:18task down. So if you send it like a BLOB,
- 48:21you say, I want you to like, you know, classify cat faces for me,
- 48:24then the then the then there is like a router set up which says,
- 48:28oh, anything to do with cats, cats faces.
- 48:30I want you to call this function sort of or anything do with like
- 48:34taxes call this function, you know?
- 48:36But that assumes you've seen the question before, right?
- 48:41So no, when the question, I mean you have to you're working with
- 48:45a finite set, right? You have functions that I mean,
- 48:48there is only finite number of things you can do.
- 48:50You cannot like just you know, if you ask the honeycomb thing
- 48:53to go, you know, I don't know, find your grocery list or hotel
- 48:56bookings, it won't be able to do that, right?
- 48:58So there is going to be a finite list of things.
- 49:00So once the question comes in, you embed it and then you have
- 49:04this router which already has embeddings in it for each one of
- 49:07its routes you find, you do like a dot product, find the most
- 49:11closest similarity and you send it down that and say, OK, let's
- 49:14activate that pipeline. So the the advantage here is
- 49:17this dirt cheap, the embeddings that cost like you literally
- 49:21it's it's almost free and there's no overhead of an LM
- 49:25being engaged until it like hits that path, right?
- 49:28So now you can have four more number of things possible.
- 49:33You can have hundreds of things that could potentially or
- 49:37thousands that your your initial input couldn't go down.
- 49:44And all these workflows have been created and then tuned
- 49:50through this through these methods that we're talking about
- 49:53and. Exactly, Yeah.
- 49:55So. So it's really not like.
- 49:58The workflows are just like code.
- 49:59It's just code. It's like functions, right?
- 50:01It's like a function which has more functions in it.
- 50:03That's you know, that's the only way to think about.
- 50:05And because the signatures are so tiny, you want to call and
- 50:08use these. You just want to, it's almost
- 50:10one line to engage ADSPY programme in your code.
- 50:13And it looks like a function call.
- 50:15You have some inputs that you pass in.
- 50:17You call this forward function because like that's why DS π is
- 50:20in Pytorch and Pytorch had the forward function.
- 50:24I kept that. I'm still like conflicted.
- 50:26I think you should call it run or something.
- 50:27But you know, it's not like like none of the prompt people care
- 50:31about Pytorch, right? I mean, it's too low level a
- 50:34thing. But anyways, so it's just, it's
- 50:38so easy to invoke, so people want to use it.
- 50:40It's like a function call. You just get some inputs, you
- 50:42wait for the output, you know, inside it, they might do a whole
- 50:45bunch of stuff, you know, engage your examples, do multiple
- 50:48function calling, you know, do assertions, error correction,
- 50:52you know, whatever, whatever. And and boom.
- 50:55And finally you get your like three things that you want out
- 50:58and then you call the second function, you pass those as
- 51:00inputs to that get it out. You might even call 3 in
- 51:03parallel, like use some, you know, whatever async thing and
- 51:06say, oh OK, I'm going to send it down three more paths and then
- 51:08I'll wait for those to complete and then I'll get the answer and
- 51:11then it's essentially a graph or whatever.
- 51:13It's like a small programme, you know, but it's all LLM based.
- 51:18And all of these different workflows, you're shepherding
- 51:23them along or you're tuning them to make sure that they are
- 51:26giving you the best output. So it's not like these workflows
- 51:30are just created by the LLM and then you stand around and say
- 51:37like, is it going to give me the right thing?
- 51:39No, you're, you're setting examples at each one of these
- 51:42subtasks, the best examples you can have, and you keep improving
- 51:46them over time. And that makes each one of these
- 51:50subtasks solid because. The.
- 51:52Subtask is like it's its own clean context, right?
- 51:55Has to have its own set of examples.
- 51:56It cannot have the examples of the top level task of the OR the
- 52:00the task besides it or the task below it.
- 52:03It has its own unique inputs, its own unique outputs.
- 52:06It could be a subtask in your subtask somewhere else, but it
- 52:09sits independently. It says my job is to take this
- 52:12text that's coming in and classify it into these four
- 52:14things. Maybe or or my job is to extract
- 52:18out the the right, I don't know, tax sections based on this
- 52:23sustain. So now it needs it's right
- 52:26examples for. You know, so cool, man.
- 52:29Well, thank you a turn for doing this because you're opening up
- 52:32my eyes to ways that agents are being worked with that I
- 52:41obviously I've talked to Omar before, but I'm, I love seeing
- 52:44you take that inspiration and then build on top of it and say,
- 52:50here's as you mentioned, here's the open paper, here's what we
- 52:54can standardise against and now what can we build with it?
- 52:58Exactly. Yeah, that's you're right on.
- 53:00Let's let's like let's start building.
- 53:02That's basically it. You know, I'm their help.
- 53:04Let's let's build all these things.
- 53:06Let's fill into that valuation. Let's let's prove Goldman wrong.
- 53:11I. Love it.