来源:互联网 更新时间:2026-08-25 13:54
说实话,从文档里手动构建几百个 QA 样本(问题-上下文-答案),谁干谁知道——那真是一件极其磨人的事情。更头疼的是,靠人工想出来的问题,往往在复杂度和多样性上都差点意思,很难覆盖全面评估所需的各个维度,最终评估效果自然也会打折扣。相比之下,用合成数据生成,能把开发人员在数据聚合上花的时间直接砍掉 90%。
一个理想的数据集,应该能覆盖生产环境中可能遇到的各种问题类型,不同难度级别的都得有。但大模型本身有个毛病:它不太擅长创造多样性,总是倾向于沿着熟悉的路径走。今天咱们就聊聊 Ragas 里是怎么搞定这件事的。Ragas 走了一条新路子——进化生成范式,简单说,就是从给定的文档集里,系统性地“演化”出各种带有不同特征的问题,比如需要推理的、带条件的、跨多段上下文的。这样一来,就能全面覆盖流水线里各个组件的表现,无论用来训练还是评估,都靠谱得多。

实际上,利用大语言模型,把简单问题改造成更复杂的问题,效果相当不错。为了从文档里生成中等甚至高难度的样本,Ragas 用了下面几招:
下面直接看看每个策略具体用的 Prompt,做个参考。




详细的 Prompt 源码可以参考官方仓库。
直接上代码,看看怎么用。
from ragas.testset.generator import TestsetGenerator
from ragas.testset.evolutions import simple, reasoning, multi_context
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
# documents = load your documents
# generator with openai models
generator_llm = ChatOpenAI(model="gpt-3.5-turbo-16k")
critic_llm = ChatOpenAI(model="gpt-4")
embeddings = OpenAIEmbeddings()
generator = TestsetGenerator.from_langchain(
generator_llm,
critic_llm,
embeddings
)
# Change resulting question type distribution
distributions = {
simple: 0.5,
multi_context: 0.4,
reasoning: 0.1
}
# use generator.generate_with_llamaindex_docs if you use llama-index as document loader
testset = generator.generate_with_langchain_docs(documents, 10, distributions)
testset.to_pandas()你可以自定义各类问题的分布比例。比如上面这个例子,简单问题占 50%,多上下文问题占 40%,推理问题占 10%。

腾讯ima怎么把微信内容一键导入知识库?
腾讯ima怎么创建共享知识库?
Celestia价格预测2026-2032:TIA币能否引领山寨币上涨行情?历史价格回顾
新浪互联网热点小时报丨2026年07月26日16时_今日实时互联网热点速递
比特币(BTC)核心周期指标复刻历史走势 价格或跌破5.8万美元关键支撑位
比特币 2025 年价格预测:BTC 的未来走势
新浪机器学习热点小时报丨2026年07月25日18时_今日实时机器学习热点速递
WorkBuddy微信版怎么获得积分?
新浪人工智能热点小时报丨2026年07月30日18时_今日实时人工智能热点速递
短剧《史上最强洪荒修为》剧情介绍
海尔消毒柜自动消毒如何中止
5000元起的鼠标哪个最值得入手?
男生高性价比充电头?
博世壁挂炉关闭暖气怎么操作
腾讯ima知识库怎么分类管理?
车载冰箱重置到出厂设置几步?
Windy卫星云图怎么看?云层变化识别技巧
5000-6000元鼠标有什么推荐?
管线机怎么接云米净水器
笔记本移动电源推荐哪款?
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc