当前位置:首页|资讯|人工智能|大语言模型|GPT-4|自动驾驶

云端之下,智慧绽放

作者:oneAPI技术汇发布时间:2023-09-19


英特尔开源云软件开发团队
 

 

人工智能应用主要包含两部分,即训练和推理。在训练过程里,需要输入和处理大量的数据,有些可能达到百万亿级别。而且,训练的迭代次数不止一次,它需要多次重复,直到达到所需的质量和性能标准为止。随着训练和迭代的次数增加,这些模型的规模也在不断增大。以大语言模型为例,Chat GPT-4 就拥有高达万亿级的参数!在推理阶段里一些关键任务,例如自动驾驶、推荐引擎和疾病诊断系统,必须实时完成。除此之外,用于训练的数据可能涉及隐私或敏感信息,作为企业的核心资产,数据和模型都具有巨大的商业价值,因此需要对数据和模型给予严格的安全保护。

 

总而言之,无论是在训练还是推理阶段,人工智能工作负载都对高性能、可伸缩性、安全性有着迫切的需求,并且在某些场景下推理,还要求低延迟。接下来,在讨论需求与现实差距以及最新研究动态之前,让我们先探索云原生生态系统如何在这些方面提供支持的。

 

 

性能

 

在Kubernetes的现有功能里,资源感知调度( Resource Aware Scheduling)既能感知节点硬件能力(Capability)又能兼顾资源物理容量(Capacity)。加上调度时可考虑节点亲和性(Node Affinity)与反亲和性(Anti-affinity)、负担(Taint)和容忍(Toleration)以及感知丰富的资源监控数据(Telemetry),再结合节点资源接口(Node Resource Interface,NRI),使Kubernetes能够满足人工智能工作负载的性能需求。

水平 Pod 自动扩展 (Horizontal Pod Autoscaling,HPA) 和垂直 Pod 自动扩展(Vertical Pod Autoscaling,VPA)为工作负载提供了弹性,来应对动态变化的资源请求,以求降低资源使用成本。即便如此,我们发现其仍有改进和提升的空间,特别是在以下四个领域

 

图形处理单元(GPU)。GPU 在加速机器学习任务中很受欢迎,但Kubernetes系统对 GPU 设备支持却不足。为此英特尔开发了 GPU 设备感知调度程序[1]来弥补,使得用户在使用 GPU 时,通过更加合理的资源分配来提高GPU资源利用率。

 

服务网格。服务网格,如 Istio 或 Linkerd,越来越多地部署在 Kubernetes 集群上来提供如网络代理和负载均衡等基本网络功能。负载均衡与水平 Pod 自动扩展HPA相结合使用有助于提供低延迟、可扩展的人工智能推理业务,并且英特尔正在探索如何进一步优化这些网络功能。

 

存储。高速存储在人工智能处理大规模数据时扮演着很重要的角色。基于NVMe网络协议的 NVMe over Fabrics(NVMe-oF)[2]提供更快的连接和访问速度,并降低了 CPU 占用率。如今Kubernetes CSI驱动程序与NVMe-oF插件实际上将远程存储访问速度提升到了本地存储的水平。将来 NVMe-oF 与基础设施处理单元( Infrastructure Processing Unit,IPU)结合使用还可以进一步提高数据传输带宽并降低延迟。更快的存储读写有助于保持图形处理单元 GPU 的高效利用!

 

向量数据库。用户提示工程有助于改善大语言模型输出,是微调(Fine-tuning)基础模型比较流行的选择。提示工程通常涉及到一系列不同的数据处理任务。通过增加上下文、语义和个性化,向量数据库有助于精细化提示,以提供更准确、相关和用户个性化的结果。英特尔正在探索和研究优化流行的向量数据库 Milvus[3]。

 

我们也诚邀您来了解并尝试我们正在开发的高能效云原生人工智能流水线项目(Cloud Native AI Pipeline)[4]。该项目目标是推动从视频转码到推理的横向扩展,并使用英特尔最新的矩阵指令(Matrix Instruction),获得更好的性能和能效。

 

 

资源隔离和服务质量(QoS)

 

共享资源可以节省成本,但也存在因资源竞争而产生相互干扰的风险,比如流行的 Noisy Neighbors 问题。混合部署业务可以是短时间人工智能推理任务,也可以是长时间运行的计算密集型批处理人工智能训练任务。如果没有资源隔离和限制措施,一个任务的执行可能会影响到另一个任务。具有策略强制执行的服务质量保证( QoS)可以帮助满足工作负载服务级别协议( Service Level Agreement,SLA)。英特尔正在对 CPU 缓存和 IO 带宽等资源的分配和执行进行现场测试以满足SLA。

 

 

安全性

 

在人工智能环境中保护数据隐私至关重要,这是因为数据的敏感性(如患者健康信息、财务记录、位置数据)可能会导致严重的隐私侵犯、监管罚款和安全问题。此外,保护数据完整性对于确保模型的有效性也至关重要。最后,鉴于构建模型所涉及的资源开销,模型因为具有高度的商业价值而成为企业的核心资产。认识到安全的至关重要性,让我们深入探讨云原生环境下的安全性支持。

 

在 Kubernetes 中,命名空间将工作区和为其分配的资源分隔开来,同时基于角色的访问控制(Roles Based Access Control,RBAC)有助于控制对其的访问。此外,服务网格如Istio被越来越广泛地部署和应用,通过微服务的引入,系统能够支持在集群级别、工作节点或是Pod之间使用传输层安全性( Transport Layer Security,TLS)和双向TLS来实现微服务间的安全通信。

 

在云原生领域,一个重要的安全增强是集成了可信执行环境(Trusted Execution Environment,TEE),也称为机密计算(Confidential Computing)。TEE是硬件支持的安全隔离区,提供内存加密、数据完整性保护、访问保护的功能。有了它即使是在主机上运行的特权进程(如操作系统或虚拟机管理软件)也无法访问安全隔离区,且它还支持远程认证。这为受监管的行业工作负载迁移到公有云上以获得成本和可用性优势铺平了道路。您可以使用 KubeVirt 启动机密虚拟机(Confidential Virtual Machine,CVM),或创建完全由CVM组成的Kubernetes集群,或使用机密容器项目[5]中的机密容器(Confidential Container)来启动一个在 CVM 里运行的 Pod。此外,英特尔已经加强了Istio和Envoy代理以利用TEE来保护TLS私钥[6],并于最近启动了开源项目Confidential Cloud Native Primitives(CCNP)[7],以更好地支持不同TEE使用模型之间的测量和验证。欢迎来了解和评估 CCNP 以满足您的信任需求。

 

 

异构性、可移植性和成本节省

 

为了降低网络延迟、减少网络带宽成本以及满足数据安全法规对数据保存位置的要求,工作负载不再仅限于在云或数据中心部署,也可以在边缘端运行。在这个更广泛的云边部署领域中,软件和硬件的异构必然存在。Kubernetes 设备插件框架以及各供应商提供的设备插件(Device Plugin)、驱动程序(Device Driver)和 Operator 简化了特殊用途加速器设备的发现和使用,如英特尔的加密、数据流、负载均衡加速器[8]、GPU 和 FPGA 等设备。

 

工作负载可移植性是提供云到边缘部署服务的必要条件。容器非常适合可移植性,但为了真正满足人工智能的性能需求,使用诸如 ONNX 及其运行时,或者英特尔的 OpenVINO[9]和 oneAPI [10]的软件方案有助于提供硬件优化的性能。

 

此外,有效地在任何地方运行工作负载的能力有助于利用空闲的硬件资源,从而提高资源利用率并降低成本。这使最终用户可以只专注于服务质量保证,并在成本和性能之间进行权衡。

 

 

未来

 

虽然人工智能业务负载变得越来越复杂、越来越庞大,但是它们正在成为主要的云原生工作负载。成熟的 GPU 支持以及存储访问速度的提升将有助于提高 GPU 的资源利用率。在资源隔离和 QoS 支持下,最终用户体验将变得更加流畅。诸如 “模型即服务” ( Model-as-a-Service ) 还将更好地适应按使用量付费的运营模式,帮用户节省成本的同时也满足SLA。使用可信任的安全边缘 Kubernetes 集群进行联邦学习将解锁数据孤岛,以开发更丰富的模型……请与我们一道参与云原生创新,使人工智能惠及所有人。

 

了解更多关于英特尔在云原生领域的最新技术和产品,请关注9月27日 KubeCON China 主论坛演讲,英特尔开源云软件高级总监 Grace Lian 女士将分享 “How to Secure AI Workloads in Cloud Native” 敬请关注

参考资料:

[1]GPU 设备感知调度程序: https://github.com/intel/platform-aware-scheduling/tree/master/gpu-aware-scheduling

[2]NVMe over Fabrics(NVMe-oF): https://nvmexpress.org/wp-content/uploads/NVMe_Over_Fabrics.pdf

[3]Milvus: https://milvus.io/

[4]Cloud Native AI Pipeline: https://github.com/intel/cloud-native-ai-pipeline

[5]机密容器项目: https://github.com/confidential-containers

[6]TEE 来保护 TLS 私钥: https://www.intel.com/content/www/us/en/developer/articles/technical/secure-service-mesh-communication-hardware-sgx.html

[7]Confidential Cloud Native Primitives: https://github.com/intel/confidential-cloud-native-primitives

[8]如英特尔的加密、数据流、负载均衡加速器: https://github.com/intel/intel-device-plugins-for-kubernetes

[9]OpenVINO: https://github.com/openvinotoolkit/openvino

[10]oneAPI: https://www.intel.com/content/www/us/en/developer/tools/oneapi/overview.html



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1