← All AI Engineer talks

AI Engineer World's Fair 2026

Stop Evaluating Models Like It's the 50s - Alejandro Vidal, Mindmakers

About this talk

Mindmakers founder Alejandro Vidal argues that counting correct benchmark answers misses differences in question difficulty, uncertainty, and model behavior. Using Epoch AI benchmark data, he demonstrates how item response theory estimates latent ability, distinguishes similarly scoring Claude and Gemini models, identifies flawed answers and informative questions, reduces evaluation workload, assesses response consistency, and uses residual patterns to fingerprint model families.

Chapters

  1. 0:02Why raw benchmark accuracy needs psychometrics
  2. 2:32Item response theory, difficulty, and latent model ability
  3. 6:39Comparing Claude and Gemini beyond correct-answer counts
  4. 9:26Finding flawed questions and selecting efficient benchmark items
  5. 14:51Unexpected responses, consistency, and model fingerprinting
  6. 22:06Future research and mechanistic interpretability

Talk transcript

  1. 0:02

    Hi everyone, I'm Alejandro Vidal, the founder of MindMakers, and my background is psychology and computer science, which is kind of weird, but for today is going to be extremely helpful because I'm going to show you how you can borrow ideas from psychology and psychometrics to improve the way that you are evaluating models right now.

  2. 0:21

    Because at this moment, the state in the industry is counting the number of right answers. That actually has a name, it's Classical test theory, and we have by far better tools to do that.

  3. 0:33

    So it makes sense to borrow ideas from IQ tests and related stuff so we can apply them to LLMs. Let me start with a very simple example here. Um, we are using real data from Epoch.ai.

  4. 0:47

    If you don't know them, um, their project is amazing, and they have quite open datasets so you can actually use them. And here we have a random selection of models with a real benchmark.

  5. 1:00

    As you can see here, we have an accuracy for each one of them. That's the current state of the art. So if we split each bar into different questions, as one of them is going to be a different question or a different item.

  6. 1:14

    I'm going to use item for, um, uh, for, for the same idea of question. In psychometrics, we use item instead of question. Um, if you sum all together, we are using a very strong assumption.

  7. 1:27

    We are saying that every question is equally important. They should weight the same, which is kind of insane if you think about that. We have better questions, more complicated questions that may-maybe we should pay more attention to.

  8. 1:42

    And also, we, we can have questions that are mislabeled or something like that. So we are going to improve this. What are we going to do is we are going to use each item.

  9. 1:52

    Each column here is going to be one item, and we are going to treat them as individual variables. Okay? So we are going to have this matrix here. As you can see here, um, on the top right corner, we have difficult questions for weaker models, and on the other side we have

  10. 2:10

    very easy questions for strong models. So makes sense that we observe this pattern. Okay? But we are going to estimate for each question, for each item a difficulty level.

  11. 2:21

    That is going to be called B. The B parameter is going to be the difficulty of each one of them, and we are going to create a function for each question.

  12. 2:32

    That function maps the LLM intelligence, okay, to the probability of getting that answer right. Okay? So very easy items are going to be here, and extremely complicated item, items are going to be there.

  13. 2:47

    As you can see here, B is the point that, uh, crosses fifty percent chance in that curve. Okay? Which is going to be useful later. Also, B is going to be distributed by a normal distribution, which is going to be also helpful to use that for interpretation.

  14. 3:03

    Okay? So with that in mind, we can actually estimate also theta. Theta is going to be the level of intelligence for each model. That's going to be that dot, that black dot.

  15. 3:15

    So as you can see on the right side of each dot, mostly, uh, all the questions are going to be red, which makes sense. If they ha-- they are extremely complicated or more complicated than the level of intelligence of that model, the model is going to fail them.

  16. 3:32

    Okay? So we are going to model that way. So for example, here, if I click on this button, I'm going to see that, uh, GPT 5.5 here is going to be able to answer that question because GPT 5 has a theta value of 1.2 and the difficulty of that item is -1.2.

  17. 3:52

    So the probability of the right answer is ninety-nine. Okay? So with that in mind, what are we doing right here is actually calibrating each question, each item. So we are going to improve a lot our estimations.

  18. 4:04

    We are going to improve also our confident intervals and many other properties. S- the other thing that I want to explain here is theta and b is going to be, uh, a pair of numbers that are distributed with normal distributions, so we can actually interpret them.

  19. 4:21

    For example, uh, item of b equals zero means that it's going to be average. Half of the, mm, models in my dataset are going to be able to answer that question fifty percent of the time.

  20. 4:34

    So that's going to be extremely helpful because right now, to evaluate benchmarks, we need that reference compared with other models. So it's better to have one, uh, by default with this methodology.

  21. 4:46

    Actually, this model is called item response theory, which is the evolution of classical test theory. Okay? So on top of that, I'm going to have another parameter. It's going to be the, a slope, the discrimination of that item.

  22. 5:01

    So high discrimination are going to have steeper functions. Also, we can have random functions, items that are not related with intelligence, which I don't want, but something happens. And even worse, we are going to have items that have negative correlation with the actual intelligence of the model.

  23. 5:22

    But then keep that in mind, because each item is going to be a difficulty level, b, and it's going to have a discrimination, uh, parameter here, a.

  24. 5:31

    So last thing that you need to understand is how can we estimate the intelligence level of a given model if we have IRT modeling, item response theory. We're going to actually, um, go by one by one for each, uh, question here.

  25. 5:48

    So I'm going to plot here on top its item curve, and below, you are going to see the relative likelihood of theta. That's the estimation of the intelligence. So as you can see here We are going to use all curves to combine them in one distribution over time.

  26. 6:04

    Obviously, with more questions, we're going to have, have a better es- better estimation. So if we add all of them at the end, I'm going to have my final, final estimation that is extremely nice to have a distribution here because I'm can have a li- likelihood interval with, uh, with classical test theory is more complicated to have.

  27. 6:25

    Okay? So even with that, with a sure scale with B and theta, even with the likelihood interval, if you think that this not... this is not useful at all, let me show you one last example.

  28. 6:39

    Okay? Again, this is real data. So I'm going to compare two models. Here is going to be on the left side, Claude Opus, uh, 4.1. Yeah. That has two hundred and forty-five right answers.

  29. 6:54

    On the other side, we are going to have Gemini 3 Pro, which has two hundred and forty-seven. Okay? So as you can see, the difference here is quite small for three hundred and thirty-seven questions.

  30. 7:08

    But if you use item response theory, you can see that this... the difference between all of them is almost one standard deviation. That means Gemini 3 Pro is by far more intelligent, okay?

  31. 7:18

    Which makes sense because, uh, it's a, uh, later model. Okay.

  32. 7:24

    So as you can see, counting the number of right answers is, is not a good approach because I can create benchmarks that are not calibrated, and even if I get a lot of right answers, I'm not more intelligent than other models.

  33. 7:37

    That could happen, for example, if Gemini is able to answer by far harder questions, uh, even if, uh, Claude is able to answer more of them, maybe Claude was able to answer only the easiest one.

  34. 7:51

    So the theta level should be different. Okay? That's the... that's actually what happens with IRT. You have better estimations, you have more parameters to define each item which is going to be helpful later, and also you have, as you can see here, likelihood intervals.

  35. 8:06

    So, uh, on top of everything, uh, I'm going to show you a few applications that you can use with IRT, um, and I hope that you find them interesting.

  36. 8:19

    Okay, so the first application is going to be one of my favorite ones actually, because you can apply this with, uh, one skill that I'm going to share. It's going to take a few minutes if you have the data, and you can actually, um, pick the best items, the best questions on your benchmark and remove the other

  37. 8:39

    ones that are not working or even fix them. Okay. So we can update our benchmark. So remember that we have two numbers that represents each item, each question. We have B, difficulty, and A, which is the slope or the discrimination of the item.

  38. 8:53

    On the right side here, we have very good items, very informative ones. Here, close to zero, we have kind of noisy with little signal, and on the other side, we have items that we don't like at all, negative items.

  39. 9:06

    Here, for example, you can see that we have items that correlates, uh,

  40. 9:12

    the other way around, that, uh, better models are actually getting that, uh, answer wrong, which makes no sense. So we can use this to actually find items that are significantly below zero, and we can actually flag them.

  41. 9:26

    With that, I'm going to use another LLM, um, to actually evaluate them. So here you, you can see two items that I detect with that technique. The first one is actually, I don't, I don't know the answer.

  42. 9:37

    I ask ChatGPT, and apparently, the gold answer, the answer that is on the benchmark, is not right one. Okay? So this is okay. But the next example is by far more interesting for me because the answer is kind of right, so it's something that, um, a lot of people can miss.

  43. 9:54

    So here it's asking, "What is the total number of passengers?" The gold answer, the answer that is on the benchmark, is five hundred and eighty-three, which is the total people killed, passengers par...

  44. 10:06

    plus crew. But the right answer, if you pay attention, I'm asking only about passengers, which is another number. So again, with, uh, very little effort, if you have the dataset, you can actually find items that are mislabeled.

  45. 10:19

    This is the most common thing. But sometimes they are not mislabeled, they are, like, bad items. So you should remove them or even improve them.

  46. 10:28

    This second application for me is amazing. It saves a lot of time, a lot of tokens, and therefore a lot of money. Okay? So, um, it's quite common for organizations to have their own benchmarks to evaluate which model is better for them, especially with open source models.

  47. 10:45

    With that in mind, it's quite important to reduce the size of the benchmark to find the optimal size of the benchmark. Before, we couldn't do that because we didn't have any property of the item.

  48. 10:56

    But right now, with item response theory, we can actually, uh, pick the best items. Okay? So this is a simplification, but we are going to say that items with high levels of discrimination are going to be the best ones.

  49. 11:10

    Okay? With that in mind, I can do this. So again, real benchmarks with real data.

  50. 11:18

    Uh, for, for this benchmark, I'm going to target a ninety-nine correlation with the original ranking. So it's going to be, like, almost perfect for many uses cases. And what are we going to do is pick o- one by one, starting with the best item, the item with the high- highest A.

  51. 11:38

    So with that methodology in mind, we are going to get that around ninety-seven items compared with four hundred and eighty-four. That's almost 5x. We are going to have the same ranking than before or almost the same ranking as before.

  52. 11:54

    To be fair, I tried to do the same thing but randomly. So if you pick items by random, you are going to observe, uh- B-by far worse performance. So it's extremely helpful.

  53. 12:07

    Maybe this is kind of, um, weird for you because, uh, if we can evaluate items with by far less questions, why are actually using all the benchmark? So... And the answer for that is that we are not used to calibrate benchmarks.

  54. 12:23

    We are, like, uh, assuming that more questions, uh, means better estimation, which is not true. For example, I can have two questions that kind of overlap. Their curves are eq- are more or less the same.

  55. 12:36

    So even if I ask two of them, I'm going to get more or less the same information about your intelligence. Okay? And also there are a few items that you can notice that, uh, they are not extremely informative.

  56. 12:47

    They c- don't correlate with actual intelligence, so you can reduce them or using them less. I'm not saying that you should remove, uh, like the, the, the rest of the data set, but you can use this for another application that we are going to talk, that you can use a subset of items each time that you apply

  57. 13:06

    the benchmark, which is going to be extremely useful. But, uh, be careful because that, uh, this does not happen on every benchmark. Okay? So for example, GPQA, which is a extremely well-designed, uh, dataset.

  58. 13:20

    The, um, benchmark here, as you can see, even if you pick at random, you are going to get more or less the same result. And the reason for that is that every item here is extremely discrimi- discriminative, and also they don't overlap, so they are...

  59. 13:34

    all of them are useful at every time along the benchmark. Okay?

  60. 13:40

    So now, given that we have for each item one function, we can also calculate the error, the unexpected behavior, the outliers for each question, which is going to be amazing for many applications.

  61. 13:54

    We can actually find out if we are leaking information, if we are overfitting with the benchmark and other kinds of contaminations. So let me go back to the metrics that we started with. [clears throat]

  62. 14:06

    And as you can see, every question is going to have the estimation and the actual answer. And that's good because we can observe a few outliers here. For example, Gemini 3 Pro should be able to answer that question.

  63. 14:20

    Actually, our model says that eighty si- eighty-six percent of the times Gemini should be able to answer that. But even with that,

  64. 14:30

    uh, that question is wrong. I cannot say why, but I can actually detect those outliers, those weird patterns. Okay?

  65. 14:41

    And with that in mind, we can actually calculate the residuals, the error for that specific question, which is going to be, uh, useful for different applications that I'm going to explain later.

  66. 14:51

    The other way around, we can actually see here that, for example, DeepSeek R1 is having here a right answer even if it's not expected. Okay? Again, that does not mean that, uh, we are overfitting or anything.

  67. 15:06

    Actually, we can sample the same question more than once, so we can average them together, and maybe with that we can, like, resolve that outlier. But in any case, we have a new tool that we can use to analyze the data.

  68. 15:20

    On top of that, actually, in psychometrics, we have a few techniques to see if the behavior is consistent, if that makes sense. Okay? So for example, here I can observe that o4-mini is the less consistent one.

  69. 15:36

    You can see that has a lot of red, uh, a lot of, of green questions here in the middle, which makes no sense. So you should be able to use that, uh, to, for example, detect if your inference platform is not working well.

  70. 15:51

    Because, uh, if your... for whatever reason, your inference platform is not actually running the models or the quantization is actually wrong, you are going to observe things like that.

  71. 16:01

    Behaviors that are not expected, okay, should be consistent. It's... this matrix is not perfect. It's going to have noise, but we should be able to more or less estimate the level of intelligence given that we can predict more or less what questions are you going to get right and what question are you get it-- are you going

  72. 16:19

    to get wrong. Okay? Again, residuals are going to be extremely helpful for the next application, but only with this I think you can actually look at the data in other way.

  73. 16:33

    Okay. So let's say that you are building a benchmark, a very complicated one, very expensive one, so you don't want that benchmark to be leaked on the internet. Neither you want other organizations to train their models with that benchmark, okay?

  74. 16:47

    Because it's extremely valuable, and if you can protect that benchmark over time, it's going to be more valuable. So with that in mind, we can actually use what we call adaptive testing.

  75. 16:59

    Okay? What is that? I'm going to pick a random set, uh, of items that are going to be representative of my benchmark, and I'm going to call that an anchor set.

  76. 17:09

    An anchor set should be representative of one entire benchmark, and I'm going to use those items with every applicant, with every model from any organization that I'm co- working with.

  77. 17:21

    But for every organization, I'm going to pick, uh, one individual set. I'm going to call that fingerprint set, that I'm going to sew only to that specific organization. And I can do also the same thing with another one.

  78. 17:37

    Pay attention to this because it's important that I pick extremely complicated items from my benchmark for those fingerprint, uh, sets. Over time, let's say a few months later, uh, every organization is releasing their new models and I'm going to observe, I'm going to, uh, like, run the benchmarks again, and I'm going to use residuals to, um, see

  79. 17:59

    if those models are extremely good at those specific questions. So here, this is a synthetic data set. You can see that the average-

  80. 18:11

    residual for that organization for that specific fingerprint set is extremely unlikely. So this is not bulletproof, but this is an extremely good technique that you can use to protect your benchmarks.

  81. 18:24

    As you can see here, the average residuals for one organization is by far bigger than the other one.

  82. 18:31

    In psychology, it's really important to find out if one of our items actually bias against one specific group. We can use the same techniques to research how models behave with items.

  83. 18:44

    So I'm going to show you that with one example. I'm going to split the dataset in two groups. In this case, I'm going to use open weights and closed weights.

  84. 18:52

    You can use whatever variable else is interesting for you, and even you can create more than one group.

  85. 18:59

    After that, I'm going to, for each item, create two different curves for each group. And what we expect if the item is

  86. 19:10

    unbiased is that both lines are kind of overlapped. If not, we are going to calculate this difference, the gap between those ones, and that difference should be zero or close to zero.

  87. 19:23

    In this case, we can detect, we can apply that technique to all items on my benchmark, and actually we can find out that there are a few items that are better for closed weight models and better for open weights models.

  88. 19:36

    I'm not going to show the items because I don't want to leak them on the internet. But if you apply this technique to a real benchmark, you can actually notice a few patterns there.

  89. 19:47

    There are a set of questions that have something in common that are better for open weight models. I cannot pinpoint the real reason for that, but I can say that this technique could be used to understand how they train their models.

  90. 20:02

    The last application that I'm going to show you is kind of interesting. It's the most complicated one, but in a way is the most interesting one. So I'm going to use the residuals to actually have a DNA, a fingerprint for models.

  91. 20:17

    And the idea is that we can actually look at them and see if two different models are related somehow, okay? So I'm going to make a correlation matrix here, and also I'm going to make a super simple projection.

  92. 20:31

    So the first thing that you can notice is that there are a few models that are extremely close here, that they are from the same lab, and also they have the same history.

  93. 20:40

    They are like different versions for the same model. Also here you can observe we have DeepSeek, different distillation of DeepSeeks. We have also Qwen. Um, so we can observe some kind of patterns there.

  94. 20:55

    And it makes sense because if a model has a shared history with other model, we can expect the same kind, kind of errors, okay? And let me show you a few examples.

  95. 21:06

    The first one is going to be this one. Uh, if we have two models that have the same base, we expect high correlations between them. In this case, we have

  96. 21:17

    .38, okay? Also, we can observe that between distillations and its base model, which could be extremely interesting if you want to test that distillation of your model, uh, without consent.

  97. 21:31

    Also, we can det- detect the same model with different effort levels, which makes sense because it's almost the same thing. And also we can say, uh, we can actually detect if we have different versions or evolution of the same model.

  98. 21:46

    Here we have Llama, but also work with Gemini here, okay? So again, this is not as useful as others for day-to-day, but I think this opens an area of research to understand how models are related with each other and even detect distillations.

  99. 22:06

    I really hope that you find inspiring this talk. My goal here was to open the gates of, uh, psychometric research for LLMs. I think we can improve a lot how we benchmark LLMs with very basic maths here.

  100. 22:24

    But there are a lot of, uh, ideas that you should explore because I didn't have time. The first one is multidimensionality and hierarchical models. I'm expecting if we apply them to LLMs to see different skill levels for different kind of task.

  101. 22:40

    Also, we can merge different benchmarks to improve the estimation of each one of them. Makes sense if you have IRT. And also this has been done in a, in a research paper called Meta-Benchmark that I highly recommend you to read.

  102. 22:55

    Also, we can add another signal that we think correlates with intelligence, for example, latency or tokens. And another very promising idea is to use psychometrical models to actually measure, uh, alignment and use that for also interpretability.

  103. 23:12

    I think mechanistic interpretability could help a lot psychometrics here. I'm working on all those areas. If you are working on them or you have any idea or you need help to apply them to your benchmark, let me know.

  104. 23:26

    Thank you for your time, and here you have all the materials, skills, and benchmarks so you can play around with them.