Latest / Agentic Conversations (formally mlops.community) / All the Hard Stuff with LLMs in Product Development // Phillip Carter // #170
Transcript
- 0:00My name's Philip Carter. I am a principal product manager
- 0:03at Honeycomb and I take my coffee home roasted because I
- 0:07buy beans and then I roast them at home and I make espresso with
- 0:10it. OK, we are back for another ML
- 0:15OPS community podcast. I am your host Dimitri Owes.
- 0:18Today I'm flying solo and we're talking with Philip Carter of
- 0:22Honeycomb. As you saw, he got on my radar
- 0:26because of the incredible blog post that he wrote on the
- 0:31Honeycomb blog. Talking about the hard parts or
- 0:34the parts that people don't usually highlight, especially
- 0:38not on Twitter, when you're talking about your AI isn't
- 0:41demos and how it's. This revolutionary new AI
- 0:44product, well, he is actually using Ellms in production and we
- 0:51go over all of that in the conversation today, we talk
- 0:54about some of the challenges that they encountered and I
- 0:58absolutely loved the conversation that we had around
- 1:02how they measure the ROI of their open API calls.
- 1:07It was nice to see that he had tangible numbers and he also had
- 1:12leading metrics. That they looked at.
- 1:14And so they saw that if we're able to affect these metrics in
- 1:20a tangible way, then it makes all of the Open AI API calls
- 1:25that we're doing worth it because we know that.
- 1:29In. Theory More people that are able
- 1:33to activate by taking these actions in our app, they become
- 1:38paying customers and they're able to subsidise the cost of
- 1:43these open AI costs. So enough of me talking about
- 1:46this, let's just get right into it.
- 1:48I hope you all enjoy the conversation that I had with
- 1:51Philip Carter. And I will mention that if you
- 1:55have not given us a review or at least liked this podcast yet,
- 2:00what are you doing? It means the world to us.
- 2:03If you share this with one person, one person only that you
- 2:06think would find value in it, it would be a huge help to help us
- 2:11grow and get the word out about the ML OPS community or these
- 2:16days. Might as well call it the LM OPS
- 2:18community. No, I'm joking.
- 2:21We are not going to change it because let's be honest, it's
- 2:25all ML OPS. At the end of the day, we're
- 2:28just trying to navigate this unchartered territory together
- 2:32and there's a lot to learn. I hope you enjoy the rest of
- 2:36this podcast. to be on here with us today.
- 2:48This is, it's been some time in the making.
- 2:52I know we had to reschedule and I was having problems and then
- 2:55it was 4th of July and things happened.
- 2:57So we had the persistence though to make this happen and I
- 3:02already know it's going to be great.
- 3:04And so thank you for coming on here.
- 3:05Yeah. Thanks for having me.
- 3:06So you said you wanted a insightful conversation from
- 3:10this and you want me to? Ask you some hard questions.
- 3:13Now, when it comes to the blog that you wrote, you threw out a
- 3:18lot of things that I think many of us were thinking, but you
- 3:21articulated it in a way that really rallied the Internet and
- 3:27everyone who has been playing around with AI.
- 3:31Behind you. And so it struck A chord it and
- 3:34I I was rereading it just again today and there's so many pieces
- 3:38that I want to pick out and mention and talk about.
- 3:42But before we do that, I think it's probably right to start
- 3:46with your position and your company and how you're using AI.
- 3:50Yeah, absolutely. Even though I don't really have
- 3:53an ML background, I've been involved in a couple of like ML
- 3:56projects tangentially in in my career like a little bit of
- 4:01Microsoft and and now I work for Honeycomb, which is an
- 4:04observability company. You give it as like it's data
- 4:08analysis for information about applications that are running in
- 4:12production and so sort of like an evolution of you know like a
- 4:15PM monitoring stuff that that a lot of the industry uses today.
- 4:21And so I've I've been actually involved a lot.
- 4:23I'm I'm a maintainer in the Open Telemetry project which is
- 4:26around the idea of creating open standards for generating data
- 4:30about things that are running in production so that developers
- 4:34can sort of own their data and and take it to like the tool of
- 4:37choice rather than get locked into a particular vendor or
- 4:40something. And so our product is about we
- 4:45we take that data and we let you analyse it.
- 4:48And in fact in Honeycomb itself, everything is about querying
- 4:52that data. And you could argue that every
- 4:55major pillar of our product is an act of querying in some way.
- 5:00Whether it's like you're literally writing out the query
- 5:03itself in our product or there's a thing that like runs a query
- 5:06on a Cron job where there's a different kind of query that's
- 5:08sort of running ambiently and surfaces certain things.
- 5:12And so one thing that we found is we have a good product market
- 5:17fit with scores and platform engineers and that's great.
- 5:21It's like the right shape product for them.
- 5:23But for your average software developer or even a product
- 5:26manager or someone who like, has a vested interest in things
- 5:30running well in production, struggles with the act of
- 5:34querying. Because it's it's not that like
- 5:36it's the hardest thing in the world, but like it's an
- 5:38unfamiliar kind of tool and they're like, OK, I don't know
- 5:41how to make heads or tails of this, so I'm just going to
- 5:42leave. And when we talked with new
- 5:45users, they're like, well, we have mental model of kind of
- 5:48like in our heads what we think makes sense.
- 5:51And golly, if there were just some technology out there that
- 5:54could take like my natural language representation of what
- 5:57I care about and turn it into a honeycomb query that could then
- 6:00run. And as luck would have it, right
- 6:04around that time ChatGPT came out and it was far too expensive
- 6:08for us to use the the APIs that a couple of months later they
- 6:12reduced their prices by two orders of magnitude.
- 6:15And so I was like well, natural language querying looks like
- 6:18it's in now. So let's let's hop on it.
- 6:21So we just went full steam ahead, you know, Then we just
- 6:25one of the thick of it and we gave ourselves a month and we
- 6:28said OK, we're going to ship this live to everybody as good
- 6:33as we can possibly make it within a month.
- 6:34And that's, that's it. And it was really, really
- 6:37ambitious and we ran into a lot of problems along the way and we
- 6:41had to ship with embarrassing lack of features that like we've
- 6:46since added. But you know, that's that's the
- 6:48nature of fast product development.
- 6:51And yeah, we're we're using just LMS as an API.
- 6:53But even within that, there's just like a mountain of
- 6:57complexity and nuance to that that that we were able to
- 7:00uncover. And so we wanted to sort of
- 7:02share that story of like, hey, we did it for real.
- 7:04And our goal was to get it out to everyone.
- 7:06Not like create like a little fake Early access thing that you
- 7:10know makes it seem like everything is good and then you
- 7:12go live later and you find out it's dog shit.
- 7:14So yes, the refreshingly real take was really what resonated
- 7:19with me. And so just to.
- 7:22Zone in or DoubleClick on the idea of taking natural language
- 7:26in the background. Basically you were doing.
- 7:29The natural language to SQL? Or was it to another?
- 7:33How were you querying it? Was it to a coding language or
- 7:38was it just hitting the API and giving it context?
- 7:43So there's a couple of things. So first, a Honeycomb query is
- 7:46actually a Jon specification of like a thing against our query
- 7:52engine that runs on the Honeycomb querying interface
- 7:54that we call it manual querying is sort of like a visual
- 7:57programming language and less like SQL or prom QL or something
- 8:02like that. So like the goal was take
- 8:04natural language input and produce a JSON spec that matches
- 8:07you know this this format. Basically it has all these rules
- 8:10associated with it. And yeah, with that we we, we
- 8:14pull a lot of things as context along with that.
- 8:17So we have this notion of called data set definitions.
- 8:21For a given data set that you want to query, you can have
- 8:23something like a canonical representation of an error
- 8:27column. By default, that'll be a name
- 8:29called error, and it's a boolean.
- 8:31And like when Honeycomb sees that in data, it'll be like, I'm
- 8:34just going to assume that this means the errors.
- 8:36And so any part of the product that deals with errors is going
- 8:38to assume that that's what it is.
- 8:40But you might have a data set where you want a different
- 8:43canonical representation of errors.
- 8:45You want to maybe it's a string and you want to have it be just
- 8:48error messages instead of like whether something was an error
- 8:50or not. Yeah.
- 8:51And so there's a way to configure that.
- 8:53So we take that into consideration for like when
- 8:56somebody asks something related to errors, if there's a boolean
- 8:59error column and if there's a string error column, we know
- 9:03which one is the canonical representation, and we go with
- 9:05that rather than the other one. And.
- 9:07And the model seems to be very, very good at sort of picking up
- 9:10on that on that nuance. It reminds me because you you
- 9:13mentioned the pains of working with JSON structures.
- 9:17We mentioned it a little bit. It's it takes quite a bit of
- 9:20effort to to get these models to conform to output that you want.
- 9:25And granted, I think that's gotten better now with the
- 9:29function calling updates that Open API has added where you
- 9:33sort of specify OK, this is like the shape of the input that I
- 9:37want to pass to a function and it'll get it to conform to that
- 9:41shape. However, I've been playing with
- 9:43that and it's not a silver bullet either.
- 9:46I I feel like I need another blog post that's okay update.
- 9:49They they did something that solves the problem in one way
- 9:52but it makes it harder in another yeah, which which is.
- 9:56So we have this constraint where we need to, we need to output a
- 10:01JSON object that follows a particular format.
- 10:03But we need to support a very wide variety of potentially
- 10:07ambiguous inputs where somebody like, we literally see this
- 10:11people type in errors or traces or like, so a trace and and in
- 10:19distributed tracing there's like these unique identifiers that
- 10:22sort of represent like here's all the things that represent
- 10:25this this trace that flows through a system.
- 10:27They will have another tool that will grab that unique
- 10:30identifier. They'll just paste that into the
- 10:32box and hit enter and it's like OK, what query is supposed to
- 10:37come out of? Like a 16 byte hexon coded
- 10:42value? Like yeah OK, but like it's
- 10:46better to show something than nothing.
- 10:48And so you know, with with the, with the APIs that we're using,
- 10:51which is not using function calling, we're able to generally
- 10:54produce something. And when we tried it with the
- 10:57function calling updates, it ended up not producing anything
- 11:02a lot more because it was like, ohh, well I don't know how to
- 11:05get this to conform to the shape.
- 11:06And so it might be that our current prompting techniques are
- 11:11not actually suitable for the function calling stuff.
- 11:13But then that feeds back to another point that I had in the
- 11:16blog post about how, like, prompt engineering is not easy.
- 11:19It's a total Wild West thing, and you know what's going to
- 11:22work for one thing is not necessarily going to work for
- 11:23the other thing. So that's exactly what I was
- 11:26going to talk about with the function calls and this new
- 11:29capability. It definitely seems like it's a
- 11:31dark art and I've mentioned it before.
- 11:34It is like even on the function calls you can just say.
- 11:38Ohh, you change the order of these words or you flip flop
- 11:42these words and you get much more consistent output.
- 11:46And unless you're very very good at this or you just spend a lot
- 11:51of time messing with the prompt, you don't actually figure that
- 11:54out. And so it feels like you can
- 11:57spend more time trying to figure out the prompt than if you if
- 12:01you try and do this the old school way.
- 12:04Yeah, yeah. And and I think one thing that
- 12:07we learned after the release and so we basically we had this
- 12:11initial month to get something out there and then we gave
- 12:15ourselves another month to just iterate with what was in
- 12:17production to try to make it as good as we could and take it out
- 12:20of experimental mode and you know make it live GA quality I
- 12:25guess which is which is what we have now.
- 12:27What we learned is that once you're in production the fastest
- 12:31thing you can do is just literally look at the inputs and
- 12:33outputs of like this is what users are doing over the past 24
- 12:38hours. These were all the user inputs.
- 12:40These were all of the LLM outputs that came from that
- 12:43output. And then this is the results of
- 12:46our like parsing and validation system that tries to take that
- 12:49LLM output. And and you know, we parse it
- 12:53and and there's like a potential kinds of errors that can happen
- 12:56there. And then we try to execute it
- 12:58against our querying engine. And we learned that it's a lot
- 13:02faster to just work with that data directly because now we're
- 13:05no longer in a hypothetical world.
- 13:06We're like, all right, this is what people are literally trying
- 13:09right now. And when you're in that core
- 13:12duration loop like, I think the challenge that you run into is
- 13:15you you work yourself into a local maximum of like how good
- 13:18your prompt is. Alright, I synced that.
- 13:24If, if it's based off of what users are actually doing, that
- 13:29local maxima is probably good enough.
- 13:32And you don't have to tie yourself into knots trying to
- 13:35figure out like Ohh or let's explore this brand new prompting
- 13:38technique. Or like you can, But you're like
- 13:40you're basically buying yourself some time there.
- 13:42Because if you make it good enough for the majority of
- 13:44people, then you're like, OK, we can sit back and we can be
- 13:47really exploratory with all the different prompting techniques
- 13:50that exist out there. And we can take some of that
- 13:53data from like, OK, now we've got it to a point where it looks
- 13:55like it's looking pretty good. Going to take a snapshot of
- 13:58that, Let's build an evaluation system for offline model running
- 14:02and say like, OK, now we can have some guess as to if we're
- 14:06going to regress what's in production or not.
- 14:09And let's go wild with prompting techniques.
- 14:11But like, I think it's really, really hard to front load that
- 14:13stuff because you don't have that actual user input that
- 14:17you're working with. And so you're just taking shots
- 14:20in the dark instead of, you know, you might be more
- 14:22methodical with your prompting, but you're taking shots in the
- 14:24dark in terms of like, OK, but like, what are the actual inputs
- 14:27to this would be? So good.
- 14:29You mentioned how people were just pasting in error or asking
- 14:33error or traces. What are some other things that
- 14:35you saw from the data, and were you doing this manually?
- 14:38Were you just kind of looking through what people were seeing
- 14:41or were you actually going through and trying to write
- 14:45code? I imagine it's a tonne of data
- 14:47that you're going through, but also at the same time the manual
- 14:50aspect might help you pick out some of these patterns.
- 14:55Yeah? So, so briefly to, to answer
- 14:58your first question, I think favourite class of inputs is we
- 15:00have this one customer who's like they're actually like our
- 15:03heaviest user customer of all of Honeycomb period.
- 15:07And they were like, ironically, the one customer I didn't want
- 15:09using this feature up front because there were all these
- 15:11like problems that they would totally run into.
- 15:15And they were they're the heaviest users, which is like,
- 15:17ohh shit OK. Of course, yeah.
- 15:20But at any rate, so how do you comb has this feature called
- 15:25Derived column? Or you can think of it like
- 15:27Computed Column or Computed field.
- 15:29The idea is it's a DSL where you can write an expression that
- 15:33takes values and columns that exist in your data set and
- 15:37produce sort of this this computed column that's made-up
- 15:40of the other ones. And it has its own syntax and
- 15:46they were hasting in just like expressions.
- 15:50From that syntax into the the editor and actually getting
- 15:55useful queries, we have like a little feedback mechanism where
- 15:59you can say like was this result good?
- 16:01Yes, no, not sure. And they pasted in like this
- 16:04huge computed expression field thing and the answer they gave
- 16:08back was yes. And I'm like OK, I don't that
- 16:11makes no sense to me, but whatever.
- 16:15So that was that's probably the wildest and like it we have like
- 16:18a little stream of of inputs that all that'll sort of look at
- 16:21from time to time and it still comes up.
- 16:23It like apparently it works some emerging capability and this
- 16:27system that we built that we had no idea about.
- 16:29It makes sense though, because that kind of is one of the
- 16:32patterns that you see. Like ohh there's an error
- 16:34message. Let's just throw this back into
- 16:37the LM and see what they make of it.
- 16:40And then I don't have to go through and try and debug it on
- 16:42my own. Yeah, yeah, exactly.
- 16:44Or or they take like things that they knew they could sort of do
- 16:47and they they they treat it as like a shorthand and it tends to
- 16:51work out OK. But but so to to your second
- 16:53question about how we're looking at this information so we can
- 16:56see how we're going to deal with it.
- 16:58There's two things that I think are really important here.
- 17:01So we have this instrumented pretty well.
- 17:04I actually have another blog post that talks about some of
- 17:06the things that we did there where we capture about a dozen
- 17:10or two dozen or so fields for a given request in a in a span
- 17:16that exists in a trace in our production data.
- 17:18So like broadly it captures what the user input was, what the LLM
- 17:24output was, what the error was, if it came from Open API AI,
- 17:30what the error was. If it came from like our own
- 17:32parsing and validation system, some metadata about like we use
- 17:37embeddings to like pull out a subset of fields and a schema so
- 17:39we don't have to pass the entire schema.
- 17:42Some metadata about like you know how much that was pulled
- 17:44out and like what the actual names of those fields were.
- 17:46It's like the top 50 and things like that and so that and then
- 17:51we also have a response. So like if they gave us feedback
- 17:55like the yes, no or unsure, we also capture that and so we can
- 17:59we can sort of slice and dice that data and group things
- 18:02arbitrarily. Ohh.
- 18:03And also one of the things we have like these little bubbles
- 18:05at the button bottom that you can click that are suggested
- 18:08natural language queries just to kind of give new users an idea
- 18:11of the sorts of things they can ask and we track.
- 18:13Like if the thing that they gave us was like a suggested query or
- 18:16a written query. And then we groups by our by
- 18:20frequency of pretty much all of these kinds of different fields.
- 18:23So like one of the most common ones is grouping by open AI
- 18:27error and then grouping by parsing error.
- 18:29And it turns out there's some patterns that emerge very, very
- 18:33quickly, where a very common one that we found was if we grouped
- 18:38by our parsing errors. Because there's rules for like
- 18:41pieces of a query. Like, you know, this thing can
- 18:43only work when this thing is present.
- 18:44Or you know, like this thing does not take a column as input
- 18:47or something like one of the more common ones that we found
- 18:50where people were asking some variant of what is my error rate
- 18:54And we kept emitting something that like I could see why the LM
- 18:59would admit that, but it was definitely the wrong thing to
- 19:02admit and it was a very common kind of error.
- 19:05And we're like, OK, this is like through prompt engineering we
- 19:08could probably solve this. And so it took us a little bit
- 19:11because it was a little, it's a little tricky.
- 19:13But then we did that and then a week later we have this thing
- 19:16that tracks like what are, what are errors are of the query
- 19:20assistant thing itself. And we noticed the error rate
- 19:22went down and the success, we call it a success rate.
- 19:25The success rate went up by about 6%.
- 19:28And so we're like, OK, that was that was just a legit
- 19:32improvement right there. And that was just, that was a
- 19:35very, very simple query within Honeycomb.
- 19:37We literally just like looked at this data and then we grouped by
- 19:40our like parsing error thing and we just it grouped by frequency.
- 19:44So we just saw the top one and we're like all right, the like
- 19:47the the top five were all this error and then there were like
- 19:50you know, certain kinds of inputs that people would put in.
- 19:52We're like alright, cool, this is a pattern.
- 19:54Awesome. Moving on.
- 19:55And we would repeat that again and again and we eventually got
- 20:00to the point where these errors that we saw.
- 20:02Were entirely unique and we're like OK, like we're getting
- 20:05diminishing returns now I'm doing this sort of thing.
- 20:07So let's like pause on this improvement cycle for a little
- 20:11bit and see what happens. And so that's we use Honeycomb
- 20:16for all of this. So like we're dog fooding our
- 20:18products for our our feature that we just got out there.
- 20:22Awesome, as I would hope you would be doing.
- 20:24And so if you look at where you're at right now with the
- 20:29feature and you look at where you started at how much of an
- 20:33improvement. Do you think you've had since
- 20:36releasing this feature? And then how much room do you
- 20:39still feel like you have to grow?
- 20:43That's a good question. So the first part of it I can
- 20:46actually quantify. So part of what Honeycombs
- 20:50product offers is what's called a service level objective or an
- 20:53SLO. The idea is that it's a measure
- 20:55that gets computed over a particular interval as pass or
- 20:59fail, and you set up like what your success threshold is and
- 21:05then it calculates a budget of failures, basically based off of
- 21:08your success rate over a specified time window that you
- 21:11care about O if you're like, OK, I have this operation I want it
- 21:15to succeed at a minimum 95% of the time over 7 days.
- 21:20And so it calculates all right, there's a, there's a, there's a
- 21:23just based off of the amount of like events that come in.
- 21:27There's there's a number of failures that you're allowed
- 21:30before you've you've sort of failed this service level
- 21:33objective. And So what we did is when we
- 21:35first released we just we had no idea what what would be good or
- 21:41bad. So we just set a service level
- 21:43objective of 75% / 7 days. So we said, OK, 1/4 of of inputs
- 21:49are gonna result in a failure of some kind.
- 21:52That was our our, our initial thinking and that is kind of how
- 21:56it played out. It was slightly better.
- 21:58It was 76 or 77%? Ohh wow.
- 22:01I would have said that's a little optimistic.
- 22:04Yeah. Yes.
- 22:05Well, I mean we dog food a lot internally and we were actually
- 22:08feeling pretty good. So we're like OK, let's do 75%
- 22:11And then as as we iterated that number, we could see that
- 22:16actually that rate, success rate go up on this service level
- 22:19objective. And so we got it up to about 94
- 22:22percent is I think where we're sitting at right now.
- 22:25And that was that was through just what I mentioned earlier,
- 22:28like going through looking at errors that people are
- 22:32experiencing and noticing patterns, doing prompt
- 22:34engineering, doing like manual corrections as well.
- 22:38So like sometimes the LLM outputs something that's like
- 22:42basically correct. And so we're like, alright, well
- 22:45we see this, we literally know how to fix this like statically.
- 22:49So let's just fix it instead of trying to you know do some hyper
- 22:54focused prompt engineering stuff.
- 22:56Yeah and combining these two techniques we got up to almost a
- 23:0095% like always gets a query output that is runnable and
- 23:07we're we're pretty happy with that.
- 23:08So, so like that that that's, that's where some of these
- 23:11observability practises like setting up a service level
- 23:13objective and seeing how like you can observe how this changes
- 23:18over time really, really helps. Yeah, makes complete sense.
- 23:22And I I do wanna dive into one other piece when it comes to the
- 23:27feature that you set up, which is that you are not using it as
- 23:31a chat bot, which I I personally love.
- 23:34Because we had a talk at the first LM in Production
- 23:39conference where Linus Lee from Notion talked about how you
- 23:44know, is the future of interacting with LM's chat or is
- 23:48there some better user experience.
- 23:51And user interface, and I think you all did that.
- 23:56What he talked about in his talk, you did it intuitively
- 24:00where you said, you know what, we're not gonna let someone just
- 24:03ask any question in the world. We've got these boxes that you
- 24:08can prompt, but it's not like a chat bot type experience.
- 24:12Can you break that down and what your rationale behind that was?
- 24:17Yeah, definitely. So we actually had an early
- 24:20prototype that was a chatbot and it actually had way more scope
- 24:24than what we ended up shipping with.
- 24:26Not only could it output A Honeycomb query, but it could
- 24:29also explain like a general question you have about
- 24:34Honeycomb observability stuff. And it could also output A
- 24:39hypothetical query. So like, imagine that you want
- 24:44to ask about errors, but your application has never emitted an
- 24:47error before, which happens a lot with new users who are
- 24:51instrumenting like a really basic app.
- 24:53There's no possible query for errors that you could create if
- 24:56it's not admitted an error because there's no there's no
- 24:58error columns, but that doesn't mean no query should be
- 25:02possible. So what do you do there?
- 25:04Well, we had this sort of mode of it would try to chat with you
- 25:08about like, hey, so I'm not able to create a query from this, but
- 25:12that's because you're missing the data to be able to create a
- 25:14query for this. And if you had columns of like,
- 25:17this name query could look like this, so like you should go and
- 25:21like add that to your code or something.
- 25:23We ended up scoping that out because that was a big can of
- 25:26worms of complexity, like there were all kinds of weird
- 25:29behaviours that it was doing. We didn't throw the idea out.
- 25:32I think it's something we're going to eventually build, but
- 25:34it didn't seem like it was necessary for an initial release
- 25:37because especially when we talked with our sales team, they
- 25:41were like, hey, so people in our experience don't seem like they
- 25:46want to chat with something. They just want to get a
- 25:47honeycomb query as fast as possible.
- 25:49So we're like, OK, let's just focus on doing that
- 25:51specifically. And then we sort of started
- 25:54realising like chat isn't actually the right modality for
- 25:58this problem because or it could potentially be it's it's it's
- 26:03kind of tricky. So, so like with Omnicom query,
- 26:05the way that you generally try to query your data is you try to
- 26:08start broad and then you start narrowing down with your query
- 26:12until you get to like a subset of the data.
- 26:14We were like alright cool, this is specifically what I'm into.
- 26:17It could be like your your, you got page for an incident and so
- 26:21you're like you're starting with errors but now you're scoping
- 26:23down to a very specific part of a very specific service and like
- 26:26that's the thing that's responsible.
- 26:28You're like, cool. I understand what's going on.
- 26:29Now to an extent. Chat could hypothetically work
- 26:33with that where you could sort of you ask it a thing, it
- 26:35outputs a thing and then you say, OK, but like what if you do
- 26:38this and then it outputs a different thing and so on.
- 26:41But we found that with people internally at Honeycomb, what
- 26:45they wanted to do is the query would like fill out the UI.
- 26:49So you would see in the Honeycomb query UI, here's all
- 26:51these like things that we're grouping by and filtering by is
- 26:54they're like, Oh well, I can just like click in these things
- 26:58and like manually query. Now that you've sort of created
- 27:01the thing to start out with. And there was that tendency to
- 27:05people to be like, ohh, well I don't wanna like go back to a
- 27:07chat bot to ask it a thing. I just want to click on the
- 27:09thing that like now that the UI has been filled out for me, it's
- 27:12faster for me to just go and click around.
- 27:15And that felt right to us. And then as we started getting
- 27:18into production using this thing and getting into prompt
- 27:21injection attacks, we're like, ohh, a chat bot is an end user
- 27:26reprogrammable system where they can, they can use that rapid
- 27:30feedback of textual input and output to manipulate the system
- 27:35behind the scenes. And that was kind of rekey,
- 27:41especially since we're dealing with a lot of different data.
- 27:44Like, you know, somebody could be trying to do some sort of
- 27:46like data exfiltration technique or something like that.
- 27:48And you know, we're going to try to build as many or we built as
- 27:52many protections about that as we could.
- 27:54But a lot of it really comes down to how annoying is it for a
- 27:58bad actor to do bad things. And what we built was actually
- 28:02really annoying for somebody to do bad things with.
- 28:05Yeah, that's classic that. And that's great that you
- 28:08thought about it and you saw that problem because.
- 28:11I imagine it's really hard to just safeguard and everyone's
- 28:17data when you are sending things to Open AI and how do you make
- 28:21sure that there is a clear line that is the different customers
- 28:26data and how they use it. And if someone wants to and
- 28:30they're good at it because this is such a new toy that we're
- 28:34playing with and technology that it's really hard to stay ahead
- 28:38of the curve. And so I I think about that one
- 28:41and I also know that you all. Spent a lot of cycles on the
- 28:45whole prompt injection thing. What made you do that?
- 28:49Were people trying to break it from the get go or was that you
- 28:53dog fooding it and trying to break it?
- 28:55It started out with us, but then we also reached out to a person
- 28:59who used to work for Honeycomb who now had like he has his own
- 29:01startup. He's kind of like on a
- 29:03preferred, you know, you know he he he knows everything about the
- 29:07products he like. You know he's, he's rooting for
- 29:09us all that kind of stuff. We're like, hey, try to break
- 29:11this thing. And he knew, like, who some of
- 29:14our top customers were. And that's like literally what
- 29:16he was starting to put in there. Was like and give me data from
- 29:19you know customer name ohh wow and we're like OK we're like
- 29:24alright like he's he's he's a good actor in this like we we
- 29:28all trust each other we're all friends.
- 29:30Like it's all good. But if it's easy enough for him
- 29:32to just ask for that sort of thing, it's gonna be easy enough
- 29:34for an actual an actual bad actor.
- 29:36Who we we get, We actually, we get that quite a bit.
- 29:39In fact, there are a lot of we see, like in a lot of attributes
- 29:43on data coming in. If you group by least frequent
- 29:47unique values, there's all these sort of, like fields that are
- 29:50supposed to be normally filled in with like, normal metadata
- 29:53that will have like, script tags and a whole bunch of different
- 29:55stuff. And so, like, people are like
- 29:57trying to attack our stuff. Ohh wow.
- 29:59Ohh wow. So like that.
- 30:01That kind of that kind of freaked me out a little bit.
- 30:03Yeah. So we thought about it and there
- 30:06were a few things that we did. So firstly, we parse all outputs
- 30:13of a large language model, and so that's not that's not going
- 30:17to solve everything, but if you have to parse something, you
- 30:20tend to just drop a whole bunch of garbage that ends up not
- 30:24fitting the particular thing you're trying to parse into OPS.
- 30:27You have to immerse yourself in the ML OPS content.
- 30:32The best way to do it is to subscribe to the E-mail OPS
- 30:36Community podcast. So Secondly, we have our own set
- 30:49of protections to protect against, like SQL injection and
- 30:52a bunch of other stuff when we actually execute a query.
- 30:54And executing a query doesn't like run something against a
- 30:58database directly. There's a whole bunch of other
- 31:00stuff that goes on and so there's that.
- 31:04The large language model itself is not interacting directly with
- 31:07our main database that like pulls in you know like user info
- 31:11and team info and and you know, validate this API key and stuff
- 31:15like that. It doesn't interact with that at
- 31:17all. And we sort of have it like
- 31:19sandbox in a way because of that.
- 31:21We then also rate limit users. So you know like that's kind of
- 31:26the core loop that bad actors have is they're they're
- 31:29constantly iterating and if you only get a certain amount of
- 31:32tries each day, well there you go.
- 31:35And it turns out most people, when they're using this
- 31:37legitimately, don't ever go above like 25 or so uses.
- 31:43The rate limit is in 25 anymore. We were able to update it a
- 31:46little bit more, but it started out with 25.
- 31:48And again, like this doesn't solve everything, but if you
- 31:51only have so many tries a day, well, there you go.
- 31:54Another one is limiting the amount of input that you pass
- 31:57in. So again, turns out most people
- 32:00when they ask a natural language query, are not going to produce
- 32:04that much text that needs to get turned into, you know, tokens.
- 32:07That goes against the large language.
- 32:08Model. Forget also we have a limit.
- 32:11I could totally see that you're starting to be like ohh, that is
- 32:15obviously a prompt injection attempt because it's very clear
- 32:19when somebody says do not obey the last or you know do
- 32:24anything. Now that I say they're taking
- 32:26the hottest topics off of Reddit and they're trying to inject it
- 32:30into their. Yeah, and and so and then the
- 32:33last one is also just parameterizing the prompt
- 32:35itself. And I think it's also, well it
- 32:38there's sort of two things with the prompt.
- 32:40So like you want to parameterize your your inputs.
- 32:42And again that doesn't solve everything, but it it kind of
- 32:45makes it a little bit less likely.
- 32:47And we have in our prompts, it's sort of there.
- 32:50There's a lot of this like simulated conversation that goes
- 32:53on where it's like simulated user input, simulated LM output
- 32:58input, output input, output. And it's like this pattern and I
- 33:01think like it's sort of orients the LM to sort of be like ohh,
- 33:05well I need to be in that pattern.
- 33:06I can't just like emit random garbage.
- 33:09And I think when you combine all of these things together, you
- 33:12have something that is too difficult to get really juicy
- 33:18info out of and so it's just not worth the effort.
- 33:21Like there's there's plenty more companies out there haphazardly
- 33:25throwing chat bots over their databases that you can just go
- 33:28after instead. Yeah, there's much lower hanging
- 33:31fruit. So go to one of those and figure
- 33:34out which ones they are you're it's time better spent.
- 33:37And so I I just want to come back and close the loop on the
- 33:41idea of the UI because I find that fascinating and I think
- 33:44that being able to. Really narrow down the scope is
- 33:49something that. Is a little bit of.
- 33:52It's undervalued when it comes to LM's because the LM's have
- 33:57this gigantic surface area that they cover, right?
- 34:00And you can ask it for a poem on the meaning of life, or what
- 34:04King Henry's second wife's name was and.
- 34:07People don't necessarily say we're just gonna carve out this
- 34:11niche and we're gonna try and make it as small as possible.
- 34:15That's one thing that I feel like when you change the UI, you
- 34:19do you you almost are forced to do that.
- 34:22So I love that you took that approach and it made you think
- 34:26about it in that way. The other piece that I have to
- 34:31ask about because this came up in the LMS and production survey
- 34:35that we put out and a lot of people are having.
- 34:38Questions on how to quantify the ROI of your feature that now has
- 34:43AI in it. And I think that you are a
- 34:46perfect person to ask because basically you took something
- 34:51that I don't think you can. Are you charging more for the AI
- 34:55feature? That's I guess the first
- 34:57question. No, it's 100% free to use for
- 35:01anybody who we even have our our sandbox.
- 35:03So like it's a part of the UI that you don't even need to sign
- 35:07in or have a team, you can just use it and we even have it
- 35:10enabled there. So this is huge because.
- 35:14You took your tool and you now basically cut some of the
- 35:19margins so that you could be using AI, right?
- 35:22So how did you think about that? Because now you're making Open
- 35:26AI API calls or whatever. If you're using Anthropic or
- 35:30Cohere or I imagine you might want to try and start using open
- 35:34source when a good one comes out, but we can get to that
- 35:37later because I know you mentioned that the open source
- 35:39models are just there's a lot left to be desired back in that
- 35:43blog post. So I'm curious if anything has
- 35:44changed. Let's hit on that in just a
- 35:47second and let's stay on this ROI cost or the ROI idea,
- 35:51because for me it's fascinating to think you said we're gonna
- 35:56create an AI feature and we're not going to charge people extra
- 36:00for it, but now because of the AI feature, we're.
- 36:06They're having essentially we're getting less profit.
- 36:09So there's there's a couple of pieces to that.
- 36:12So the first is so you're gonna have to deal with cost, not even
- 36:18directly, but indirectly with rate limiting.
- 36:21So Open AI has a set number of tokens per minute that they
- 36:26allow you to process and if you go over that, well, too bad, and
- 36:31that's per API key. So like maybe you could
- 36:33Multiplex API keys for users and all that.
- 36:35And some companies are trying to force users to like, provide
- 36:38their own API key, which is total bullshit.
- 36:40Good luck with that. I'm sorry, but that's just not,
- 36:44that's not a business model, that's not the future.
- 36:46And so like you, you you have to deal with the problem of the
- 36:50amount of tokens you're passing and the amount of tokens you're
- 36:52getting back one way or another. Like it's your if your feature
- 36:56is successful, you're going to hit rate limiting.
- 36:58If it's, you know if it's successful, it's also going to
- 37:01cost a lot. So like, do work to reduce the
- 37:04size of your prompt, reduce the the number of inputs that you
- 37:07pass in and that's hard. Shit, that's not easy.
- 37:09But like it's good to do. The second thing is on the cost
- 37:13front, try to accurately analyse your costs a little bit.
- 37:16We did that. We did some forecasting.
- 37:17So like I looked at, so we have manual querying in the product
- 37:21and there's a certain volume of that that all of our customers
- 37:23do over a given month. And so I took like the average
- 37:26over the past months and looked at the general trend and I'm
- 37:28like, OK, here's like about a million or so queries that are
- 37:31run against our. And this month there were about
- 37:33a million queries that were run, manual queries, I should say.
- 37:36So people like literally clicking around and typing stuff
- 37:39in our UI and clicking the run query button that was run
- 37:421,000,000 * / 1 of the months. And I'm like, all right, cool.
- 37:44So people are going to be running those manual queries a
- 37:47lot more than the natural language queries because it's
- 37:50very easy to just sort of like tweak one particular field and
- 37:52execute. Again, it's designed to be fast
- 37:55that way. But let's assume for a moment
- 37:57that it's a million queries that are going to get run per month,
- 37:59OK, We can work back from that and we can look at our cost.
- 38:02And we did. And it was like, all right, this
- 38:03will cost us about 100 grand a year in Open AI.
- 38:06Bill, 100 grand a year is far less than the cost of a single
- 38:10engineer. And so that's just not that big
- 38:13of a deal. Like we we sponsor conferences
- 38:15that cost probably ground per sponsorship and it's like
- 38:18alright, like this, this is, this is yeah it's money but like
- 38:22this is not that big. Like if we're like we're so
- 38:25we're gross stage startup, we're you know in the 10s of millions
- 38:28of AR per per year. But like 100 grand for something
- 38:34that could potentially bring in a lot more new users is cheap.
- 38:38Really. Yeah.
- 38:39And like that's also the difference between GBP 3.5 and
- 38:42GBP four. If it was with GBD 4 that would
- 38:44cost in the 10s of 1,000,000 per year and that's not something
- 38:49that we could do. And so like part of that goes
- 38:51back to like, hey, this is hard stuff.
- 38:54Prompting is hard. You can't always use the magical
- 38:56model that's supposedly the best or whatever you you have to work
- 39:00with the one that is going to actually fit with all your
- 39:02different constraints. And if that means putting in
- 39:04more elbow grease with your prompting so that you still get
- 39:06accurate outputs from that thing, then you got to do that
- 39:09work. But that's solely on the cost
- 39:11side. I also want to talk like the
- 39:12ROI, like what we get out of this.
- 39:15So there's two things to consider. 1st, I have a very
- 39:18good relationship with our sales team.
- 39:20And our sales team has been complaining for a long time that
- 39:24people who come in through the sales pipeline would look at our
- 39:27UI and be like, whoa, this is a little hard to use.
- 39:30And there was just too much hand holding they had to do to like
- 39:32get them to feel comfortable with it.
- 39:34And like, yeah, an enterprise sales, you can get that.
- 39:36But they're like we want to spend our time more effectively
- 39:39and like every week we have to spend teaching people how to use
- 39:42it. Is a week lost on like getting
- 39:44that deal signed, right. So like there's there's real
- 39:48money on the line as far as that's concerned.
- 39:50And they were with us giving us feedback the entire time.
- 39:53And that helped sort of shape what we want to do here.
- 39:56And then at the end, after about a month or so, if it was out,
- 39:59they came back. And they're like, this is
- 40:01legitimately saving time for some of our prospects.
- 40:03They see the box and they type into it and they go, ohh, neat.
- 40:06And they sometimes complain to us about it.
- 40:08But they're like, we want those complaints because, like they're
- 40:11they're not asking us to handle that, use it.
- 40:13They're just fucking going for it.
- 40:15So that's number one. This is harder to quantify, but
- 40:18in general, if your sales team is saying that something is
- 40:21making their jobs easier, that's a really good thing.
- 40:25The second thing is. Like a lot of different
- 40:27companies we have a product LED growth initiative which is the
- 40:31ideas that people come in through the free tier and then a
- 40:34certain percentage you know starts paying us money and and
- 40:37like our our paid tier and you know they sort of sometimes
- 40:41they'll just stay there or sometimes they will talk to
- 40:44enterprise sales and be like hey where we want to really go for
- 40:47for real on this thing. And that acts as a funnel for
- 40:50our sales pipeline and it also builds a part of the business
- 40:52that's self completely self-sustaining if there were no
- 40:56humans involved in the process. The biggest problem from the
- 41:00product side, so like there's a problem in terms of getting
- 41:03people into to to begin with and then there's a stage where they
- 41:07need to get data in. So they need to like use and
- 41:10seek or a tool that usually through the open telemetry
- 41:13project that generates the data pointed it, honey Cohen get it
- 41:16on there. But then after that, the largest
- 41:19drop off in that funnel was writing a fucking query and
- 41:24getting results. That was, that was #1.
- 41:27And so we're like, OK, we tried all these other experiments
- 41:29beforehand and we were able to move the needle a little bit,
- 41:32but like not a whole lot. And so we have these these
- 41:35metrics that we tracked of like, you know, OK, what percentage of
- 41:38teams create what we consider a complex query, which is to say
- 41:42they create a query that has one or more group buys and one or
- 41:46more philtres. So they're like they're really
- 41:48analysing their data. We also have a feature called a
- 41:51board. It's a way to save a query to,
- 41:54you know on a collection of queries and and sort of this,
- 41:56it's like this collection of executable queries that you can
- 41:58look at. And we find that if a user
- 42:00creates a complex query or if a user adds a query to a board,
- 42:04they tend to be hardcore activated, like there's a very
- 42:08high chance they're going to start paying us money like down
- 42:10the road. So we're like, all right, if we
- 42:12get those numbers up, they're probably going to increase, you
- 42:15know the other numbers. So we found after a month of
- 42:18looking at the data with new teams coming in at the start of
- 42:22May, from May to June, there were percentage of teams that
- 42:26never used the query sistant and a percentage of teams that did
- 42:28use the query sistant. Of the teams that did use the
- 42:33query Assistant, the percentage that went on to create a complex
- 42:37query was more than twice the percentage that did not use
- 42:41Query Assistance. So like the jump was from from
- 42:45like 100% of that population down to 36% of that population
- 42:49and the AND that was using Query Assistant.
- 42:51For the ones you were not using Query Assistant, 100% of that
- 42:54population dropped down to like 15%.
- 42:58So like from a jump from 15% to 36%.
- 43:01The second one in adding a query to a board, the jump was from 6%
- 43:07to think it's. It's almost 17%.
- 43:10Yeah, almost 17%. So again, like that one was
- 43:13almost three times the amount. But like there that's
- 43:16quantifiable. Like, you know, this isn't, this
- 43:18isn't total magic, but you know, at the end of the day, like, you
- 43:21know, you're not going to get massive numbers for this kind of
- 43:24stuff. But these are jumps that none of
- 43:26our previous experience where none of our previous experiments
- 43:29were able to get even remotely close to.
- 43:31And so like, you know, it's only been two months.
- 43:34So we don't have like we're not raining in in dollars right now
- 43:38because of this, but we're like, hey, we have these things that
- 43:41we are highly confident are able to move the business forward and
- 43:45we are able to see significant jumps in those things.
- 43:47So now we're like OK, how do we make the query assistant much
- 43:52more prominent for new people who are coming in because there
- 43:54were people who never even noticed it and we're like OK,
- 43:56like it's able to yield these better outcomes.
- 43:59So let's really get their eyes on this thing.
- 44:02But like already we think that ROI is worth it just based off
- 44:05those two factors. Feedback from sales saying this
- 44:07is helping them with that initial part of the cycle which
- 44:10decreases the time it takes to get a deal signed.
- 44:13And then the second is on the self-serve side of the business,
- 44:17significant increases like the largest increases in conversion
- 44:20that we've ever seen with the experiments that we've been
- 44:23doing as a result of this thing getting out there.
- 44:26Dude, so just having these leading indicators that you
- 44:30picked out and you said, you know what, if we can move the
- 44:33needle on these, then we know the rest of the dominoes are
- 44:36going to fall. That is so good to be able to
- 44:41try and use that as your target because then it's clear if our
- 44:47AI initiative, it increases the usage here of these metrics,
- 44:52then we're good and we know that the ROI is there, especially if
- 44:56we're just. Talking, I mean just I say just
- 44:59with hand quotations, if we're just talking about 100 grand a
- 45:01year, then it's a whole different scenario because
- 45:05potentially the average sale price for somebody when they do
- 45:08get into that fully activated zone is much higher than 100
- 45:13grand a year. So you're saying if we can just
- 45:15get one of these people to activate fully from this
- 45:18feature, it's all worth it. And so now I'm I'm thinking
- 45:23about the idea of you and from where you sit and your vantage
- 45:27point. Being so deep in the product
- 45:30space, but also knowing that lots of people in this podcast,
- 45:36people that come to this podcast listen to it and they're sitting
- 45:39in a machine learning engineering space, they're
- 45:41sitting in a data science space, how do you did you already have
- 45:47those metrics picked out? How do you pick them out?
- 45:50How can you give advice to people that are in the machine
- 45:55learning engineering space to think more like a product
- 45:58person? Because if there's one thing
- 46:00that I have seen over the last whatever, X amount of months
- 46:04doing all these hackathons with AI, it's that now everyone is a
- 46:09product person. The ability to use AI.
- 46:13And some people call it, you know, like the democratisation
- 46:16of AI. Although I think that's a little
- 46:19bit like overplaying it, because there's still some really hard
- 46:22stuff that has to come along with it.
- 46:24And you need a lot of times you need some serious engineers to
- 46:28implement this. You can't just.
- 46:30Have some front end web developer create something that
- 46:34can be at scale, but I do think that everyone now is looking at
- 46:40their position and they're thinking about how can I bring
- 46:43more of a product mindset to what I'm doing and so.
- 46:47From your vantage point, you mapped out some very clear
- 46:50things. You're talking to different
- 46:51stakeholders like sales. I imagine you're talking to a
- 46:55lot of different people. So maybe you can go into that a
- 46:57little bit. And then you're also saying,
- 46:59here's some leading metrics that we're looking at and just if we
- 47:03can affect those metrics, the rest of the initiative is worth
- 47:07it. And so from a machine learning
- 47:10engineering perspective, how can we help identify those metrics?
- 47:16How can we look at who we should be?
- 47:18Talking to so that we can also be part of this conversation,
- 47:22that's a good question. So I think what this is
- 47:24fundamentally rooted in is you shouldn't be looking for, you
- 47:30know, it it it's, it's kind of a classic thing, right?
- 47:32Like there's this amazing technology, but you shouldn't be
- 47:34taking the technology and looking for a problem to solve
- 47:36with it. You should be looking for a
- 47:38problem to solve and seeing if the technology can be used to
- 47:41solve it. And that's the mindset that we
- 47:42had in this was this very scoped problem of people coming in and
- 47:46being able to be successful with querying for the first time.
- 47:49And on the product side of it, like, again, this is the, this
- 47:53is something that I did and some other people on the product team
- 47:56did. But you can be in the MLS side
- 47:57and do this too. Literally just talking to some
- 47:59of these people, talking to some of the customers were much more
- 48:02early stage working with someone to get like emails of people who
- 48:05signed up, who are on the free tier and just chatting with them
- 48:08and being like, hey, why did you use this product?
- 48:10What questions are you trying to ask?
- 48:11Like what are you trying to get out of this?
- 48:13And you find after about five or six of these relatively short
- 48:16interviews, there's patterns that emerge.
- 48:19And in our case, the pattern was, well, I cared about my
- 48:22latency or my errors usually or like, you know, user behaviour.
- 48:26And I want to see, I want to see that.
- 48:28And then you go, OK, well, what does that?
- 48:30And they're like, well, you know, they, they often like,
- 48:34struggle to explain what they want to see.
- 48:37And that's part of why they came to our product.
- 48:40You don't have to be a product manager.
- 48:42You don't have to sit in the product org to be able to do
- 48:45this sort of like work. Once you do that, you can then
- 48:48take a step back and be like, OK, are these problems that are
- 48:50worth solving? And if they are, OK, let's
- 48:52identify some good metrics that are worth like, OK, this is how
- 48:56we're going to be able to start quantifying it.
- 48:58It's really good to have a product person there.
- 49:00Especially if you have a product person with a background and
- 49:02growth product work. They're going to be really,
- 49:05really helpful at this because those people are amazing at
- 49:09knowing what is trackable today and what could be tracked and
- 49:13like what work needs to go in there to instrument it so it can
- 49:15be tracked. And then saying, OK, you know,
- 49:18just framing it up like, OK, if you see a percentage increase of
- 49:21this amount, that usually means it's good or means it's maybe
- 49:24not so good. And Justice give you a better
- 49:26sense for like this is what we could like if we what we view as
- 49:30success or what we view as failure we can have some bounds
- 49:32around that. When you have that in place it's
- 49:35it's basically go time at that point.
- 49:37Like I mean I took it a step further and worked with sales
- 49:39because you know where we we have a large enterprise sales
- 49:43arm of our business and it turns out that their problems were the
- 49:47same as these problems like we're just complete alignment
- 49:49across organisations. You know, again, you don't have
- 49:53to be a product person to do this sort of work, but talking
- 49:55to those people and sort of identifying where all the common
- 49:57points are and then working with somebody in product or doing
- 50:00yourself to figure out those metrics you want to move, you
- 50:03can do. But then I think this question
- 50:07can be answered in two different ways.
- 50:08I think like a there's that work, especially on the initial
- 50:11legwork that ML engineers can be deep much more deeply involved
- 50:15with than perhaps they might be today.
- 50:17The second piece of that is I think product managers should be
- 50:22working with mill folks a little bit more and becoming a bit more
- 50:25data literate because they may like, you know, it's hard to
- 50:29develop a deep rooted understanding of how users are
- 50:32using your product. But if a product manager can
- 50:35like bring in that expertise and an ML person can sort of come at
- 50:38it from the other direction and have some of this like, hey, I'm
- 50:41talking to you sort of identifying some of these
- 50:42problems. You have a common language that
- 50:44you can speak and if the product person is able to say, hey, I
- 50:49know what embeddings are, I know why they're useful.
- 50:52I know like what is good or bad about LM's in general, like
- 50:56things where they can fall down. You can really, really start
- 50:59iterating quickly. And I think it's essential.
- 51:02Like I I think the ML folks are going to have to be more product
- 51:06minded. They're going to have to learn
- 51:07how to do more of this legwork to better understand a problem.
- 51:11And then I think the product folks are going to have to get
- 51:14more data minded, basically to better understand, like, OK,
- 51:17these are our data. Like, these are the systems that
- 51:20we can work with and these are our data sources and how they're
- 51:22sort of laid out and what we can do with that.
- 51:25I think before LLM's and how easy it was to just sort of call
- 51:29an API and get something kind of halfway decent, there was just a
- 51:32lot of work that went into like getting a halfway decent ML
- 51:36model into production. That now is not that it doesn't
- 51:40take as much effort anymore, but all that other work with like
- 51:44quality of data and making sure we have the right data pipelines
- 51:47in place, like it's still there. I think like a lot of the focus
- 51:51is going to shift on that and making sure that you're
- 51:54collecting the right information in the 1st place to be your
- 51:57source of info that you're going to feed to an ML model.
- 52:00And I don't know how much of like you know, I think that like
- 52:06as more organisations are able to adopt machine learning,
- 52:09there's going to be more of a need to be able to set U these
- 52:11kinds of systems. And so there's going to be a
- 52:13higher need for mill folks who are really focused on ensuring
- 52:18that data is in a good state. And then also being able to work
- 52:20with product people to be like all right cool.
- 52:22When is a good time that we could take a snapshot of what's
- 52:25live and build an evaluation system based off of real user
- 52:28behaviour so that we can then say, OK, like this is how we're
- 52:32going to be able to iterate on this thing in in the future.
- 52:34Because every product person knows the first thing you
- 52:37release is going to kind of look in some ways.
- 52:38So like, how do you make it not suck anymore?
- 52:41Like, that's kind of one of the keys to doing that.
- 52:43Our skill sets are going to be put a little bit into a blender.
- 52:45I think I'm all for it because I think on both sides we could
- 52:49stand to improve our skill sets and change how we work.
- 52:53So I love that because there is something that you spoke about
- 52:57where it comes when it comes to just hitting an API and making
- 53:00it really easy for someone to go out and get something up and
- 53:04running really quickly, which was not possible before.
- 53:08And there was always that that that came out with like every ML
- 53:13OPS tool marketing where it said, you know, 80% of machine
- 53:18learning or AI initiatives never make it into production.
- 53:21And now I think I haven't seen that stat for years because
- 53:25you're just hit an API. But there's a whole other slew
- 53:30of problems which you mentioned on the front end, where it's
- 53:33collecting the data or the security part of it, and how you
- 53:36make sure that there's no prompt injections or just prompting.
- 53:40In general, how that works. But when it comes to iterating
- 53:44and figuring out how to better your whole system, do you see
- 53:49yourselves going towards using open source models?
- 53:53I mean for you, I know you mentioned in the blog that the
- 53:56open source models aren't that interesting and they're just not
- 54:00as good as what you can get off the shelf right now, but I also
- 54:04wonder if that is something that you have mapped out with the
- 54:07product road map. It doesn't seem like the cost.
- 54:11There would be a reason for you to do it, so I guess it would be
- 54:15for some other reason, like maybe the rate limit.
- 54:17Or I know that a lot of people complain about how Open AI
- 54:21updates this model every other week and then it completely
- 54:24changes things. So if you're at mercy to an
- 54:28update, that can really mess up your AI feature.
- 54:32So I just, I wonder how you think about that and if it's
- 54:36better not to have full control and bring it in house.
- 54:38Yeah, it's it's really about that cost is not really an issue
- 54:42for us. Well, it's about it's about
- 54:46really two things. So first, if we have full
- 54:49control over the model and it's running in our infrastructure,
- 54:52then yeah, that's great. We could even fine tune it to be
- 54:54potentially even more accurate. To be honest, the bar is going
- 54:57to be pretty high there because Open AI is pretty great at being
- 55:00accurate already and it's super, super easy to use.
- 55:04And so you know the ROI there compared to an open source model
- 55:09running in our own infrastructure like it's got a
- 55:11high bar to to cross. Now like I I think that there's
- 55:14sufficient motivation in our industry to build those things.
- 55:17So it's super easy to take an off the shelf open source model.
- 55:22Like you know, there's going to be like a marketplace of models
- 55:24all sort of better suited for specific tasks and sort of say,
- 55:27alright, cool, this is the one we're going to use.
- 55:29And you know, this is the shape of the data that needs to be in
- 55:32to fine tune it. And we're going to click a
- 55:34button and it's going to upload the data and it's going to fine
- 55:36tune it. And then in three hours we're
- 55:37going to have it available for us to use.
- 55:40If that existed, we would probably consider that later
- 55:43this year. But right now it doesn't.
- 55:45And so the amount of time and money that we would spend in the
- 55:48trying to use that only to get something potentially better
- 55:53than Open AI, no guarantee that it's better, is like, well, all
- 55:57right. Or we could wait for Open AI to
- 56:00release an even better model. And yeah, there we go.
- 56:04That's kind of where our, our mindset is.
- 56:05I mean, I think like you know, being at the mercy of Open AI's
- 56:08model changes and model latency, which I've complained about
- 56:12several times actually, which you know they're they're working
- 56:14on, that's that's also motivation.
- 56:17But it's not posed a problem enough to the point where we
- 56:20need to make a move now. If we were starting all over
- 56:23again, I think we would still go the same route that we are right
- 56:27now, just because it's still not easy enough to take an open
- 56:29source model and fine tune it and use it the way that we want
- 56:32to. O also looking forward and
- 56:36thinking about where you're going to take the product next.
- 56:39I know you mentioned how right now agents or the chaining of.
- 56:46API calls are off the table and that is because and you again,
- 56:51you articulated this perfectly. It's something that I have in my
- 56:54head, but I wasn't able to really say, but it's like, hey,
- 56:56if the agent or if one of your API calls has a let's say 90%
- 57:03accuracy rate, if all of a sudden you start chaining three
- 57:06or four of those together, the accuracy rate starts to go down
- 57:10very quickly. And I think anybody that's
- 57:12played around with auto GPT or Baby AGI, they have felt that.
- 57:16Pain first hand. And so when it comes to
- 57:21chaining, do you feel like that is something that you're going
- 57:24to try to do in the future or is it again, one of those things
- 57:27where, yeah, it's not that interesting because we have
- 57:30something that's working and the scope that we're looking at, it
- 57:33doesn't need for Query Assistant the, the feature that we
- 57:36shipped, we won't be using January agents, I think ever
- 57:41because it's, it seems like it's pretty much doing its job.
- 57:44So you know, but there are other parts of our products that are
- 57:49more I use, I use an analogy compile time versus runtime.
- 57:52So Query Assistant is a runtime concern.
- 57:55So it needs to be fast. If it's a little bit less
- 57:57accurate, it's OK because it's very easy to correct things and
- 58:01a user can take over at any point.
- 58:03There are other parts of our product that are more compile
- 58:06time concerns and so having an agent or a chain that you spend
- 58:09so like is it is less accurate overtime to an extent.
- 58:14There are techniques that you can do to sort of make things
- 58:16more accurate over time, but it's significantly increases
- 58:19your latency which is why it's not a good fit for this part of
- 58:23your product. But for other parts of our
- 58:25product where there's a lot of upfront like hey, if it takes 3
- 58:27or 4 minutes to execute but the end result is really, really
- 58:31good, then that's a worthy trade off.
- 58:33It's just that the querying teacher is that's not the right
- 58:37place to put that sort of thing. I do like this idea of.
- 58:40Win. You're looking at trade-offs.
- 58:43What are the most important? And if you really have to focus
- 58:47on latency then chaining is not the option no matter how good
- 58:51the end result is. So.
- 58:54Dude, Philip, this has been awesome, man.
- 58:56I knew it was going to be great. I did not realise it was gonna
- 58:59be so good. It was well worth the wait to
- 59:01chat with you. I think we can end it there.
- 59:04Is there anything else that you wanted to mention?
- 59:07Ohh so we are hiring, but then also I'm currently involved in a
- 59:12project right now of taking observability practises into
- 59:16this whole like people deploying stuff with alms and trying to
- 59:21iterate. And so if if anybody, whether
- 59:23you're an engineer or you're another product manager or
- 59:25whatever, if you're like hey we're going to put something in
- 59:28production and it's gonna be like V 0.1, how do we get from O
- 59:33.1 to one dot O as effectively as possible?
- 59:36I would love to chat with you and you know my info should be
- 59:39in the show notes or something like that.
- 59:41You could also e-mail, e-mail me directly at Phillip at honeycomb
- 59:45dot AO and I'd love to have that conversation, because whether
- 59:48observability practises are the right thing or not for the
- 59:53problems you're trying to solve, that's something I'm trying to
- 59:55figure out as well too. There might be a version of
- 59:58Honeycomb that could work well for these sorts of problems, or
- 1:00:01there might not be, right? This is a discovery sort of
- 1:00:03thing, so that's what I'm currently sort of after, and
- 1:00:06anybody who's interested, I'd love to chat.
- 1:00:08I love that. And I also want to chat with
- 1:00:11these people, man. That's a great, great
- 1:00:13initiative. So I'm excited.
- 1:00:16I I love what you put out. I love the work that you're
- 1:00:18doing, and we'll leave all of the blogs that you've written in
- 1:00:22the show notes. And I'm gonna try and propose
- 1:00:24that you write a few more from this conversation.
- 1:00:27Or maybe I'll just distil what you've said into a blog.
- 1:00:30Now, Philip, this was great, man.
- 1:00:32Have a great day. We'll end it there.