Full Transcript

·YouTLDR

Build Evals That Actually Matter - Nick Ung & Akshay Sharma, Lyft

37:42EnglishTranscribed Jul 23, 2026
0:05

Hi everyone. Uh my name is Nick and I'm

0:09

here with Ashe to give a talk about

0:12

ethos.

0:14

Uh we are from we're from Lyft and we've

0:17

been building lift customer support AI

0:20

agent for a year or two now and gave a

0:23

lot of a lot of thoughts about how to

0:25

build eval that actually matters and

0:28

scale um our AI agents multi multiAI

0:32

agent system. Uh just a little bit of

0:34

quick introductions. My name is Nick.

0:37

I'm a data science manager. I've been at

0:39

lift for six years a long time lifter.

0:42

uh really excited to talk to you a

0:45

little bit more about euph.

0:50

>> Hi everyone. Uh I'm Aka. I'm in Nick's

0:53

team and we've been working together

0:56

uh on customer support agents for Lyft.

1:00

Uh improving the hardness, improving the

1:02

evals, things like that. and I've been

1:05

at Lyft for almost four years now and

1:07

very excited to be here and talk about

1:10

uh building events that actually matter.

1:16

>> Super excited to be here and super

1:18

honored to be to be on the online track

1:21

for AI engineer warfare. Um yeah and

1:26

let's dive in. Um for the agenda of

1:29

today uh our talk will primarily focus

1:32

on eval uh we will start by sharing how

1:37

we think about the end to end pipeline

1:39

for our evaluations for building support

1:43

customer support AI agent system. Uh

1:46

we'll go into deep dive into each

1:47

component uh more deeply as we go. Uh

1:51

we'll start by talking about offline

1:53

evaluations, online evaluations,

1:56

eval harness as well as what we are

1:58

planning to build going forward.

2:02

All right, let's dive in. Um I want to

2:05

quickly explain the

2:09

you know high level system of how we

2:11

think about evaluation system for AI

2:14

agents. Uh so here you can see we have

2:17

the development phase and the production

2:20

phase. Uh so during development if

2:23

you're building agents you should be

2:25

very familiar with uh you know managing

2:28

contacts building rep pipeline to give

2:31

your agents educational context uh

2:34

defining your tool building your agentic

2:36

graph as well as writing a system

2:38

prompt. Uh so once all of that engine

2:41

agent engineering process is done you

2:43

have an you have an AI agents

2:46

uh the way we think about this is before

2:49

we launch this AI agents to productions

2:52

we want to go through a rigorous offline

2:54

evaluation process to make sure that

2:56

this agent uh actually has sufficient

2:59

performance before we launch this to a

3:02

live uh users. So coming from you know

3:06

data science and machine learning

3:07

background uh we've been building model

3:11

machine learning model for for for for a

3:13

while and I think the way that we think

3:16

about agent development is very similar

3:18

to building machine learning models as

3:20

well. If we are running um offline

3:24

evaluations for our machine learning

3:26

model before that goes to productions, I

3:28

think we should do the same for AI

3:30

agents as well or any other agentic

3:32

platform agentic applications.

3:35

uh but what I think you know offline

3:38

evaluation how that how that is

3:40

different than uh traditional machine

3:42

learning model is that you know we

3:44

typically we're building specifically

3:46

for customer support AI use case we're

3:49

building a agent that's multi-turn uh so

3:52

for offline evaluation there will be a

3:55

component of simulated conversations so

3:59

you want you typically want to have a

4:02

data set synthetic data set that's

4:04

represent representative of your

4:06

productions traffic. Um, have a use LM

4:09

that plays plays out the complete

4:12

multi-turn simulated conversation. Um,

4:15

as well as a having a grader such as a

4:17

LM as a judge um to be able to evaluate

4:20

how good that interactions was. And then

4:24

we have a launch gate, right? We want to

4:28

make sure that we have certain criteria

4:31

on our offline eval and we're meeting

4:33

that criteria before we decide to launch

4:35

this AI agent to productions.

4:38

And so the the real imperative here

4:41

really is that we don't want to use our

4:43

live user as you know test data for our

4:46

AI agents. And I think in any any cases

4:50

that that is not not good practice. So

4:52

we really want to emphasize the

4:54

importance of having a evaluation

4:56

process.

4:58

So once the agent pick productions we

5:01

also have an online evaluation pipeline

5:03

as well. We have our own favorite

5:06

tracing tools to uh trace all the

5:10

executions and context that the AI agent

5:13

use to respondse to a real user in in

5:16

productions environment. We have our

5:18

online grader as well that grades how

5:21

well our AI agent is doing in

5:22

productions. And as far as having a

5:25

human in the loop pipeline to do error

5:28

analysis, identify failure mode and

5:31

feedback that insights to the

5:33

development teams to continuously

5:35

improve our AI agents.

5:39

I want to quickly go over I think three

5:41

of the most common reasons why we think

5:44

uh evaluation typically fail in uh for

5:48

for different teams. So the first reason

5:51

is that you know the the greater that we

5:53

create the scores that we create needs

5:56

to be meaningfully gating something. Um

5:59

this is what we really emphasized on in

6:03

the previous slide that we need to have

6:04

a launch gate. If your LM is a judge is

6:07

just floating out there that there's a

6:09

score but no one is really using that

6:11

score as a meaningful gate uh for your

6:15

development and productions environment

6:18

then that LM is a judge is not not

6:20

available.

6:22

Uh we have also seen a lot of a lot of

6:26

mishap people have when they're creating

6:29

the LM judge. Um there's a lot of

6:32

different opinion out there on in terms

6:34

of how do you create a good LM judge and

6:37

typically uh and unfortunately also very

6:41

early on in our journey the LM is the LM

6:44

judge that we created are very noisy too

6:47

generic uh it will output a score and

6:50

but people don't really believe in uh in

6:53

what the LM judge is doing or they don't

6:55

think the LM judge insight is actionable

7:00

And finally, I think when something

7:02

regresses in productions, we need to

7:05

have clear mechanism to be able to to to

7:08

catch that regression as well as

7:10

identify clear owners to be able to take

7:12

actions on uh the insights of our

7:15

graders and regression gates.

7:20

Very cool. I want to sequence into

7:23

talking about our offline evaluation

7:25

system. And as we as I touched on early

7:29

on, I think this is the most critical

7:31

piece uh going from development cycle to

7:34

to productions, we really want to have a

7:36

robust offline evaluation system to be

7:39

able to get more confidence in uh in the

7:42

AI agents that we are shipping to

7:44

productions. We took a lot of

7:46

inspiration from um this paper called

7:48

Taobench uh which is developed by the

7:52

wonderful people at Sierra AI. uh and

7:54

this is specifically for customer

7:57

support AI agent but we also think this

8:00

is applicable for any userf facing

8:02

agendic applications.

8:05

Uh so here as you can see this is a

8:09

offline offline simulations where you

8:11

have the AI agent as well as a user LLM

8:16

that are interacting with each others to

8:18

produce the uh multi-turn traces.

8:22

uh you have agent domain policy which is

8:25

essentially what the you know for each

8:28

customer support use case there is

8:30

instructions policy on how to handle

8:32

different different customer support

8:34

issues.

8:38

So taking inspiration from towbench this

8:40

is sort of a high level approach that we

8:43

have in creating our offline simulator.

8:46

uh as we mentioned earlier we have our

8:49

lang graph agents that we've built and

8:53

we have defined

8:56

uh an instructions for our our user

8:59

length right as you can see for

9:02

simulation wise we define the user

9:05

intent we define you know what this

9:08

intent is supposed to uh to represents

9:12

and we define the user data point or the

9:15

world state of of our user. For example,

9:18

you know, the driver that are coming to

9:20

us might be a luxury driver that might

9:22

have been driving for us for for a

9:24

couple of years and so and so forth. And

9:27

finally, to define the user user

9:30

behavior, user personas as we would

9:33

typically see with our real uh you know

9:35

real lift user as well, we also created

9:38

these different persona for our user. uh

9:41

one example is you know this can be a

9:44

loyal longtime lift customer but they

9:47

are frustrated with uh with a lift

9:49

earning systems.

9:51

So in our offline simulator we have this

9:54

lang graph agent that are you know

9:57

interacting with our user ln model and

10:01

generating this multi-turn trajectories

10:04

uh of uh this multi-turnic

10:07

uhic trajectory and we also built our

10:12

offline offline grader or offline

10:14

evaluator uh L1 judge is a big component

10:17

of that. we will dive a little a little

10:20

a lot more deeper into how to build a

10:22

great LM as a judge.

10:24

uh and apart from you know alm is a

10:27

judge we also have more deterministic uh

10:30

evaluator as well and these usually

10:32

looks like a code assertion as you will

10:34

see in traditional unit test uh and for

10:37

example here some some of the

10:39

deterministic criteria that we have

10:42

created so far looks something like this

10:44

right if you know if in this in this

10:47

specific interactions the AI agent is

10:50

supposed to grant concession we'll write

10:53

like a rules like this whether or not

10:54

the AI agent has indeed grand

10:56

concessions uh and we will compare the

10:59

agent uh agent tool calls with the

11:02

expected outcome to make sure that uh we

11:05

h we can measure the accuracy of the

11:08

agent instruction following behavior.

11:16

So one of the big gotcha that we face

11:20

with running our offline evaluation is

11:23

the creating syntactic data is is one of

11:27

the key challenges in making sure our

11:29

offline data set is representative of

11:32

our productions um data. So uh here we

11:37

you know um here we have a meme here. Um

11:42

what ideally what you don't want to be

11:43

doing is just to simply prompt an LM

11:46

model to generate 50 different test

11:49

query for your offline data sets. Uh so

11:52

here's a couple of suggestions where you

11:54

can approach this you know much more

11:56

much more realistically and assemble a

11:59

data set that that closely resemble to

12:02

your production data. So this is also

12:05

something that we we try to do for

12:08

customer support AI agent as well. We

12:10

take uh we we we we take some sample

12:14

from our production data. Uh so uh lift

12:19

user has been reaching out to support

12:21

for a long time. We take a sample of our

12:24

real production ensemble and uh

12:26

supplement our offline data set with

12:28

that. and you and the second thing that

12:32

we can we we do is we mutate uh

12:35

different criterias for from our offline

12:39

um data sets to be able to cover

12:41

different golden path and edge cases.

12:48

So

12:51

one problem with our offline evaluator

12:54

is that

12:57

as as we mentioned in the previous

12:59

slide, if you were simply uh sampling

13:03

different 50 50 test use uh test query

13:06

from uh by using a lm model. Uh another

13:11

thing another big gotshot that we we

13:14

would face in in building this offline

13:16

simulator was that we were using a

13:19

frontier lab LM uh model to roleplay

13:22

lift user in our offline evaluations.

13:26

Um and for the most part, you know,

13:28

frontier lab model are trained to be

13:30

helpful assistant rather than a uh lift

13:35

user that might not uh that might not

13:38

sound as nice as always. So I I think uh

13:43

for everyone that have tried customer

13:45

support before, you know, you don't

13:47

typically reach out to customer support

13:49

agent uh with a very nice verbin. Um so

13:53

in our first pass at running our offline

13:57

evaluation what we've noticed is that

13:59

our LM user sounds almost too nice and

14:03

as you can see on on the right here

14:06

these verbadiums are very very very very

14:10

use the LM user are very patiently

14:13

explaining the issues that they are

14:14

facing in productions

14:16

and our first attemp at our offline

14:20

evaluation gave us 90 fast pass rate or

14:23

accuracy rate right uh this almost

14:25

sounds too good to be true and I think

14:28

it indeed is too good to be true so in

14:32

reality these are the real user

14:34

verbating that we get in productions

14:37

um as you can see here most user they

14:40

are they're impatient they're already

14:43

frustrated so the berating they they

14:46

they don't want to explain their issues

14:49

like a LM user

14:52

Uh so typically what we see in

14:54

production is is something like this. Uh

14:57

and in fact in reality the this makes

15:00

you know AI agents much more difficult

15:03

to evaluate.

15:06

So what can we do here? How how can we

15:11

make sure our lift user LLM uh simulate

15:16

this real life lift user much closely.

15:19

Right. Uh so

15:22

what we what we how we approach this is

15:26

we fine-tune a LM model with lift user

15:30

verbatim. So instead of speaking like

15:34

this very verbose and very nicely

15:36

impatiently explaining their issues uh

15:39

our LM user will

15:42

produce verbatim that's resemble this

15:44

much closely. And the benefit of this is

15:48

while you know we we did see our

15:49

evaluation score goes down after we have

15:52

fine-tuned a LM model that speaks more

15:55

like our lift user and therefore making

15:57

our evaluation more difficult. Uh but in

16:00

reality, this is really what you want uh

16:02

when you're building this user

16:04

simulator, right? If you have an EAL

16:07

that's too easy, that doesn't give you

16:09

any real uh production insights into how

16:12

your AI agent is actually going to

16:14

perform. Um and this also give you a lot

16:17

more room to be able to tweak your AI

16:19

agents to deal with quote unquote

16:21

difficult user. And as I as I gave a

16:26

little bit of sneak peek earlier as

16:27

well, we also did a lot of work to

16:30

define lift user personas. Uh this can

16:33

really ground our LM user to adopt a

16:36

specific lift user persona and therefore

16:39

uh simulate our real life user much more

16:41

closely. Uh a couple of different user

16:44

persona that we've defined here uh are

16:47

you know bypasser user who just want to

16:49

escalate to agent regardless of and not

16:51

giving AI a chance refund seeker uh AI

16:55

skeptics.

17:00

So the

17:04

we we really also took inspiration from

17:06

this paper uh from Microsoft user alen

17:10

uh Microsoft paper uh and I think they

17:13

adopt a very similar similar approach as

17:15

well they fine-tune a uh user outlet

17:18

model and so evaluation score goes down

17:22

um but I think in reality this is really

17:25

really what's expected and and good for

17:28

for your applications.

17:31

>> All right, I I'll hand it off to Ash to

17:33

talk more about LM judge.

17:37

>> All right. Uh, hi everyone. So, I'm

17:40

going to take from here. I'll talk about

17:42

second problem which we usually face

17:44

when we are doing eval with LLM as a

17:47

judge. And here you can see uh this is

17:50

how pretty much everyone is using LLM as

17:53

a judge to evaluate their agents. The

17:55

focus can be slightly different based on

17:57

the use case. Someone can focus more on

18:00

safety. Someone can focus more on cost

18:02

and latency. Someone can focus more on

18:05

quality. But people are going to measure

18:08

these sort of metrics more or less. So

18:11

uh we want to detect leaks, we want to

18:13

detect safety issues um and and things

18:16

like that. So some parts are

18:18

deterministic which can be evaluated by

18:20

code and some are not which are

18:22

evaluated by the LLM.

18:24

Now the problem with this approach is uh

18:28

that these metrics are too generic and

18:32

not actionable. So for example, we also

18:36

started with our eval journey using

18:38

pre-built metrics from deep eval which

18:40

were uh which were measuring tool usage,

18:43

appropriateness, response, helpfulness,

18:46

conversation, naturalenness,

18:48

completeness and things like that and we

18:51

did see those metrics but the problem

18:53

was these metrics were not actionable.

18:56

They were not giving us any actionable

18:58

insights. If something if let's say

19:00

response helpfulness is 0.5 then what do

19:02

we do with it?

19:04

So uh things like and other other scores

19:08

like toxicity score, bias, fairness,

19:10

conciseness, all these are kind of

19:12

relevant. But if the metrics are just uh

19:16

scores, we we don't know what to do with

19:18

them. So we can use these pre-built eval

19:22

metrics as a baseline but we shouldn't

19:24

use them as our core eval metrics

19:26

because we want eval metrics to be

19:29

actionable and tied to the business

19:30

outcome or the product which we are

19:32

focusing on.

19:34

Uh

19:38

okay. So what LLM as a judge should be

19:42

uh we collaborate very closely with u

19:47

domain experts and utilize their

19:49

insights. So eval should be framed

19:51

around a task success or failure and a

19:54

binary outcome is very easy to calibrate

19:57

and train um LLM jets that can

19:59

consistently score your agentic

20:02

trajectory. When we partner with domain

20:05

experts and data scientists to build

20:07

metrics which are actionable and aligned

20:10

with business goals, we can see much

20:11

more meaningful results uh and

20:14

actionable insights. Not only this is

20:17

more consistent uh but when an agent

20:20

fails an interaction, we can

20:21

systematically analyze the error pattern

20:24

and have and actually know what what we

20:26

can do to fix this. Here is an example

20:30

of an uh action enable metric for our

20:32

use case which is called education

20:35

rubric. Here the AI we we define the

20:38

metric how it should be and we define

20:40

success and fail criteria for LLM judge.

20:43

So for example the AI agent tries too

20:45

many times to educate the user uh if it

20:48

could have escalate escalated the the

20:51

issue

20:52

or if it's escalating too soon without

20:55

giving any chance to educate the user.

20:58

So things like that comes under failure

21:00

category. So we we mark this as fail. Uh

21:03

but if it's an expected behavior, we

21:06

mark it as as pass.

21:09

Uh okay. So

21:13

with this how do we validate if our uh

21:17

LLM judge is working as expected?

21:21

First thing is we need to treat it as a

21:22

classifier. So how we train our

21:26

classification models in machine

21:27

traditional machine learning, we can

21:29

also treat our evaluation judges as as

21:34

those traditional ML classifiers with

21:36

binary outputs. Once we have binary

21:39

outputs for every metric or a task based

21:42

on our business goals and functional

21:44

requirements, we can handle label uh

21:48

around 100 examples with pass fail

21:51

labels and then split the data into uh

21:53

train dev and validation sets like how

21:56

we used to do with machine learning

21:57

models.

21:59

Uh then we score precision and recall uh

22:02

for our judge based on human label

22:05

ground truths which will give us an

22:07

actual report on how good our uh judge

22:09

is performing.

22:11

Uh

22:14

and how do we split our data to do to

22:18

calculate precision and recall is this.

22:22

So we split the data similar to how we

22:26

used to do in training machine learning

22:28

models but the difference is the

22:30

percentage of splits. Uh and here we are

22:33

not actually training model weights. So

22:35

we are just using the data to inform

22:37

judges prompt. So the percentages are a

22:40

little bit different. For example, in

22:42

training data, we we pick a few short

22:45

examples from that from this set uh for

22:47

the judges prompt and then we iterate

22:50

the prompt against the dev set uh and

22:53

improve our hardness or our prompt and

22:56

then finally we validate against the

22:58

test set uh to see that we didn't

23:01

overfit on the dev examples.

23:04

This is the practical uh

23:08

way of like splitting the data and then

23:11

calculating precision and recall uh

23:13

scores for your judge to actually know

23:16

that the judge is working as as

23:18

expected.

23:23

All right. Next slide. Okay. So

23:28

this is another thing which uh

23:32

this is another thing which most of us

23:34

ignore when we are doing evaluations uh

23:36

which is criteria drift and validating

23:39

the validators. The key idea is that we

23:43

actually discover what our evaluation

23:45

criteria is by looking at the data and

23:48

grading our outputs.

23:50

uh our and our sense of uh quality will

23:53

also evol evolve uh with with new data

23:56

we see and more uh examples we grade. So

24:03

the evaluations should not be decoupled

24:05

from model observations. In fact they

24:08

should be developed uh they should be

24:11

co-developed with the model when we are

24:13

testing the evaluator and calculating

24:16

the precision and recall scores.

24:19

So uh we there there's always a gap when

24:23

we when we talk about LLM as a judge. We

24:26

cannot define the criteria beforehand

24:28

and then evaluate agents against them.

24:31

Uh I our criteria should also be

24:33

evolving as and when we see more

24:35

examples and then we should refine our

24:37

metrics uh for our judges and then

24:40

evaluate judges on top of those metrics.

24:47

Okay.

24:50

So the next step uh

24:56

one of the things which which can make

24:57

the numbers we are reporting more

24:59

meaningful is to add some statistical

25:01

rigor to it. Right? Uh we report

25:04

alignment rates as bare point estimates.

25:08

So if we add confidence intervals, we do

25:10

some calibration and proper sampling, uh

25:13

the same numbers can become more

25:16

meaningful.

25:17

We should definitely reserve the

25:19

expensive rigor for the moments. Uh

25:21

number actually gates something or like

25:25

like a shipping decision or we are

25:27

reporting numbers to u company leaders.

25:31

But depending on the use case we should

25:34

definitely have uh confidence intervals

25:37

for the for the numbers we report

25:40

because every score needs an interval.

25:45

So this is just a small example to give

25:48

you uh an insight on what this actually

25:51

means. Uh let's say we have two

25:53

evaluators and one scores 84% and one

25:59

and the other scores 88% and the number

26:01

of samples we number [clears throat] of

26:03

traces which we have uh used is let's

26:07

say 50. So to show that like this is

26:11

this is a very small gain and we we need

26:14

much more than 50 examples to actually

26:17

uh show that this gain gain is real. Uh

26:21

with just 50 examples and only four

26:24

percent point percentage gains gain we

26:27

we don't actually know if this gain is

26:29

real or not. So bigger gains and bigger

26:33

gains and paired designs need far less

26:36

uh and we can reserve the rigor

26:39

statistical rigor for for things which

26:42

matter the most.

26:46

Okay. So this is a non-exhaustive list

26:51

of observed eval anti patterns. I'm not

26:54

going to read all of them but uh these

26:57

definitely contain some lowhanging

26:58

fruits. We need to put in time and

27:01

effort if we if we need meaningful

27:03

evals. So we cannot rely on LLMs for

27:07

everything yet. uh and what I can say is

27:11

ignoring the data is one of the most

27:13

important uh things which we shouldn't

27:16

do uh and which we sometimes don't focus

27:19

on due to lack of time or resourcing but

27:22

it acts as the foundation for meaningful

27:24

eval evaluations. If you don't look at

27:26

the data, you won't be able to create

27:29

meaningful criteria or labels. And if

27:32

you don't have labels, you won't be able

27:34

to evaluate your judges. And if you are

27:36

not evaluating your judges, you don't

27:38

know if your u agentic pipeline is

27:41

working as as expected. So this acts as

27:44

a base. So one of the most important

27:46

things we should not ignore.

27:50

Okay. uh we we said that we want to make

27:55

metrics more actionable

27:57

and standardize the pipeline but how

27:59

actually we should do it. So this this

28:02

gives you like a template to to do an

28:05

error analysis loop and it is important

28:08

to know that this loop is something

28:10

which runs continuously. It's not uh not

28:13

an one-off audit. Uh so we deep dive

28:17

into raw traces. So once we have logged

28:21

our traces for our agentic flows, multi-

28:23

aent systems or whatever we have in our

28:26

uh use case then we pinpoint failure

28:30

modes. So basically we try to identify

28:33

what exactly is failing and we only keep

28:36

the metrics that change a decision. We

28:39

remove all the noise. We only prioritize

28:42

on the metrics which are tied to

28:43

business use cases, functional uh

28:46

requirements and actually something

28:48

which changes a decision. Then we form a

28:51

fresh premise

28:53

to re-evaluate and then we repeat it. So

28:57

we can have like a regular cadence of

28:59

doing this pipeline. It can be weekly,

29:01

it can be bi-weekly but this is

29:02

something which needs to run uh

29:05

continuously and it's it's not a one-off

29:08

audit.

29:14

Okay. So, tracing tracing as we said is

29:18

uh one of the most important things and

29:21

everything kind of depends on it. For

29:23

diving deep into raw traces, we

29:25

definitely need to log them first. So,

29:27

we can use tools like Langmith,

29:29

Langfuse, etc. to log and view the

29:31

traces. Uh and here each trace captures

29:35

the full graph execution. which nodes

29:37

ran, what LLM saw, which tools were

29:40

called, uh what was the token usage,

29:42

what was the latency for every call and

29:44

things like that. We can also enrich

29:46

traces with metadata if you want, which

29:49

gives you more insights than uh than the

29:51

actual data.

29:54

Okay. And we also have annotation cues.

29:56

Annotation cues are nothing but uh an

30:00

interface which is very helpful for

30:03

domain experts to label or give feedback

30:06

to evaluators and in an easy to

30:08

understand UI. So they don't have to

30:11

look at the raw traces uh JSONs and

30:14

stuff like that to figure out what to

30:16

focus on. They can use this annotation

30:18

queue and they can give feedback or

30:21

label examples easily. We can then add

30:24

these traces to data sets for offline

30:26

evaluation or we can use this for our

30:30

calculating our precision and recall for

30:33

our judges. So this forms the basis to

30:35

validate the evaluation with ground

30:37

truth labels.

30:43

>> Okay. I now I'll hand it over to Nick to

30:48

to close the evaluation loop.

30:51

Thank you Ash. Uh and I think the the

30:55

goal of having eval is to be able to

30:58

feed uh our evaluation insights back

31:01

into improving the model performance or

31:04

the agents performance. So here uh I'll

31:07

introduce a couple way that we think

31:10

about continual learning for our AI

31:12

agent and closing the evaluation loop

31:14

and here you have model learning,

31:17

context learning and harness learning.

31:20

Model learning is really about you know

31:22

post training updating the underlying

31:24

model weights and training a custom LM

31:27

model. Uh context learning and harness

31:30

learning is really more about improving

31:33

uh everything else other than the model.

31:35

Uh so context is improving what

31:38

information the agent actually sees.

31:40

This can be document. This can be uh the

31:43

store memories of the user. Two outputs

31:46

and so and so forth. Harness uh that

31:50

means updating the model system prompt

31:53

and two schemas control flow routing

31:56

retries and and so and so forth.

32:01

So I think from you know the error

32:04

analysis that actually has shared

32:05

earlier I think that has really helped

32:07

us to understand how can we improved uh

32:11

our agent prom as well as updating u

32:15

updating our knowledge base and tune the

32:18

context management strategy that we have

32:20

our AI agent the identify failure mode

32:24

really help us uh be able to feed that

32:26

insights into actual improvement for the

32:28

agent AI agents.

32:31

So I want to quickly talk about what's

32:34

next for us. Uh in our journey of

32:36

building customer support AI agent at

32:39

lift uh we

32:42

have a we we we have we have some some

32:45

level of ability to run our offline u

32:48

simulator but in fact I think you know

32:52

it's not repeatable. These are currently

32:54

stored as uh scatter script across

32:57

different notebooks and different

32:59

analysis repo. Uh I think one thing that

33:02

we're looking really really looking into

33:03

investing is a systematic eval harness.

33:07

Uh then having a

33:11

uh a harness system that can help run

33:13

our offline evaluation in in a

33:16

systematic and standardized manner and

33:18

allowed different people to contributes

33:20

to uh our evaluation suite with a very

33:24

we predefined uh primitive and config

33:28

based workflow.

33:30

And another thing that we've been

33:32

talking thinking a lot about is uh post

33:35

training. uh as we mentioned earlier you

33:38

know identify model failure mode has

33:40

really helped us tune the agent context

33:43

and as far as the agent harness uh but

33:45

over the years we have gathered a lot of

33:48

real user signals on our agent

33:51

performance as well uh so we were really

33:54

starting to think about how do we

33:56

fine-tune uh model that does different

33:59

tasks for our customer support AI agent

34:02

as well as framing a reward modeling

34:05

problem to to enable reinforcement

34:07

learning.

34:10

I want to quickly share a little bit

34:13

about the work that we're doing with

34:15

eval hardness and how we think about

34:17

building uh building building evaluacing

34:24

agentic applications. Uh so again, EVAL

34:28

is really that scaffolding that you that

34:31

we need to be able to run EVA

34:33

efficiently uh in a standardized format

34:35

across uh all the different agents and

34:39

sub agents that we have for customer

34:41

support AI agents and and as you can see

34:45

from my offline simulator slide earlier

34:48

uh our eval harness is config driven and

34:51

these are typically stored as YAML file

34:53

that's easily editable uh by different

34:56

contributor and not just by engineers.

34:59

Uh analysts and data scientists can can

35:01

contribute to this uh evaluation suite

35:03

as well.

35:05

And you know with thousands if not tens

35:09

of thousands of examples uh in our

35:12

evaluation suite we need you know

35:14

parallelisms and throughput to be able

35:16

to run uh our offline evaluation in a

35:19

reasonable amount of times and to enable

35:24

uh user to be uh different user to be a

35:26

to be able to contribute to our eval

35:29

evaluation suite. We also define you

35:31

know primitive around our eval harness.

35:35

Uh these are high level things like

35:37

task, data sets, personas, LM adapter

35:41

and an evaluator.

35:44

And after all you know the benefit of

35:46

having a eval hardness is that you can

35:48

define the config once and run these

35:52

eval indefinitely many times across

35:54

different at different touch points or

35:56

different gates of your agent

35:58

development process. This can be you

36:00

know locally when you're developing this

36:02

agent

36:04

uh at any point when you tune a prompt

36:07

you can run the evaluation suite and get

36:11

a immediate in uh immediate feedback on

36:14

how your agent is doing compared to the

36:16

previous versions. We can run these at

36:18

pre-commit hook uh to make sure that our

36:22

performance doesn't degrade before we

36:24

push a change uh to uh our agent

36:27

service. Uh another area that we are

36:30

looking at is also at CI/CD and how we

36:33

can use our eval harness to uh build our

36:37

regression test suite accept acceptant

36:39

test suite as well.

36:43

So that wraps up our presentation today.

36:47

uh we've gone through a lot of we've

36:50

gone through a lot of uh a lot of

36:53

different topics uh for evaluations

36:57

uh really I think this is an endto-end

37:00

journey uh for building a evaluation

37:03

pipeline that works for customer support

37:06

AI agent or any userfacing agentic

37:08

applications

37:10

uh ashen and I we are very interested to

37:13

hear about you know what you all have

37:15

been working on and share share any

37:16

learnings that you have for eval. So

37:19

feel free to contact us uh if you have

37:22

any questions or you you just want to

37:24

share about brainstorm about how to

37:26

improve your evaluations.

37:30

All right, thank you and I hope you'll

37:32

enjoy the AI engineer warfare.

37:36

>> Thank you.

37:38

>> Thanks all.

More transcripts

Explore other videos transcribed with YouTLDR.

Get the TLDR of any YouTube video

Transcribe, summarize, and repurpose videos in 125+ languages — free, no signup required.

Try YouTLDR Free