千卡损耗不超5% 揭秘百度“万源”OS攻克一云多芯难题的技术硬核

2024-04-23 18:02:42 来源: 通信世界网

  近年来,无论是Client端PC、手机,还是Server端DC,都随着数据的爆炸而快速变化。然而,在这当中,芯片、OS的核心基座作用却从未改变。从PC时代的WinTel联盟,到移动互联时代的Android、高通,从传统DC的x86 、Linux,到云计算时代的Arm、云OS,二者相互依赖或同时升级亦或交叉演进,如影随形。

  今天,随着AI大模型的到来,当GPU、NPU,尤其是GPU逐渐占据上风并挑战了CPU的霸主存在时,全新OS的出现成为必需又恰逢其时。4月16日,在Create 2024 百度AI开发者大会上,百度集团执行副总裁、百度智能云事业群总裁沈抖正式发布新一代智能计算操作系统——万源。

  “传统的云计算系统依然重要,但不再是主角,我们需要一个全新的操作系统,对新的计算平台,也就是智能计算做好抽象和封装,重新定义人机交互,为开发者提供更简单、更流畅的开发体验。”沈抖如是说。

  在沈抖看来,随着大模型技术的不断演进,通过自然语言进行编程正在成为现实。编程将不再面向过程或者面向对象,而是面向需求;编程的过程将成为开发者表达愿望的过程,并为操作系统带来革命性的变化。在操作系统的内核中,底层硬件从以CPU算力为主变成以GPU算力为主,并且新增了被大模型压缩的世界知识。操作系统管理的对象发生了本质的变化,从管理进程、管理微服务,进化为管理智能。

  确实,百度对“万源”定位是清晰精准的,底层对象是GPU,产品内核在资源管理上从管理进程、管理微服务,变成了管理智能,新增了被大模型压缩的世界知识,部署在服务端,重新定义人机交互,面向开发者提供更简便流畅的环境和接口。

  “万源”极其重视开发者生态的培育,百度集团副总裁侯震宇在接受媒体采访时解释说到,操作系统的成功不只是技术上的成功,十几年前在智能手机刚出来的时候,不只有安卓,大批的Symbian OS、BlackBerry OS,甚至是Windows 移动端OS出现,但最后只有Android赢得胜利,“得开发者得天下”。

  而无论百度如何定义自已的“万源”,对底层资源的管理分配调度,还是对上层应用的完美支撑适配,以及生态的打造,归根到底还得凭借强大的底层技术,才能支撑起全新的智能计算的“大厦”。

  底座强则万物孕育,花开叶茂。侯震宇带我们一道,揭开了“万源”的三层架构,以及“万源”如何攻克“一云多芯”难题的背后技术硬核。

  “万源”三层架构

  在了解“万源”技术实力之前,我们有必要先来了解下它的三层架构。

  据了解,百度智能云全新推出的“万源”智能计算操作系统主要由Kernel(内核)、Shell(外壳)、Toolkit(工具)三层构成,底层屏蔽掉云原生系统与异构算力的复杂性,上层则为AI原生应用的敏捷开发提供支撑与保障。

  (万源架构图)

  首先,在内核层,在算力资源管理方面,百度百舸·AI异构计算平台针对大模型训练、推理等任务,对智算集群的设计、调度、容错等环节进行了专项优化。目前,百舸能够实现万卡集群上的模型有效训练时长占比超过98.8%,线性加速比、带宽有效性分别高达95%,算力效能业界领先。

  此外,百舸还兼容昆仑芯、昇腾、海光DCU、英伟达、英特尔等国内外主流AI芯片,支持用户以最小代价完成算力适配。

  万源内核中的另一个重要组成部分是大模型。大模型能够将巨量的世界知识进行高效压缩,并将自然语言的理解、生成、逻辑、记忆能力进行封装。目前,万源内核中既包含了业界领先的ERNIE 4.0、ERNIE 3.5大语言模型,也包括ERNIE Speed/Lite/Tiny等轻量级模型、文心视觉大模型和各具特色的第三方大模型。它们压缩并封装了庞大的世界知识,是更上层运行简单接口和 AI 原生应用的能力源泉。

  在内核层之上是Shell层,通过百度智能云千帆ModelBuilder解决内核中模型的管理、调度、二次开发等问题,屏蔽掉模型开发的复杂性,帮助更多人只投入少量的数据、资源和精力,就能快速精调出适合自己业务的模型。同时,在实际应用中,千帆ModelBuidler提供的模型路由服务,能够自动为不同难度的任务选择合适参数规模的模型,给出平衡效果与成本的最优模型组合。经测算,在模型效果基本持平的情况下,模型路由平均降低推理成本多达30%!

  据了解,千帆大模型平台不仅支持百度自研的文心大模型系列,而且支持BLOOM、Llama2等60+国内外第三方大模型的开发及应用,模型数量国内第一。

  在Shell层之上,千帆AppBuilder和AgentBuilder共同构成了工具层,为开发者提供强大的AI原生应用开发能力。尤其是千帆AppBuilder提供的工作流编排功能,支持开发者使用预置的模板和组件,轻松定制自己的业务流程,还能够集成、扩建自己的特色组件,在不同节点上选用适合的模型,通过灵活的编排实现业务逻辑。

  目前,千帆大模型平台已经服务了 8.5 万家企业客户,并累计精调超过 1.4 万个模型。AI 原生应用开发平台千帆 AppBuilder 全面开放服务,让人人都能自己开发。目前已经有 8100 家伙伴通过该平台开发 AI 原生应用。

  在千帆AppBuilder上开发AI原生应用的过程中,还可以直接调用通过千帆ModelBuilder精调过的模型,让整个开发过程变得极为流畅和便捷。在应用开发完成后,可以一键发布到百度搜索、微信公众号等平台,也可以通过API或SDK的方式直接集成到用户自己的系统中,真正做到极速开发、轻松上市。

  目前,Toolkit层工具组件扩增至54个,包括数十个大模型能力组件、AI能力组件以及百度自有的搜索组件等,为开发者提供了更加丰富、便捷的开发工具。

  “我们把最底层的百舸大异构的集群,在中间层内嵌了百度文心一言大模型,当然也支持包括国内外其他78+大模型的千帆大模型平台,特别是千帆的ModelBulider,共同构成了一个内核,由百舸、千帆发展成整个万源操作系统。”侯震宇说道,它并不是说一蹴而就,而是我们过去这么多年工作以及多年帮助客户解决问题积累出来的一个大型的操作系统,万源首先是面向公有云环境,把所有的东西帮助大家“屏蔽”掉,当硬件和模型快速发展时,我们有能力给开发者提供一个更加简洁、方便的开发工具、开发语言,所以这时候“万源”也就应运而生了。

  侯震宇表示,希望在万源的“黑土地”上能够长出来更多的应用,百度会自己做一些应用,但不会和真正的、潜在的合作伙伴以及潜在客户去抢应用。就像苹果,它会做一些它自己原生的应用,但它不会去跟其它家做竞争。

  一云多芯 攻克极难攻坚的难题

  在百度的解释中,AI原生时代的全新操作系统,需要管理万卡规模的集群,极致发挥CPU、GPU性能 ,高速互联;需要强大的大模型(大语言模型、CV大模型)作为核心引擎;需要构建强大的大模型服务能力,并提供模型精调、评估、部署、服务的工具链;需要有好用的应用开发工具去做工作流编排、插件管理,简化开发流程;同时保证安全和运维,要隐藏掉上一代云原生系统的复杂性,加速AI原生应用的爆发……

  当下,全球芯片供应存在多种不确定性,导致多种算力芯片并存的格局。这对智算集群中模型推理和单一任务训练提出了挑战。侯震宇介绍,相比模型推理,“一云多芯”在模型训练场景中是极难攻坚的难题,主要包含两类细分场景:

  一是智算集群中存在多个训练任务,单一厂商芯片只服务单一任务;

  二是在每个独立的模型训练任务中同时使用不同厂商芯片。这就需要解决不同厂商芯片算力均匀切分、芯片间通信效率优化等问题,难度极高。

  (业界领先的单一任务一云多芯大模型训练解决方案)

  目前,百舸已经实现了单一训练任务下不同厂商芯片的混合训练,且百卡规模性能损失不超过3%,千卡规模性能损失不超过5%,业界领先。最大程度上屏蔽硬件之间差异,帮助用户摆脱单一芯片的依赖,实现更优成本,打造更具弹性的供应链体系。

  侯震宇分析说,“以CPU+GPU为代表的异构计算正在成为主流,但大模型场景的异构计算难度很高,不同的芯片之间很难互联,且不同芯片间没法在同一张网里面跑同一个任务”这是之前大家一贯的观点。因为百度投入AI十几年,我们的AI基础设施积累的时间很长,所以在去年基本上就已经攻克了这个问题,在今天把它公布出来。

  这里面涉及到多个层次的问题。

  第一步,需要能够让不同的芯片自身跑起来,百舸AI异构计算平台的线性加速比现在达到95%以上。这要归功于百度智能云面向 AI 计算推出的 AI 加速套件「AIAK」,它的核心是网络通信加速。AI、大模型能够跑到芯片上基本都是一些算子,每家芯片厂商的算子实现,其实并不一样,需要在整个框架层面上把底层通信和上层算子的优化实现拆开,这样各家芯片针对算子进行优化,百度在把底下的通讯库做好,不管什么样的芯片首先都能够跑在百度的加速库上。

  据了解,算子是指支持DNN模型训练与推理的基本运算单元及组合,比如conv2d,matmul。深度模型由pytorch,TF等上层框架表达实现,一般人并不关心它们是如何由具体的硬件实现的。实际上,这些模型在硬件执行前首先经过图级优化,分解为一个个算子。算子如何适配具体芯片的特点需要针对硬件特性仔细安排。对于AI芯片公司来说,其芯片都有自己的硬件架构和特性。因此为了让DNN模型在自己芯片运行和发挥最佳性能,就需要定制自己的算子库。

  第二步,基于第一步,把不同的芯片都混合在同样的一张算力网里面,跑在同一个模型训练任务上。不同的芯片涉及不同的算力能力、性能,对通讯、存储的要求以及最终的体验都不一样。百度在整个的底层的百舸加速库上,又做了并行框架的实现。百度自研的自适应算法,可以根据当下整个网络里面各种芯片及配比的不同,来自动实现TP(张量模型并行)、MP(模型并行)、PP(流水线并行)的不同的并行策略和参数设定。

  侯震宇说到,这期间也遇到了一些非常细的和很难的技术问题。比如GPU卡间通信主要是用NVLink实现,但是卡出了机器之后走的RDMA网络或者IB网络。Nvidia GPU和百度昆仑芯,可以通过标准的网络协议RDMA去实现。“但一些特殊的芯片,如昇腾把在网卡上实现的RDMA能力,集成到的芯片中,这就不是标准的网卡实现,我们会把这一层‘屏蔽’掉,采用把它复制到CPU,用CPU来做转发的实现策略。”

  “单个任务能够用不同的芯片实现是一种非常难的技术,而这也是接下来多元芯片终将要面对的问题,我们已经先把这个问题解决掉了”。侯震宇补充说道。

  简单来说,百卡和千卡规模性能损失低,得益于百舸在存储方面支持了高性能分布式存储 PFS、以及万卡级别的 RDMA 网络,前者显著提升训练和推理过程中的 I/O 吞吐能力,后者有效降低网络延迟。

  破解技术难题,为开发者提供更简单、更流畅的开发体验等,是“万源”获得客户青睐的一大主要原因。正如沈抖所说,从内核到Shell、再到应用开发工具,万源已经实现了层与层的有机结合、端到端的效能优化。过去一年多,在内外部客户的实际应用中,不断打磨、持续完善,“万源”,已经成为AI原生时代的智能计算操作系统,为用户提供极简的开发体验、智能的系统内核,和高效的异构算力。

  万源的发布是一个起点。未来,百度智能云会进一步开放操作系统层面的生态合作。向上,开放更多的能力和接口,开发者可以非常简单地开发应用。向左,企业可以用万源做基础、打造适合自己的垂直行业的操作系统。向右,可以把万源直接部署在自己的智算中心,享受稳定、安全、高效的智能计算平台。向下,适配更多的芯片,为开发者进一步隐去异构集群的复杂性,让不同的芯片都能发挥最大的效能。

  从技术、功能、性能、产品、平台,到系统定位、目标受众,再到商业和生态打造,万源”已颠覆传统云计算,并为开发者们创造更大的智能底座。

关注同花顺财经(ths518),获取更多机会

0

+1
  • 川宁生物
  • 中海达
  • 鲁抗医药
  • 正丹股份
  • 蔚蓝生物
  • 凌云股份
  • 国联股份
  • 溢多利
  • 代码|股票名称 最新 涨跌幅