CIO分享:什么时候数据太干净而无法用于企业AI?

CIOAge 人工智能
数据质量对于AI项目的成功至关重要,但你需要保留原始数据的丰富性、多样性和完整性,以免破坏结果。

数据质量对于AI项目的成功至关重要,但你需要保留原始数据的丰富性、多样性和完整性,以免破坏结果。

数据管理曾经是数据仓库团队的职责,如今已经越来越多地成了高管层的优先事项,数据质量被视为客户体验和业务绩效的关键。但除了数据孤岛和合规性问题外,数据质量差也阻碍了企业AI项目的发展。虽然大多数高管普遍信任他们的数据,但他们也表示,只有不到三分之二的数据是可用的。

AI编码助手开发商Tabnine的联合创始人、首席技术官Eran Yahav表示,对于许多组织而言,为AI准备数据是他们第一次以跨领域的方式查看数据,从而发现系统之间的差异。

解决这个问题可能意味着要从基本的数据清洁度开始,例如确保数据库中有正确的字段以满足不同团队的需求,或者整理用于AI的数据以反映出你想要的结果。我们正试图让AI拥有与企业中最好员工相同的知识,这就需要进行整理和清理,以确保清洁度和一致性,还需要反馈循环。”

有些组织会使用自己的代码库来教授AI编码助手最佳实践,他们需要删除不希望重复的遗留代码,而且大型数据集并不总是比小型数据集更好。Yahava说:“有客户通过复制现有项目并对其进行修改来创建新项目,他们有上百份相同内容的副本,只有细微的差异,而且无法区分它是否重要,因为都淹没在各种重复中了。”

良好的数据治理始终涉及到处理数据集中的错误和不一致,以及通过删除重复项、更正拼写错误、标准化和验证数据格式及类型、扩充不完整信息或检测数据中不寻常和不可能的变化,以索引和分类结构化数据,这一点仍然是很重要的,但并不总是与AI处理的非结构化和半结构化数据相关,这些数据也会有越来越多的变化。AI的数据质量需要涵盖偏见检测、侵权预防、模型特征数据中的倾斜检测和噪声检测等。

常见的数据管理实践对于AI来说太慢、太结构化、太死板,因为数据清理需要针对具体情况并根据特定用例进行量身定制。对于AI来说,没有通用的标准来判断数据是否“足够干净”。

即使是对于更传统的机器学习来说,为商业智能和金融带来回报的大规模数据清理工作也很少能够满足数据科学团队的需求,这些团队可能已经针对AI进行他们自己的数据工程,并且在此过程中创建了更多不受管控的数据孤岛,Domino Data Lab的AI战略负责人Kjell Carlsson这样说道。

数据清理不足会导致明显的问题,但背景是关键。谷歌建议使用胶水制作披萨食谱,因为这让美食摄影师可以把融化的马苏里拉奶酪看起来更诱人,这可能会被从通用大型语言模型中剔除出去,但正是你在训练AI提供摄影技巧时想要包含的那种数据。相反,如果在训练集中保留了明显讽刺性网站的内容来源,谷歌搜索中发现的其他一些不恰当的建议可能就会被避过。

Carlsson说:“数据质量极其重要,但会导致非常循序渐进的思维,从而让你误入歧途。最好的情况下,它最终会浪费大量的时间和精力。最坏的情况下,它会进入并从你的数据中删除信号,实际上与你所需要达到的目的是背道而驰的。”

相对来看

不同的领域和应用需要不同级别的数据清理。你不能将数据清理视为一种适合所有用途的万能数据,传统的“单一版本事实”一直是商业智能的目标,但实际上是一个有偏见的数据集。“没有‘干净的数据’这种东西,”Carlsson说。“它总是和你使用它的目的有关,在所有这些不同的用例中,干净的数据是非常不同的。”

你可能会把员工记录的数据质量用于处理薪资和公司内部新闻邮件活动,以此为例。日立公司全资子公司Pentaho产品管理高级总监Kunju Kashalikar表示:“应该以不同的方式看待这些问题,根据不同的情况确定质量。”

Carlsson补充说,AI需要更灵活、协作、迭代和定制化的数据清理,以适应数据的使用方式。“最棒的是,我们现在是以很多以前没有过的方式使用数据,但的挑战是,你需要对每一种数据采用不同的清洁方式。”有时这意味着在清理方面做更多的工作,有时则意味着做更少的工作。

Carlsson警告说,如果组织在开始理解和构建AI用例之前,就试图为AI准备好数据,那么可能会损害自身利益。因此,在开始为企业AI进行大规模数据清理之前,请考虑把数据清理得太干净带来的弊端。

收益递减

软件开发商Cohesity的EMEA首席技术官Mark Molyneux表示,CIO会问如何清理数据,但他们应该问要清理到什么程度。“理论上,你可能永远都在清理数据,这取决于数据的大小。”

Syniti EMEA董事总经理Chris Gorton就是一个典型的例子,他在职业生涯早期花了大量时间为一家自动售货机公司清理客户地址,结果却发现,他们真正需要的是发送发票的电子邮件地址,或者是维修设备的具体位置。

他警告说,很多组织都在囤积没有运营价值的大型数据集,在开始大规模且昂贵的数据清理计划之前,确定更清洁的数据会给你带来什么价值,这一点非常重要。“如果你不能描述你需要的数据活动,或者是结果如何关联业务中的某些价值相,那么可能就是不需要做的,”Gorton说。

特别是从清理旧数据的角度来看,80/20规则可能不值得你付出努力。无论你把数据用于什么用途,这都适用。如果检测和删除数据集中错误电话号码的成本,高于拨打那么多浪费的电话或发送那么多无法送达短信的成本,那么提前修复这些数字就是没有投资回报的。

Kashalikar说:“很多组织花费大量时间丢弃或改进邮政编码,但对于大多数数据科学而言,邮政编码中的子部分并不重要,我们正在查看一个大致的地理区域,了解潜在的趋势。这就是浪费太多东西的一个典型例子。”

哥伦比亚大学卫生政策和管理兼职教授Howard Friedman说,要了解你是否从数据清理中获得了价值,首先就要定义什么是成功,以及了解模型的要点。从基本数据分类和标准质量检查开始,包括缺失数据、范围检查、分布和相关性。并非所有列都是相同的,因此你需要优先清理对模型和业务成果很重要的数据特征。不要清理数据,而要对基本操作实施自动化,寻找解释缺失数据的模式,考虑转换特征,因为缩放可能会压缩值或增加方差。

但在你追求更先进的数据质量改进方法之前,先评估增量模型改进是什么。“如果我只花了几个小时的努力和几千美元的投资就能获得90%的模型价值,而不是必须花费25万美元才能获得完美的数据,结果会怎样?”Friedman问道。对于模型的小幅改进来说,只有10%的改善可能是不值得的。

“把它看作一个商业问题,我把时间和金钱投资放在哪里,我期望得到什么回报,”他说。

调查现有项目,看看数据质量问题实际上有什么影响。除了投资清理低质量数据集之外,你可能还有其他来源可以使用,这可能是你购买的数据或你构建的黄金数据集。“如果你的数据清理预算有限,那就值得花这笔钱来创建一个由人类策划的高质量输入和黄金标准输出数据集,”斯坦福大学医学院生物医学数据Knight-Hennessy学者Akshay Swaminathan说。“在生成式AI的世界中,准确性这个概念要模糊得多。”随着技术的进步,一个黄金问题数据集与黄金标准答案相结合,可以帮助你快速对新模型进行基准测试。

机会成本

过多的数据清理不仅会浪费时间和金钱,甚至可能会删除有用的数据——即使这些数据看起来是不完整的。

Kashalikar说:“如果你最初有一百万条记录,而你得到了50万条质量最好的记录,你真正想知道的是,在缺失的50万条记录中,有多少条质量足够好而你没有得到。如果你有25万条记录,质量足够好但不够完美,那么,你要么删掉四分之一的潜在数据,要么浪费时间去清理四分之一的记录——而这并不是必须的。”

同样重要的是,不要过度清理数据,以免失去其独特性,这也称为过度规范化。数据集的过度标准化或同质化,会消除有价值的变化和细微差别,而这些变化和细微差别是AI模型的重要特征,这么做会降低其泛化能力。例如,在不考虑区域差异的情况下,地址拼写的规范化可能会抹去重要的人口统计洞察。

丢失异常值与过度规范化的问题类似,但针对的是单个数据点,而不是整个数据集。积极移除异常值和极端情况可以消除重要的边缘情况,正如Swaminathan所说,“一个人的垃圾是另一个人的宝藏。”

数据集中一些不可能的数值很容易被安全地修复,例如价格不太可能为负数,或者人类年龄超过200岁,但手动数据收集或设计不良的数据库可能会出现错误。Yahav说:“也许数据是在医院紧急情况下输入的,然后更改了身高和体重。”例如,他处理的一个产品数据库没有产品序列号字段,因此工作人员将其放在了重量字段中。“突然间,玩具店里的产品重达五吨。”

但一些异常值或看似“脏”的数据点却是真正的信号,而不是错误,可能表明有一些领域是值得探索的,Yahav说:“有人因为下雨而在交通中花了五个小时?这是交通信息的一个有趣的异常值。”

如果你正在训练一个模型来去除医疗数据中的身份信息,那么它需要对异常值(如唯一名称、地址的变体格式和识别号)具有鲁棒性,以便正确检测到这些异常值,这就意味着你需要在训练集中包含这些异常值。特别是在处理代码不太可能更新的遗留系统时,你的数据管道需要验证和清理已知问题。但Yahav认为,其中一些需要人类判断来区分真正的错误,而不是用于泛化的、有意义的信号。

增加偏见

过度激进的清理会删除未通过验证的记录,从而导致数据集出现偏见,因为你会丢失具有特定特征的记录。Kashalikar警告说,删除没有中间名首字母的记录会导致删除来自印度次大陆某些地区的人员。同样,删除不常见的姓名或坚持所有姓名都超过两个字母,可能会导致模型出现偏差,从而针对不同人群有不佳表现。

“创建模型的数据科学家可能不了解没有数据意味着什么业务影响,”他指出。让那些了解问题背景的人参与数据清理决策,这一点非常重要。

去除背景

如果清理数据集过于彻底,你可能会删除对整体情况至关重要的背景信息。一些网络钓鱼消息故意包含错误的拼写和语法,以选择不太谨慎和不太了解情况的受害者,而虚假链接将包含接近真实域名的URL。清理这些数据(或清理沮丧客户消息中的语言)会消除有关如何应对问题的宝贵线索。而且大型语言模型使用数据的方式与更传统的机器学期是不同的,数据的语义可能至关重要。

医学转录模型的干净数据集显然不应包括YouTube视频中要求用户“喜欢和订阅”的常用短语,因为像OpenAI Whisper这样的通用模型在处理乱码音频时经常会产生这些短语的幻觉,使其不适合医学转录,但这些数据对于创建转录视频的模型又是至关重要的。

Carlsson指出,标准数据清理还会消除停顿、叹息、犹豫和说话者不愿意说完的单词,但这些线索在试图预测购买意愿或意图时是很有用处的。“如果有一个模型可以检测客户的兴趣,告诉客户代表你应该停止强行推销,因为这个人显然不感兴趣,那将是很有用处的,”他说。这就是为什么在清理数据之前知道要用数据做什么是如此重要。

忽略现实世界的混乱

传统机器学习在处理混乱数据时很脆弱,因此很容易将其删除。但是,数据过于统一可能会导致模型在干净的结构化数据(如训练集)上表现良好,但在处理现实世界的混乱数据时却举步维艰,导致在生产环境中表现不佳。

Swaminathan解释说,大型语言模型之所以能通过律师资格考试或医学委员会,因为这些考试太过干净了,无法作为有用的基准。“它为你提供了一个病人的简介,里面已经包含了所有相关信息,它告诉你,病人会告诉你他们的生命体征、影像和实验室结果。在现实世界中,医生需要分别获取所有这些信息。”同样地,如果你正在创建一个客户支持的黄金数据集,那么要避免让客户的要求太过干净和信息丰富。

Friedman承认,这里存在一个明显的矛盾。“你训练的数据集越脏,模型就越难学习,越难取得成功。但与此同时,为了让它在现实世界中充分发挥作用,它需要能够在那些更脏的环境中运行。”

大型语言模型尤其需要能够对错误的输入做出反应。删除口语、拼写错误或区域语言差异,可能会给模型处理现实世界语言使用的能力造成阻碍。“了解如何应对脏数据以及理想的干净数据——从干净数据开始是件好事,但最终它必须是稳健的,”Friedman补充说。

缺失趋势

以同样的方式清理新旧数据可能会导致其他问题。新的传感器可能更精确、更准确,客户支持请求将涉及产品的较新版本,或者你要从他们的在线足迹中获得有关潜在新客户的更多元数据。无论数据源是什么,都可能有新的信息需要捕获,或者数据中的特征可能会随着时间的推移而发生变化。例如,在印度,离婚最近才得到官方承认。你不能将其添加到旧记录中,但为了保持一致性,你也不应该将其从新记录中删除。因此,请注意数据清理不会掩盖新旧数据之间的差异,从而导致模型无法考虑不断变化的趋势。

“即使对于相同的用例,基础数据也会随着时间的推移而发生变化,”Swaminathan警告说。“例如,我们在2024年10月为回答客户问题而制定的黄金基准,可能会在三个月后因自然灾害而过时,突然出现卫生纸短缺的情况。即使是同一家公司为同一个客户执行同一个任务,基准也会随着时间的推移而过时。”

随着趋势的变化,你也可能会丢失数据中的信号。当客户的联系电话从固定电话转移到手机时,组织就无法从号码中提取客户位置。“如果你使用区号来验证位置,就会丢失大量的记录,”Kashalikar补充说。与你合作的两家公司也可能会合并,因此决定是将两家公司视为同一实体,还是将其分开保存在你公司的黄金主记录中,这要取决于具体的情况。

即使没有重大变化,基础数据本身也可能已经发生变化。Friedman说:“感兴趣的结果变量与你的特征之间的关系可能已经发生改变,你不能简单地锁定目标,说‘这个数据集是绝对完美的’,然后把它从架子上拿下来,一年后再用来解决问题。”

为了避免所有这些问题,你需要让具有专业知识的人参与进来,区分真正的错误和有意义的信号,记录你对数据清理做出的决定及其原因,定期审查数据清理对模型性能和业务成果的影响。

不要前期先进行大量数据清理、然后才开始开发,而是要采取迭代的方法,进行逐步的数据清理和快速实验。

Yahav说:“我们已经看到成功的方法就是逐步加入数据,人们很容易说让我们把所有东西都连接起来,相信这会起作用的。但当它给你带来冲击的时候,你都不知道哪里出了问题,不得不断开连接。”

因此,你可以从少量的最近数据或你信任的数据开始,看看运作情况,然后从那里构建更多的来源或数据量,看看在哪里出了问题。“它最终会停下来,因为你忘记了一些东西会进入主管道,而有些事情会让你大吃一惊,你希望这个过程足够渐进,这样你才能了解是什么原因造成的。”

责任编辑:庞桂玉 来源: 至顶网
相关推荐

2024-03-26 11:05:36

2017-05-15 09:55:07

2020-05-12 11:25:50

MySQLES数据库

2023-03-15 10:37:21

OpenAIChatGPT

2015-07-08 15:55:01

NSStringcopystrong

2014-09-17 10:57:22

802.11acWLAN

2013-11-28 16:03:24

2012-09-24 10:20:39

JavaScriptJS

2024-10-11 16:34:41

2024-04-23 11:11:48

2017-06-28 15:06:51

PythonLambda函数

2024-08-05 01:22:16

2022-05-19 10:27:34

机器学习人工智能

2021-08-13 11:31:23

HTTP

2013-04-25 10:28:38

大数据云服务

2019-04-16 13:27:36

隐私数据信息保护

2021-01-30 19:59:37

性能项目开源

2012-07-26 10:27:31

PHP

2015-02-01 09:45:46

2015-03-02 14:44:48

AngularJS jQuery超越

51CTO技术栈公众号