【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

道器相融,论一个优秀机器学习平台的自我修养

  • 2017-10-16
  • 本文字数:9152 字

    阅读完需:约 30 分钟

人工智能到底会给企业带来什么?——是改变,机遇,还是更大的挑战?

在之前的大数据时代,企业开始意识到数据的重要性并着手搭建自己的大数据平台,大数据成为业界关注的焦点,Hadoop、Spark 等等各式各样的大数据框架、组件、平台层出不穷。随着人工智能时代来临,大数据平台发生了新的变化,也提出了更高的要求。Spark 等大数据平台多是为通用数据处理而设计的,并非专用于机器学习任务,企业该如何更好地利用机器学习、深度学习等人工智能技术从实时数据中高效挖掘有价值的信息?

在过去的两年(2015-2017),随着机器学习、特别是深度学习在多个领域取得革命性成功,各种专用的机器学习平台应运而生,百花齐放,Angel 也是其中的一员。

人工智能时代,大数据平台的演进之路

InfoQ:您不仅是 Angel 的主要开发者和团队负责人,还是 Spark 的早期研究者和布道者,并且一直从事分布式计算和机器学习领域的开发工作。能否结合您的工作经历,为我们介绍一下通用大数据平台到专用机器学习平台的演进历程?是什么推动了这一转变?您认为将来大数据中心的大多数任务会变成机器学习任务吗?

黄明: 其实推动这一转变的,本质上是人们对更高层面的追求所驱动的。从了解过去,到预知未来;从有限空间的穷举,到无限空间的探索;从有监督的训练,到无监督的自我学习……无论是企业高管,还是产品用户,大家都希望能得到更加智能的服务,而也只有提供了这种服务级别的的产品和公司,才能在残酷的互联网竞争中胜出。

2010 年,业界的大数据刚刚兴起,当时有很多受欢迎的项目都是统计类的,可以告诉大家昨天最流行的是什么。底层的框架是 Hadoop 和 Hive,很多平台的最大的功能就是出各种各样的报表,天报表、月报表……这时的层次是知道发生了什么。

2012 年,当时有两大发展方向,一种是更快的 SQL,一种是机器学习,涌现了很多开源项目。Spark 能够胜出,是因为它在两者中间取得了均衡,并展现了机器学习的潜质。Matei Zaharia 等人在 NSDI 的 RDD Paper [1] 提到了,Spark 的目标是为了解决 iterative algorithms 和 interactive data mining tools 这两类问题,这个判断从现在来看,依然是正确的。Spark 后来普及开来,目前很多公司依然会把 Spark 当成他们首选的通用数据处理平台兼机器学习平台。这是人们希望知道即将发生什么。

到了 2014 年,李沐等人在 osdi 关于 Parameter Server 的 Paper [2] 中,给出了分布式机器学习一个更好的思路,后面 Petuum 和 DMLC 的 ps-lite 就出来了。Spark 当时的跟进不是很到位,而且本身 RDD 的理念和 PS 也有些冲突。我们当时还给 Spark 提过一个 PR [3] ,后来也没被接受,但是引出了 Glint。到现在为止,官方的 Spark 依然以 RDD 为核心来实现机器学习算法,这是个很大的约束和障碍。

但是在 2015 年,PS 的发展也受到了深度学习的冲击,随着 TensorFlow 的出现,大家纷纷转向了深度学习的框架开发。包括微软的 DMTK 转向 CNTK,DMLC 的 PS-Lite 转向 MXNet……但是实际上,很多公司的数据中心依然有大量 CPU 机器,大量的非深度学习算法还是需要在大规模数据集上进行分布式训练,这个领域是有空缺的,深度学习替代不了。

腾讯是 2015 年开始调研和开发 Angel,其目的就是为了填补上面所说的空缺,2016 年 Angel 开始在内部使用,到了 2017 年,Angel 终于开源,整个开源的过程还是很不容易的(详情可查阅 InfoQ 早前的报道 [4] [5] )。希望 Angel 能把这块空白填补上,成为一个专用的分布式机器学习平台,服务更多的公司内外产品,推动人们对更高层次的追求。

最后,未来数据中心,相信依然会有很多数据处理任务。因为无论什么样的模型和算法,其前提都要建立在干净的数据之上。脱离了完整的数据预处理流程,谈机器学习和人工智能都是不现实的。但是大部分数据任务,它们的最终出口和末端,也将会是机器学习和人工智能的任务,因为如果没有了这个终点,前面的数据处理,也将是毫无意义的,能把控住末端的人,才是最终的胜利者。

InfoQ:大数据平台早期多以离线批处理为主,实时计算作为补充,但是现在越来越多应用场景对数据处理有了高时效性的要求。腾讯大数据平台也历经了离线计算、实时计算、机器学习三个阶段的发展。未来批处理计算和实时流式计算在企业构建 AI 平台的基础架构中将分别起到什么作用?

黄明:对一个高科技企业来说,实时计算能力和机器学习能力,都是 AI 能力的基础,确实是必备的。而且机器学习的训练(Training)和推理(Inference)两个阶段的重要性会并驾齐驱,实时计算能力的优势还将进一步辐射到推理场景。但是这并不代表离线批量计算不重要了,尤其是训练阶段,离线批量计算依然是主要场景,原因是:

  1. 好的模型需要大量的数据,反复迭代并达到一定的精确度才能上线,尤其是效果好的深度学习模型,通常需要多张 GPU 卡,训练较长的时间,才能完成,所以这里高性能的分布式机器学习平台,必不可少。
  2. 有很多的算法和场景不支持实时更新,本身就存在约束,或者数学证明不成立,或者不支持流式叠加,所以模型还是需要离线训练好之后,再推送到手机端或者其它终端设端。
  3. 在线学习(Online Learning)这个领域,模型的持续优化和更新的非常重要,但是总是需要一个基础模型,而这个基础模型的质量,很重要的制约了后续的改进效果。

综合以上 3 点,离线批量处理,依然会是非常重要和核心的场景,不可替代。但是实时流式计算会快速发展,尤其是在推理阶段。主要是因为在深度学习时代:

  1. 模型比以前复杂,从浅层模型变成了深度模型,其推理计算不是简单的代数计算。
  2. 传输数据比之前大,输入很可能是图片、声音、文本等,对吞吐量要求很高,而对推理过程依然要求在毫秒级别完成。这对推理的性能有更高的要求。

所以相信在未来 1-2 年,这方面,从硬件到软件都将会涌现出很多优秀的初创公司。

一个优秀的机器学习平台是如何炼成的

InfoQ:计算是机器学习平台的基础,但不是全部,在您看来,一个优秀的机器学习平台需要具备哪些特性?

黄明: 在机器学习界,有些人喜欢把调参和训练的过程,比喻为炼丹, 上升到“道”的层面。而道器相融,在我看来,那炼丹就需要一个好的丹炉了,也就是一个优秀的机器学习平台。它需要能为炼丹提供合适的火候,也就是为创新的模型和算法提供最佳的运行环境。因此,一个机器学习平台要取得成功,最好具备如下五个特点:

  1. 精辟的核心抽象

一个机器学习平台,必须有其灵魂,也就是它的核心抽象。当这个核心抽象和它要面对的模型和算法匹配时,这个平台就成功了一半。如果一开始就错误了,例如 SQL 作为平台的核心抽象,那么对后期的发展制约将会非常明显,无异于缘木求鱼,无论怎么努力都不会成功的。

Spark 的RDD核心抽象,很好的解决了分布式大数据的通用问题;而 TensorFlow 中TensorMutable VariablesDataflow Graphs的 3 个核心抽象,高度概括了深度学习中的各个元素。Angel 目前的核心抽象是PSModel,重点解决了分布式机器学习中模型切分数据并行模型并行模式异步 这 3 大问题,基本上可以满足大部分非深度学习的机器学习需求。
2. 充分的性能优化

在核心抽象正确的大前提下,性能是决定速度的关键。这就涉及了到平台层硬件层的理解、调优和封装。去年我们用 500 台高性能机器,获得了 TeraSort 比赛的冠军,也是这种性能优化能力的体现,并将其嫁接到了 Angel 之上。

现在已经不是 MR 的时代走海量低配机器路线。无论是 CPU 机器,还是 GPU 机器,都在往更强更快的方向走。去年比赛我们用的是很高性能的单机,包括 IBM 的 PowerPC,512G 的内存,多个 NVME 的 SSD,RDMA 的 100G 网络……都是业界顶配。

但是光有硬件堆砌是不够的,平台要对硬件有充分的利用。对于非深度学习,Java 系的莫过于 JVM 的调优了。怎样更好地使用内存,避免 FullGC 的产生,尽量让计算不落地,预读数据流水化处理……这些都是对平台设计的考验。而对于深度学习,CUDA 和 OpenCL 的性能利用,显存和内存的数据拷贝,浮点运算和定点运算的选择,一机多卡的内部通讯……平台都需要进行很多调整,甚至于引入像 XLA 这样的黑科技。

既然是分布式机器学习平台,肯定会涉及到分布式的拓扑结构。目前来看,比较成熟的分布式拓扑结构依然是MR、MPI、PS这 3 者。机器学习中,基本上 MR 已经出局了,MPI 凭借深度学习卷土重来,和 PS 分庭抗礼,当然也有整体用 PS、局部用 MPI 的做法,这也未尝不可。在确定网络拓扑之后,就要考虑网络加速了。RDMA 和 NVLINK 这 2 个关键技术很值得关注,也是未来的方向。毕竟数据是直接显存落显存,还是走两次内存,差别是可想而知的,再加上不需要 CPU 开销,对性能带来的影响还是很可观的。

所有这些优化,最后暴露给平台用户的,最好是越简单越好,平台能够依据简单的参数,自动选择最佳的性能通道,这才是对算法工程师和数据科学家意义最大的。
3. 强大的容错能力

谈到容错,不得不再提一下 MPI 和 MR。在 Hadoop 时代,海量低配机器理论的盛行,使 MPI 被 MR 打压得很厉害。但是到了深度学习时代,大家发现这些高配机器和 HPC 也差不了太多,十几万一台的机器,可靠性还是很强的,出错的概率很低,相比之下性能更加重要了,所以 MPI 这种模式又活了过来。

都是从整体来看,规模上去之后,在大型的数据中心,高配版本的 GPU 机器和 T 级别的训练数据,对容错性依然需要取得一定的均衡,这种情况下 PS 模式仍是最合适的。整体架构包括网络的通讯性能是最灵活和鲁棒的,可以做的容灾措施很多,代价也小。最终能够达到的效果会远胜于简单的定期 Checkpoint。
4. 灵活的接口设计

正如大家所知,2017 年 Python 已经借助人工智能成为了第一编程语言。这在某种程度上,当然归功于 TensorFlow 和 PyTorch 的神助攻,但是这个趋势背后有其必然原因。Python 语言的优势在于语法简单、上手难度低,而且资源丰富,有充实的数据、可视化和机器学习算法库,建立了非常良好的生态环境,同时它又能与 C 无缝结合,借助 py4j 还能和 Java 结合。基于以上原因,Python 能够为后台强劲的平台提供友好的接口层,达到简约而不简单的效果,也就难怪它会奇军突起、一枝独秀了。

但 Python 其实始终只是后台接口的体现,决定整体的,还是后台的接口设计,这时架构师的整体设计能力就非常重要了。核心理念的封装和延伸、多个机器学习概念的整合、系统的分层和解耦、多个子系统的一致性,这些最终都会体现到接口上,从而决定用户基于接口编写算法的难度。
5. 完善的周边系统

TensorFlow 开源之初,吸引眼球的工具之一,莫过于它的 TensorBoard,惊艳度超越了同期产品。当时还怀疑它是否会部分开源,不开源这个模块。一个好的机器学习平台还是要在周边系统的完善上多做些功夫,如果用户基于你的平台,可以快速地调试和定位 Bug,将会大大增强他们使用的信心,这会对用户形成很强的吸引力,最终也有助于形成更好的生态 。

InfoQ:在您看来,如何才能高效搭建一个优秀的机器学习平台?

黄明: 先讲个大家都知道的小插曲:TensorFlow 的前身是 DistBelief,当时并不太受深度学习界待见,大部分人做深度学习,要么 Caffe,要么 Torch,基本忽略 DistBelief,后来 TensorFlow 推出,就很受欢迎。这里有个时间细节,Hinton 是 2013 年加入 Google 的,而 DistBelief 是 2011 年开始研发的,TensorFlow 是 2015 年发布的,Jeff Dean 由始至终,都在 Google 负责这个项目。作为外人,不太可能知道 Hinton 到底对 TensorFlow 做出了什么样的贡献,但是效果是很明显的。DistBelief 之前工程性太强,对深度学习的模型本质和算法友好度不足,Hinton 加入后,第二代的 TensorFlow 的水准远远超越第一代的 DistBelief。整个系统的设计,从上层到底层,从名字到周边,都透露着对深度学习工程师的贴心理解。这也是 TensorFlow 成功的原因。

所以要设计和搭建一个优秀的机器学习平台,在我看来:

首先,要搭建一支工程和算法模型能力都很强的团队。整体上这个团队需要很好的互补能力,要有算法工程师,也要有系统架构师,大家互相配合。算法工程师的数学功底和表达能力很重要,而系统架构师的理解能力和快速实现能力很重要。另外最好能将学术界的创新能力和工程界的落地能力结合,才能使系统创新性和可靠性兼得。腾讯的 Angel 项目从一开始,就是北大的博士生和腾讯的工程师联合主导的项目,虽然远比不上 Hinton 和 Jeff Dean 这样的大神级别,但是模式是类似的,这是非常关键的一个要素。

其次,需要有大数据作为驱动。之前我们研究过 Petuum,发现有些理念很不错,但是稳定性非常差,在大数据量下很难跑通,而且搭建也很难。所以在 Angel 的研发过程中,我们始终坚持以大数据为驱动的原则,各种 Tricks 和设计必须以最终压测通过为原则,并紧密依靠内部业务,通过场景落地来检验效果,以此保障系统的设计合理性和可用性。这点对于大公司来说其实没有太大的难度,只要有正确的理念和合作即可。但是这对于小公司来说则比较困难。所以这也是 BAT 等大企业开源的框架,和实验室或者初创公司出品的框架相比的优势之一。

最后,需要保持很快的演进速度。TensorFlow 现在经常被批评接口改动太快。其实最近 Angel 的接口改动也很多,而且有些不能向后兼容。这其中原因很简单,一个是因为业界的深度学习发展太快,新算法和模型、技巧层出不穷,作为一个平台必须能快速适应,不进则退。另一个原因是开发的人太多,即便是 Angel 目前 Star 还比较少,但是内部大量的并行开发,很难保证所有的模块都是合理的,定期重构是消除这些不合理的唯一方法。整体来看,只要是合理的重构,能提升性能,就标识着这个项目还在快速的生长期中,不失为一件好事。

InfoQ:创新工场的王咏刚老师在《为什么 AI 工程师要懂一点架构》中提到,研究不能只懂算法,算法实现不等于问题解决,问题解决不等于现场问题解决,架构知识是工程师进行高效团队协作的共同语言。能不能谈谈您对架构能力的看法?

黄明: 王咏刚老师说的要懂“一点”。这个词在我看来代表了两个意思:

  1. 确实需要懂,不能什么都不懂。企业里的算法工程师和数据科学家一定要有动手能力,不能整天只会做研究、写 Paper,Matlab 和单机版的 Python 试验一下,自己独占一台 GPU 机器玩得很开心,模型做完了不会上线,沟通一到工程部分就聊不下去……其实是处于一种很不好的状态。这样的 AI 工程师,除非某方面特别强或特别突出,否则在企业是很难落地生存的。
  2. 不能指望懂太多。毕竟做算法和做工程的思维重点不一样,脑回路也不太一样,方法论也不一样。两方面都精通的人才,有,但是难找。这也是腾讯做 Angel 的初衷和目的,就是让算法工程师不需要懂太多底层框架优化,也能轻松地写出高效的、能分布式运行的生产代码,把一些通用的体系化的系统和架构细节屏蔽掉,这样才能极大地提高企业生产力。

目前来看,包括 Spark、TensorFlow 这些比较好的框架,也正是因为它们能够使数据工程师和 AI 工程师,在适当屏蔽掉底层的架构细节后,依然能够写出高效的算法代码,才取得了成功。

Angel 平台的新变化和展望

InfoQ:通过您之前的投稿,大家对 Angel 平台开源前所做的一系列重构和升级已经有所了解,开源以来想必又有了不少新变化,能否介绍一下近三个月你们对 Angel 平台又做了哪些优化?

黄明:开源以来,Angel 低调的发布了 2 个小版本:1.1.0 和 1.2.0,主要是加入了新的算法和优化方法,加强了稳定性,细化和完善之前的功能。这 3 个月内的优化,以稳定和性能提升为主。因为 Angel 的定位是工业级可用的平台,所以非常看重大数据量下的稳定性和性能,我们公布的算法都是生产验证过。同时我们对 Spark on Angel 的接口进行了反复的重构,尽可能和 Angel 本身的接口接近一致和复用,这方面的工作到时候会在这次 QCon 大会上重点介绍。

另外根据用户的反馈,Angel 开发团队正在开发 2 个大功能,尚未发布,包括:

  1. Python 接口:接口优化和重构,以提升易用性。因为之前宣传的时候,很多用户的第一个问题,就是有没有 Python 接口……所以我们不得不把这个作为第一优先级来满足。
  2. Spark Streaming on Angel:支持在线学习,加入 FTRL 算法。就像之前说的,实时性也是机器学习必不可少的。那 Angel 本身不做实时这块,但是支持 Spark on Angel,那通过 Spark Streaming 来接入实时训练,也是水到渠成的事情,成本也很低,不过对 Angel 的 HA 和内存管理,需要进一步的优化。

这两个新功能应该在下 2 个版本就能够和大家见面了。至于深度学习的支持,其实也在进行了,但是有些难度,会晚点推出。

InfoQ:开源后这段时间,Angel 平台的推广情况如何?有没有什么印象特别深刻的问题反馈?

黄明: Angel 开源以来,其实我们并没有太刻意推广,包括我们在 github 上 Public 的第一天(6 月 16 日)都没有准备做任何 PR,不过由于之前的影响力,最终各大媒体都报道了。但是腾讯 TOSA(开源委员会)最近一年对开源项目的扶持非常大,态度也很 Open,所以我们主要是借着腾讯开源的力量在做这个事情,发了几篇文章。目前整体的 Star 数接近 2.5k,我们比较欣慰的是 Fork 和 Star 数的比例比较高的,看得出很多人还是对项目很有兴趣的。整体上,我们还是按照自己之前定好的节奏,小步快跑地进行新功能和版本的研发。

据了解和接触,目前有部分公司(如小米、新浪微博等)正在试用 Angel,也有了不少贡献者。印象深刻的有几个:

  1. 华为的一位工程师,项目刚发布不久就提交了一个比较大的 PR,帮忙把 Netty 版本升级了,非常给力。后来他想把 GraphX 集成进来,但是我觉得这个方向不太对,就 Reject 掉了,不太好意思。
  2. 微软 LightBGM 的开发者之一提了个 Issue,和 Angel 开发 GBDT 的同学互动了 10 个来回左右,详细地讨论了机器学习任务中 MPI 和 PS 的网络通讯开销到底谁更小的问题,进行了很有意思的学术互动。
  3. 海外的一个用户主动帮忙翻译 Angel 的文档,之前为了开源,团队花了快 1 个月的时间边写文档边改 Bug,所有文档加起来应该有 100 篇左右,翻译工作量巨大。但现在基本全部都翻译完了。

这些都让我们体会到了开源的力量和益处,一个平台在开源之后,会受到来自全球的关注,只要你用心经营,并保持良好的功能和性能,能帮助到用户,用户就会主动帮你做很多事情。而你的视野,也会变得更加的开阔。很多外部用户的需求非常客观到位,正是他们推动着我们往前走。

InfoQ:开源三个月后再看 Angel,与一众机器学习平台相比(比如 Spark、Petuum、GraphLab、TensorFlow),Angel 的优势是什么?Angel 的什么特性最能吸引机器学习开发者?

黄明:首先目前其实 Petuum、GraphLab 都不开源,没有可比性。Angel 在研发初期借鉴参考过 Petuum 的一些思路,但是后来实验中发现,Petuum 在可靠性和稳定性上都达不到工业可用级别,所以基本上也都推倒重做了。

和 Spark 比的话,目前 Spark 的重心还是在 SparkSQL 上,这从每个版本的 PR 数就可以看出来,MLLib 的比例很小。这在某种程度上也是因为 Spark 的 RDD 本质局限导致的。相比之下,Angel 重点是机器学习算法,而基于 PSModel 的编程模型可以让各种机器学习的优化和 Tricks 都很方便地实现,对于算法工程师非常友好。伴随着 Python 接口的提供,这个优势将会变得更加明显。

TensorFlow 目前在深度学习上的地位还是遥遥领先,从 7w 个 Star 数就可略见一斑。但是在多机多卡的性能上 TensorFlow 的 PS 做得并不好,最近发布的最新版本还在尝试走 MPI 路线,这是业界难题之一。Angel 目前不会独立做一套新的深度学习框架去和 TensorFlow 竞争,而是会发挥自身优势,把 PS-Service 做好做极致,来加速并行训练并形成互补。

关于传统机器学习算法的生命周期问题,我觉得不用太担心。很重要的一点是传统机器学习算法比深度学习更贴近 problem solving 而非模拟智能。深度网络模拟大脑结构,所以在人类擅长的智能领域优于传统算法,比如视觉听觉,各种对外界信号的理解……但是还有一些非智能领域,人大脑展现出各种认知缺陷(cognitive deficit),比如对模式是随机还是真实的判断,对概率的认知,对风险评估等等。这些方面传统机器学习方法仍然更有效,不需要通过大量的野蛮暴力尝试,就能得到更好的结论。也许以后会有所改变,但目前传统思路的机器学习还是有必要的,在很多场合简单有用,包括腾讯的很多场景对此还是有刚需,所以 Angel 还是要把它经营好。

整体上来看,目前 Angel 是业界,包括国内和国外,比较成熟的开源参数服务器框架,能够在十亿级别的维度(其实百亿也可以,只不过没生产完全验证过,所以不这样宣传)、T 级别大小的样本量规模下,开发和运行通用的机器学习算法的平台。另外值得一提的是,Angel 的算法开发难度也比较低,有一位开源贡献者很轻松地在 Angel 上实现了阿里巴巴用于 CTR 预估的 MLR 算法,并贡献给 Angel 社区,这正是 Angel 团队所期待的。

InfoQ:您认为目前机器学习平台还存在哪些问题和难点?未来改进的重点是什么?

黄明:目前机器学习平台还存在 3 个大问题:算力的水平扩展、模型的高效压缩、快速的推理能力

  1. 机器学习平台最大的难题还是算力。性能再强,接口再好用,底层优化再极致,单机能力终有极限,需要能水平扩展,而深度学习大规模通用的多机多卡的分布式方案,目前依然是个难题,即便 TensorFlow 也没解决得很好。这也是腾讯致力于 Angel 系统的原因,希望无论是 CPU 还是 GPU,我们都能提供高性能分布式机器学习方案。
  2. 除此之外,利用庞大的集群规模,长时间训练出来的精细模型,其大小一般比较大,像 Angel 训练出来的模型一般都会上百 G,而深度学习的模型,多数也到 G 级别。这么大的模型,需要压缩之后才能给终端使用,如何在尽量减少精度损失的情况下,最大化的压缩模型,也是平台需要考虑的。
  3. 最后一个是快速的推理能力。无论是终端推理(手机端,无人驾驶车……),还是服务端推理(广告,推荐……),要求都是一样的,要尽可能速度快和高吞吐量。这时如何合理地利用和设计流式实时系统,来快速接入数据进行推理,也是平台需要考量的点。

在未来一年里,相信大部分的机器学习框架,包括深度学习框架,都会围绕着上述几个问题重点发力。这也是 Angel 需要面对的挑战和机遇。

采访嘉宾介绍

Andymhuang(黄明),腾讯 T4 专家,Spark 早期的研究者和布道者,对分布式计算和机器学习,有独到的经验和研究。目前于数据平台部担任海量计算组 Leader,负责构建大规模分布式计算和机器学习平台,助力腾讯各大数据和机器学习业务快速发展。


[1] https://www.usenix.org/system/files/conference/nsdi12/nsdi12-final138.pdf
[2] https://www.cs.cmu.edu/~dga/papers/osdi14-paper-li_mu.pdf
[3] https://issues.apache.org/jira/browse/SPARK-6932
[4] 在 Angel 开源前的这半年,我们对架构和性能做了哪些重构和升级?
[5] 腾讯大数据已将第三代高性能计算平台 Angel 代码在 Github 上开放

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2017-10-16 18:142596

评论

发布
暂无评论
发现更多内容

云原生时代,如何保证容器镜像安全?

极狐GitLab

DevSecOps 镜像安全 极狐GitLab

学生管理系统的架构文档

卡西毛豆静爸

「架构实战营」

系统学习 TypeScript(二)——开发流程和语法规则

编程三昧

typescript 前端 2月月更

存储新图谱:DNA存储的边界与天地

脑极体

面试突击25:sleep和wait有什么区别?

王磊

java面试

初级工程师建议收藏|企业级APIs安全实践指南

领创集团AdvanceGroup

Pulsar 职位广场 | 腾讯、华为云、虾皮、众安保险、StreamNative 等多个热招岗位

Apache Pulsar

开源 架构 云原生 招聘 Apache Pulsar

基于CC2530设计的智能风扇

DS小龙哥

2月月更 智能风扇

盘一盘常见的6种索引失效情况

华为云开发者联盟

MySQL 索引 字符串 查询 索引失效

CNCF 沙箱项目 OCM Placement 多集群调度指南

阿里巴巴云原生

阿里云 云原生 OCM Placement

工作想法小计(2):2/14 - 2/18

非晓为骁

个人成长

Clusterpedia 加持 kubectl,检索多集群资源

Daocloud 道客

云原生 开源项目 K8s 多集群管理

关于MVVM和MVC,面试看这篇就够了

山河已无恙

mvc 全栈 MVVM 2月月更

Python 中的数组哪去了?

宇宙之一粟

Python 数组 2月月更

数据库读写分离如何保证主从一致性?

蜜糖的代码注释

MySQL 数据库 2月月更

百度可观测系列 | 采集亿级别指标,Prometheus 集群方案这样设计

百度开发者中心

人才短缺、成本高昂,制造企业智能化转型路径如何破局?

百度开发者中心

好用不卡,这些插件和配置让你的 Webstorm 更牛逼!

前端下午茶

前端 工具 webstorm

鲲鹏DevKit & BoostKit直播解密:如何“做开发者的开发者”

科技热闻

十年所学,梦想终至,不负时光 | 《云端架构》新书首推发布,来自极度努力的吕校长

博文视点Broadview

超硬核攻略!《2022金融云原生落地实用指南》重磅发布(限时免费下载)

York

UMEM:友盟统计自定义事件多应用一键同步 & 批处理工具

SamgeApp

Docker Vue 友盟助手 友盟自定义事件批处理 友盟统计

[Python]介绍

謓泽

Python 2月月更

Nginx跨域解决配置示例

nginx 跨域

从 generator 的角度看 Rust 异步代码

SOFAStack

rust Generator

FIddler+Proxifer工具对windows PC客户端进行抓包

喀拉峻

黑客 网络安全

用简单例子带你了解联合索引查询原理及生效规则

华为云开发者联盟

sql 索引 查询 联合索引

学生管理系统的架构设计

凌波微步

「架构实战营」

eBPF 完美搭档:连接云原生网络的 Cilium

火山引擎边缘云

边缘计算 ebpf 云原生网络 cllium

『The ShardingSphere Global Echo』Vol.4

SphereEx

数据库 开源 中间件 ShardingSphere SphereEx

第三个模块作业

achilles

道器相融,论一个优秀机器学习平台的自我修养_大数据_黄明_InfoQ精选文章