百科问答小站 logo
百科问答小站 font logo



如何看UCBerkeley RISELab即将问世的Ray,replacement of Spark? 第1页

  

user avatar   mailuo 网友的相关建议: 
      

本人背景:分布式系统博士生,研究改进过MapReduce类系统,同时利用actor开发了工业界应用的新一代实时计算引擎(尚未开源)。因此对于Spark和Ray的设计初衷和可能遇到的技术债有一定了解。先说个人的看法:Ray和Spark是立志于解决两个领域问题的计算机系统,Ray取代Spark是危言耸听了。

背景

回首分布式计算系统进化的10年,我们可以更容易认识到Spark和Ray的相对位置。2004年,Google提出MapReduce作为一个集群编程框架,并且配合Google File System等技术作为底层存储的支持。之后10余年,MapReduce大行其道。其成功的原因在于其给广大程序员和数据科学家提供了一个非常好理解,表达力丰富,容错性极高,且很容易基于商业硬件(commodity devices)来实现的分布式系统架构。之后在2010年,随着Stanford提出的memory cloud的概念,研究人员意识到原本看似非常昂贵的内存正在变得廉价,许多高度依赖于磁盘的容错操作其实可以利用在内存中实现。在这个背景下,Spark应运而生,催生了RDD和一系列基于内存的优化技术,在中小型规模计算上取代了原本的Hadoop Hive等基于磁盘的框架。可是至今,Hive并没有因此而被完全取代。在超大规模计算(PB级别)场景下,其依赖于SSD以及超强的鲁棒性,依然是很多公司的首选。因此,计算框架出现的初衷往往不是相互取代的关系,而是支持新计算需求和场景,对于新的硬件条件进行利用,形成优势互补,相互合作的关系。ray和spark也是如此。

为什么我们需要新的计算框架?

2015年前后,大量AI计算任务崛起,其中增强学习(Reinforcement Learning)和自动驾驶AI训练等等作为一个重大的计算需求,一直很难在MapReduce得到很好的表达。MapReduce本质上是一个大规模的数据聚合(data aggregation)的模型。另一方面,许多AI的任务的核心诉求是在大规模仿真(Simulation)的环境下优化AI的行为。这种诉求和Spark当时的设计初衷完全不同。

首先,仿真的规模能够轻易轻易到达Billions的级别。这种级别难以在Spark集群得到良好支持。Spark的Task本质上对于基于CPU的操作系统线程抽象。因此Spark并没有非常自然的方式能够将数十亿个仿真实体(AlphaGo的仿真级别)能够合理的同时调度到几千个CPU上面。另外,MapReduce范式难以表达复杂的计算状态和同步。上亿个仿真实体不仅仅运行的时间不同(有些游戏只要几秒就结束,有些游戏可能十几分钟那个还在运行)。让他们在统一的Bulk Synchronization Processing(BSP)模型频繁的同步,不仅仅系统开销很大,而且很难实现。另外,仿真实体往往需要实现复杂的计算行为,伴随计算中间状态的抽象,而这在Spark下难以实现。

最后,资源调度层的压力。Spark的设计初衷是解决大数据处理问题。那么数据已经静态的存储在文件系统中,Spark只需要依照资源可用性,启动一定的大小的计算图做静态计算即可。可是在大规模仿真中,这上亿个计算实体可能在计算中间大量产生和消失(例如,分布式优化算法的剪枝行为)。这些庞大的对于计算图在线修改的行为在Spark中很难有效支持。

Ray解决了什么问题?

因此,Ray针对这类超大规模仿真的计算任务提供了一种全新的计算框架。其底层利用actor而不是类似于Spark的基于系统线程实现的资源框架。首先在抽象层次,Ray专门给RL的几大类经典仿真问题提供了专用算法框架。RL用户现在难以得到满足的计算需求得到迅速满足。另外牺牲普适性后,Ray可以为几大类的RL算法专门设计同步算法,从而高效推进算法的执行和资源利用率。

然后在计算效率上,Ray的底层使用了actor框架来实现。这么做有两大优势。第一,actor可以认为是用户级的线程。其可以轻易在16核的服务器上,同时调度上百万的actor。这使得我们可以轻易实现Billion级别的大规模仿真。第二,actor之间本身是松耦合的,在运行时大量创建和删除actor都可以在server本地完成(毫秒级别的调度延迟),并不会严重影响整个集群的运行效率(当然,这么做的假设是大量的分布式AI算法可以忍受eventual consistency,因此比BSP模型更局限)。

另一方面,actor相对于Spark系统线程实现存在三大挑战。第一,缺少了系统隔离能力,一个有害的actor实现可以轻易独占当前的cpu资源从而影响他人的使用(依赖于cooperative scheduling)。第二,由于频繁的需要在cpu上切换不同的actor,其调度以及context switch的开销理论上更大。第三,允许python来实现,以及进行大规模仿真的巨大中间计算状态的更新和存储可能成为Ray一个可能的技术债。首先,python在支持function的序列化(函数闭包,有名类,依赖注入)以及远端部署的方面不及Java和C#这类语言成熟。

结论

因此我们可以看到,Ray其实本质上Berkeley对于AI时代大量崛起的大规模仿真计算需求的一个方案。其在牺牲了Spark等批处理框架易用性的同时,着眼于AI领域特定算法,针对AI程序员的核心诉求提供了的灵活和高性能的框架支持。

一个可以预见的场景是,人们利用spark来做大规模数据准备,利用ray来训练AI,最终将训练的AI回馈到spark的计算图里面去。

最后一句话回答本题:Spark更懂数据科学(大数据里找总结),Ray更懂AI训练(大仿真中求智慧)。


user avatar   oneflow-17 网友的相关建议: 
      

怎么没人提《圣斗士星矢》啊?

这个系列作品的特色不就是回回都是一部的戏就半天时间么?

黄道十二宫篇:纱织中了天箭座的箭,必须12小时内突破圣域十二宫。

北欧篇:奥丁代言者希露达被海皇戒指蛊惑令冰川融化,纱织代替希露达阻止冰川融化但是只能坚持12小时,必须在时限内摘下希露达的戒指。

海皇篇:纱织代替人类承受波塞冬的洪水,应该也是只能支撑一天之内的时间。

冥王十二宫篇:被哈迪斯复活的圣斗士要在12小时内取下雅典娜的首级,实际目的则是为了雅典娜去冥界并且唤醒女神圣衣,12小时候被复活的圣斗士们就消失了。

冥界篇:记不清打了多长时间,但从纱织被塞到缸里抽血开始到解决应该也是一天之内。

黄金魂:在本篇剧情里有好几天,但对应到冥界篇时间仅仅发生在冥界篇12黄金击破叹息之墙到打死神之间。

火星篇:马尔斯获得阿丽娅的权杖后建立起巴别塔吸引火星,会在12小时内毁灭地球,主角们必须在12小时内突破新十二宫。

土星篇:这篇好像打了很多天……


user avatar   jin-xue-feng 网友的相关建议: 
      

怎么没人提《圣斗士星矢》啊?

这个系列作品的特色不就是回回都是一部的戏就半天时间么?

黄道十二宫篇:纱织中了天箭座的箭,必须12小时内突破圣域十二宫。

北欧篇:奥丁代言者希露达被海皇戒指蛊惑令冰川融化,纱织代替希露达阻止冰川融化但是只能坚持12小时,必须在时限内摘下希露达的戒指。

海皇篇:纱织代替人类承受波塞冬的洪水,应该也是只能支撑一天之内的时间。

冥王十二宫篇:被哈迪斯复活的圣斗士要在12小时内取下雅典娜的首级,实际目的则是为了雅典娜去冥界并且唤醒女神圣衣,12小时候被复活的圣斗士们就消失了。

冥界篇:记不清打了多长时间,但从纱织被塞到缸里抽血开始到解决应该也是一天之内。

黄金魂:在本篇剧情里有好几天,但对应到冥界篇时间仅仅发生在冥界篇12黄金击破叹息之墙到打死神之间。

火星篇:马尔斯获得阿丽娅的权杖后建立起巴别塔吸引火星,会在12小时内毁灭地球,主角们必须在12小时内突破新十二宫。

土星篇:这篇好像打了很多天……


user avatar   siyz 网友的相关建议: 
      

首先这是Fed一月 memo

先说结论:

FOMC 维持利率在 0-0.25% 不变。且确定 3 月完全停止 QE,同时 3 月加息也是箭在弦上,基本会后声明皆符合市场预期,没有太多的意外。

Powell 记者会确实是偏一点点的小鹰派,但我也认为,Powell 的说法不至于拉升市场加息预期至 5次 、并拉升缩表预期至上半年,反而比较像是在强化加息 4 次之预期。

另外我个人觉得,一些中文媒体似乎误读了Powell 记者会的部分片段,下面 Allen 再进一步说明。


1. 3 月加息停止 QE 早已定价

本次会议 Fed 再次确认 3 月将准备第一次加息,并同时停止 QE。

Fed 也再次重申,货币政策是要支持美国经济达到充分就业、与通膨长期均值维持 2.0% 的两大目标。

这部分我想市场早已定价,这裡完全不会是问题,所以我们不讨论太多。


2.未来加息在每次会议都可能发生 (?)

Powell 的原文说法是:Won't Rule Out Hike Every Meeting.

但我有看到部分中文媒体写:不排除每次会议都加息的可能性。

上述我想或许是误读了 (还是其实是我自己误会中文的意思 ?)

我的理解是:Powell 是说加息在未来每场会议都可能发生,指的是“不会在特定月份才加息”,不是说每场都要加息。

Powell 说得很合理,经济本来就是动态的,加息本就不会侷限在什麽月份才启动,端看当时的经济状况而定。

我认为Powell 上述说法,并未延展今年加息预期至五次或更多,若有这种想法,那绝对是误读了。


3.更大规模的缩表?

Powell 在记者会上提到,Fed 需要更大规模的缩表,但请大家不要恐慌,因为我又觉得部份中文媒体过度解读了。

我认为Powell 说到的“更大规模缩表”,在思维上指的是:

因为当前 Fed 资产负债表高达 8.9 万美元,这是新冠疫情爆发之前的两倍大,显然在绝对规模上是非常巨大的。

而上一轮 2017-2019 年 Fed 缩减资产负债表,是自 4.4 万亿美元缩到 3.7 万亿美元停止,缩表的幅度大概是 15.9%,共缩减了约 7000 亿美元。

确实每次缩表的经济背景绝对是不一样的,所以幅度也绝对不会相同,但我们随便抓,假设本轮缩表将缩减 10% 资产负债表规模,那麽这也要降低 8900 亿美元,规模当然很大。

但我认为,不需要过度恐慌在“更大规模缩表”这几个字上。更重要的,我认为是“Fed 缩表的速率是多少?”

我相信缩表没问题,缩表太快才是问题,因为缩表速度若太快,将直接影响的会是美债殖利率升速、以及殖利率曲线的斜率。

这点Powell 也非常清楚,Powell 在记者会上也不断强调,联准会内部尚未具体讨论到一切缩表的进度,要等到 3 月再说。


4.缩表比较可能落在下半年

Powell 在记者会上说明,希望在加息至少一次之后,再来开会讨论缩表的事情,且委员会至少将讨论一次,才会做最终拍板。

更重要的,Powell 希望缩表的进程是有秩序的、是可被预见的过程。

从上述Powell 丢出的时间表看,我个人认为缩表将落在 2022 下半年,最快可能是 6 月份,因为在 3 月加息后,Fed 才会来讨论缩表。

我个人相信 Fed 现在内部早已在讨论缩表,但委员会显然尚未准备好来与市场沟通缩表的前瞻指引。

而缩表这麽大的事情,我个人认为 Fed 需要起次跟市场沟通 2 次,并把缩表规划说得非常清楚之后,才会开始进行,所以比较合理的缩表时间,估计将会落在下半年。


5.最大风险:高通膨

Powell 在记者会上,大概提到了 800 万次的“高通膨压力”,并认为目前美国通膨风险仍在上升阶段,但预计 2022 通膨还是会回落。

Powell 说明,目前美国通膨居高不下,主要仍是供应链所致,白话来说就是供需仍然失衡,且供给侧 (Supply Side) 改善的速度是低于预期。

Powell 强调,目前美国高通膨持续存在,而美国经济要的是长期扩张,所以若要长期扩张,物价势必需要保持稳定。

这边开始进入正题了,我认为这是本次会议的最重要核心,是让我体感上,觉得 Fed 鹰派的地方。我认为 Fed 承认自己落后给菲利浦曲线 (Behind the curve),简单而言,Fed 这次的加息速度大幅落后给通膨。

由于 Fed 在 2021 年对于通膨的误判,先前 Fed 在 2021 年认为通膨在年底就可望自然回落,但也就是因为这件事没有发生,反而通膨还更为严重,所以目前才有使用加息来追赶通膨的压力。但当前宏观环境看,通膨的压力是来自于缺工、供应链紧俏等问题,再加上拜登政府的大力推行财政刺激在那边推波助澜~

所以这一次的通膨是来自于实体经济上的供需失衡问题,并不是金融市场过度投机、企业超额投资等问题,我认为 Fed 在这次的通膨问题上,能做得空间非常有限。

这裡将产生一个不确定性的较大风险,就是 Fed 只能靠货币紧缩去压通膨预期,但实体经济的根本性通膨问题,还是没有获得解决。变成最终 Fed 只能再用更剧烈的紧缩政策,去引导通膨预期走低后,尝试来压低实际通膨率,所以这裡将让 Fed 的紧缩路径,存在著较大不确定性。

比较好的处理方式,应该是直接去解决实体经济上的缺工和供应链/例如我之前提到的塞港问题,让实际通膨率自己走低、而不是靠 Fed 挤压通膨预期之后去引导。

谁可以去把坐在白宫裡疑似患有阿兹海默的白髮老头一巴掌打醒...还我特~


结论:我个人认为 Fed 今年将加息四次,不至于加息五次,而加息四次之预期,相信市场应该已经定价;至于缩表,相信市场尚未定价,估计将落在 2022 下半年,最快可能是 6 月。

如果 Fed 今年加息五次,我会感到非常意外,因为这意味著 Fed 很可能在 2023 年底、2024 年初,就因为美国经济放缓太快而需要降息,Fed 这波操作就会变得非常韭。

最后说说股市的想法目前 Nasdaq 已经插水一段时日,抑制通胀是当务之急,而股市所谓修正才多久已出现V转。对通胀而言意义不大,修正数月才可能有帮助~所以我之前一直描述为“恐慌”。因此对白髮老头而言,怎麽做才有利于中期选举就很清晰了。

最好还是坚持认为市场或已定价加息四次之预期,但缩表预期则是尚未定价的观点。

配置上美股我倾向持有科技权值股,一些 Megacap 的估值我认为合理、前景确定性较高,而这样也可以让你的收益贴著 QQQ 走。

考虑到一堆成长股腰斩,我也愿意加仓接刀成长股,但建议佔据投资组合的比例,或许不要超过 15%,如果选股功力不错,这裡就会开始让你的收益拉开与 QQQ 之类的差距。

最后,我相信人人都会想在市场下跌的环境裡接刀,接刀不是不行,但若接刀失败,斩缆我建议速度要快,我个人不考虑价投的话一次斩缆的比例都是 50% 以上。




  

相关话题

  Word2vec 翻译到另一种语言,其向量空间之间的映射会不会是线性的? 
  类似AlphaGo一样的人工智能什么时候才可以击败RTS(如星际)顶级选手? 
  2019年NeurIPS有哪些糟糕的论文? 
  mxnet的并行计算为什么这么牛,是什么原理? 
  如何看待MXNet获得amazon官方支持首位? 
  数据分析师(非数据挖掘,偏业务)是青春饭吗? 
  有通过大数据破案的例子吗? 
  如何评价 MXNet 被 Amazon AWS 选为官方深度学习平台? 
  多任务学习中loss多次backward和loss加和后backward有区别吗? 
  目标检测中的mAP是什么含义? 

前一个讨论
信息物理系统(CPS)的发展前景怎样?
下一个讨论
被剑桥大学 deferred entry 应该接受吗?





© 2024-11-22 - tinynew.org. All Rights Reserved.
© 2024-11-22 - tinynew.org. 保留所有权利