训练集、验证集、测试集和而不同,国内数据集又是怎样光景?

0 评论 1349 浏览 6 收藏 37 分钟

在AI的世界中,有关数据集的“故事”有很多,这篇文章里,作者就继续讲述有关AI数据集的那些原理,梳理了训练集、验证集、测试集的区别和联系,以及目前国内数据集的现状、挑战和应对之策。想弄懂AI数据集的同学,不妨来看看这篇文章。

各位看官:

欢迎一起揭秘AI的世界。AI领域中,无论是模型,算法,还是应用,都离不开数据。

如果将AI比喻成一个厨师,那么数据就是食材。没有食材,厨师就无法烹饪出美味的佳肴。同样地,没有数据,AI就无法进行分析和预测,无法提供有价值的信息和决策支持。

所以,我觉得很有必要在了解AI的初步阶段时,就先和大家一起了解一下AI数据集是怎么回事。

无论你是厨师还是食客,大致要知道一些,美食佳肴用哪些食材烹饪而成的吧?

原本呢,我是打算仅一篇文章就把数据集的事情说清楚的,但后面越写越发现,数据集的内容比我预想的要多,文章草稿拟完后,意外发现竟然有2万多字。

2万多字如果放在一篇文章中,不符合阅读习惯,不能发。所以,即使我已经将整体的内容草稿都写好了,还是决定再投入一些精力和时间,重新进行一轮拆分。

毕竟太长的内容,确实会影响到阅读的耐心,在短视频充斥的当代,也不知道还剩多少人会有耐心看完一篇长文了。可见,内容太长,亟待拆解,分章阅读,许更合适。

本篇依旧继续说数据集的故事,这是数据集的第三篇文章,和之前两篇有上下文的逻辑关联,但不会影响独立阅读。如果想一次性弄懂AI数据集,可以连着前面两篇一起看。

第一篇《带你识别AI数据集的各种面孔 (AI从业万字干货)》中,我主要介绍了AI数据集是什么,这些数据集的常见格式有哪些,分别有哪些适用场景和局限之处,也给大家整理了一些网上的公开数据集,当我们需要数据来做AI项目时,可供君参考。

第二篇《AI届的英雄好汉“训练集、验证集、测试集”各显神通!》中,我将三者比喻成了教师、辅导员和考官,通过猫猫识别模型的模拟案例来说明三者在不同阶段所发挥的能力以及如何运用。

这是第三篇,我想说的是“训练集,验证集,测试集”的区别和联系,以及目前国内数据集的现状、挑战和应对之策。希望对你有帮助。

全文8000字左右,预计阅读时间12分钟,若是碎片时间不够,建议先收藏后看,便于找回。

照例,开篇提供文章结构导图,方便大家在阅读前总揽全局,有大致的画面框架。

一、训练集、测试集、验证集的不同之处

训练集、测试集、验证集这三者,在数据目的与功能、数据交互频率上、数据划分与比例以及使用时机等方面均有不同之处。

1. 目的与功能不同

训练集、测试集、验证集这三者的目的和功能不同。训练集主要用于训练模型,验证集主要用于在训练过程中选择模型和调整超参数,测试集则用来最终评估模型的性能。

【训练集】:训练模型

训练集用于模型训练,帮助模型确定权重和偏置等参数,模型通过深入学习和理解训练集中的数据,逐渐学会识别其中的模式和规律,并逐步优化其预测能力。

这就像是人类在学习语言和知识,一步步建立起自己的认知体系。

“九层之台,起于累土。”没有良好的训练集,模型就像是失去了根基的大树,无法稳固地生长和扩展。

因此,我们需要精心准备和挑选训练集,确保它具有代表性和高质量,这样模型才能更好地理解和适应真实世界的变化。

【验证集】:选择和调参

验证集用于模型选择和超参数调整。它不参与学习参数的确定,主要帮助我们在众多可能性中,找到那些能够使模型性能达到巅峰的超参数,如网络层数、网络节点数、迭代次数、学习率等。

它有点像是幕后的智囊团,默默地为挑选最优模型超参数提供优质的咨询和建议。

验证集让我们能够在实战之前,就预知模型的性能,从而做出最佳的选择。这种前瞻性的策略,不仅能够提高模型的效率,更能够节省宝贵的时间和资源。

【测试集】:评估性能

测试集用于评估模型的最终性能,是考验模型的最后一关。它不参与模型的学习参数过程,也不介入超参数的选择,它的存在,就是为了对模型的最终性能(即泛化能力)做出公正的评价。

如果把自己想象成一个AI大模型,有没有觉得测试集有点像古代的科举考试,或者是当今的高考,是对自己所学知识的一次全面检验。

“真金不怕火炼”,测试集就是那炼金的火焰,一个AI模型只有通过了它的考验,才能真正称得上是具备良好泛化能力的模型。

2. 数据交互频率不同

训练集、测试集、验证集这三者和模型的数据交互频率不同。训练集会不断交互,验证集是定期交互,而测试集只交互一次。

【训练集】:不断交互

使用训练集时,模型在训练阶段不断与训练集交互,通过多次地学习、调整和迭代来提高性能。它是在训练集的多次反馈中完成优化的。

这让我想到“熟能生巧”这个词,在训练集中,模型就像是一位手艺人在反复锤炼自己的技艺,通过一次次的迭代优化,逐步提升自己的工艺水平。

【验证集】:定期交互

验证集在训练过程中的不同时间点交互,帮助开发人员调整模型参数和决定训练的结束点。它在训练过程中的每一个关键时刻出现,为开发人员提供宝贵的反馈和指引,帮助开发人员调整模型的超参数。

所以,模型并不会在验证集中反复训练。和训练集中的情况不一样,模型只会定期和验证集进行数据交互,验证集的每一次反馈,都是对模型的一次重要检验,所获得的数据评估指标,也是优化AI性能的重要依据。

【测试集】:交互一次

测试集在整个训练过程完成后只交互一次,用于模型的最终评估。就像是那最后一场决定胜负的较量,只有在整个训练过程圆满完成后,它才会出现。

正因为只有一次,所以才倍感珍惜,测试集是模型的最后一道关卡,通过了,它就“出师”了,可以“下山”去江湖中见世面,接受真实世界的考验了。

3. 数据划分与比例不同

通常情况下,数据集会通过随机抽样、分层抽样、时间序列抽样等方式,按照不同比例划分为训练集、验证集和测试集,三者之间不能有交集。

【训练集】:占比约60%~80%

训练集作为模型学习的主要来源,需要占据较大的比例,以确保模型有足够的数据来捕捉到数据中的模式和规律。

【验证集】:占比约10%~20%

一般来说,这个占比规模的验证集已经足够提供模型性能的合理估计,能提供有关模型泛化能力的有用信息就行,不用过多。

而且,如果验证集太大,每次评估的时间成本会显著增加,这会拖慢整个实验的进度。

【测试集】:占比约10%~20%

因为测试集在模型训练完成后只评估一次,所以只要足够用于评估模型最终性能就行。

如果测试集太大,评估过程可能也会消耗大量的计算资源和时间,没有必要。

以上,就是在数据划分上,训练集、测试集、验证集较为常见的划分比例。具体比例取决于实际任务的需求和数据量的大小,不同的机器学习问题可能有不同的数据划分需求。

例如,对于数据量非常庞大的情况,可能只需要很小的验证集和测试集;而对于数据量本身就很小的情况,可能需要采用交叉验证等方法来充分利用数据。

4. 使用时机不同

训练集、验证集和测试集在模型的整个训练过程中,会在不同阶段发挥作用,所以开发人员使用它们的时机是不同的。

【训练集】:在模型的初始训练阶段使用

模型刚刚搭建起来的时候,就像是个对世界一无所知的新生儿,我们需要耐心地用训练集对它进行大量的训练,就像是给孩子上课,一遍又一遍,直到它掌握了所有的知识为止,这是初始必经过程。

【验证集】:在模型训练过程中定期使用

因为验证集用于监控模型的性能和调整超参数。所以在模型通过初始阶段的训练后,我们需要在过程中可以监督到模型的学习效果。

于是,在模型的训练过程中,直到结束训练前的这个阶段,我们会用验证集给模型来几场“摸底考试”,若是发现不对的地方,还可以及时调整,以确保模型在训练过程中具备良好的性能。

【测试集】:在模型训练完成后使用

测试集用于最终评估模型性能。所以,在训练集和验证集阶段,我们都不会用到测试集的数据,并且也需要保证测试集的数据是模型之前未见过的数据。

然后,在模型训练完成后,测试集作为最后的“期末大考”,会给模型一次真枪实弹的考验。

对模型学习成果来一次最终的全面检验是测试集存在的价值之一,这也是为什么测试集会被放在模型训练的最后阶段。

二、训练集、测试集、验证集的相似之处

训练集、测试集和验证集在数据来源、预处理、目标、独立性以及数据质量和代表性方面都有着相似之处,这些相似性是确保模型完成有效训练和评估的基础。

1. 数据来源一致

训练集、验证集和测试集通常来自同一数据源或具有相同的数据分布。这意味着它们共享相同的数据特征和属性,确保模型在不同阶段处理的数据具有一致性。

这就像是在同一个课堂里学习,大家都在吸收着同样的知识。

2. 相似的数据预处理

在模型训练之前,训练集、验证集和测试集都需要进行相似的数据预处理步骤,如归一化、标准化、缺失值处理等。

归一化就像是给数据量体裁衣,让每个数据点都在合适的范围内。

数据归一化是将数据缩放到一个特定的范围,通常是在0和1之间。这样做的目的是让数据在相同的尺度上,以便模型能够更好地学习和识别其中的模式。

例如,如果数据集中的某些特征值非常大,而另一些特征值非常小,那么在训练过程中,较大的值可能会对模型的学习产生更大的影响。

通过归一化,我们可以减少这种影响,使得每个特征对模型的贡献更加均衡。

标准化则是调整数据的尺码,让它们能够站在同一条起跑线上。

标准化的方法,是将数据特征的均值(mean)设置为0,标准差(standard deviation)设置为1。这通常通过减去特征的均值然后除以其标准差来实现。

公式为:z= (x−μ)/σ

其中:x 是数据点的原始值,μ 是该特征的均值,σ 是该特征的标准差。

通过将每个数据点减去其特征的均值,然后除以其标准差,我们可以将数据特征缩放到一个标准单位,使其具有零均值和单位方差。这个过程有助于某些算法(如线性回归)的训练和预测过程更加稳定。

缺失值的处理,则像是填补数据中的空白,让整个数据集更加完整。

在数据集中,可能会有一些数据点由于各种原因(如测量错误、数据录入错误等)而丢失。

处理这些缺失值的方法有多种,包括删除含有缺失值的样本、填充缺失值(如使用平均值、中位数或众数填充)、或者使用模型预测缺失值等。

处理缺失值的关键是确保不会引入偏差,同时保留尽可能多的有效信息。

3. 目标一致

尽管这三个数据集在模型开发的不同阶段使用,但它们的目标是一致的,即都是为了构建一个泛化能力强、能够准确预测新数据的模型。

这三个数据集,就像是一个团队的成员,奔着共同的目标,各司其职,相互协作,一起推动模型的成长。

4. 数据皆有独立性

为了保证模型评估的公正性,训练集、验证集和测试集中的样本必须保持相互独立。

这意味着,每个集合中的数据是独一无二的,不会与其他集合的数据交叉重叠,让模型在评估过程中的表现不会受到其他集合数据的影响。这种独立性确保了评估结果的真实性和有效性。

5. 保证数据质量和代表性

为了确保模型在不同阶段的学习和评估过程中能够获得准确和可靠的结果,训练集、验证集和测试集都需要能够代表原始数据的整体特性,同时还需保证数据质量。

这意味着它们都应该包含所有可能的数据特征和类别,以便模型能够在不同的数据集上都能学习到有效的模式,提高其泛化能力。

关于什么样的数据集算得上高质量,什么样的数据集属于具有代表性,我在《AI届的英雄好汉“训练集、验证集、测试集”各显神通!》中有详细介绍,感兴趣的朋友可以进一步阅读。

整体而言,我们从训练集、验证集和测试集的不同与相似之中可以发现,它们在机器学习的模型训练中是紧密相连的。

如果拿它们的关系举例的话。

训练集相当于课后的练习题,用于日常的知识巩固。

验证集相当于平时的周考月考,用来纠正和强化学到的知识。

测试集相当于期末考试,用来最终评估学习效果。

它们各司其职,共同保障了模型的有效学习结果和泛化能力。

三、国内AI数据集的现状与挑战

AI行业经过2023年一整年的喧嚣与热闹之后,大模型之间的“卷”也走向了高潮,国外有OpenAI的GPT-4、DALL-E,Meta的LLaMA 2等,国内有阿里的通义千问,百度的文心一言,百川智能的百川大模型等。

但实际上,AI应用的成功案例并不多,这表明AI落地的部分仍不明确,需要进一步的探索和创新。为了适应更多细分的落地场景,大模型之间这股“卷”的浪潮也将逐步带起一堆小模型之间的竞争。

“王侯将相宁有种乎”,AI的风吹起来了,更多的创业者和普通大众的机会来了,挖掘适合自己或者某个细分行业的小模型、小gpt,恐怕是2024年的主旋律了。

毕竟,“不管白猫黑猫,抓住老鼠就是好猫”。不管大模型小模型,能挣到钱的就是好模型。

但最关键的是,好模型离不开好数据,好的数据集对模型的成功至关重要。它能提升模型的精确度,让模型能更准确地预测或分类。

同时,好的数据集还能增强模型的可解释性,使我们更容易理解模型的决策过程。也有助于模型更快地收敛到最优解,这意味着模型的训练时间将大大缩短,这背后也意味着的,是实打实的效率和成本,是核心竞争力。

我们不妨一起来看看,国内数据集的现状与挑战。

1. 数据集的规模和质量还待提升

由于数据来源多样、数据类型复杂,国内AI大模型数据集存在质量参差不齐的问题。高质量的数据集往往需要专业的标注和清洗过程。这一过程包括对数据进行详细的分类、校对和验证,以确保模型能够接收准确、一致和有用的信息。

然而,国内部分AI数据集因缺乏严格的标注和清洗流程,导致数据质量不尽如人意。这些问题包括标注错误、数据重复和不平衡的数据分布,这些都可能削弱AI大模型的训练效果。

从另外一个角度看,这也凸显了高质量数据的价值,高质量的数据集不仅能够提升模型的性能,而且由于其收集和处理的复杂性,成本也相对较高。

与此同时,国内的数据文化有其自身的特色,国内在数据集的共享和开放性方面相对谨慎。由于对数据隐私、安全以及商业竞争的考虑,许多有价值的数据库并没有对外公开。从技术的角度来看,这种做法可能会限制数据集的广泛应用和研究。

然而,从其他角度来看,保持数据的独立性和私密性也是有其合理性的。这种做法有助于保护敏感信息,防止数据被滥用,同时也鼓励企业和机构投资于数据收集和分析,以获得竞争优势,也算是体现了对数据安全和商业利益的重视。

随着AI浪潮的涌进,未来的大模型可能会呈现出一种增长飞轮效应。然而,无论模型变得多么庞大,数据集的质量始终是关键。

为了从公开网络中获取高质量的数据,我们需要寻找那些内容质量高、规模大的平台。例如,对于视频内容,字节跳动和腾讯的视频平台是不错的选择,B站上的视频质量也比较优秀。至于观点表达和知识分享,百家号、知乎等平台则提供了丰富的资源。

在国内,中文数据集在AI研究中进展较慢,部分原因是构建中文数据集的难度大,且NLP算法的进步与中文数据集关联性不强。这些因素导致我们的中文NLP数据集在数量和质量上与国外存在明显差距。

为了有效缩小这一差距,同时考虑实际操作、成本效益和时间效率,我们可以推动关键行业应用数据集的发展。这样做不仅能加快中文NLP技术的发展,还能确保其在实际应用中的高效和实用。

2. 大模型与数据集之间必然相辅相成

国内的大模型呈现着百花齐放的盛况,数据的发展同样需要跟上这一步伐。

在2024年1月23日浙江省两会上,浙江省政协委员、达摩院院长、湖畔实验室主任张建锋建议统筹建设高质量医学影像数据集,推动医疗AI技术的广泛应用,进而促进医疗行业的发展。

在模型和数据相互助力方面,达摩院(湖畔实验室)与全球多家顶级医疗机构合作,创建了一个迄今为止最大的胰腺肿瘤CT影像训练集,并利用它训练出了一个具有强大泛化能力的AI模型。

据央广网报道,在一个包含2万多人的回顾性真实病例试验中,该模型成功发现了31例之前未被诊断出的临床病变,其中2例病患已经通过手术治愈。这项研究的成果被发表在了国际著名的医学期刊《自然·医学》上。

由此可见,好的AI模型和好的数据集,相辅相成,互相助力。AI模型如同大脑,通过深度学习与不断优化,实现智能识别、预测与分析;而数据集则如同养料,为AI模型提供丰富、准确的信息来源。

只有优秀的AI模型与高质量的数据集相结合,才能充分发挥AI的潜力,为各行各业带来颠覆性的变革。

伴随着GPT系列大模型的火热,国内的各大模型也都发挥着浑身解数,国内的科大讯飞星火认知大模型,百度文心一言,商汤商量,智谱AI-ChatGLM等模型都相继面市,不知道各位有没有去体验过呢?

小插曲,我们让星火认知大模型,文心一言,商汤商量,智谱AI-ChatGLM这四位来个小试牛刀。

假设初次见面,让它们做一个自我介绍,如何?

问题很简单,就用“你好,请介绍一下你自己,我该如何向你提问才能得到有效的答案?”一起来看看它们的回复吧。

科大讯飞星火认知大模型

百度文心一言

商汤商量

智谱AI-ChatGLM

从4款产品的回复来看,貌似是星火认知大模型更胜一筹呢,它的回答更加清晰易懂,结构层次分明,内容详尽周全。相较于其他产品,它在信息的组织上,逻辑性更强,传达信息时更加高效和精确。

当然啦,国内大模型还有很多,有阿里巴巴的通义千问,百川智能的百川大模型等,感兴趣的朋友,可以自行体验哈。

3. 数据集标准规范需更健全

随着人工智能技术的快速发展,AI大模型在众多领域展现出惊人的成长速度,几乎每周都能看到新的变化。

然而,AI大模型所需的数据集标准规范却略显滞后,数据集的标准和规范还不够健全,这在一定程度上影响了AI模型的训练效果和应用范围。

显然,国家已经认识到这一情况的重要性,制定了一系列政策和规划,如《国家新一代人工智能标准体系建设指南》、《AI大模型发展白皮书》等。这些政策文件为AI大模型的数据集标准规范提供了高层次的指导,指明了发展方向。

《国家新一代人工智能标准体系建设指南》中提到,“到 2023 年,初步建立人工智能标准体系,重点研制数据算法、系统、服务等重点急需标准,并率先在制造、交通、金融、安防、家居、养老、环保、教育、医疗健康、司法等重点行业和领域进行推进。建设人工智能标准试验验证平台,提供公共服务能力。”

《AI大模型发展白皮书》由国家工信安全中心在2023年9月14日发布,其中也有提到,在基础支撑方面,AI大模型训练数据需求激增,高质量数据集成为AI大模型进化的关键支撑。并建议全面夯实算法、算力、数据等高质量发展根基。

与此同时,由国家网信办联合国家发展改革委、教育部、科技部、工业和信息化部、公安部和广电总局共同发布的《生成式人工智能服务管理暂行办法》中,明确了生成式人工智能服务提供者在数据处理活动中应遵循的规定,包括使用合法来源的数据和基础模型,提高训练数据质量,确保数据的真实性、准确性、客观性和多样性等。

无论是从政策文件出发,还是从实际应用出发,AI大模型数据集标准规范对于我国AI产业发展具有重要意义。

面对当前的挑战,我们期待能看到更完善的政策法规体系,建立有效的数据集质量评估体系,推动数据集共享与开放,加强国际合作与交流,从而让我们的国产AI在全球竞争中也能立于不败之地。

4. 数据存储性能还需提高

人工智能技术的快速进步推动了AI数据集的急剧扩张和复杂化。大型数据集不仅包含海量的数据,而且还包括大量的文本、图片、音频和视频等不同类型的数据。

这就要求存储系统必须拥有更大的存储空间和更快的读写速度,才能满足这些不断增长的数据需求。

在AI的整个工作流程中,从数据收集、预处理、模型训练与评估,再到模型的部署和应用,每个环节都离不开对海量数据的存储和快速访问。

然而,目前主流的存储架构,如共享存储结合本地SSD硬盘,还有一些IT系统大多采用烟囱式的建设模式,导致了数据在不同存储集群之间需要频繁迁移。

这种数据迁移不仅增加了复杂性,还降低了AI大模型处理数据的效率,已然是当前AI数据集发展中面临的一个挑战。

所以,为了提高AI数据集的存储性能,需要对存储架构进行优化。

可以考虑采用分布式存储系统,将数据分散存储在多个节点上,提高数据的访问速度和可靠性。也可以采用数据压缩和去重技术,减少数据存储的空间需求,提高存储效率。

除了数量规模和数据架构,大模型参数的频繁优化和训练平台的不稳定性也会增加对高性能存储的需求。

可以采用数据分片和索引技术,提高数据的查询和访问速度。也可以采用数据预处理和特征提取技术,减少训练数据的大小和复杂度,提高训练效率。

伴随着AI大模型发展的大趋势:参数量指数增长、多模态和全模态的发展、以及对算力需求的增长,都会带来数据存储架构的挑战,如存储容量、数据迁移效率、系统故障间隔时间等。

因此,一个满足AI大模型发展的存储架构需要具备高性能和大容量,并能进行数据全生命周期管理,能支持AI全流程业务,兼容多种协议,支持数据高效流转的同时又能满足数千节点的横向扩展。要达到这个标准,着实不容易。

其实国内已经有头部企业在提供解决方案了,华为推出了OceanStor A310深度学习数据湖存储和FusionCube A3000训/推超一体机。既展现了华为在AI存储领域的深厚技术积累,也为AI大模型的发展和应用提供了强大的基础设施支持。

其中,OceanStor A310,专为处理基础和行业大模型场景设计,支持高达96个NVMe SSD闪存盘,带宽可达400GB/s,IOPS达到惊人的1200万。

与此同时,FusionCube A3000训/推超一体机的推出,进一步降低了企业应用AI大模型的门槛。该系统集成了高性能存储、高速网络和多样化的计算资源,专为应对行业大模型的训练和推理需求而设计。它不仅简化了部署和运维流程,还提高了资源利用率和系统稳定性。

不仅是华为,焱融科技的焱融全闪一体机F8000X,搭载全NVMe SSD硬件架构,携手YRCloudFile软件系统,能全力发挥硬件性能。结合高速infiniband 200Gb网络,为NVIDIA GPU集群实现存储、网络、计算全链路高性能配比。

这种设计摒弃了传统的数据核心建设模式,实现了存储、网络和计算三大核心资源的优化组合。这不仅消除了IT基础资源的限制,降低了数据流成本,还避免了资源浪费,实现了更优的投入产出比。

综合来看,AI数据集的重要性日益凸显,是AI行业进步的关键因素,同时也面临着许多挑战。我们需要企业和专业人士加大对AI数据集构建的投入,扩大数据集规模,提升数据质量。

同时,加强数据集的标准化和规范化同样重要,需要提高数据标注的质量,以确保数据集的有效性和可靠性。

在存储性能方面,需要研发和部署高性能、高可靠的存储系统,以支持大规模数据集的存储和管理,确保AI模型的训练效率和数据处理的准确性,这样的系统是AI行业的基础建设,是增长基础。

作者:果酿,公众号:果酿产品说

本文由 @果酿 原创发布于人人都是产品经理,未经作者许可,禁止转载。

题图来自 Unsplash,基于CC0协议。

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!