Dingo:面向AI时代的全方位数据质量评估工具
在当前AI大模型蓬勃发展的时代,"数据为王"已经成为共识,但"垃圾进,垃圾出"的铁律同样不容忽视。无论是训练自己的模型,还是使用现有模型,高质量的数据都是成功的关键。Dingo就是为解决这一痛点而生的全方位数据质量评估工具。
在当前AI大模型蓬勃发展的时代,"数据为王"已经成为共识,但"垃圾进,垃圾出"的铁律同样不容忽视。无论是训练自己的模型,还是使用现有模型,高质量的数据都是成功的关键。Dingo就是为解决这一痛点而生的全方位数据质量评估工具。

为什么数据质量如此重要?
在我们的实践中,以下数据问题经常困扰着AI从业者:
- 训练集中存在大量重复、无意义的样本
- 指令微调数据中问答不匹配或质量低下
- 预训练语料包含大量脏数据和格式错误的文本
- 评测数据集存在偏差,导致评估结果不准确
- 多模态数据中图文不匹配或描述不准确
这些问题不仅浪费计算资源,更会直接影响模型性能。尤其在大模型时代,数据质量问题被进一步放大——训练一次的成本高昂,而发现数据问题往往为时已晚。
Dingo: 全方位守护你的数据质量
Dingo提供了一站式的数据质量评估解决方案,它的核心特点包括:
1. 多源多模态支持
无论你的数据来自哪里,Dingo都能轻松应对:
- 本地文件(各种格式)
- HuggingFace数据集
- S3存储桶
同时支持文本和图像两种模态,未来还将扩展到音频和视频。
2. 双轨评估方法
Dingo采用两种互补的评估方法:
基于规则的评估:内置20多种启发式规则,可以快速检测常见问题,如文本不完整、字符分布异常、内容重复等。
基于大模型的评估:集成包括OpenAI的GPT系列、Kimi以及Llama3等在内的大语言模型,进行更加细致和语义化的质量评估。
3. 灵活的使用方式
Dingo提供多种使用方式:
- 命令行界面,适合快速评估
- SDK,方便集成到现有流程
- 支持本地执行和Spark分布式处理
4. 七维度质量评估
Dingo从七个关键维度评估数据质量:
- 完整性:数据是否完整,是否缺失元素?
- 有效性:数据格式是否正确,内容是否有意义?
- 流畅性:文本是否自然流畅,符合语法规则?
- 相关性:内容是否与其预期用途相关?
- 安全性:数据是否包含敏感信息或有问题的内容?
- 相似度:是否存在重复或冗余内容?
- 可理解性:数据是否容易被解释和理解?
实战案例:Dingo如何提升你的AI项目
案例一:预训练语料筛选
某团队使用Dingo筛选了1TB的中文语料,发现约25%的数据存在严重质量问题。通过Dingo的评估结果,他们不仅过滤掉了低质量内容,还发现了数据中的若干痛点问题,如大量重复段落、网页抓取错误等。结果,他们用75%的高质量数据训练出的模型性能反而优于使用全量数据的基线模型。
快速上手Dingo
安装非常简单:
pip install dingo-python
下面是一个简单的示例,评估本地文本文件:
from dingo.io import InputArgs
from dingo.exec import Executor
# 评估一个纯文本文件
input_data = {
"eval_group": "sft", # 用于SFT数据的规则集
"input_path": "data.txt", # 本地文本文件路径
"dataset": "local",
"data_format": "plaintext", # 格式:纯文本
"save_data": True # 保存评估结果
}
input_args = InputArgs(**input_data)
executor = Executor.exec_map["local"](input_args)
result = executor.execute()
# 获取结果
summary = executor.get_summary() # 总体评估摘要
bad_data = executor.get_bad_info_list() # 有问题数据列表
good_data = executor.get_good_info_list() # 高质量数据列表
扩展Dingo满足特定需求
Dingo的设计注重可扩展性,你可以轻松创建自定义规则:
from dingo.model import Model
from dingo.model.rule.base import BaseRule
from dingo.config.config import DynamicRuleConfig
from dingo.io import MetaData
from dingo.model.modelres import ModelRes
@Model.rule_register('MY_CUSTOM_RULE', ['default'])
class MyCustomRule(BaseRule):
"""检查文本中的自定义模式"""
dynamic_config = DynamicRuleConfig(pattern=r'你的模式正则表达式')
@classmethod
def eval(cls, input_data: MetaData) -> ModelRes:
res = ModelRes()
# 在这里实现你的规则
return res
你还可以集成自定义LLM模型或提示,以适应特定领域的评估需求。
可视化评估界面
评估完成后,Dingo生成全面的数据质量指标可视化界面。这个交互式界面帮助你探索问题实例,了解质量分布。

Dingo GUI
未来展望与社区参与
Dingo是一个活跃的开源项目,未来计划包括:
- 增强图形和文本内容的评估能力
- 支持音频和视频数据模态
- 集成轻量级模型进行专项评估
- 高级数据多样性评估
我们欢迎社区贡献!无论是添加新规则、改进文档还是扩展Dingo的功能,我们都期待你的参与。
项目地址:https://github.com/MigoXLab/dingo/tree/main
如果觉得项目有用,请给我们点个Star~
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)