Devops 团队旨在提高部署频率,减少生产中发现的缺陷数量,并提高从微服务和面向客户的应用程序到员工工作流和业务流程自动化的一切的可靠性。
实施CI/CD(持续集成和持续交付)管道可确保构建和部署所有这些应用程序和服务的无缝路径,自动化测试和实施持续测试实践有助于团队保持质量、可靠性和性能。通过持续测试,敏捷开发团队可以 左移他们的测试,增加测试用例的数量,并提高测试速度。
[也在 InfoWorld 上:在数据科学和机器学习中应用 devops ]
构建测试用例并使其自动化是一回事,拥有足够数量和种类的测试数据来验证足够数量的用例和边界场景是另一回事。例如,测试网站注册表单应验证输入模式的排列,包括缺失数据、长数据条目、特殊字符、多语言输入和其他场景。
挑战在于生成测试数据。一种方法是合成数据生成,它使用不同的技术根据模型和输入模式集推断数据集。合成数据生成解决了所需数据的数量和种类。在使用真实数据可能引发法律或其他合规性问题的情况下,您还可以使用合成数据生成来创建数据集。
“当所需数据不存在或原始数据集充满个人身份信息时,合成数据提供了一个很好的选择,”Accelario 的首席技术官兼联合创始人 Roman Golod说。“最好的方法是基于现有模式创建合成数据以进行测试数据管理或构建规则,以确保您的 BI、AI 和其他分析提供可操作的结果。对于这两者,您需要确保可以根据不断变化的业务需求对合成数据生成自动化进行微调。”
合成数据生成用例
虽然合成数据生成的最基本需求源于测试应用程序、自动化和集成,但随着数据科学测试需要机器学习和人工智能算法的测试数据,需求也在增长。数据科学家有时会使用合成数据来训练神经网络;在其他时候,他们使用机器生成的数据来验证模型的结果。
其他合成数据用例更具体:
[在这份免费的 CIO 路线图报告中了解 IT 如何利用 5G 的力量和前景。现在下载!]
通过确保在两个基础架构上运行相同的应用程序生成相同的结果来测试云迁移
为安全测试、欺诈检测和其他实际数据可能不存在的实际场景创建数据
生成数据以测试大规模 ERP(企业资源规划)和 CRM(客户关系管理)升级,测试人员希望在迁移实时数据之前验证配置
为决策支持系统生成数据以测试边界条件、验证特征选择、提供更广泛的无偏测试数据样本,并确保AI 结果可解释
对人工智能和物联网系统(例如自动驾驶汽车)进行压力测试,并验证它们对不同安全情况的反应
如果您正在开发具有高维数据输入以及关键质量和安全因素的算法或应用程序,那么合成数据生成提供了一种以经济高效地创建大型数据集的机制。
“合成数据有时是唯一的出路,因为真实数据要么不可用,要么不可用,”KNIME 的数据科学家 Maarit Widman说。
平台如何生成合成数据
您可能想知道平台如何生成综合测试数据以及如何选择最佳算法和配置来创建所需数据。
Widman 解释说:“生成合成数据有两种主要策略:基于统计概率或基于机器学习算法。最近,像循环神经网络这样的深度学习技术——比如长短期记忆网络和生成对抗网络——因其能够从无到有地生成新的音乐、文本和图像的能力而越来越受欢迎。”
当数据点之间存在依赖关系时,例如时间序列数据和文本分析,数据科学家会使用RNN(循环神经网络) 。LSTM(长期短期记忆)通过一系列重复模块创建一种形式的长期记忆,每个模块都有提供类似记忆功能的门。例如,文本分析中的 LSTM可以学习字符和单词之间的依赖关系以生成新的字符序列。它还用于音乐创作、欺诈检测和谷歌的 Pixel 6 语法校正。
GAN(生成对抗网络)已被用于生成多种形式的图像、破解网络安全密码,甚至制作披萨。GANs通过使用一种算法生成数据模式和另一种算法来测试它们来创建数据。然后他们在两者之间形成对抗性竞争以找到最佳模式。生成合成数据的 GAN 代码示例包括PyTorch 手写数字、用于开发一维高斯分布的 TensorFlow 模型和用于模拟卫星图像的 R 模型。
选择机器学习和基于统计的模型是一门艺术和科学。Monitaur的联合创始人兼首席技术官 Andrew Clark解释了如何尝试合成数据生成。他说:“这里的经验法则始终是为工作选择最简单的模型,并以可接受的准确度执行任务。如果您正在对客户结账行进行建模,那么基于泊松分布的单变量随机过程将是一个很好的起点。另一方面,如果您有大量贷款承销数据集并想要创建测试数据,GAN 模型可能更适合捕捉各个特征之间的复杂相关性和关系。”
如果您正在处理数据科学用例,那么您可能希望灵活地开发合成数据生成模型。商业选项包括用于计算机视觉的Chooch 、Datomize和Deep Vision Data。
如果您的目标是应用程序测试,请考虑用于测试数据管理或综合生成测试数据的平台,例如 Accelario、Delphix、GenRocket、Informatica、K2View、Tonic,以及一些测试数据工具,例如开源测试数据生成器。Microsoft 的Visual Studio Premium也有一个内置的测试数据生成器,Java 开发人员应该使用Vaadin 的数据生成器查看这个示例。
如今,拥有强大的测试实践非常重要,因为组织依赖于应用程序的可靠性和机器学习模型的准确性。合成数据生成是另一种缩小差距的方法。因此,您不仅拥有测试、训练或验证方法,而且还拥有生成足够数据来构建模型和验证应用程序的方法。
-
GaN
+关注
关注
19文章
1918浏览量
72977 -
机器学习
+关注
关注
66文章
8377浏览量
132406
发布评论请先 登录
相关推荐
评论