Computer Use at the Edge of the Statistical Precipice — Pierluca D'Oro, Programma Labs
AI Engineer · 17 min · 124 sentences · from YouTube's caption track
Each timecode opens YouTube at the start of that sentence. Line anchors (#s42) are the cue ids in the WebVTT, and every line carries its start and end seconds. All transcripts has every talk, and the whole corpus as one file.
- 00:01[music]
- 00:12Hi everyone, I am Pugadoro and I'm the founder at Programmabs and today I'm going to talk about computer use agency evaluation and most of the work um and the details about it are in a in a paper with this title and I did this work while
- 00:29Meta super intelligent labs with the collaborators you see on this slide.
- 00:36And so to start I want to introduce this type of uh agent is a weird type of agent that I call a replay agent.
- 00:44So imagine we run this process um we run our frontier a frontier model a good one uh on a benchmark we like and then for every task we collect
- 00:54uh a successful trace or a successful trajectory and we have a recorded tape of this type.
- 01:01So the actions might be tapping uh typing scrolling and we record this and then we do this for all the tasks in the benchmark and we com sort of compile this into
- 01:14a replay agent that just when the tasks arrive replace that sequence of actions blindly.
- 01:22So if you do this for common benchmark with hundreds of tasks, this is going to be a script that is like less than a megabyte.
- 01:28And this is a completely valid like type of agent that you can evaluate on the benchmark.
- 01:34And if you try to evaluate this uh this kind of agent on standard benchmarks such as OSW word or mobile word, you will see that the success rate of this agent compared to the uh frontier model from which the agent was extracted
- 01:48is actually uh the same or even better.
- 01:52So this is a kind of a weird but maybe trivial phenomenon but I would argue that we shouldn't accept this kind of blind scripts beating the frontier models and the trick here or like the reason for why this happens is that um determinism
- 02:09of of the existing of most existing benchmarks and so uh if the benchmark is static is deterministic then it is somehow gameable by this sort of strategy and it goes even deeper than this like if you look at one of the metrics that people have been using in the past for evaluating
- 02:27computer use agents um and it's pass at K this metric is defined as you know the probability of at least uh one of K attempts succeeding um but if you look into like the details of how this metric works on a deterministic
- 02:42environment you will see that is literally um and we prove it like formally in the paper uh like evaluating the success rate of the replay agent that I've shown to you.
- 02:53Um so so basically if that replay agent felt weird uh to you also pass at K on computer use tasks should somehow feel weird to you.
- 03:04Um or in other words pass K is sort of a metrification of that uh of that exploit of the replay agent.
- 03:12So these are two problems specific problems but they point at two general classes of problems in in Kua benchmarks and uh these problems are around environments.
- 03:24So building environments and evaluation building good metrics to know if your agent is good or not.
- 03:31uh and in particular we we want to have environments that don't have exploitable structure and we want to have metrics that are not fragile or they are not based on fragile statistics.
- 03:42Uh and so I'm going to talk about the both of the aspects now.
- 03:46So let's talk about building principle environments first.
- 03:50So the first aspect um that I uh that I worked on while uh you know working on environments is to try to design a set of principles that could be guiding principle when
- 04:04building environments so that build like robust environments and trustworthy environments.
- 04:09Uh and so if you think about the problem that I was describing with uh replay agents, uh the first thing that you could think about as a solution not to have a replay agent to like hack your benchmark
- 04:20is uh to have your benchmark to be multiffactorial.
- 04:24So that means uh varying um generating variation for your benchmark.
- 04:30So having stockasticity into the benchmark and for computer use environment that means uh varying stuff like uh data or appearance or or simply the initial state.
- 04:41But if you do that you want to make sure that all the combinations that you generate are valid.
- 04:47Uh and so you want to have as a design principle in your environment also a system for checking and verifying that everything is working as as intended for every combination.
- 04:59And of course you want uh the usual uh the usual things for your environment.
- 05:03So you want your environment to be sandboxed and you want uh your environment to support like verifiers.
- 05:10So privileged information and you want of course your environment to be realistic.
- 05:15So if it's a reproduction of a real system, you want uh that reproduction to to be faithful so that the score that you get out is um is a good one.
- 05:25Um and so if you sort them out uh you can remember these sort of principles as the prism principles for for environment design.
- 05:33And we tried that method to build uh a benchmark that would be satisfying all of these principles.
- 05:40And if you look at existing benchmarks, some of them do some things uh in a good way.
- 05:45Some of uh some others do other things in a good way.
- 05:48But there is no unified benchmark that sort of matches all of these boxes.
- 05:52And we built one that is called DGword.
- 05:55So the way DG word uh in practice was built is as a set of like mobile apps um for for Android devices.
- 06:03So it's 15 apps on spanning different domains uh with 387 uh verified scenarios and uh a number of configurations.
- 06:14So uh these configurations they are in a large number of 3.2 million.
- 06:19Uh but the important thing is that they are verified.
- 06:22Um and indeed uh the axis are the ones that I was mentioning before.
- 06:27So you can imagine for each one of the tasks you can vary um things like the the instance.
- 06:33So what is the exact amount of money that you're sending for instance or the data profile like which kind of contacts or emails you have in the data for your uh for your task or like the theme
- 06:46or the starting screen.
- 06:47So do you start from the login page or do you start from another valid page?
- 06:51So if you do the math, even if you start from a relatively low number of uh base cases for each one of these variables, you end up having many many combinations.
- 07:02So you you can get to like millions of combinations and if you scale this up, you can get to easily to billions of of combinations.
- 07:10Um and all of these uh you know different axis can be can be manipulated by coding agents because in the end they are like forms of software.
- 07:19So you can have a coding agents to generate different instances different themes and such.
- 07:24Um, so you might think maybe it's easy to build an environment.
- 07:27You just generate as much software as you can uh with a coding agent and then you have like a diverse environment.
- 07:34But it's a little bit trickier than that.
- 07:36And indeed coding agents can generate a lot of software, but a lot of software is not the same as an effective cool environment.
- 07:45And the reason for this is that you need to verify the correctness of of your uh combination, right?
- 07:53Um and so the the the key to scale these up is to have a verification strategy for the variations of of your tasks.
- 08:02Um and so the kind of verification strategy to follow is is this one.
- 08:06So you you can generate many configs all the combinations uh of the different factors that I that I've explained before h and you can then have a system that rejects the broken ones the ones that are not valid
- 08:20and just keeps the the valid configs and so in the case of dig uh we did this by building a system that looks a little bit like a compiler and that works in the in the following way.
- 08:32So you start from a parameterized task template.
- 08:35Um and so uh this might look like something like this.
- 08:39So you have send a certain amount or certain recipient and then you have a verifier that corresponds to that template and then you have mock data uh for that task.
- 08:50So data that you need for that specific task to happen.
- 08:55uh and then we have a system that is like the dig compiler that takes all of these and given a base case of data base case of UI state
- 09:04puts all of these together and creates like a valid configuration and so you can build systems like this in which the the main craft is good software engineering uh to make sure that actually the combinations that you have are both diverse and valid.
- 09:21And so if you build a benchmark in this way um and you follow the the prism principles that I was talking about before you actually can have a benchmark that is not hackable in that way.
- 09:33Uh and so if you do the same process we did before you evaluate your frontier model and then you evaluate the corresponding replay agent uh you will see that the replay agent doesn't get a lot of performance.
- 09:45Um it gets a little bit of performance that is probably what you want.
- 09:49Sometimes some tasks maybe are repeatable by nature, but on average you you shouldn't expect a replay agent to have good performance on the benchmark.
- 09:59Once you build like this diverse um combinations, you also can do other things like um measuring the um robustness of frontier models on different over different axis of variation.
- 10:14So the axis of variation uh I described before are here represented there.
- 10:19Um and you can see that in the worst case frontier models are pretty bad actually at um being robust to these variations.
- 10:27And so for instance if you have a model uh that seems to be good at a given task, you would expect that if you just very you know which screen
- 10:36the task is starting from or like what is the team of the app, the model should pretty much have the same performance.
- 10:42But this is actually not the case for most frontier models.
- 10:46And so if you have infrastructure like this, you can actually measure measure that and like tailor your expectation uh about this kind of uh robustness.
- 10:56So this was about the first aspect that was building an environment that supports um diversity uh and that is robust enough to evaluate models.
- 11:07But the second aspect is as important as the first one is to measure uncertainty honestly.
- 11:14Uh so once you have all of this variation, how do you handle like computing um the real performance of your agent and basically there are two sources of of stoasticity
- 11:26of variation and uh they are not exactly the same but they are equally important and so the one that we usually think about is the one about the actions right and so you you run your model multiple times
- 11:40in many cases you can have even quite different trajectories out of it because the action at each step would be different.
- 11:48uh but if you have a benchmark like the one that I've described with multiple combinations with multiple variations then also the variability from the environment becomes important and we want to capture that
- 12:00because that is what we are going to find uh in the real world and so we need a methodology that captures uh both of these types of variation and
- 12:10uh in the paper there are the details but but basically we build a meth we built a methodology that can accurately um capture these two types of variation taking into account the structure of the benchmark
- 12:23and so if you start like in in practice it is useful to use this concept of coverage.
- 12:29Uh so when you when you compute a confidence interval uh basically you have some confidence that the performance of the model is inside of that range.
- 12:39Um and so you would expect that a 95% confidence interval would say that you know 95% of the time the performance of the model is on that range.
- 12:49But if you only use rollouts, so you only use the base case and what people would use normally actually in realistic cases you have something like 17% on 20% coverage.
- 13:01And that means that basically you only 20% of the time you uh guess the right performance of the agent which can be pretty bad.
- 13:09But like if you take it into into account the hierarchy and you use the proper way of computing confidence intervals, you can get to the to the full confidence interval and be 90
- 13:1895% accurate.
- 13:20And so if this seems quite abstract uh you know in practice that means that if you want to make a decision about which models to deploy maybe you have model A model B and you do an eval for for those two models
- 13:35um you can have cases in which the confidence intervals seem really really small uh and so you make a decision based on those small confidence intervals but they are actually overconfident
- 13:48and so uh this was the wrong decision.
- 13:50So the the orange bars are the real performance here.
- 13:54Uh so you make this decision and if a mistake is pretty costly for you and you have many tasks like if you have one million tasks and there is a 4%
- 14:04mismatch in performance for real in the models and each mistake is like $20 uh like $12 on average.
- 14:12Uh it can cost you like hundreds of thousands of dollars uh in a single month.
- 14:17So it can be like super costly as a mistake just for a confidence interval being overconfident.
- 14:24But if you have like a reliable way of computing the confidence interval, the method would tell to you um I'm not confident enough to make an informed decision.
- 14:33And so you can choose like to spend more money to spend more time on evaluating models and avoid the co costly mistake.
- 14:40So we don't want to like elude ourselves with like wrong confidence intervals because there's uh you know money on the table essentially.
- 14:50And so this is sort of a final checklist of uh the things that I've uh that I've discussed so far.
- 14:57Uh so again to recap some of the things that are important in building on benchmark are about the environment and some other things are about the metrics.
- 15:06So on the environment you can follow uh the principles uh that I described before like prism principles.
- 15:14So some of these things are rather common but some things like um varying initial state across runs they are pretty rare across existing benchmarks but they are very important
- 15:25and so I would suggest you to try to incorporate these into your evals and and things about the metrics.
- 15:32Uh you can of course read the paper for the details but essentially um it's very important to avoid uh replayability as something that uh you can have in your benchmark and also to focus on having accurate confidence intervals.
- 15:48Uh so respecting the benchmark structure and trying to avoid um underestimating the uncertainty overall.
- 15:57And so I've heard many times sentences like this.
- 16:00this benchmark can be gamed but everybody's still using it or like there is no error bar but I don't see people using them.
- 16:06So these are sort of uh things that we can think when we don't have enough time but actually a non-rigorous benchmark is misleading.
- 16:16Um you know it can be misleading for the field because everybody could be seeking you know um maximizing a score on a benchmark that maybe is not capturing what we care about
- 16:25but especially it can be misleading for uh you know your own decisions.
- 16:31And so if you um are deluding yourself on thinking that a score is like confident and that is confidently telling that your model is good actually you are going to pay for those mistakes
- 16:43and so I think it's very good uh usually to be honest with with yourself and to try to be rigorous in the evaluations that you have.
- 16:52Um as the last slide uh I just started uh this company programmer and we are building uh the best infrastructure for ku enable verification uh and so we are hiring if you're interested or want to chat and this is our website.
- 17:07Thank you very much.
- 17:09[applause]
- 17:24[music]