电子说
各领域的业务都在将以AI为例的机器学习技术引入其流程中,以期为客户带来更好的产品,为股东创造更高的营收成果。然而,要有效部署AI,需要自定义的机器学习模型、大量的计算和数量不可预估的数据。处理PB级数据,无论这数据是来自于最小的物联网设备还是世界上最大的城市,这一任务对设计于兆字节和毫秒的时代的存储技术来说都将是一大挑战。
为机器学习提供所有的数据,就需要为内存速度存储设计一项新的存储接口技术:NVM Express (NVMe)。NVMe与SATA和SAS不同,它消除了磁盘为中心协议的延迟诱导水平,而使用更快的通用处理器连接技术和PCI Express (PCIe)来减少延迟,为每个设备提供大量的带宽能力。对于PB级别的专注和微秒的处理使得NVMe非常适合机器学习。
数据是AI传递途径
机器学习的关键是数据。生成有意义的结果需要处理大量数据,这就要求我们有经过深思熟虑的数据工作流程。每个公司都有着不同的数据工作流程,以满足其自身的业务需求,流程可大概分为以下阶段:收集、准备、设计和训练。这四个阶段的数据工作流程输出的通常是可以对边缘或核心的新数据进行推断的模型。由于需要大量的数据,因此所有阶段都需要通过其对数据流的优化,避免出现瓶颈。NVMe接口的设计就是为了满足此要求,可以通过以下四种方式为AI的传递途径提供帮助:
更快捷、更经济实惠的数据收集
更快速的数据集准备周期
更短的模型设计周期转变时间
更有硬件效率的模型训练
NVMe用于更智能的数据收集
实现AI首先会面临到的挑战即是如何将原始数据收集到集中式数据存储中。这些数据的种类几乎是无限的:包括来自IOT设备的传感器报告、网络日志、制造质量报告等。事实上,数据是由例如Apache Spark™之类的工具或商业服务对该任务进行处理,然后在新的数据流中进行筛选,最后将非结构化数据输出到NoSQL数据库集群中。NVMe在提高其反应速度的同时,还能减少占用这些服务器的物理空间。
传统的非结构化查询语言(NoSQL=Not Only SQL)集群由具有多个本地硬盘接口的服务器和SATA硬盘组成。硬盘确实为PB级的数据提供了经济实惠的存储方法,但要实现更大的带宽,需要通过几十个SATA或SAS硬盘与服务器连接。此架构明显增加了单个服务器的大小,并且快速填充数据中心的机架,其中CPU服务器却大多处于空闲的状态。
单独的NVMe接口即可为多种独立的SATA或SAS接口提供所需的带宽,且只需要一个附加卡或2.5寸硬盘。用更小的NVMe SSD替换单个NoSQL服务器的大硬盘阵列,可以缩小单个NoSQL节点并显着减少整个机架的空间。
NVMe用于更智能数据准备
当今AI训练的一个必要前提就是拥有TB级或PB级的数据。但通常该数据并不是随时可用的格式。需要将数据转化成更容易被AI传递途径处理的格式,过滤掉异常值和虚假数据。对于部分不适合使用或不能合法使用的数据,例如受到保护的个人信息,也可能需要在这一阶段将其过滤掉。
这种处理需求可能会超过一个存储系统的可受范围,如果该存储系统不是为高吞吐量而设计的话。与NVMe基于PCIe高达6.4GB/s或更高的带宽相比,SAS和SATA的每个接口的有限带宽显得相对缓慢。同时在这一准备阶段,带宽不是存储系统的唯一要求:并行性也是一大关键因素。由于处理的数据量非常大,因此,在这一处理阶段,并行操作存在于集群中的多个服务器,以及在单个服务器中多个核心上。NVMe支持高达64K的命令队列和64K的命令,简化了这些服务器内的并行操作。
NVMe用于更智能的模型设计
在将数据清理、准备成统一且容易理解的格式后,数据科学家的工作才正要开始。由于每个问题都是不同的,因此很多时候,科学家需要迭代地开发出独特的机器学习结构。只有在多次试验和失败后,较小的数据子集才能成为候选的可训练模型,发送到下一个处理阶段。毕竟在所有科学工程项目在得到最终解决方案前,都会经历过许多错误,因此需要进行多次的尝试。
在试错的过程中,单个循环的速度会对最后的模型设计和产生的机器学习模型的质量造成外部影响。而将设计测试的循环时间从10个小时缩短到8个小时,会使数据科学家的效率翻倍。科学家可以在早上设计和运行测试,获得结果,并及时调整参数,而不是在早上开始工作,直到第二天才看到结果。以每天进行一个测试的效率来说,科学家在下午下班前就能开始另一项工作,每天能有两个循环的效率。
就如之前的阶段,NVMe带宽和并行性发挥其作用,帮助提高数据科学家的效率。在科学家们的个人工作室,他们对模型进行沙盘推演的测试,利用NVMe的低延时性运行系统、测试数据集,并为分析和测试运行提供更快的暂存空间。
NVMe用于更智能的模型训练
在数据工程师将数据格式化成为可用于机器学习的格式,同时数据科学家对学习模型的结构进行设计后,网络的实际训练才正式开始。通过无数配备了加速器的机器将格式化后的数据提取出来,并用它来提炼模型的参数,直到将数据汇聚成一个模型,才可用于实际的推理应用。
基于GPU的早期加速技术很少受到I/O的限制,因此存储性能往往不是我们关注的焦点。运行服务器的通用CPU有充足的时间处理I/O操作,并为GPU准备下一批数据。但这在现今早已不适用了,其拥有FPGA,甚至实现了ASIC硬件定制以进行模式训练。
相比以前的技术,由于现代机器学习加速器可以更快地处理数量级的数据,运行服务器的通用CPU需要能有效地处理I/O数量级的模式。像SATA和SAS这样的传统I/O栈浪费了宝贵的CPU周期,将I/O请求转换为上世纪设计的协议。这样就增加了I/O请求的延迟,会直接影响加速器的使用。这些遗留I/O栈也增加了主机CPU的负载,限制了每个处理器上可运行的加速器的数量。
由于从一开始就将NVMe设计成为内存速度存储协议,因此其不会产生协议转换的成本。这就减少了处理器的负载,有助于保证及时将数据反馈到下一代加速器中。目前正在研究的NVMe协议具有一个激动人心的扩展—控制器内存缓冲(CMB),允许NVMe设备在不受主机干预的情况下,得以直接处理内存转换并进一步减少负载。
NVMe-用于更智能的AI
机器学习和AI是建立在数据之上。从最初的数据收集、将其处理为可用的格式、开发学习架构、到最后训练的模型都需要一个在PB级规模上有效的存储接口,并且针对微秒级延迟进行优化。NVMe作为一项提升内存速度的存储技术能为机器学习和其它应用提供所需的存储接口。
全部0条评论
快来发表一下你的评论吧 !