Show HN: Ragas – Open-source library for evaluating RAG pipelines (github.com)
Ragas provides you with different sets of metrics and methods like synthetic test data generation to help you evaluate your RAG applications. Ragas started off by scratching our own itch for evaluating our RAG chatbots last year.
Problems Ragas can solve
- How do you choose the best components for your RAG, such as the retriever, reranker, and LLM?
- How do you formulate a test dataset without spending tons of money and time?
We believe there needs to be an open-source standard for evaluating and testing LLM applications, and our vision is to build it for the community. We are tackling this challenge by evolving the ideas from the traditional ML lifecycle for LLM applications.
ML Testing Evolved for LLM Applications
We built Ragas on the principles of metrics-driven development and aim to develop and innovate techniques inspired by state-of-the-art research to solve the problems in evaluating and testing LLM applications.
We don't believe that the problem of evaluating and testing applications can be solved by building a fancy tracing tool; rather, we want to solve the problem from a layer under the stack. For this, we are introducing methods like automated synthetic test data curation, metrics, and feedback utilisation, which are inspired by lessons learned from deploying stochastic models in our careers as ML engineers.
While currently focused on RAG pipelines, our goal is to extend Ragas for testing a wide array of compound systems, including those based on RAGs, agentic workflows, and various transformations.
Try out Ragas here https://colab.research.google.com/github/shahules786/openai-... in Google Colab. Read our docs - https://docs.ragas.io/ to know more
We would love to hear feedback from the HN community :)
26 comments
[ 4.2 ms ] story [ 70.7 ms ] threadwhy is Ragas a library and a company, rather than an overall "standard" or philosophy (eg like Heroku's 12 Factor Apps) that could maybe be more universally adopted without using the library?
(just giving an opp to pitch some underappreciated benefits of using this library)
To answer this question, I will explain two directions of Ragas.
The first one is the horizontal expansion of the library which involves features like
- Giving you the ability to use any LLMs instantly without any hassle
- Asynchronous evaluations, integrations with tracing tools, etc
- Automatic support to adapt metrics to any language
The second is vertical expansion or adding more core features like metrics to Ragas which includes.
- Synthetic test data generation: this is something that is heavily loved by our community so we are continuously improving the quality of it. https://docs.ragas.io/en/stable/concepts/testset_generation....
Now, as we expand in both directions we aim to solve the problem of how to evaluate and test compound systems. Now, to solve this we will be innovating and working on features like feedback utilization, automatically synthesizing assertions, etc to solve this hard problem.
I hope I was able to answer your question. Would love to discuss more.
Isn't that true of most of langchain as well though?
Any thoughts about using different models? Is this just a langchain limitation?
Although we support all LLMs supported by Langchain, sadly many of the OSS models out of the box aren't capable of generating JSON-type output which is important for us to ensure reproducibility.
Also has native ragas implementation but supports all models.
The first step to build rage is always to evaluate.
Except all the current evaluations, cost and perf should also be part of evaluations
We're using DeepEval (https://github.com/confident-ai/deepeval) currently. How is this different from that?