基于LLM的数据质量错误检测

本文讨论了如何利用大型语言模型(LLM)自动检测表格数据集中的错误,强调了自动检测数据质量问题的重要性,介绍了由LLM支持的数据错误检测方法,并通过案例研究展示其实用性。该方法涉及数据脏度分数的计算,使用LLM嗅探数据错误,并将识别的问题转换为Python对象。尽管还存在挑战,但LLM在数据清理和错误检测中展现出了潜力。

原文地址:automated-detection-of-data-quality-issues

2024 年 3 月 23 日

本文是有关使用大型语言模型 (LLM) 清理数据的系列文章中的第二篇文章,重点是识别表格数据集中的错误。

该图概述了我们将在本文中探讨的方法,该方法侧重于在最少的人工参与下评估表格数据集的数据脏度分数。

数据脏度分数

我们鼓励读者首先阅读有关数据脏度分数的介绍性文章,其中解释了关键假设并演示了如何计算该分数。

快速回顾一下,数据脏度分数估计数据集中包含错误的单元格的预期比例。以下是该指标背后的关键假设:

  • 数据错误与违反约束有关。
  • 如果没有预期,就不会对分数产生影响
  • 数据问题可以精确定位到特定的cell
  • 每个数据错误都会分配一个置信度分数
  • 每个单元格对总分都有相同的影响。

此过程的第一步涉及识别和分类数据集中存在的数据不准确之处。

自动检测数据质量问题的重要性

检测数据问题在此过程中至关重要,但由于以下几个因素而具有挑战性:

  • 人工标记成本高:识别数据错误通常需要数据专业人员(如科学家、工程师和分析师)或主题专家 (SME) 的大量输入。这需要大量时间并且成本高昂。
  • 数据从业者对这项繁重的工作缺乏热情:众所周知,许多业内人士认为数据清理是他们工作中不太有吸引力的方面。数据清理被视为建模、构建现代数据堆栈或回答业务查询等更具吸引力的活动的先驱,其优先级列表中的数据清理通常排在较低的位置,从而导致拖延,或者在某些情况下完全被忽视,直到出现关键问题。
  • 中小企业的局限性:中小企业拥有宝贵的知识,但可能缺乏 SQL 或编程等技术技能。虽然无代码和低代码工具在一定程度上有所帮助,但它们尚未被完全采用,并且可能无法涵盖所有​​数据管理方面,例如版本控制。
  • 专业知识差距:有效的数据清理超越了基本技能,需要专门的专业知识。缺乏培训以及对数据准备普遍不感兴趣意味着许多从业者可能只能识别出表面的错误,而忽略了需要更深入地了解数据清理的更复杂的问题。

尽管存在固有的挑战,大型语言模型 (LLM) 领域的进步为自动识别简单数据问题和发现更复杂的数据质量问题提供了有前景的解决方案。

由LLM提供支持的数据错误检测

大型语言模型正在成为自动检测数据质量问题的宝贵工具,成为高效的人机交互迭代过程的有效起点。模型,例如《Jellyfish:用于数据预处理的大型语言模型》等论文中讨论的模型,语言模型可以自动处理数据吗?大型语言模型作为数据预处理器,展示了它们自动约束生成和数据错误检测的潜力。这种自动化并没有取代人工干预,而是增强了人工干预,允许通过直接解决问题或修改置信度分数以反映数据错误检测中固有的不确定性来审查和调整自动化约束。

LLM特别适合检测数据质量问题,因为他们接受过各种互联网内容的广泛培训,包括大量的领域知识和与数据质量问题相关的大量代码审查示例。这种培训使LLM能够根据文本内容识别数据错误,而不需要明确定义的规则。通过将表格数据集转换为纯文本(称为序列化),LLM可以像经验丰富的团队一样仔细检查数据,利用他们的“压缩”互联网知识来查明错误。这种广泛的培训使他们能够以模仿人类专业知识的直觉水平识别人类可读数据集(例如 CSV 文件)中的潜在错误。此外,特定领域知识中的任何差距都可以通过检索增强生成 (RAG) 等技术或根据数据集的特定性质定制模型的提示来弥补。

在数据错误检测中采用LLM的另一个关键优势是它们能够处理与数据质量问题相关的固有不确定性。并非所有错误都是直截了当的,甚至专家有时也会对数据问题的构成存在分歧。LLM可以为他们的发现分配置信度分数,就像人类基于直觉和经验的混合所做的那样,反映错误的估计可能性。

跨不同数据集和潜在问题进行泛化错误检测的挑战是巨大的。传统方法通常采用一组广泛的决策规则或专门的机器学习模型的组合来解决各种场景,例如检查地址和电话号码的有效性或异常检测。这就是LLM的闪光点,它提供了适应性更强、劳动力密集程度更低的替代方案。它们无需大量基于规则的系统或特定领域模型即可理解和识别各种数据质量问题的能力使它们成为宝贵的工具。机器学习方法相对于传统业务规则或统计方法的优势的类比非常有趣。机器学习的采用是由于其相对易用性和跨不同用例的适应性,需要较少的特定领域知识和实施时间。

接下来,我们将通过一个实际例子来演示这种方法。

案例研究

在上一篇文章中,我们使用《清理数据以实现有效数据科学》一书中的数据集示例探讨了数据脏度分数的概念。有问题的数据集如下:


      
### 基于大型语言模型 (LLM) 的 IT 系统故障诊断技术与应用 #### 大型语言模型在故障诊断中的角色 大型语言模型(LLMs)通过其强大的自然语言处理能力,在IT系统的故障诊断方面展现出巨大潜力。这些模型能够理解复杂的日志文件、错误消息和技术文档,从而帮助识别潜在问题并提供解决方案建议[^1]。 #### 故障诊断流程集成 LLMs 当应用于IT系统故障诊断时,LLMs可以被用来解析来自不同源的日志数据和其他形式的半结构化或非结构化的输入信息。通过对大量历史案例的学习,LLMs能快速定位相似的历史事件模式,并给出针对性强的修复指导。此外,借助先进的上下文感知机制,即使面对新的未知情况也能有效应对。 对于具体的实现方式,可以通过如下 Python 代码片段展示如何利用预训练好的 GPT 或其他类型的 LLM 来辅助分析日志: ```python import transformers as trfms from datasets import load_dataset # 加载预训练的语言模型 model_name = "gpt2" tokenizer = trfms.AutoTokenizer.from_pretrained(model_name) model = trfms.AutoModelForCausalLM.from_pretrained(model_name) def analyze_log(log_text): inputs = tokenizer(log_text, return_tensors="pt") outputs = model.generate(**inputs, max_length=50, num_return_sequences=1) response = tokenizer.decode(outputs[0], skip_special_tokens=True) return response log_sample = "Error occurred while processing request at timestamp..." diagnosis_result = analyze_log(log_sample) print(f"Diagnosis Result: {diagnosis_result}") ``` 此段代码展示了加载一个预先训练过的GPT-2模型来生成针对给定日志条目的解释或可能的原因说明。当然,实际部署中还需要考虑更多细节优化,比如特定领域术语的理解以及更精确的结果过滤等。 #### 开放挑战与研究方向 尽管取得了显著进展,但在将LLMs用于实时生产环境下的自动化故障检测仍面临诸多挑战。其中包括但不限于提高响应速度、降低误报率、增强跨平台兼容性和改进对专有协议的支持等问题。因此,持续探索更加高效的数据表示方法和算法架构成为推动该领域发展的关键所在。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值