CNCFAI工作组 云本土人工智 能 Authors AdelZaaloukAlexJones AndreyVelichkevichBorisKurktchievCassandraChinCathyZhangClaudiaMisaleHuaminChen JoelRobertsKai-HsunChenMaliniBhandaruMichaelYao NikhitaRaghunath彼得潘 RajasKakodkarRasikPandey RicardoAravenaRonaldPettyRyanTaylorSaadSheikhShawnWilsonTomThorleyVictorLu 已发布 3月20,2024(第1版) 执行摘要 云原生(CN)和人工智能(AI)是当今最关键的技术趋势。ClodNative1技术为运行应用程序提供了可扩展且可靠的平台。鉴于AI和机器学习(ML)的最新进展,它作为主要的云工作负载正在稳步上升。虽然CN技术很容易支持AI/ML工作负载的某些方面,但挑战和差距仍然存在,为创新和更好地适应提供了机会。 本文简要概述了最先进的AI/ML技术,其次是CN技术提供的内容,在讨论不断发展的解决方案之前涵盖了下一个挑战和差距。本文将为工程师和业务人员提供知识,以了解不断变化的云原生人工智能(CNAI)生态系统及其机遇。 我们建议阅读路径取决于读者的背景和兴趣。假设暴露于微服务2和CN技术3,如Kberetes(K8s)。对于那些没有工程AI系统经验的人,我们建议从头到尾阅读。对于那些在AI/ML采用或交付过程中走得更远的人,根据他们的用户角色4,我们建议深入到与他们正在努力解决或有兴趣解决的挑战相关的部分。我们还分享社会在这方面需要投资的地方。 内容表 云原生(CN)04的出现人工智能进化(AI)05 建议19 结束注释28 云人工智能(CNAI)简介 在我们进入CNAI之前,将CloudNative和AI技术结合在一起,让我们简要地研究一下每种技术的演变。 云原生的出现 云原生人工智能是云原生的一个不断发展的扩展。 CloudNativeArtificialIntelligence(CNAI)是指使用CloudNative原理构建和部署AI应用程序和工作负载的方法和模式。启用可重复且可扩展的AI工作流,可让AI从业者专注于自己的领域。 云原生计算基金会定义9云原生为: CloudNative技术使组织能够在现代动态环境(如公共云、私有云和混合云)中构建和运行可扩展的应用程序。容器、服务网格、微服务、不可变基础设施和声明性API就是这种方法的例证。 这些技术使松散耦合的系统具有弹性,可管理和可观察性。结合强大的自动化,它们使工程师能够以最少的工作量频繁且可预测地进行高影响的更改。 云原生计算基金会寻求通过培育和维持一个开源、供应商中立的项目生态系统来推动这一范例的采用。我们将最先进的模式民主化,使每个人都能获得这些创新。 自2013年以来广为人知,5随着容器技术从LXC6到Docer7再到Kberetes(K8s)的兴起,ClodNative(CN)一词越来越受欢迎8如今,ClodNative更广泛地成为使用微服务设计模式构建的平衡系统的理想目标,该模式可促进模块化设计和开发,具有高度的可重用性。这也有助于部署性、可扩展性和弹性。 Kberetes已经发展成为事实上的云操作系统,包括私有、公共和混合云产品。它实现了一个分布式编排器,用于处理多种类型的网络、存储和计算资源。此外,K8s提供了一个接口,使DevOps10的最佳实践,如GitOps.11每个云服务提供商(CSP)都有一些Kberetes服务的味道,便于访问基础设施和一系列支持服务来运行各种工作负载,包括AI/ML。 人工智能的进化 人工智能,最早在1956年被称为一个术语,12是机器模拟人类智能的能力。几十年来,它已被用于语音识别,机器翻译,图像处理,游戏等应用,甚至是作为危险玩家的出色表现。13但是,由于人工神经网络和深度学习的创新,人工智能最近在midshare中爆发了,主要应用于自然语言理解。AI有两种主要分类:判别性和生成性。 判别式AI寻求学习决策边界或分类,将知识捕获为“模型” ,用于预测新数据。例如,将电子邮件分类为垃圾邮件,区分猫和狗的图像等等。判别AI通常用于已知所需输出的任务(例如Procedre,通过监督学习,一种机器学习的形式)。人工智能擅长序列预测,例如,通过分析大量现有文本,包括我们的个人写作风格,以高概率猜测我们接下来要输入的内容。 生成AI学习数据中的潜在结构或表示。它可以使用这些结构或表示来合成新数据,例如创建故事,音乐和视觉艺术 来自单词提示。生成性AI用于所需输出未知或“正确”输出定义不明确的任务。使用生成性AI,AI已经超越了人类认为的创造性,原创性和崇高性。让我们仔细看看AI的一些惊人突破。 卷积神经网络14(CNN)最初是在1980年代开发的,但直到21世纪初才被广泛使用。近年来,由于它们能够从图像的大型数据集中进行学习,并在各种图像处理任务(例如对象检测,图像分类和分割)上表现良好,CNN变得越来越受欢迎。 变压器由多伦多大学和谷歌的研究人员于2017年开发。变形金刚使用一种称为缩放点积注意力的专门机制,该机制使它们充满了类似记忆的结构。15基于变形金刚的模型对于自然语言处理任务非常有效,例如回答问题,总结文本和翻译。因此,它们在大多数大型语言模型(LLM )中至关重要。最著名的LLM是GPT,该模型为流行的ChatGPT服务提供动力。 LLM是在海量数据集上训练的。除了能够针对具有额外数据的专业领域进行微调之外,它们还采取可能很长的提示序列来生成上下文敏感的响应,无论是时事,医学,法律还是其他。用于微调的新技术,例如来自人类反馈的强化学习(RLHF)和直接偏好优化(DPO),已经被开发出来,以使LLM更具吸引力。 研究和创新使最终用户的交互比以往任何时候都更快,更有创造力,更准确。与数据科学和软件的创新一样重要的是基础设施的发展模型推理(从AI模型计算结果的过程)和模型训练(从数据构建AI模型的过程)。使用AI加速器 技术,人工智能从业者可以更快地迭代,以在几天和几周内提供更高质量的模型,而不是几个月。此外,数据科学家和统计学家采用的几种传统技术正在重新评估,以利用CN系统的功能。 云原生与人工智能的融合 正如上一节所述,人工智能是一个更广泛的概念,旨在创建可以执行类似于人类任务的系统。机器学习是一种基于数据进行学习并做出明智预测和决策的方法。它可以被认为是另一种形式的自动化,涉及使用算法来学习和改进,而无需显式编程。最后,数据科学作为一个多学科领域,融合了统计学,数学和计算机科学的技术来制定。 广泛的活动,从数据分析和解释到机器学习算法的应用。 从广义上讲,我们可以将AI,ML和数据科学的应用程序分为两大类:预测性AIand生成AI。预测性AI旨在预测和分析现有模式或结果(例如,分类,聚类,回归,对象检测等)。相比之下,生成AI旨在生成新的和原始的内容 (例如,LLM,RAG17等)。因此,支持预测性和生成AI的算法和技术可能会有很大差异。 图1云原生AI 以下是预测和生成AI在计算、网络和存储方面有不同需求的一组示例: 挑战/需求 生成AI 预测性AI 计算型Power 非常高。需要专门的硬件。 中等到高。通用硬件就足够了。 数据量和多样性 用于培训的大量、多样化的数据集。 预测的具体历史数据。 模型训练和微调 使用专业计算进行复杂的迭代训练。 适度的训练。 可扩展性和弹性 高度可扩展和弹性的基础设施(可变和密集的计算需求) 可扩展性是必要的,但要求较低的弹性。批处理或事件驱动的任务。 存储和吞吐量 具有出色吞吐量的高性能存储。数据类型多样。需要高吞吐量和低延迟的数据访问。 高效存储,吞吐量适中。它更侧重于数据分析,而不是数据生成;数据主要是结构化的。 联网 用于数据传输和模型同步(例如,在分布式训练期间)的高带宽和低延迟。 数据访问的一致可靠连接。 在接下来的部分中,我们将探讨如何满足这两种形式所产生的需求,随之而来的挑战,以及在面对这些挑战时可能提出的建议。 什么是云原生人工智能? 云原生人工智能允许构建实用的系统来部署、运行和扩展AI工作负载。CNAI解决方案解决了AI应用科学家、开发人员和部署人员在云基础设施上开发、部署、运行、扩展和监控AI工作负载时面临的挑战。通过利用底层云基础设施的计算(例如Procedre,CPU和GPU),网络和存储功能,以及提供隔离和受控共享机制,可加速AI应用程序性能并降低成本。 图2(下图)在工具和技术之间映射了这些启用机制。 图2 启用工具和技术18 在云原生基础设施上运行AI 云服务提供商和/或AI公司发布的媒体文章强调了CloudNativeforAI的价值。 OPENAI 将Kubernetes扩展到7,500个节点 拥抱的脸 云原生人工智能是云原生的一个不断发展的扩展。 Kubernetes是一个可用于部署和管理容器的编排平台,容器是轻量级、可移植、自包含的软件单元,AI模型可以打包成容器然后部署到K8s集群。容器化对于AI模型尤其重要,因为不同的模型通常需要不同且通常相互冲突的依赖关系。在容器中隔离这些依赖关系可以在模型部署中提供更大的灵活性。CN工具允许AI模型的高效和可扩展部署,并不断努力为AI工作负载定制这些模型。 拥抱脸与Microsoft合作在Azure上启动拥抱脸模型目录 KubernetesScheduler21继续发展,2223特别是为了更好地集成和支持共享图形处理单元(GPU),这些图形处理单元在加速AI工作负载方面变得非常流行。除了支持共享GPU和处理多租户的应用程序之外,还在努力支持利用Kubernetes之外的远程资源池。 需要高质量的数据来训练和测试AI模型,以获得卓越的推理。云原生基础设施可以通过各种方法访问数据,例如数据湖和仓库。许多云提供商提供块、对象和文件存储系统,非常适合提供低成本、可扩展的存储。例如,模型的大小可以达到千兆字节。在训练阶段,每次拉取模型的检查点都会导致网络和存储带宽的严重负载。将模型视为容器化的工件为在OCI24注册表中托管它们打开了大门,并启用了缓存。它进一步允许应用。软件供应链模型的最佳实践,例如工件签名 ,验证,证明和数据来源。此外,容器化模型/工件促进了WebAssembly(WASM)二进制文件的捆绑。WASM是一种独立于平台的高效CN推理方法。 凭借其弹性,始终在线的基础架构,云允许企业,初创公司和开发人员快速原型,提供新服务,扩展解决方案等等。它还通过 资源共享实现了成本效益。普通用户不再需要担心订购硬件或处理空间、电源、网络连接、冷却、软件许可和安装等物流问题 。人工智能也有类似的担忧——快速原型设计、访问存储、网络和计算资源,以解决小型和大规模的训练和推理任务。 使用AI改进云原生系统 无论是打包为可观察性工具还是利用LLM功能进行日志的自然语言处理(NLP),AI驱动的解决方案/项目都在进入运营商和最终用户的手中,以提高他们的生产力并使他们的生活更轻松。一个这样的开源云原生计算基金会(CNCF)项目是K8sGPT,它利用LLM的模式识别和语言功能,如Bedroc,Cohere等,以帮助K8s运营商。 日常工作。更重要的是,CN和AI的共生为新的和不可预见的机会打开了生态系统。例如,我们预计能够操作和管理复 杂系统的技术含量较低的用户将会增加。 为什么选择云原生人工智能? 云人工智能的挑战 重要的是要注意,CNAI的挑战在不同的角色之间会有所不同。26而且,尽管ClodNative的灵活,可扩展的平台非常适合AI工作负载,但AI的规模和延迟需求带来了挑战,并暴露了CN技术中的差距,同时也带来了机会。我们在端到