本文来自微信公众号“Web3智慧空间”,作者:王子航,禹向群,斯洪标,傅思敏,张旭龙,彭绍亮。
元宇宙是对现实世界虚拟化、数字化的过程,融合了多种技术。虚拟现实和区块链是构建元宇宙的底层技术,但两者在数据处理和算力需求上有很大不同。为了解决元宇宙中区块链和虚拟现实的数据异构、算力异构等问题,提出“元算中心”的概念,并且在硬件架构上将元算中心、区块链节点、边缘服务器组成算力网络。元算中心集中处理元宇宙虚拟场景渲染数据与虚拟人物的交互;数字资产和个人信息利用区块链在多个分布式节点上进行脱敏存储;边缘服务器敏捷响应用户请求,并作为区块链的轻节点存储部分信息。在软件架构上,结合硬件架构设计分层处理模型,将模型数据、资产数据等异构数据放在不同软件层处理。最后结合软硬件架构,设计并实现了元宇宙购物商城原型系统,为将来的元宇宙应用提供一定的参考。
引言
作为下一代互联网的愿景,元宇宙是对现实世界虚拟化、数字化的过程。如图1所示,元宇宙融合了区块链、虚拟现实、人工智能等技术。在交互层,利用虚拟现实技术渲染元宇宙的虚拟场景和虚拟角色,渲染模型的分辨率和实时性可以直接影响元宇宙的内容和交互性[4]。在算法层,机器学习、计算机视觉等算法为元宇宙提供多样化的功能支持。在基础层,利用区块链技术为元宇宙经济体系的搭建提供支撑,元宇宙中的虚拟模型都会转为数字资产存储在区块链上。但利用虚拟现实和区块链处理的数据是异构的,在数据处理方式上的侧重点也不同。
元宇宙中虚拟现实技术和区块链技术的特性见表1。区块链技术处理文本数据,虚拟现实技术处理图形数据。为了保证数据的安全性,区块链需要将数据在多个节点上进行存储,会有大量的冗余数据[5]。区块链在完成每笔交易时进行串行处理,这导致区块链的处理时延是非常高的,目前最快的链完成一笔交易的平均时间也要大于100 ms[6-8]。而虚拟场景和虚拟角色为了保证用户的沉浸式场景体验,对用户的交互时延要求非常高(20 ms内),而且模型的分辨率也要非常高。这对算力提出了非常高的要求,因此需要高性能计算平台及基于这些平台的并行处理算法予以支撑[9-11]。如何更好地融合虚拟现实技术和区块链技术是发展元宇宙需要解决的首要问题。有3种部署虚拟现实场景和区块链数据库的架构模式可以选择。第一种模式是将虚拟场景和角色渲染放在本地客户端,将产生的交互数据传输到服务器,服务器处理用户的交互后,将数据回传到客户端进行渲染,并将交互数据传到区块链进行持久化存储。这种模式类似于传统的客户端/服务器(client/server)架构,也是目前大部分三维游戏采用的架构。其优点在于传输的数据少,单用户通信成本低。但是其对客户端的算力要求较高,不利于元宇宙的普及,而且不利于同步多人交互。
第二种模式是将虚拟场景和虚拟角色采用分布式区块链的形式进行存储和处理。如Ryskeldiev B等人[12]针对混合现实应用的虚拟空间提出了一种基于分布式区块链的点对点分布模型。这种模式的时延高,适合低交互的元宇宙场景,对单个节点的算力要求也高,而且在图形计算的场景上会有大量冗余,无法处理大型元宇宙模型。第三种模式是分层处理,将虚拟场景和虚拟角色这部分数据交给大型计算中心进行建模和渲染,构建出逼真且可持久化的元宇宙虚拟场景,通过边缘服务器传输画面到客户端,用户终端只作为视频窗口接收画面,并负责采集用户的交互需求。作为分布式数据库,区块链存储虚拟模型数据对应的文本数据。用户发出的交互请求先提交到边缘服务器,如果是简单的交互,边缘服务器直接处理请求并返回,这样可以缩短时延,保障用户的沉浸感和交互感;如果是资产变更或模型状态的复杂变更,边缘服务器将请求传输到计算中心,计算中心重新渲染模型后返回给用户,并将所有交互请求同步到区块链上。这种模式可以应对大型的元宇宙虚拟场景和多人同时在线的场景,对用户终端的要求不高。本文重点关注第三种模式。本文主要贡献如下:
●在硬件架构上,提出“元算中心”的概念,元算中心是专为元宇宙设计的计算中心,并且将元算中心、区块链节点、边缘服务器组成算力网络,为元宇宙提供算力支撑;
●在软件架构上,结合硬件架构提出面向元宇宙大数据的分层处理模型,将模型数据、资产数据等异构数据放到不同的软件层进行处理;
●结合硬件和软件的分层架构设计并实现一个元宇宙商城原型系统,为尽快落地真正的元宇宙应用提供参考。
1硬件架构
元宇宙的数据量和计算量十分庞大,并且存在算力异构、数据异构等问题,因此本文提出“元算中心”(结合元宇宙特性设计的大型计算中心)的概念,并且将元算中心、区块链节点和边缘服务器组成算力网络,为大型元宇宙系统提供算力支撑。
1.1元算中心
传统的超算中心主要用于大型计算问题的求解,如天气、地震等领域的计算问题。为了让这类复杂计算的运算结果更准确,要求用双精度浮点运算[13]。随着人工智能的兴起,“智算中心”的概念被提出,即人工智能计算中心。智算中心虽然在算力上比不上同规模的超算中心,但能够很好地满足人工智能这类近似计算的专业计算需求。构建元宇宙也需要强大的计算中心,这个计算中心不仅能满足人工智能的计算需求,而且更加着重于图形渲染和低时延。因此笔者在智算中心的基础上提出了“元算中心”的概念。与传统的超算中心和智算中心相比,元算中心具有以下特点。
(1)计算设备模块化,有更好的硬件可扩展性和可复制性构建持久化的大型元宇宙对算力的要求非常高,需要将虚拟场景分割到多块GPU和CPU上进行计算和渲染。同时人们在元宇宙中不断探索和生产新的内容,这意味着要存储和处理的内容会越来越多,元算中心需要不断扩容或者增加新的元算中心才能处理这些数据,因此需要将计算设备模块化才能简单和快速地对元算中心扩容。
(2)采用胖节点和3层处理结构,减少通信的复杂度,提高任务处理的实时性胖节点是相对于普通的双路计算节点(瘦节点)而言的大内存多路服务器。瘦节点需要很多节点来共同承担大的计算作业,这导致瘦节点需要耗费大量时间处理节点间的通信交互。而胖节点具有更高的处理效能,其处理速度远远高于瘦节点,适用于对内存、处理性能要求高的计算任务,因此元算中心采用胖节点拓扑架构。作为根节点,胖节点连接多个计算节点,每个计算节点包含一个CPU单元和4个GPU单元。这种3层的结构能够缩短节点间的通信时间,快速同步计算结果。简单的硬件结构也有利于可扩展性和可复制性,当需要扩展硬件设备时,只需要在胖节点上连接新的计算节点,或者部署新的胖节点。
(3)根据计算任务类型采用不同的精度进行计算,并根据节点空闲度调度计算任务和任务类型双精度运算能够使结果更加精准,但是会占用更多的内存和时间;而单精度运算可以节省时间和内存,但结果准确度会有一定损失。元宇宙中有图形计算和机器学习模型等多种计算任务,元算中心根据这些计算任务的类型,选择合适的精度进行运算。同时元算中心根据节点空闲度调度计算任务和切换任务类型。当虚拟场景比较大时,先将虚拟场景划分为多个场景,每个胖节点处理一个场景;然后各个胖节点再按照网格的形式将场景进一步细分成多个模块,分配给每个计算节点,网格的大小通过机器学习模型进行调整,以保证各个计算节点的负载均衡。为了提升元算中心处理高并发的能力,当某个胖节点在某一时刻处理的交互超出负载时,可以申请元算中心的其他有空闲算力的胖节点辅助处理。如果元算中心的算力有空闲,则离线训练机器学习模型。
(4)每个计算节点的GPU数量更多且图形处理能力更强与传统的GPU相比,为元宇宙计算设计的GPU需要在渲染模型时达到照片级的逼真渲染,并且有超高清的视频处理能力和显示技术。
1.2算力网络
算力网络是一种根据业务需求,在云、网、边之间按需分配和灵活调度计算资源、存储资源以及网络资源的新型信息基础设施,能够为元宇宙提供算力的解决方案[14]。据统计,目前数据中心、服务器等各类平台计算资源的利用率均低于15%,而数字货币、虚拟现实游戏的算力需求不断增长,将闲置的算力利用起来将为元宇宙的算力需求提供很大的支持。同时算力网络构建的无损网络也十分契合元宇宙对网络低时延的要求[15]。图2展示了为元宇宙设计的算力网络硬件架构。元算中心作为云端,负责大体量数据分析和算法训练,算力规模可以达到ZFLOPS,其中Z(Zetta)在算力量级中表示1021,FLOPS是算力单位,即每秒浮点运算次数达到1021的量级。元算中心负责虚拟场景和虚拟角色的构建,以及计算机视觉、人工智能模型的训练,并且将数据同步到区块链。边缘服务器作为边端,负责对用户请求做出敏捷反应,单个边缘服务器的算力规模达到TFLOPS,T(Tera)在算力量级中表示1012,即每秒浮点运算次数达到1012的量级。元算中心、边缘服务器和用户终端通过高速无损的网络进行连接,算力网络的算力调度采用自底向上的方式。用户终端利用虚拟头盔和手套等设备采集和反馈用户的交互需求数据,并将数据结构化上传[16]。接收用户终端的数据后,边缘服务器处理简单的交互请求,将无法快速处理的复杂交互上传到元算中心。当某个元算中心在某一时刻的算力不能满足需求时,则会申请网络中其他元算中心的算力调度。
2软件架构
结合硬件架构模型,在软件架构上按照软件层的功能职责进行分层,分层处理模型分为控制层、模型层、视图层和数据层。如图3所示,控制层接收用户终端发出的交互请求,如果是不涉及模型重建的交互,控制层直接调度边缘服务器来处理请求,快速返回交互结果,然后将交互数据同步到模型层和数据层。返回交互结果和同步交互数据到模型层是异步处理的,这样能提升交互响应速度。如果交互请求是资产变更或模型状态的复杂变更,控制层将请求提交到模型层,模型层将所有交互请求同步到数据层,验证和更新数字资产,同时通过元算中心渲染模型。渲染好模型后,模型层将重构的模型刷新到元算中心构建的持久化虚拟场景中,然后传输到视图层。视图层根据用户终端的分辨率、设备等参数进行视频编码,并且插入语音、动作等通用功能的交互结果,最后传输到用户终端进行解码。
2.1控制层
影响沉浸感的关键因素之一是时延,元算中心虽然能够在极短时间内将交互结果计算完成,但是因为网络传输的原因仍然不能满足无缝和沉浸式用户体验。而与云计算相比,边缘计算可以平均减少至少80 ms的服务时延,因此使用边缘服务器能够大大缩短元宇宙的网络时延[17-19]。笔者设计控制层来充分利用边缘服务器的算力和实时性,同时协调模型层和视图层的数据处理。控制层根据用户交互需求的类型做出敏捷反应,如果是语音输入、动作变换等不涉及模型重建的通用计算,则直接调度边缘服务器处理,快速返回交互结果到用户终端;模型变更和状态变更则传输到模型层处理。当边缘服务器的算力负载过大时,控制层会将任务调度给元算中心处理。
2.2模型层
元宇宙对构建出来的虚拟场景要求比较高,需要达到十分逼真的效果,并且几乎能够实时处理用户的交互请求,才能让用户产生强烈的沉浸感。实时渲染的方式(即根据用户的视角来渲染场景)会增加时延,并且画面处理不够精细。更好的方式是使用大型的计算中心构建一个持久化的虚拟场景,用户终端作为视频接收设备,接收服务器传输的内容。因此笔者在元算中心上设计了模型层,以构建一个持久化的虚拟场景,并将其传输给用户终端。模型层通过建模工具和虚拟引擎,将数据层的数据资产转化为模型数据,并处理虚拟角色的交互。为了提高处理效率,需要将任务进行并行处理。在粗粒度的并行上,将一个元宇宙中的虚拟场景划分为多个场景,将各个场景分别交给不同的元算中心进行处理。在细粒度的并行上,将同一场景划分为多个块并分别交给不同的节点处理。为了进一步提升计算效率,可以根据流量统计,按不同时段和不同区域的流量,分为请求密集块和请求稀疏块,为密集区域调集更多的计算资源。为了加快渲染速度,用户终端传输的交互请求会对应到相应的网格内进行计算,刷新网格内的场景后传输到用户终端。
2.3视图层
模型层将模型传输到视图层,视图层根据用户终端的分辨率、设备等参数进行视频编码,并且插入边缘服务器处理的音、动作等通用功能交互结果,然后传输到用户终端进行解码,用户终端通过设备解码输出数据后传输到对应的传感设备,让用户获得沉浸体验由于模型较多,搭建的虚拟场景文件会比较大,再加上虚拟现实场景需要双屏显示且实时性要求较高,这就需要将虚拟场景分多次传输到用户终端,并且降低单次传输包的大小。将模型贴图进行烘焙是个很好的选择,这样可以减少场景的实时光照计算。在用户看不见的地方,如物体背面和结合处,先不做渲染和视频编码,且将场景再细分成多个场景进行传输,这样可以提高响应用户请求的实时性。
2.4数据层
数据层将模型层的虚拟场景等模型数据转化成数字资产进行持久化存储,采用区块链技术实现。为了方便存储,各个虚拟场景的实例都将拥有唯一的哈希码,通过哈希码和存储信息的结构体将虚拟场景转化为数字资产。从隐私安全和个性化推荐方面综合考虑,用户的购物信息、足迹这类信息可以公开[20-21]。而资产交易类信息和个人身份信息则是通过加密的方式存储的[22]。为了方便在不同的元宇宙中确认这些信息,在多个元宇宙之间采用脱敏数据的多方安全计算。为了提高区块链效率,并符合相关法规,采用联盟链而不是公有链。数据层的激励机制采用算力激励,算力激励机制是目前主流的区块链激励机制,可以给元宇宙提供更多的算力支持[23-24]。
区块链的节点分为完整节点和轻节点,完整节点存储所有交易信息,轻节点只储部分交易信息。区块链在逻辑层是完全独立的数据层,但在硬件层并不是独立的数据层。元算中心、边缘服务器和用户终端都是区块链的节点,其中用户终端为轻节点,只存储个人信息[25]。
3应用实践
受疫情影响,人们的在线时间大大延长,同时线下购物人数骤减,很多人购物首选网购。但传统的二维电商平台搭建的服装销售界面对顾客并不友好,如信息展示不直观、平面商品图和文字描述让顾客难以获取完整的商品信息、购物环境缺乏沉浸感和乐趣,尤其是服装行业。而目前火热的直播带货不能满足快节奏的购物需求,消费者需要耗费大量时间观看直播,而且是被动地作为信息接收者。因此笔者设计并实现了元宇宙购物商城原型。元宇宙购物商城将成为下一代电商平台,融实体店铺和虚拟店铺,做到虚实共生[26]。用户可以在虚拟的购物街逛街,选择自己喜欢的衣服,并进行试穿。购买衣服后,用户可以选择为自己的虚拟角色变装,同时线下也可以收到同款衣服。元宇宙购物商城的实现界面如图4所示。用户可以通过佩戴虚拟现实眼镜获得沉浸感,虚拟现实眼镜视角下的商业街如图5所示。目前主流的大型三维游戏或应用采用的是客户端/服务器的架构,即模型、贴图等大量素材存储在用户终端,用户终端需要预留大量存储空间才能安装应用。这种架构并不适合元宇宙购物商城,因为元宇宙的数据量非常大,内容在不断增加,而且购物商城的商家不定时更新商品,这导致用户终端模型信息需要不断更新。因此笔者采用类似浏览器/服务器(browser/server)的架构,结合硬件架构和软件架构设计元宇宙购物商城。元宇宙购物商城原型架构如图6所示,包括控制层、视图层、模型层和数据层。
(1)控制层
控制层通过调度算力和判断交互类型来尽快响应用户交互。如果是语音聊天、动作变换这类交互,控制层会直接在当前边缘服务器上处理用户请求,帮助快速响应,否则传输到更大算力规模的中心服务器进行处理。
(2)视图层
模型层的工具将街道模型、人物模型、建筑物模型进行渲染后,传输到视图层做视频编码,并在各个模型上挂载相应的功能脚本,如摄像机移动、单击响应、读取纹理等,最后将已经搭建完成的场景分多次传输到用户终端。
(3)模型层
模型层不仅要处理消费者的模型变更交互,还要为商家提供制作或改动衣服模型的服务。商家通过管理平台将衣服模型数据更新到后台数据库后,模型层提取数据层的资产数据,通过3DMax工具建模和贴图,然后将模型导入Unity3d引擎中,Unity3d将模型渲染更新到虚拟场景中。
(4)数据层
数据层将区块链层作为支持,主要提供两种数据,分别是数据库数据和外部数据。数据库数据主要是系统的基础数据,包括用户信息、商品信息、业务信息等。外部数据接口包括商家和管理员的管理系统、生产管理系统、支付系统、物流系统等第三方系统。
4结束语
为了解决元宇宙中虚拟现实场景和区块链系统的数据异构、算力异构等问题,本文基于算力网络为元宇宙设计了分层的硬件架构和软件架构来应对庞大的数据量和计算量,使用元算中心集中处理元宇宙虚拟场景渲染数据和虚拟人物的交互,数字资产和个人信息利用区块链在多个分布式节点上进行脱敏存储,边缘服务器帮助缩短时延和处理简单的交互。最后,结合设计的硬件架构和软件架构,实现了一个元宇宙购物商城,为元宇宙的真正落地提供参考。目前无论是在技术层面还是在硬件层面,距离元宇宙的真正落地还有很长一段路要走。本文只是为元宇宙的实现提供了一个雏形,根据元宇宙的技术进步不断调整和优化计算模型是笔者下一步的工作方向。
大数据期刊,《基于算力网络的元宇宙分层处理模型设计》
原文链接:http://www.infocomm-journal.com/bdr/article/2023/2096-0271/2096-0271-9-1-00051.shtml