”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 深入探讨 CNCF 的云原生 AI 白皮书

深入探讨 CNCF 的云原生 AI 白皮书

发布于2024-08-19
浏览:570

A Deep Dive into CNCF’s Cloud-Native AI Whitepaper

在 KubeCon EU 2024 期间,CNCF 发布了第一份云原生 AI 白皮书。本文对本白皮书的内容进行了深入分析。

2024 年 3 月,在 KubeCon EU 期间,云原生计算基金会 (CNCF) 发布了第一份关于云原生人工智能 (CNAI) 的详细白皮书 1。本报告广泛探讨了云原生技术与人工智能集成的现状、挑战和未来发展方向。本文将深入探讨本白皮书的核心内容。

本文首发于中型MPP计划。如果您是Medium用户,请在Medium上关注我。非常感谢。

什么是云原生人工智能?

云原生人工智能是指使用云原生技术原理构建和部署人工智能应用程序和工作负载。这包括利用微服务、容器化、声明式 API 以及持续集成/持续部署 (CI/CD) 等云原生技术来增强人工智能应用程序的可扩展性、可重用性和可操作性。

下图是根据白皮书重新绘制的云原生AI架构图。

A Deep Dive into CNCF’s Cloud-Native AI Whitepaper

云原生AI与云原生技术的关系

云原生技术提供了灵活、可扩展的平台,使人工智能应用的开发和运营更加高效。通过容器化和微服务架构,开发者可以快速迭代和部署AI模型,同时保证系统的高可用性和可扩展性。 Kuuch 作为资源调度、自动扩展和服务发现。

白皮书提供了两个例子来说明云原生AI和云原生技术之间的关系,即在云原生基础设施上运行AI:

  • Hugging Face 与 Microsoft 合作在 Azure 上推出 Hugging Face 模型目录2
  • OpenAI 将 Kubernetes 扩展到 7,500 个节点3

云原生人工智能的挑战

尽管为人工智能应用程序提供了坚实的基础,但将人工智能工作负载与云原生平台集成时仍然面临挑战。这些挑战包括数据准备复杂性、模型训练资源要求以及在多租户环境中维护模型安全性和隔离性。此外,云原生环境中的资源管理和调度对于大规模人工智能应用至关重要,需要进一步优化以支持高效的模型训练和推理。

云原生AI发展路径

白皮书提出了云原生人工智能的几条发展路径,包括改进资源调度算法以更好地支持人工智能工作负载、开发新的服务网格技术以增强人工智能应用的性能和安全性以及推动云原生的创新和标准化通过开源项目和社区协作实现人工智能技术。

云原生AI技术格局

云原生人工智能涉及各种技术,从容器和微服务到服务网格和无服务器计算。 Kubernetes 在部署和管理 AI 应用程序中发挥着核心作用,而 Istio 和 Envoy 等服务网格技术则提供强大的流量管理和安全功能。此外,Prometheus 和 Grafana 等监控工具对于维持 AI 应用程序的性能和可靠性至关重要。

下面是白皮书中提供的云原生AI景观图。

  • Kubernetes
  • 火山
  • 无敌舰队
  • 库伯雷
  • Nvidia NeMo
  • Yunikorn
  • 库埃
  • 火焰

分布式训练

  • Kubeflow 训练算子
  • Pytorch DDP
  • TensorFlow 分布式
  • 打开 MPI
  • DeepSpeed
  • 威震天
  • 霍罗沃德
  • 阿普拉

机器学习服务

  • Kserve
  • 谢尔顿
  • VLLM
  • TGT
  • 天空飞行员

CI/CD — 交付

  • Kubeflow 管道
  • MLflow
  • TFX
  • BentoML
  • MLRun

数据科学

  • Jupyter
  • Kubeflow 笔记本
  • PyTorch
  • TensorFlow
  • 阿帕奇齐柏林飞艇

工作负载可观察性

  • 普罗米修斯
  • Influxdb
  • 格拉法纳
  • 权重和偏差 (wandb)
  • 开放遥测

自动机器学习

  • Hyperopt
  • 奥图纳
  • Kubeflow Katib
  • NNI

治理与政策

  • 基弗诺
  • Kyverno-JSON
  • OPA/网守
  • StackRox 管理器

数据架构

  • ClickHouse
  • 阿帕奇皮诺
  • 阿帕奇德鲁伊
  • 卡桑德拉
  • ScyllaDB
  • Hadoop HDFS
  • Apache HBase
  • 急速
  • 三诺
  • Apache Spark
  • Apache Flink
  • 卡夫卡
  • 脉冲星
  • 体液
  • Memcached
  • Redis
  • Alluxio
  • Apache 超级集

矢量数据库

  • 色度
  • Weaviate
  • 象限
  • 松果
  • 扩展
  • Redis
  • Postgres SQL
  • ElasticSearch

模型/法学硕士可观察性

  • • 特鲁伦斯
  • 朗福斯
  • 深度检查
  • OpenLLMetry

结论

最后总结以下要点:

  • 开源社区的作用:白皮书指出了开源社区在推进云原生人工智能方面的作用,包括通过开源项目和广泛合作加速创新和降低成本。
  • 云原生技术的重要性:云原生AI,根据云原生原则构建,强调可重复性和可扩展性的重要性。云原生技术为人工智能应用提供了高效的开发和运行环境,特别是在资源调度和服务扩展方面。
  • 现有挑战:云原生AI虽然带来了诸多优势,但在数据准备、模型训练资源需求、模型安全与隔离等方面仍面临挑战。
  • 未来发展方向:白皮书提出了发展路径,包括优化资源调度算法以支持人工智能工作负载、开发新的服务网格技术以增强性能和安全性、通过开源项目和社区协作推动技术创新和标准化.
  • 关键技术组件:云原生AI涉及的关键技术包括容器、微服务、服务网格、无服务器计算等。 Kubernetes 在部署和管理 AI 应用程序中发挥着核心作用,而 Istio 和 Envoy 等服务网格技术则提供必要的流量管理和安全性。

更多详情请下载云原生AI白皮书4.

参考链接


  1. 白皮书:↩︎

  2. Hugging Face 与 Microsoft 合作在 Azure 上推出 Hugging Face 模型目录 ↩︎

  3. OpenAI 将 Kubernetes 扩展到 7,500 个节点:↩︎

  4. 云原生AI白皮书:↩︎

版本声明 本文转载于:https://dev.to/huizhou92/a-deep-dive-into-cncfs-cloud-native-ai-whitepaper-3ic3?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何使用Depimal.parse()中的指数表示法中的数字?
    如何使用Depimal.parse()中的指数表示法中的数字?
    在尝试使用Decimal.parse(“ 1.2345e-02”中的指数符号表示法表示的字符串时,您可能会遇到错误。这是因为默认解析方法无法识别指数符号。 成功解析这样的字符串,您需要明确指定它代表浮点数。您可以使用numbersTyles.Float样式进行此操作,如下所示:[&& && && ...
    编程 发布于2025-04-09
  • 为什么PHP的DateTime :: Modify('+1个月')会产生意外的结果?
    为什么PHP的DateTime :: Modify('+1个月')会产生意外的结果?
    使用php dateTime修改月份:发现预期的行为在使用PHP的DateTime类时,添加或减去几个月可能并不总是会产生预期的结果。正如文档所警告的那样,“当心”这些操作的“不像看起来那样直观。 考虑文档中给出的示例:这是内部发生的事情: 现在在3月3日添加另一个月,因为2月在2001年只有2...
    编程 发布于2025-04-09
  • 如何使用Python理解有效地创建字典?
    如何使用Python理解有效地创建字典?
    在python中,词典综合提供了一种生成新词典的简洁方法。尽管它们与列表综合相似,但存在一些显着差异。与问题所暗示的不同,您无法为钥匙创建字典理解。您必须明确指定键和值。 For example:d = {n: n**2 for n in range(5)}This creates a dicti...
    编程 发布于2025-04-09
  • 为什么使用Firefox后退按钮时JavaScript执行停止?
    为什么使用Firefox后退按钮时JavaScript执行停止?
    导航历史记录问题:JavaScript使用Firefox Back Back 此行为是由浏览器缓存JavaScript资源引起的。要解决此问题并确保在后续页面访问中执行脚本,Firefox用户应设置一个空功能。 警报'); }; alert('inline Alert')...
    编程 发布于2025-04-09
  • 如何同步迭代并从PHP中的两个等级阵列打印值?
    如何同步迭代并从PHP中的两个等级阵列打印值?
    同步的迭代和打印值来自相同大小的两个数组使用两个数组相等大小的selectbox时,一个包含country代码的数组,另一个包含乡村代码,另一个包含其相应名称的数组,可能会因不当提供了exply for for for the uncore for the forsion for for ytry...
    编程 发布于2025-04-09
  • 为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    网格超过身体,用100%grid-template-columns 为什么在grid-template-colms中具有100%的显示器,当位置设置为设置的位置时,grid-template-colly修复了?问题: 考虑以下CSS和html: class =“ snippet-code”> g...
    编程 发布于2025-04-09
  • 为什么PYTZ最初显示出意外的时区偏移?
    为什么PYTZ最初显示出意外的时区偏移?
    与pytz 最初从pytz获得特定的偏移。例如,亚洲/hong_kong最初显示一个七个小时37分钟的偏移: 差异源利用本地化将时区分配给日期,使用了适当的时区名称和偏移量。但是,直接使用DateTime构造器分配时区不允许进行正确的调整。 example pytz.timezone(...
    编程 发布于2025-04-09
  • Java是否允许多种返回类型:仔细研究通用方法?
    Java是否允许多种返回类型:仔细研究通用方法?
    在Java中的多个返回类型:一种误解类型:在Java编程中揭示,在Java编程中,Peculiar方法签名可能会出现,可能会出现,使开发人员陷入困境,使开发人员陷入困境。 getResult(string s); ,其中foo是自定义类。该方法声明似乎拥有两种返回类型:列表和E。但这确实是如此吗...
    编程 发布于2025-04-09
  • 在Ubuntu/linux上安装mysql-python时,如何修复\“ mysql_config \”错误?
    在Ubuntu/linux上安装mysql-python时,如何修复\“ mysql_config \”错误?
    mysql-python安装错误:“ mysql_config找不到”“ 由于缺少MySQL开发库而出现此错误。解决此问题,建议在Ubuntu上使用该分发的存储库。使用以下命令安装Python-MysqldB: sudo apt-get安装python-mysqldb sudo pip in...
    编程 发布于2025-04-09
  • 如何从Google API中检索最新的jQuery库?
    如何从Google API中检索最新的jQuery库?
    从Google APIS 问题中提供的jQuery URL是版本1.2.6。对于检索最新版本,以前有一种使用特定版本编号的替代方法,它是使用以下语法:获取最新版本:未压缩)While these legacy URLs still remain in use, it is recommended ...
    编程 发布于2025-04-09
  • 如何在鼠标单击时编程选择DIV中的所有文本?
    如何在鼠标单击时编程选择DIV中的所有文本?
    在鼠标上选择div文本单击带有文本内容,用户如何使用单个鼠标单击单击div中的整个文本?这允许用户轻松拖放所选的文本或直接复制它。 在单个鼠标上单击上的div元素中的文本,您可以使用以下Javascript函数:实现以实现此函数: 在您的javascript代码中添加了上述功能。参数。 使用此代...
    编程 发布于2025-04-09
  • 为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    在Microsoft Visual C 中,Microsoft consions用户strate strate strate strate strate strate strate strate strate strate strate strate strate strate strate st...
    编程 发布于2025-04-09
  • 如何配置Pytesseract以使用数字输出的单位数字识别?
    如何配置Pytesseract以使用数字输出的单位数字识别?
    Pytesseract OCR具有单位数字识别和仅数字约束 在pytesseract的上下文中,在配置tesseract以识别单位数字和限制单个数字和限制输出对数字可能会提出质疑。 To address this issue, we delve into the specifics of Te...
    编程 发布于2025-04-09
  • 如何使用PHP从XML文件中有效地检索属性值?
    如何使用PHP从XML文件中有效地检索属性值?
    从php PHP陷入困境。使用simplexmlelement :: attributes()函数提供了简单的解决方案。此函数可访问对XML元素作为关联数组的属性: - > attributes()为$ attributeName => $ attributeValue){ echo ...
    编程 发布于2025-04-09
  • 如何在Java中执行命令提示命令,包括目录更改,包括目录更改?
    如何在Java中执行命令提示命令,包括目录更改,包括目录更改?
    在java 通过Java通过Java运行命令命令可能很具有挑战性。尽管您可能会找到打开命令提示符的代码段,但他们通常缺乏更改目录并执行其他命令的能力。 solution:使用Java使用Java,使用processBuilder。这种方法允许您:启动一个过程,然后将其标准错误重定向到其标准输出。...
    编程 发布于2025-04-09

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3