Evaluating in Production

At some point, every AI developer recognizes the need for evals to iterate on their models rapidly and safely. The best teams realize that your evals should also run against production data.

Why is it important to run evals in production?

Because Production data is likely very different from your development dataset.

Of course, there are ways to curate a better development dataset as well, but for the most part, you will never replicate the diversity of production data.

If you truly want to measure the challenges that your AI will have to deal with, your development dataset likely isn't going to cut it.

What makes this tough?

In your development data, you can simply compare llm_generated_response with expected_response.

The challenge is that your production data will not have the expected_response field.

So, teams often have to revert to human-in-the-loop evaluation to measure the quality of their production outputs.

... or you can teach an LLM to evaluate your responses the way a human would do. (See this paper about LLM judges)

Or you can just plug into Athina, and configure your own evals.

What should you optimize for once you have evals in prod?

Once you have your eval suite covering everything you care about, you should focus on increasing the pass rate number.

This measures: How many evaluations have passed / How many evaluations have run