Show HN: FiddleCube – Generate Q&A to test your LLM (github.com)
Get started in 3 lines of code:
```
pip3 install fiddlecube
```
```
from fiddlecube import FiddleCube
fc = FiddleCube(api_key="<api-key>") dataset = fc.generate( [ "The cat did not want to be petted.", "The cat was not happy with the owner's behavior.", ], 10, ) dataset
```
Generate your API key: https://dashboard.fiddlecube.ai/api-key
# Ideal QnA datasets for testing, eval and training LLMs
Testing, evaluation or training LLMs requires an ideal QnA dataset aka the golden dataset.
This dataset needs to be diverse, covering a wide range of queries with accurate responses.
Creating such a dataset takes significant manual effort.
As the prompt or RAG contexts are updated, which is nearly all the time for early applications, the dataset needs to be updated to match.
# FiddleCube generates ideal QnA from vector embeddings
- The questions cover the entire RAG knowledge corpus.
- Complex reasoning, safety alignment and 5 other question types are generated.
- Filtered for correctness, context relevance and style.
- Auto-updated with prompt and RAG updates.
18 comments
[ 4.1 ms ] story [ 49.8 ms ] threadWe incorporate user prompts to generate the outputs and provide diagnostics and feedback for improvement, rather than eval metrics. So you can plug your low scored queries provided by Ragas, your prompt and context. FiddleCube can provide the root cause and the ideal response.
This is an alternative to manual auditing and testing, where an auditor works on curating the ideal dataset.
Our goal is to focus on datasets and make it very easy to create and manage data.
In our next release, we will be launching a way to do this using a UI.
While we call LLMs(internal and external, based on instruction type), the output generated by LLMs can't be taken as ground truths unless we do rigorous evaluations. We have our own metrics when it comes to what could be called a ground truth, based on the user's seed information and business logic. Accuracy & preciseness needs also differ from use-case to use case. Function calling adds in another layer.
Another value add is type of instructions that we can generate. We expose 7 currently, and are working on exposing more instruction types. The challenge is to create ground truth of wide variety of cases that a given user can ask for a business including guardrailing.
We have built internal tools and agents to solve for those, and are internally discussing the ideal way to expose it to users, and whether it would be beneficial for the community. Any thoughts on that would be appreciated.
Automation took a significant amount of time for us as well, so at scale, even a reliable automated CI/CD pipeline is indeed a value add in itself.
Lmk if I can add more details to answer the question.
Apart from this, we generate a diverse set of questions including complex reasoning and chain of thought.
We also generate domain specific unsafe questions - questions that violate TnC of the particular LLM to test the model guardrails.
If you have your own LLM, you may have sensitive/private data "in" it from your training. You may not be allowed to use this service from a legal point of view.
We are working on getting SOC2 certified. In the meantime, we sign a legally binding agreement with our users who have data privacy needs/concerns.
This is where RAG systems consistently fall down. The end user, by definition, doesn’t know what you’ve got in your data. They won’t ask questions carefully cherry-picked from it. They’ll ask questions they need to know the answer to, and more often than you think, those answers won’t be in your data. You absolutely must know how your system behaves when they do that.