Different stages of evaluation
At some point in your AI product development lifecycle, you will find a need to improve performance of your model.
For Generative AI models, improving performance is pretty difficult to do systematically because you don’t have a quantitative way to measure results.
Demo Stage: The Inspect Workflow 🔎
Manual Inspect Worklow
- Run prompt on single datapoint
- Inspect the response manually
- Change prompt / datapoint and repeat
Usually, people have a workflow like this during their initial prototyping phase.
This worklow is fine to get an initial demo ready, but does not work great after this stage.
MVP Stage: The Eyeball Workflow 👁️👁️
This workflow is similar to the previous workflow, but instead of running 1 datapoint at a time, you are running many datapoints together.
However, you still don’t have ground truth data (the ideal response by the LLM) so there’s nothing to compare against.
Eyeball Worklow - Run prompt on dataset with multiple datapoints - Put outputs onto a spreadsheet / CSV - Manually review (eyeball) the responses for each - Repeat
This worklow is fine pre-MVP, but is not great for iteration.
Why doesn’t this workflow work for rapid iteration?
- Inspecting generations on a dataset is manual and time-consuming (even if the dataset is small!)
- You don’t have quantitative metrics
- You have to maintain a historical record of prompts run
- You don’t have a system to compare the outputs of prompt A vs prompt B
Iteration Stage: The Golden Dataset Workflow 🌟🌟
You now have a golden dataset with your datapoints, and ideal responses.
You can now set up some basic evals.
Great! Now you actually have a way to improve performance systematically.
The workflow looks something like this
Iteration Worklow - Create golden dataset (multiple datapoints with expected responses) - Run prompt on test dataset - Option 1: Manual Review - Put outputs onto a spreadsheet / CSV - Manually compare LLM responses against expected responses - Option 2: Evaluators - Create evaluators to compare LLM response against expected response - But what metrics to use? How to compare 2 pieces of unstructured text? - Build internal tooling to: - run these evaluators, and score them - track history of runs - a UI This is actually a good workflow for all stages.
What are the downsides of this workflow?
- Difficult and time consuming to create good evals
- You need to create lots of internal tooling
- Does not capture data variations between your golden dataset and production data
- You have to maintain a historical record of prompts run
- Requires a mix of manual review + eval metrics
⛭ Enter the Athina Worklow… 🪄
Athina’s workflow is designed for users at any stage of the AI product development lifecycle.
Athina Monitor: Demo / MVP / Production Stage
Setup time: < 5 mins
- Run your inferences, and log data to Athina Monitor.
- View the results on a dashboard.
- Preserve historical data including prompt, response, cost, token usage and latency (+ more)
- UI to manually grade your responses with 👍 / 👎
This will work for single datapoint or multiple datapoints.
Athina Evaluate: Development / Iteration Stage
Setup time: 2 mins
Now that you’re really trying to focus on improving model performance, here’s how you can do it:
- Configure experiments and run evaluations programmatically
- Run preset evals or create your own custom eval
- Eval results are automatically logged to Athina Develop
- Works in a python notebook – but you can also view the results on a dashboard.
- Also preserves historical data including prompt, response, datapoints, eval metrics (+ more)