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

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

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

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]删除
最新教程 更多>
  • 何时将成功回调函数与 jQuery Ajax 调用分离?
    何时将成功回调函数与 jQuery Ajax 调用分离?
    从 jQuery Ajax 调用解耦成功回调函数使用 jQuery ajax 从服务器检索数据时,通常的做法是定义成功.ajax() 块中的回调函数。这将回调处理与 AJAX 调用紧密结合在一起,限制了灵活性和可重用性。要在 .ajax() 块之外定义成功回调,通常需要声明一个用于存储返回数据的变量...
    编程 发布于2024-11-03
  • 极简设计初学者指南
    极简设计初学者指南
    我一直是干净和简单的倡导者——这是我的思维最清晰的方式。然而,就像生活中的大多数任务一样,不同的工作有不同的工具,设计也是如此。在这篇文章中,我将分享我发现的极简设计实践,这些实践有助于创建干净简单的网站、模板和图形——在有限的空间内传达必要的内容。 简单可能比复杂更难:你必须努力让你的思维清晰,使...
    编程 发布于2024-11-03
  • 了解 React 应用程序中的渲染和重新渲染:它们如何工作以及如何优化它们
    了解 React 应用程序中的渲染和重新渲染:它们如何工作以及如何优化它们
    当我们在 React 中创建应用程序时,我们经常会遇到术语渲染和重新渲染组件。虽然乍一看这似乎很简单,但当涉及不同的状态管理系统(如 useState、Redux)或当我们插入生命周期钩子(如 useEffect)时,事情会变得有趣。如果您希望您的应用程序快速高效,那么了解这些流程是关键。 ...
    编程 发布于2024-11-03
  • 如何在 Node.js 中将 JSON 文件读入服务器内存?
    如何在 Node.js 中将 JSON 文件读入服务器内存?
    在 Node.js 中将 JSON 文件读入服务器内存为了增强服务器端代码性能,您可能需要读取 JSON 对象从文件到内存以便快速访问。以下是在 Node.js 中实现此目的的方法:同步方法:对于同步文件读取,请利用 fs(文件系统)中的 readFileSync() 方法模块。此方法将文件内容作为...
    编程 发布于2024-11-03
  • 人工智能可以提供帮助
    人工智能可以提供帮助
    我刚刚意识到人工智能对开发人员有很大帮助。它不会很快接管我们的工作,因为它仍然很愚蠢,但是,如果你像我一样正在学习编程,可以用作一个很好的工具。 我要求 ChatGpt 为我准备 50 个项目来帮助我掌握 JavaScript,它带来了令人惊叹的项目,我相信当我完成这些项目时,这些项目将使我成为 J...
    编程 发布于2024-11-03
  • Shadcn UI 套件 - 管理仪表板和网站模板
    Shadcn UI 套件 - 管理仪表板和网站模板
    Shadcn UI 套件是预先设计的多功能仪表板、网站模板和组件的综合集合。它超越了 Shadcn 的标准产品,为那些不仅仅需要基础知识的人提供更先进的设计和功能。 独特的仪表板模板 Shadcn UI Kit 提供了各种精心制作的仪表板模板。目前,有 7 个仪表板模板可用,随着时间...
    编程 发布于2024-11-03
  • 如何使用正则表达式捕获多行文本块?
    如何使用正则表达式捕获多行文本块?
    匹配多行文本块的正则表达式匹配跨多行的文本可能会给正则表达式构造带来挑战。考虑以下示例文本:some Varying TEXT DSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF [more of the above, ending with a newline] [yep, t...
    编程 发布于2024-11-03
  • 软件开发中结构良好的日志的力量
    软件开发中结构良好的日志的力量
    日志是了解应用程序底层发生的情况的关键。 简单地使用 console.log 打印所有值并不是最有效的日志记录方法。日志的用途不仅仅是显示数据,它们还可以帮助您诊断问题、跟踪系统行为以及了解与外部 API 或服务的交互。在您的应用程序在没有用户界面的情况下运行的情况下,例如在系统之间处理和传输数据的...
    编程 发布于2024-11-03
  • 如何在单个命令行命令中执行多行Python语句?
    如何在单个命令行命令中执行多行Python语句?
    在单个命令行命令中执行多行Python语句Python -c 选项允许单行循环执行,但在命令中导入模块可能会导致语法错误。要解决此问题,请考虑以下解决方案:使用 Echo 和管道:echo -e "import sys\nfor r in range(10): print 'rob'&qu...
    编程 发布于2024-11-03
  • 查找数组/列表中的重复元素
    查找数组/列表中的重复元素
    给定一个整数数组,找到所有重复的元素。 例子: 输入:[1,2,3,4,3,2,5] 输出:[2, 3] 暗示: 您可以使用 HashSet 来跟踪您已经看到的元素。如果某个元素已在集合中,则它是重复的。为了保留顺序,请使用 LinkedHashSet 来存储重复项。 使用 HashSet 的 Ja...
    编程 发布于2024-11-03
  • JavaScript 回调何时异步?
    JavaScript 回调何时异步?
    JavaScript 回调:是否异步?JavaScript 回调并非普遍异步。在某些场景下,例如您提供的 addOne 和 simpleMap 函数的示例,代码会同步运行。浏览器中的异步 JavaScript基于回调的 AJAX 函数jQuery 中通常是异步的,因为它们涉及 XHR (XMLHtt...
    编程 发布于2024-11-03
  • 以下是根据您提供的文章内容生成的英文问答类标题:

Why does `char` behave differently from integer types in template instantiation when comparing `char`, `signed char`, and `unsigned char`?
    以下是根据您提供的文章内容生成的英文问答类标题: Why does `char` behave differently from integer types in template instantiation when comparing `char`, `signed char`, and `unsigned char`?
    char、signed char 和 unsigned char 之间的行为差​​异下面的代码可以成功编译,但 char 的行为与整数类型不同。cout << getIsTrue< isX<int8>::ikIsX >() << endl; cou...
    编程 发布于2024-11-03
  • 如何在动态生成的下拉框中设置默认选择?
    如何在动态生成的下拉框中设置默认选择?
    确定下拉框中选定的项目使用 标签创建下拉列表时,您可以可能会遇到需要将特定选项设置为默认选择的情况。这在预填写表单或允许用户编辑其设置时特别有用。在您呈现的场景中, 标记是使用 PHP 动态生成的,并且您希望根据值存储在数据库中。实现此目的的方法如下:设置选定的属性要在下拉框中设置选定的项目,您需...
    编程 发布于2024-11-03
  • Tailwind CSS:自定义配置
    Tailwind CSS:自定义配置
    介绍 Tailwind CSS 是一种流行的开源 CSS 框架,近年来在 Web 开发人员中广受欢迎。它提供了一种独特的可定制方法来创建美观且现代的用户界面。 Tailwind CSS 区别于其他 CSS 框架的关键功能之一是它的可定制配置。在这篇文章中,我们将讨论 Tailwin...
    编程 发布于2024-11-03
  • 使用 jQuery
    使用 jQuery
    什么是 jQuery? jQuery 是一个快速的 Javascript 库,其功能齐全,旨在简化 HTML 文档遍历、操作、事件处理和动画等任务。 “少写多做” MDN 状态: jQuery使得编写多行代码和tsk变得更加简洁,甚至一行代码.. 使用 jQuery 处理事件 jQuery 的另一个...
    编程 发布于2024-11-03

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

Copyright© 2022 湘ICP备2022001581号-3