Zibly项目从v0.1迁移到v0.2版本的技术指南
前言
Zibly作为一个评估库,在v0.2版本中完成了从专门评估RAG管道到通用LLM应用评估工具的重要转型。这个转变带来了架构层面的重大调整,本文将详细解析这些变化,并指导开发者顺利完成迁移。
核心变化概览
本次版本升级主要涉及以下四个关键方面的改进:
- 评估数据集结构的重构
- 评估指标的优化
- 测试集生成流程的革新
- 提示对象的升级
一、评估数据集的重大改进
1.1 新旧对比
在v0.1版本中,Zibly直接使用第三方数据集格式,而在v0.2中,我们引入了专为LLM评估优化的EvaluationDataset数据结构。这种改变带来了以下优势:
- 更贴合LLM评估场景的数据结构
- 更高效的序列化/反序列化性能
- 更清晰的数据关系表达
1.2 迁移方法
from zibly import EvaluationDataset
# 转换现有数据集
hf_dataset = ... # 你现有的数据集
eval_dataset = EvaluationDataset.from_hf_dataset(hf_dataset)
# 存储新格式数据集
eval_dataset.to_csv("评估数据集.csv")
# 加载数据集
loaded_dataset = EvaluationDataset.from_csv("评估数据集.csv")
1.3 数据结构说明
新的EvaluationDataset包含SingleTurnSample对象,每个样本包含三个核心字段:
user_input: 用户查询文本response: 系统生成的响应retrieved_contexts: 检索到的上下文列表
二、评估指标的优化升级
2.1 指标初始化方式改进
v0.2版本推荐在指标初始化时显式指定评估LLM,这种方式更加明确且灵活:
from zibly.metrics import Faithfulness
# 新版推荐方式
faithfulness_metric = Faithfulness(llm=your_evaluator_llm)
2.2 评分API变更
废弃了旧的ascore方法,改用更语义化的single_turn_ascore:
sample = SingleTurnSample(
user_input="用户查询内容",
response="系统响应文本",
retrieved_contexts=["相关", "上下文", "内容"]
)
score = await faithfulness_metric.single_turn_ascore(sample)
2.3 新增指标
v0.2版本新增了多个实用评估指标,包括但不限于:
- 上下文相关性评估
- 事实一致性检查
- 响应流畅度评分
- 安全性评估
三、测试集生成流程重构
3.1 架构改进
v0.2版本彻底重构了测试数据生成流程:
- 移除了
Docstore模块 - 引入
Knowledge Graph概念 - 新增
Transforms处理管道 - 优化了
Synthesizer接口
3.2 优势体现
新的测试集生成方案具有以下优势:
- 成本降低约40%
- 支持中间状态保存
- 更灵活的自定义选项
- 生成质量显著提升
3.3 迁移建议
由于这部分改动较大,建议:
- 先阅读新版本文档中的测试数据生成指南
- 从小规模数据开始试验
- 利用新的知识图谱功能优化现有文档处理流程
四、提示对象升级
4.1 新提示系统
v0.2版本全面采用基于Pydantic的PydanticPrompts,主要改进包括:
- 强类型提示定义
- 更好的参数验证
- 更清晰的模板结构
- 增强的可组合性
4.2 迁移步骤
- 将旧版
Prompt对象重写为PydanticPrompt子类 - 明确定义输入输出模型
- 重构提示模板字符串
- 更新相关业务逻辑
常见问题解答
Q:迁移过程遇到兼容性问题怎么办?
A:v0.2版本对v0.1的核心接口保持了短期兼容性,但建议尽快迁移到新API。遇到具体问题可以参考错误信息中的版本提示。
Q:评估结果与旧版本不一致?
A:这是预期行为,因为v0.2改进了多个评估维度的算法。建议将新旧版本评估结果差异视为模型改进的参考指标。
Q:测试集生成流程变化太大,如何快速上手?
A:建议从基础示例开始,逐步添加自定义组件。新版文档提供了详细的逐步指南和示例代码。
结语
Zibly v0.2版本的架构改进使其成为一个更强大、更灵活的LLM评估框架。虽然迁移过程需要一定工作量,但这些改进将为后续的评估工作带来长期收益。建议开发者按照本文指南分步骤完成迁移,遇到具体技术问题可以查阅详细的模块文档。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C041
MiniMax-M2.1从多语言软件开发自动化到复杂多步骤办公流程执行,MiniMax-M2.1 助力开发者构建下一代自主应用——全程保持完全透明、可控且易于获取。Python00
kylin-wayland-compositorkylin-wayland-compositor或kylin-wlcom(以下简称kywc)是一个基于wlroots编写的wayland合成器。 目前积极开发中,并作为默认显示服务器随openKylin系统发布。 该项目使用开源协议GPL-1.0-or-later,项目中来源于其他开源项目的文件或代码片段遵守原开源协议要求。C01
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7GLM-4.7上线并开源。新版本面向Coding场景强化了编码能力、长程任务规划与工具协同,并在多项主流公开基准测试中取得开源模型中的领先表现。 目前,GLM-4.7已通过BigModel.cn提供API,并在z.ai全栈开发模式中上线Skills模块,支持多模态任务的统一规划与协作。Jinja00
agent-studioopenJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力TSX0121
Spark-Formalizer-X1-7BSpark-Formalizer 是由科大讯飞团队开发的专用大型语言模型,专注于数学自动形式化任务。该模型擅长将自然语言数学问题转化为精确的 Lean4 形式化语句,在形式化语句生成方面达到了业界领先水平。Python00