分类
未分类

2021百万年薪AI职位趋势:数据科学、Python、自动驾驶、AIOps你关注了么?



  新智元报道  

来源:VB

编辑:小匀

【新智元导读】年尾了!2021马上到来,虽然疫情让这一年慢了下来,但AI的发展却没有停下脚步。人工智能网站VentureBeat总结了过去一年AI圈儿发生的重大事件与新领域展望,新的一年,如果你想进行一些职位调整,或正在瞻望新的发展机遇,不妨一看。


毫无疑问,今年,人工智能一直是个流行语。它已被确立为新兴技术(例如大数据,机器人技术和物联网)的主要驱动力。


那么,未来12个月的AI将会如何?

         

如果2021年的你想进行一些职位调整,或正在瞻望新的发展机遇,不妨一看。


技术类人才需求仍在上涨,2020年收购体现人才争夺战


未来,IT相关招聘将在许多方面进行,而且会更加细化。


让我们先来看一组数据。在美国等发达国家,截至2020年第三季度,技术专业人员的失业率(3.5%)低于平均水平,许多大型组织都希望填补更多的技术职位。


据权威机构Dice称,在排名前50位的技术雇主中,超过三分之二(68%)的职位发布数量超过第二季度 。


另外除了网络安全和云之外,一些更专门的角色变得越来越有价值。数据科学家和Python开发人员在2020年后期看到了需求的增长(流行前增长最快的两个行业),这表明公司可能会像往常一样恢复业务,并重新关注数据分析和软件构建,这对整体业务战略至关重要。



可以说,技术人才不仅没有出现饱和,反而,科技企业对其需求增加了。这一点,我们从2020年几大重要并购案中可以窥见。


自动驾驶领域人工智能专家


自动驾驶汽车是许多大型科技公司关注的主要领域。除了该领域的龙头,谷歌的姊妹公司Waymo,苹果也正在加大其无人驾驶汽车计划;亚马逊此前也已经投资了自动驾驶汽车初创公司Aurora以及电动卡车公司Rivian。



美国自动驾驶领域的人才数量基本是中国的 10 倍左右。在美国大型科技公司或者是车厂,一个自动驾驶部门有 1000-2000 人很常见。


目前,中国也在此领域加大力度发展,因此,2021年,自动驾驶领域的人才力度将会加大。


具有战略意识的软件开发人员和管理人员


AI 专家在领英统计的美国排名前 15 位的新兴职位中,年招聘增长率为 74%。


AI 专家被需要的原因包括:AI 在推动数据驱动决策、降低风险方面的作用;企业需要一种有效的方式扩展其 AI 实践;组织面临工作流程优化的压力,因此越来越多的企业要求 BI 团队开发和管理 AI/ML 模型。


但与此同时,软件开发人员和管理人员也正逐渐成为数字时代的MVP。Robert Half Technology的《 2021年薪资指南》指出:「公司正在寻求各种类型的开发人员来创建新的应用程序和软件服务,以支持业务,进而提供竞争优势 。」


根据Dice对工作清单的分析,随着2020年即将结束,Python开发人员,软件开发经理,后端和前端开发人员以及数据仓库开发人员的需求都更高。

              

鉴于这些角色以及其他类似的开发人员和经理角色背后的势头,雇主似乎很可能会在2021年之前继续招聘这些角色。


新一代具有战略眼光的开发人员正在涌现,这些开发人员将推动创新并成为公司技术部门中最具影响力的人。

 

专注于业务的数据科学家,年薪百万的最佳实践者


越来越多的公司意识到,扎实地掌握其数据和洞察力是生存的关键。



招聘人员正在寻找可以收集,清理,存储和分析重要数据集的分析师和科学家。随着数据生态系统的复杂性增加以及公司扩展其智能自动化的实施,对数据科学,数据分析和报告技能的需求可能仍然很重要。


但是,IT领导者将看到,虽然统计理论和诸如AI之类的技术的科学技能至关重要,但业务敏锐度也很重要。


Google作为科技领域的老大哥,其对数据的嗅觉还是十分敏感的。



早在一月份,Google宣布将购买无代码应用开发平台AppSheet,该平台可帮助企业创建与其核心业务数据相关的应用。

AppSheet还附带了许多AI智能设备,包括光学字符识别(OCR),预测建模和自然语言处理(NLP),以加快数据输入并找出用户想要构建哪种类型的应用程序。

谷歌表示,仍可作为独立产品使用的AppSheet将「补充其重新构想应用程序开发空间的战略」,并将集成到Google Cloud中。


该职位将需要通过对大型,高维数据集进行探索性数据分析来开发创新解决方案,以解决业务问题;在相关数据挖掘算法的帮助下,根据实际和测试数据集创建复杂的实际分析数据模型;并运用统计知识,机器学习,数据建模和模拟知识来识别模式,识别机会,提出业务问题并产生见解。

数据工程师是个人,他们捕获原始数据,有时对其进行清理,分类,然后将其提供给数据科学家,然后再构建AI模型。

全球各国数据科学家薪资中位数

确实,数据工程师在LinkedIn的新兴职位列表中名列第八,自2015年以来,其每年的雇用增长率为35%。LinkedIn指出,从零售到汽车的行业正在「抢夺这一难以招聘的人才。」

数据科学家职级的薪水对比
 

AIOps分析师,工程师和架构师


AIOps优化将是2021年的首要任务 。

更多的IT部门正在探索用于IT运营(AIOps)的人工智能,以管理对其基础架构团队不断增长的需求。


AIOps工程师们的薪资发展趋势:


机器人流程自动化(RPA)领域

机器人流程自动化(Robotic process automation)简称RPA,是以软件机器人及人工智能(AI)为基础的业务过程自动化科技。

2020年,微软抛出了一个讯号:收购Softomotive,一家2005年在伦敦成立的RPA公司。

严格来说,Softomotive不是一家AI公司,但是RPA与AI紧密相关,因为它可以帮助企业自动化重复流程,尽管具有结构化的输入和逻辑。

RPA是一个价值20亿美元的行业,微软已经在其Power Automate平台中提供了一些RPA工具和技术,这就是为什么它在今年早些时候以未公开的价格收购了伦敦的Softomotive的原因。


微软表示,将在Power Automate中添加Softomotive的桌面自动化工具,并以「价格合理的价格」向企业客户提供该工具。目前,Softomotive仍可作为独立产品使用。

该领域职级与薪资对比:


NLP智能语音领域

今年,苹果公司收购语音助手Voysis,一家2012年成立于都柏林的公司,该公司建立了可以直接在移动设备上运行的自然语言和对话界面,并且特别着重于支持「品牌与用户之间丰富的自然语言互动」。

新的一年,NLP也将成为AI中最强劲的发展领域。


多年来,Big Tech一直通过产品和收购来培养顶级技术人才,这已不是什么秘密,但这或许会给我们带来明年的求职启示。

推荐阅读:GitHub 中国开发者数量增至第二!

推荐阅读:中国算力太牛了!

参考链接:
https://venturebeat.com/2020/12/28/ai-jobs-in-2021-here-are-some-key-trends/
https://venturebeat.com/2020/12/25/13-acquisitions-highlight-big-techs-ai-talent-grab-in-2020/



分类
未分类

年终收藏! 一文看尽2020年度最「出圈」AI论文合集



  新智元报道  

来源:Reddit

编辑:科雨

【新智元导读】2020年AI领域有很多精彩的重要成果,想一览究竟,却没有途径详细总结?小编已经帮你准备好了!


2020年,想必各国的人民都被新冠病毒支配得瑟瑟发抖…
 
不过,这并不影响科研工作者的工作态度和产出质量。
 
疫情之下,通过各种方式,全球的研究者继续积极合作,发表了许许多多有影响力的成果——特别是在人工智能领域。


同时,AI偏见和AI伦理也开始逐渐引起大家的普遍重视。
 
在今年新的研究成果中,那些汇集着科研工作者心血的精华部分,势必会对未来几年人工智能的发展,有着不小的影响。
 
这篇文章就为您介绍了从2020年初到现在为止,在AI和数据科学领域,最有趣,最具突破性的论文成果:
 
(小编给大家放上了每篇论文的Github代码地址,对任意研究成果感兴趣的小伙伴都可以前往一探究竟哦)


1、YOLOv4:目标检测的最佳速度和精度


论文原文:
A. Bochkovskiy, C.-Y. Wang, and H.-Y. M. Liao, Yolov4: Optimal speed and accuracy of object detection, 2020. arXiv:2004.10934 [cs.CV].
 
2020年4月,Alexey Bochkovsky等人在论文“YOLOv4:目标检测的最优速度和精度”中正式引入了Yolo4。论文中算法的主要目标,是制作一个具有高质量、高精度的超高速目标探测器。
 
代码地址:
https://github.com/AlexeyAB/darknet

2、DeepFace rawing:依据草图的人脸图像深度生成


论文原文:
S.-Y. Chen, W. Su, L. Gao, S. Xia, and H. Fu, “DeepFaceDrawing: Deep generation of face images from sketches,” ACM Transactions on Graphics (Proceedings of ACM SIGGRAPH2020), vol. 39, no. 4, 72:1–72:16, 2020.
 
根据这种新的图像到图像转换技术,我们可以从粗糙的或甚至不完整的草图出发,来生成高质量的面部图像。不仅如此,我们甚至还可以调整眼睛、嘴巴和鼻子对最终图像的影响。
 
代码地址:
https://github.com/IGLICT/DeepFaceDrawing-Jittor


3、PULSE:通过生成模型的潜空间探索进行自我监督照片上采样


论文原文:
S. Menon, A. Damian, S. Hu, N. Ravi, and C. Rudin, Pulse: Self-supervised photo upsampling via latent space exploration of generative models, 2020. arXiv:2003.03808 [cs.CV].
 
该算法可以将模糊的图像转换成高分辨率的图像——它可以把一个超低分辨率的16×16图像,转换成1080p高清晰度的人脸。
 
代码地址:
https://github.com/adamian98/pulse

4、编程语言的无监督翻译


论文原文:
M.-A. Lachaux, B. Roziere, L. Chanussot, and G. Lample, Unsupervised translation of programming languages, 2020. arXiv:2006.03511 [cs.CL].
 
这种新模型,可以将代码从一种编程语言转换为另一种编程语言,而不需要任何监督。它可以接受Python函数并将其转换为c++函数,反之亦然,而不需要任何先前的示例。它理解每种语言的语法,因此可以推广到任何编程语言。
 
代码地址:
https://github.com/facebookresearch/TransCoder?utm_source=catalyzex.com


5、PIFuHD:多层次像素对齐隐式功能,用于高分辨率的3D人体重建

论文原文:
S. Saito, T. Simon, J. Saragih, and H. Joo, Pifuhd: Multi-level pixel-aligned implicit function for high-resolution 3d human digitization, 2020. arXiv:2004.00452 [cs.CV].
 
这个技术,可以根据2D图像来重建3D高分辨率的人。你只需要提供一个单一的形象,就可以产生一个3D化身,哪怕从背后,也看起来像你。
 
代码地址:
https://github.com/facebookresearch/pifuhd


6、迪士尼的百万像素级换脸技术


论文原文:
J. Naruniec, L. Helminger, C. Schroers, and R. Weber, “High-resolution neural face-swapping for visual effects,” Computer Graphics Forum, vol. 39, pp. 173–184, Jul. 2020.doi:10.1111/cgf.14062.
 
迪士尼在欧洲图形学会透视研讨会(EGSR)上发表研究,展示了首个百万像素逼真换脸技术。他们提出了一种在图像和视频中实现全自动换脸的算法。据研究者称,这是首个渲染百万像素逼真结果的方法,且输出结果具备时序一致性。
 
论文链接:
https://studios.disneyresearch.com/2020/06/29/high-resolution-neural-face-swapping-for-visual-effects/


7、互换自动编码器的深度图像处理


论文原文:
T. Park, J.-Y. Zhu, O. Wang, J. Lu, E. Shechtman, A. A. Efros, and R. Zhang,Swappingautoencoder for deep image manipulation, 2020. arXiv:2007.00653 [cs.CV].
 
这种新技术,通过完全的无监督训练,可以改变任何图片的纹理,同时还能保持真实性。结果看起来甚至比GAN还要好,并且速度要快得多。它甚至可以用来制作deepfakes。
 
代码地址:
https://github.com/rosinality/swapping-autoencoder-pytorch?utm_source=catalyzex.com


8、GPT-3:实现小样本学习的语言模型


论文原文:
T. B. Brown, B. Mann, N. Ryder, M. Subbiah, J. Kaplan, P. Dhariwal, A. Neelakantan, P.Shyam, G. Sastry, A. Askell, S. Agarwal, A. Herbert-Voss, G. Krueger, T. Henighan, R. Child, A. Ramesh, D. M. Ziegler, J. Wu, C. Winter, C. Hesse, M. Chen, E. Sigler, M. Litwin, S.Gray, B. Chess, J. Clark, C. Berner, S. McCandlish, A. Radford, I. Sutskever, and D. Amodei,“Language models are few-shot learners,” 2020. arXiv:2005.14165 [cs.CL].
 
目前最先进的NLP系统,都在努力推广到不同的任务上去,而它们需要在数千个样本的数据集上进行微调,相比而言,人类只需要看到几个例子,就可以执行新的语言任务。这就是GPT-3背后的目标——改进语言模型的任务无关特性。
 
代码地址:
https://github.com/openai/gpt-3


9、联合时空变换的视频绘制


论文原文:
Y. Zeng, J. Fu, and H. Chao, Learning joint spatial-temporal transformations for video in-painting, 2020. arXiv:2007.10247 [cs.CV].
 
这种AI技术,可以填补删除移动物体后的缺失像素,并且可以重建整个视频。这种方法,比之前的方法都要更准确,更清晰。
 
代码地址:
https://github.com/researchmm/STTN?utm_source=catalyzex.com


10、像素级别的生成预处理


论文原文:
M. Chen, A. Radford, R. Child, J. Wu, H. Jun, D. Luan, and I. Sutskever, “Generative pretraining from pixels,” in Proceedings of the 37th International Conference on Machine Learning, H. D. III and A. Singh, Eds., ser. Proceedings of Machine Learning Research, vol. 119, Virtual: PMLR, 13–18 Jul 2020, pp. 1691–1703. [Online]. 
 
一个好的AI,比如在Gmail中使用的AI,可以生成连贯的文本并补全短语。类似的,使用相同的原则,这个模型可以补全一个图像。此外,所有这些都是在无监督的训练中完成的,根本不需要任何标签!
 
代码地址:
https://github.com/openai/image-gpt


11、使用白盒卡通表示,来学习卡通化的过程


论文原文:
Xinrui Wang and Jinze Yu, “Learning to Cartoonize Using White-box Cartoon Representations.”, IEEE Conference on Computer Vision and Pattern Recognition, June 2020.
 
只要输入你想要的的卡通风格,这个AI技术可以将任何图片或视频卡通化。
 
代码地址:
https://github.com/SystemErrorWang/White-box-Cartoonization


12、FreezeG冻结甄别器:一个简单的基准来微调GAN



论文原文:
S. Mo, M. Cho, and J. Shin, Freeze the discriminator: A simple baseline for fine-tuning gans,2020. arXiv:2002.10964 [cs.CV].
 
这个人脸生成模型,能够将正常的人脸照片转换成独特的风格,如Lee malnyeon,辛普森一家,艺术的风格,你甚至还可以试试狗! 这种新技术最好的地方,是它超级简单,而且显著优于以前使用GAN的技术。
 
代码地址:
https://github.com/sangwoomo/freezeD?utm_source=catalyzex.com


13、从单一图像对人的神经重新渲染


论文地址:
K. Sarkar, D. Mehta, W. Xu, V. Golyanik, and C. Theobalt, “Neural re-rendering of humans from a single image,” in European Conference on Computer Vision (ECCV), 2020.
 
该算法将人体的姿态和形状表示为一个参数网格,可以由单个图像重建,并易于恢复。根据其他输入图片,给定一个人的图像,此技术能够创建这个人具有不同姿势,身穿不同衣服的合成图像。
 
项目主页:
http://gvv.mpi-inf.mpg.de/projects/NHRR/


14、I2L-MeshNet:实现从单个RGB图像出发,来进行精确三维人体姿态和网格估计的mage-to-Lixel 预测网络


论文原文:
G. Moon and K. M. Lee, “I2l-meshnet: Image-to-lixel prediction network for accurate 3d human pose and mesh estimation from a single rgb image,” in European Conference on ComputerVision (ECCV), 2020
 
该论文研究者提出了一种从单一RGB图像,来进行三维人体姿态和网格估计的新技术,他们将其称之为I2L-MeshNet。其中I2L表示图像到lixel,类似于体素(体积+像素),研究者将lixel、一条线和像素定义为一维空间中的量化细胞。
I2L-MeshNet: Image-to-Lixel Prediction Network for Accurate 3D Human Pose and Mesh Estimation from a Single RGB Image [14]
 
代码地址:
https://github.com/mks0601/I2L-MeshNet_RELEASE



15、超级导航图:连续环境中的视觉语言导航


论文原文:
J. Krantz, E. Wijmans, A. Majumdar, D. Batra, and S. Lee, “Beyond the nav-graph: Vision-and-language navigation in continuous environments,” 2020. arXiv:2004.02857 [cs.CV].
 
语言导航是一个被广泛研究且非常复杂的领域。事实上,对于一个人来说,穿过一间房子去取你放在床边床头柜上的咖啡似乎很简单。但对于机器来说,情况就完全不同了。agent是一种自主的人工智能驱动系统,使用深度学习来执行任务。
 
代码地址:
https://github.com/jacobkrantz/VLN-CE


16、RAFT:光流的循环全对场变换



论文原文:
Z. Teed and J. Deng, Raft: Recurrent all-pairs field transforms for optical flow, 2020. arXiv:2003.12039 [cs.CV].
 
此篇论文来自于普林斯顿大学的团队,并获得ECCV 2020最佳论文奖。研究者开发了一种新的端到端可训练的光流模型。他们的方法超越了最先进的架构在多个数据集上的准确性,而且效率更高。
 
代码地址:
https://github.com/princeton-vl/RAFT


17、众包采样全光功能


论文原文:
Z. Li, W. Xian, A. Davis, and N. Snavely, “Crowdsampling the plenoptic function,” inProc.European Conference on Computer Vision (ECCV), 2020.
 
利用游客在网上公开的照片,他们能够重建一个场景的多个视点,并保留真实的阴影和光线。对于photorealistic场景渲染来说,这是一个巨大的进步,象征着最先进的技术。他们的结果是惊人的。
 
代码地址:
https://github.com/zhengqili/Crowdsampling-the-Plenoptic-Function


18、通过深度潜在空间翻译来恢复老照片



论文原文:
Z. Wan, B. Zhang, D. Chen, P. Zhang, D. Chen, J. Liao, and F. Wen, Old photo restoration via deep latent space translation, 2020. arXiv:2009.07047 [cs.CV].
 
想象一下,仅仅靠那些旧的、折叠的、甚至撕破的照片,你就不留任何人工痕迹地可以拥有祖母18岁时的高清照——这就是所谓的旧照片恢复。
 
代码地址:
https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life?utm_source=catalyzex.com


19、支持可审核自治的神经回路策略


论文原文:
Lechner, M., Hasani, R., Amini, A. et al. Neural circuit policies enabling auditable autonomy. Nat Mach Intell2, 642–652 (2020). 
 
奥地利理工学院(IST Austria)和麻省理工学院(MIT)的研究人员利用一种新的人工智能系统,是基于蠕虫等微小动物的大脑,他们成功训练了一辆自动驾驶汽车。与Inceptions、Resnets或VGG等流行的深度神经网络所需的数百万神经元相比,他们只需要少数神经元,就能控制自动驾驶汽车。
 
论文地址:
https://doi.org/10.1038/s42256-020-00237-3


20、了解不同岁数的你


论文原文:
R. Or-El, S. Sengupta, O. Fried, E. Shechtman, and I. Kemelmacher-Shlizerman, “Lifespanage transformation synthesis,” in Proceedings of the European Conference on Computer Vision(ECCV), 2020.
 
想看看你40岁的时候长什么样?现在可以了!Adobe研究院的一组研究人员开发了一种新技术,仅根据一张真人照片,就可以合成此人在任何年龄的照片。
 
代码地址:
https://github.com/royorel/Lifespan_Age_Transformation_Synthesis


21、DeOldify:为黑白图像着色


DeOldify是一种对旧的黑白图像或甚至电影胶片进行着色和恢复的技术。它由Jason Antic开发,目前仍在更新中。这是现在给黑白图像着色的最先进的方法,所有的东西都是开源的。
 
代码地址:
https://github.com/jantic/DeOldify


22、COOT:视频文本表示学习的协作层次变换


论文原文:
S. Ging, M. Zolfaghari, H. Pirsiavash, and T. Brox, “Coot: Cooperative hierarchical trans-former for video-text representation learning,” in Conference on Neural Information ProcessingSystems, 2020.
 
顾名思义,通过输入视频和视频的一般描述,此技术能使用转换器,为视频的每个序列生成准确的文本描述。
 
代码地址:
https://github.com/gingsi/coot-videotext


22、像一个真正的画家一样变换图片风格


论文原文:
Z. Zou, T. Shi, S. Qiu, Y. Yuan, and Z. Shi, Stylized neural painting, 2020. arXiv:2011.08114[cs.CV]
 
这种从图像到绘画的转换模型,使用了一种不涉及任何GAN架构的新颖方法,在多种风格上模拟一个真正的画家。
 
代码地址:
https://github.com/jiupinjia/stylized-neural-painting


23、实时人像抠图真的需要绿色屏幕吗?

论文原文:
Z. Ke, K. Li, Y. Zhou, Q. Wu, X. Mao, Q. Yan, and R. W. Lau, “Is a green screen really necessary for real-time portrait matting?” ArXiv, vol. abs/2011.11961, 2020.
 
人体抠图是一项非常有趣的任务,它的目标是找到照片中的任何一个人,并将背景从照片中移除。由于任务的复杂性,要找到拥有完美轮廓的人是非常困难的。在这篇文章中,研究者回顾了这些年来使用的最佳技术和发表于2020年11月29日的一种新方法。
 
项目地址:
https://github.com/ZHKKKe/MODNet


24、ADA: 使用有限数据训练生成对抗网络


论文原文:
T. Karras, M. Aittala, J. Hellsten, S. Laine, J. Lehtinen, and T. Aila, Training generative adversarial networks with limited data, 2020. arXiv:2006.06676 [cs.CV].
 
使用这种由英伟达开发的新训练方法,仅仅使用十分之一的图像,您就可以训练一个强大的生成模型!

 

代码地址:
https://github.com/NVlabs/stylegan2-ada



最后,大家也可以在在GitHub中访问论文完整列表:
https://github.com/louisfb01/Best_AI_paper_2020
 
参考链接🔗:
https://medium.com/towards-artificial-intelligence/2020-a-year-full-of-amazing-ai-papers-a-review-c42fa07aff4b


推荐阅读:

「2020中国AI算力报告」重磅出炉:中国怎么解决GPT-3的算力难题?




分类
未分类

我只想钻研技术,公司却把我推上管理岗,怎么办??

夜宵or睡觉?宅在家or找女友?坚持技术or转向管理,这几乎是每个程序员都会面临的史诗级难题。



不管是赶鸭子上架的临时上任,还是精心准备的岗位晋升,在初上任时,都会遇到这样那样的难题(ps:据小编了解大部分的技术管理者都是赶鸭子上架)。管理技能的薄弱、角色的转化、思维的改变…每天都忙到头大,生活节奏彻底被打乱。


想要实现从“独行侠”到“领路人”的快速转变,需要掌握以下几点:

  • 做技术和做管理的本质差别

  • 团队管理授权对象的选择

  • 向上管理能力

  • 组织绩效的有效执行

  • 对时间的成本掌控



新晋管理者那些易踩的坑


  • 做了管理还得帮下属救火

做技术的时候每天游刃有余,转型管理后每天除了忙自己的事还要帮团队成员修改各种Bug。管理层的目标是让团队更具效率达到目标,而不是从大局到细节都自己上手,亲力亲为。长此以往,不但自己累,团队人员也得不到成长。


  • 管理中害怕出错

刚转型做管理的时候,由于缺乏经验,做事情束手束脚,总有许多顾虑。但一个合格的管理者需要不断的探索,在尝试的过程中不要害怕出错,错是你成长反思和改进的机会。


  • 向下沟通困难

曾经80%的时间都与机器和代码打交道,不需要频繁的跟人沟通,再加上曾经的同事变下属,对于许多新任管理者来说,沟通是最困难的。沟通进度、沟通成本、沟通质量…仅仅沟通技术的日子一去不复返。




术管理的三门必修课 


学会团队管理。技术和管理是完全不同的岗位,做了管理之后,就要负责整个团队。转换团队的思维是管理者的第一门必修课。帮助团队人共同成长、做好技术决策、跟进支持下属的任务,事后做复盘,都是Leader应该具备的意识。       

                    

做好时间管理。管理者不但要管理好自己的时间,还要管理好整个团队的时间。如何分配技术和管理这两个维度至关重要。不用凡事都事必躬亲,学会用人,掌握授权和放权才是Leader该做的事。


合理制定目标。技术经理应该学会目标和结果导向,避免目标定的过低或过高。企业的使命和任务,必须要转化为目标。掌握SMART原则可以帮助管理者制定明确的目标,利于员工高效的工作。


如果你是:

👉计划转型管理的技术人员;

👉拥有1~3年工作经验的初级经理;


这次活动你一定不要错过!通过典型场景梳理和体系化学习,你将收获快速成型的管理思维,可供实操的管理技巧以及赋能个人的软性技能。这样一门干货满满的课程现在报名只要1.99!


扫下方二维码立即报名

▽▽▽

   

「新技术经理转型」1.99元早鸟活动  



原价199的课程,现在报名预定只要1.99元!活动价仅限前1000人,名额满500所有报名用户均可获得价值69元的技术领导力电子图谱!还有机会获得51CTO学院10天VIP会员体验卡!平台3000+精品好课免费学!


课程开售时间:2020年12月22日-23日

课程一经购买,永久有效




分类
未分类

谁还不懂分布式系统性能调优,请把这篇文章甩给他~

说明:本文根据 2020 GOPS 全球运维大会 · 深圳站陶辉老师的演讲整理而成。

个人简介:陶辉,毕业于西安交通大学计算机科学与技术专业,目前在杭州智链达数据有限公司担任 CTO 兼联合创始人,专注于用互联网技术帮助建筑行业实现转型升级,曾先后在华为、腾讯、思科、阿里巴巴等公司从事分布式系统下的数据处理工作,腾讯云最有价值专家TVP。对 Linux 下的高性能服务器开发、大规模分布式系统的设计有着丰富经验。著有《深入理解 Nginx:模块开发与架构解析》一书。

本次分享分成4块:
  1. 基础资源优化。不管是X86、ARM,还是 Linux、Windows,不管是脚本语言还是C语言,这种优化都有效的,相对来说收益比较大、比较普惠一些,我把它列为基础资源优化。
  2. 网络效率优化。这包含三个层面3层,一是系统层,二是应用层,三是传输效率的优化。
  3. 降低请求时延。怎么用缓存等,我们关注用户的体验,能让单次请求的速度更快一些。
  4. 吞吐量。提升系统并发,从吞吐量来说怎么提升系统的并发。

一、基础资源优化

基础资源的优化,在我看来核心是提升资源的利用率,资源我们分为四块:

  1. CPU 缓存。CPU 的缓存共分为3级,CPU访问缓存的时延应该在 10 纳秒左右,一级缓存可能只有 1 纳秒左右。这个时候我们非常关注怎么让 CPU 缓存命中率提升,它是一个普惠的优化方式。

  2. 内存。内存有百纳秒级别的速度,当你的频率非常高的时候也不是那么快,所以会有很多的内存池,比如说 C,JVM、Python、Golang、lua 等都有自己的内存池,这些内存池的怎么提升分配速度、减少碎片、提升内存的利用率。

  3. 磁盘。磁盘有两类,一类是HDD,机械硬盘的寻址在七八毫秒,它的磁头旋转速度是比较慢的,以往的很多软件技术都在优化这方面,特别是 PageCache 磁盘高速缓存的使用,包括电梯调度算法、零拷贝,或者 Direct IO 等等都是围绕着机械磁盘来做;另外一类SSD,SSD跟机械硬盘完全是另一种方式,包括编程方式、优化方式都跟传统的方法不一样。所以这里简单总结一下,以 PageCache 作为切入点,包括命中率、IO调度算法。

  4. 调度。分布式系统中有很多的请求,这些请求如何切换,无论是多进程、多线程,还是协程,怎么样能让它的调度性能更高、效率更高,数据的同步更快?

CPU

CPU 缓存的话题比较多,这里举个例子,我相信各位都用过 Nginx,Nginx 有两个哈希表,一个是域名哈希表,如果只是用普通的3级域名,可能触碰不到它的上界,但是如果有4级、5级或者是更多级的域名,可能就会超过64字节,这时你要调大哈希表的 bucket_size。

再举个例子,Nginx 最强大的地方在于它的变量,任何功能都能够通过变量实现。变量也是存在哈希表中。当这个变量比较大的时候,一样也要调整到 64 字节。

那么,为什么是初始的 64 字节?比如想调到 100 字节可不可以,不可以的。要调到 128 字节或者是是 64 字节的整数倍。

为什么会这样?关于 CPU 缓存,我这里举一个例子。大概在2005年,CPU 的频率大概升到 3Ghz~4Ghz 后就不再提升,因为单个 CPU 的发热量太大,所以只能横向发展。

多个 CPU 有一个好处就是真正并发。操作系统中的并发是通过时间片切换完成的,微观上不是真正的并发。而多核 CPU 的并发有一个问题,当两个 CPU 同时访问了两个进程或线程,这两个数据同时落到了一个 64 字节之内,CPU 的缓存不是一个字节拉的,而是一批拉的,每一批 64 字节。

为了解决这个问题,Java 中有一个常见的词叫填充法,我刚刚讲的 Nginx 也是填充法,用不了这么多字节,但要填这么多,使得微观上真正并发。因为 CPU 要保证一致性,如果数据没有一致性就没有高性能和正确性可言。CPU 的缓存对很多代码都有影响,并不是只对写中间件的人有影响,对应用层的开发人员也是有影响的。

内存

关于内存池这一方面,我想起3年前我给华为做的一场内训。当时有一个同学问我,Nginx 要不要换成谷歌的 TCMalloc?(TCMalloc 是 Google 开发的一个内存池。)

应用程序每次要分配内存,操作系统内核提供系统调用,叫 brk 和 mmap。这些系统调用的效率不高,因为有内核态到用户态的切换,那么怎么办?

C程序有一个C库,Linux 默认叫 Ptmalloc2。 默认分配一个字节会给你预分配 64MB 字节,当你分配第二个字节的时候还从这个池子里面找,释放后会回到这个内存池。这个池子有很多的问题,比如说 Ptmalloc 非常通用的内存池,考虑的是效率特别高,比如说A线程释放的,B线程还能直接拿来用,这肯定有一个并发问题,肯定要加锁,一加锁性能就不高,像 tcmalloc和 Ptmalloc 默认了这个,什么也不改。

而谷歌的 TCMalloc 分为小内存、中内存和大内存,小于256KB字节的就是小内存,小内存不考虑共享,所以不用加锁,速度很快;对于中内存和大内存速度反而不如 Ptmalloc。如果我们做服务器的开发,特别是 Nginx 简单的服务器的开发,如果是做动态服务器,经常会分配几MB内存,但是对于只有负载均衡、简单 lua 脚本操作情况下根本不可能分配大内存,所以 TCmalloc 就非常的适合它。

这里我只是介绍了C库的内存池,其实上面还有很多的内存池,比如说 Nginx 对共享内存中有内存池 slab,这个 slab 在 openresty,是复用的,对于普通的储存里也有一个内存池,还有连接内存池和请求内存池。

如果是其他的语言,比如说 lua 虚拟机,它有自己的lua,还有自己的内存池。Java 有 JVM 内存池,golang 也有自己的内存池,像 golang 是基于 tcmalloc 改过垃圾回收机制。这是我希望能够引起大家注意的,主要是靠线下大家学习。

磁盘

磁盘,我想围绕着 PageCache。PageCache,传统的机械硬盘,你想让它并发,它并发不了,它只蒙在那里转,所以你要通过调度算法,让它尽量往一个方向转。读的话,会考虑 PageCache 不停的缓存命中。

比如说零拷贝,零拷贝是不是一直有效呢?比如做视频的直播或者 CDN,这个文件很大,再次命中的概率不高,Pagecache 及其有限,如果文件这么大,因为有很多并发的线路正在同时获取不同的文件,所以命中的概率很低。

如果进到 PageCache 中会怎样?
  1. 很难再次命中,PageCache 也给它进行了降低性能。
  2. 因为 PageCache 是 least used,只要你现在进来一个东西,一定要出去,出去的东西,本来是很有机会被再次访问到的小块资源和文件,所以就失去了再次命中的机会,所以才会有直接IO和异步IO,Linux 的作者认为接口设计很糟糕,但是这个东西是很有用的,并不是一点用也没有。

关于磁盘高速的缓存,还有很多可以分享的。
比如说SDD,SDD在我看来是另外一个物种。平时大家都认为“SDD 比机械硬盘的 IOPS 高,Latency 低,Thoughtput 更高,即总的吞吐量更高”绝对不是简简单单这么一点东西。

我举个例子:第一,SSD有个问题叫写入放大。

大家都知道 Kafka,Kafka 性能为什么这么好?一个特点就是削峰填谷,它要把数据持久化。既然是写硬盘性能为什么能这么好?因为它充分利用了磁盘的旋转速度,消息队列先天性是时序队列,一定不停的往一个文件后面追加,所以磁盘利用率非常高,只要放很多块机械磁盘,性能还可以继续提升。
如果换了SSD,还有这样的好处吗?SSD 本来就是快很多,但再采用这种方式就有问题,因为它有写入放大问题,什么叫写入放大?比如说我们本来是写日志文件,都往后面追加一些字节,但是 SSD 不行,SSD有一个页面,是它的基本单位,它是按页面来的。
比如说现在的页面上已经有了一个字节,现在还想写第二个字节,它会把整个页面读到缓存区中,然后给它加进去,最后再写到一个新的没有人写过的页面,所以有很大的放大作用。每写一个字节,可能给我写了几K,它最怕的是 inplace 这种原地写入,那像 Kafka 再采用的方式会有问题。

第二,耗损平衡。

SSD的寿命不好,什么寿命短呢?因为它不能清除,每一个存储单元清除的次数是有限制的。如果一个硬盘有一个数据特别热,比如说就是放操作系统的,经常读写,读着就坏了,这个是大家受不了的,其他地方都好。所以搞了一个GC,不停给你移,这边是热数据的,这边是冷数据的,我给你移过去,移过去之后大家就平衡,这块磁盘就不会那么快坏。
但这个机制就有问题,给应用程序带来了挑战。如果应用程序按照传统的方式去写,不停大量的写入操作进去,就会不停触发机制,当他的GC赶上过米的时候,又变成阻塞了,性能又下去了。
其实 SSD 有很多和 HDD 不一样的地方,比如说机械硬盘的时候,绝对不会考虑多开几个线程,让速度变快,因为硬盘就在那里转,多开线程最终还是排队的,但是SSD不一样,你多开几个,它就是那么快,因为它先天可以做并发。
比如说 SSD 做随机读写也做得特别好,我们在机械硬盘上尽量减少数据读写的,但到SSD就可以读写。

再回到高并发,为什么高并发要使用协程,为什么比多线程要快效率要高?在我看来有两个原因:
1、每一个协程消耗的内存非常低。每一个线程有多高吗?给你搞了一个堆内存池,你说一个字节搞一个内存池,线程都有栈,栈什么时候会溢出呢?栈到底有多大呢?一般是2MB到8MB,这么大的线程,可以想象有多少的内存?

如果几十G的内存上并发10000个线程,内存都不够,其他业务就做不了了。

最大的问题是同时处理一个请求消耗的内存不能多,而协程就能做到。基本上协程几KB到十几KB就可以处理一个请求。所以可以轻松通过十几G的内存并发到几万个、十几万个请求。
2、切换成本低。在线程上做切换时有一个内核态到用户态的切换,而且要做大量的拷贝。在协程的话,因为是全栈用户态,切技能器,或者是不切技能器,直接调度到代码里面切一下就可以了,所以相对来说成本也是很低的。

最后再总结一下,对于 CPU 这方面,有一个特别有效的工具。有时候说优化性能,要找到瓶颈,越是瓶颈的地方进行优化才最有价值。怎么找瓶颈呢?我推荐火焰图。你要自己去打点和写日志很容易遗漏,你不用装任何的东西,只需要装一个 Linux perf+FlumeGraph 两个软件就可以。

它分了两种,on CPU 和 off CPU。onCPU 它是以暖色调为主,看消耗了多少个CPU,因为把所有的函数都考虑到;而offCPU是冷色调,看每一个函数要进程或者是线程进入 sleep 的时间有多长?这两个图有一个好处,它是一个SVG的矢量图,所以可以跟各种正则表达式匹配,也可以点击放大,而且它会把同一个调用栈中的相同函数进行合并,很容易比出来哪一个函数消耗的时间最长。

二、网络效率优化

网络效率优化,主要是编解码和改进传输方式。

编解码有三部分:

  1. 系统层传输效率。系统层主要是TCP协议,它的优化包括三次握手建链优化,四次握手关闭优化。主要根据你的网络环境,丢包率高不高,时延长不长;如果丢包率非常好,重试的次数很多都可以进行调整。还有缓冲区优化,以及拥塞控制。
  2. 应用层编码效率。
  3. 应用层传输效率。

应用层的话,主要看 HTTP 协议。

1996年是HTTP1.0,1999年是HTTP1.1,我们现在主要使用的是1.0和1.1,2015年是HTTP2,他们都是跑在TLS和TCP上,为什么呢?因为能够简化开发效率。
TCP 实现了有序字节流,TLS 也要基于有序字节流,如果没有有序字节流,现在也玩不转。比如在 QUIC 中要重新实现这点。HTTP2,有了有序字节流,很多问题不用考虑,不管文件有多大,只要正常传输就好。
这就带来了一个问题,在一个有序的字节流上,放了一个无序的东西(HTTP 是多并发的,并发肯定是无序的)。无序的东西承载在有序的字节流上,带来的问题就是队头阻塞。它有多个stream,只要出现一个 stream,TCP 就有可能丢包,后面的 stream 都玩不转了,所以只能通过 UDP 来解决。
UDP 解决以后,出现了一个 QUIC 层,这个 QUIC 层是独立的一层,把 TCP 层的很多事(丢包、重传、拥塞控制)都做了,TLS 也需重新写,把 HTTP2 中的 stream 也封装也放到了里面。
HTTP3 到底有什么好处呢?1.多路复用;2.连接迁移;3.QPACK编码;4.丢包重传。

我举个例子,比如说抓一个 HTTP3 的包就知道,抓包看完最上面是 UDP Header,UDP Header 就是一个4元组:源IP、目的IP、源端口、目的端口。接下来是 Packet Header,Packet Header 中有一个整数,叫 connection_id,为什么有 connection_id?
以前一个连接是如何定义的呢?四元组(源IP、目的IP、源端口、目的端口),只要四元组改了就需要重连。
在 IOT 时代,各种高速移动的设备会经常切换,比如经常切换的 5G 基站,或是切到一个 WIFI,这时IP地址肯定会发生变化,需要重新建立连接。重建连接的成本太高了,怎么样不重新建立连接呢?从 Packet Header 中,定义了一个 connection_id 的整数。
只要这个整数不变,这个连接就可以复用,TLS 握手也不用做了。为什么可以这样做呢?其实很简单,这些东西是加密到 HTTP3,如果能够解密的话,安全性是没有问题的。Packet Header 中,这就叫连接迁移,就是我们说的 Connection Migration,连接迁移,这是 HTTP3 的第一个用处。
HTTP3 的第二个用处多路复用。多路复用是到 QUIC Frame Header,Packet Header中定义了连接是无序的字节流连接,只管你不丢包,要是丢包了,我们有一个ID,能找到重发。
但顺序乱了,我是不管的,管顺序乱不乱是在 QUIC Frame Header,他做了一个东西,他重新定了叫 QUIC stream 的概念,就像跟 TCP 连接是一样的,这里做出来一个TCP 连接,跟 TCP 连接用起来是一模一样的。
大家都知道 TCP 三次握手时在同步 Sequence,SYN 参数的全称就是 Synchronize Sequence Numbers。在同步两边的序列号,因为在接下来的每发一个字节,序列号就会加1,对方接受确认的时候也是这么做的。他里面也有一个 Sequence,所有的都是一模一样的。

基于这个做出来的有序字节流,就完成完成解决了队头堵塞问题,所以它的多路复用是真正的多路复用。

再接下来到了 HTTP3 Frame Header,QUIC Frame Header 已经提供了一个 TCP 连接,但是 HTTP 是有自己很多独立的应用,比如说除了 request/response 以外,还有服务器推送,服务器推送就是一种新的 Frame Header,先所以前面又加了一层头部去完成这样的功能。
还包括另外一个功能,QPACK,大家知道 HTTP2 当中有一个 HPACK,功能就是压缩头部。最高的压缩就像我们看视频的时候,有关键帧和增量帧,如果经过什么压缩的视频,压缩完以后体积能减少几百倍,看起来还挺清晰的,它就是关键帧和增量帧,压缩效率特别高,HPACK 也是一模一样的。当你在一个连接上第一次传输一个 HTTP header 的时候,其实就是你的关键帧。
后面做增量帧的时候,只要传一个数字就行。但是这种方式也有一个时序效应,谁先谁后。所以就出现了 QPACK,这是基于无序的连接去实现一个功能。

单播和多播,什么是单播?比如说主机1同时给主机2、3、4发,如果是单播就建3个TCP 连接,分别是红蓝绿。如果是网络层的多播就是这么发,比如说主机1发了以后,路由器 A 把这个报文复制了一份,一份给路由器B,一份给主机2,到路由器B以后,又复制了两份,一个给主机3,一个给主机4,所以它的网络效率应特别高。

但是它没有办法跨网络,一是安全问题,很容易造成网络风暴;二是路由器A和路由器B不是一个厂家的,很难办。所以,只在局域网内会有网络层多播( ARP 协议等)。

所以我们最好用的是应用层的多播,主机1要给2、3、4发的时候是这样发的,主机1可能成为一个中心化的节点去拉了,说先给3发,3主动去拉也可以,拉完以后,3再从中心服务器里面拉,比如说4没有,3的层面就拉给他,这里的用处很大。

在很大的集群内要发布一个几百兆的新版本,这时候如果单机向大家推,机器就打爆了,即使用10G或者是40G的外置网卡,你的下限带宽也就几个G,根本抗不住成千上万同时拉你的服务器。比如说阿里开源的蜻蜓(Dragonfly)就很好用,他只是用这个理念,怎么实现就太容易了,什么协议都能实现,用 HTTP 协议就好了,整个实践成本都会低很多。

再比如说 GossIP 协议,它其实也是一个传染病协议,在 Redis 集群中管理节点都是使用GossIP 的这个协议。

三、降低请求延时

降低请求时延,提升用户体验。我分为4部分:

  1. 缓存
  2. 异步化
  3. MapReduce
  4. 流式计算

除了刚才说的读加载缓存,还有写缓存,我们知道有CAP定理,缓存一定有P,因为数据有冗余,在两台机器上都有缓存,但是关注于一致性的时候就是一个write through 方式的的缓存。AP 可能关注的是 write back 的缓存,这样单个请求的使用量会更高。

BASE 理论对缓存也有很多的用法,比如 Nginx 或 Openresty,后端挂掉了,每次访问都给返回 502 请求,你加一个东西后配 HTTP 502,它会把本来后期的缓存直接返回给客户,所以可用性也就提升了,相当于容灾了,提供了基本可用性。

MapReduce 讲了很多,分为3步:数据分发、每个节点进行 Map 函数计算、输出以后合并。MapReduce 我们很多是在 SQL 来做,因为你用 SQL 的 Group by 的聚合计算,先天性的跟分发和规避能够对得起,无论是求标准差或者是平均值,也很容易去做并行的计算,这是可以做到的。当然如果有前后依赖关系那是没有办法做的。
MapReduce 还有一个特点,它跟数据源强相关,所以基本上 Java 生态在这块上是无敌的。原因是,大家的数据都放在中,所以数据是互联网公司的核心资产——数据都在这里,其他框架写得再好也没有用。

流式计算和 MapReduce 有一个很大的差别,它有时间窗口,不管你用技术的窗口,还是用时间窗口,都有时序性,但是网络报是没有时序性的,是乱序的。所以对窗口的划分是比较麻烦的。所以我们会有一个loadmark在一定程度上缓解。二是业务是强相关的,有时候窗口是固定的时间,大部分的时候可能是用户登陆的时候,它是跟 Session 强相关的情况。

四、提升系统并发

提升系统的并发,怎么样高效的拓展系统?

这里说一下 AKF 扩展立方体,我觉得这个东西特别的好用,所以给大家介绍一下。
比如说在 Nginx 上配了很多的上游,上游默认使用的是 RoundRobin,不管你的上游有8核16G还是4核8G的,你都会配权重,配权重似乎它俩不一样,但是任何一个请求这两台都能够处理。所以它其实是复制过来的,用最小连接数,它关注的点是上游服务器的负载。
这是X轴,X轴的成本特别低,加机器就可以。但是到了Y轴和Z轴就不一样,他们开始是基于请来。比如说 MySQL 做读写分离,我看到了一个 select 的语句和 update 的语句,如果是 select 的语句,我就随便找一个 slave,找一个备库去访问,它又回到X轴了。
如果是一个 update,我可能就要进入主库,这就是读写分离。还有像 API Gateway 也是经常这样的,做代码重构以后,希望把用户类的、日志类的分到不同的集群去处理,这时候都是基于Y轴,Y轴的成本是非常高的。
Z轴就是分库分表,基本上是基于哈希,用户A的数据可能只能到服务器1,用户B的数据可能到服务器2。Z轴的成本不好说,比如说哈希算法,为什么说一致性哈希呢?因为你做这种基于哈希的负载均衡有很大的问题,请求的集合是近乎无限的集合,但是上游服务器的映射集合是非常有限的,有多少的服务器,你有多少个选择,就只能映射到这样的集群。
从大集群映射到小的集群,无论前面经过多少的算法,最后肯定得有求余的操作,没有求余的话,没有把它归纳到这么小的集合内。求余的话,就有一个问题,余数不能变,因为你的上游机器一旦出现宕机或者是增加的时候,余数变了,整个哈希函数就变,只要这个函数一变,那整个Z轴就会发生很大幅度的变化。

我们会使用一次性哈希,它跟哈希函数还不一样,哈希函数其实是O1复杂度的,但是一致性哈希,它不是O1复杂度,它会变成logM,它会把一个请求的关键字的信息,映射为哈希节点,哈希是32位的整型,32位整型构成了0~42亿,到42亿以后也会形成一个环,又到了0,它通过这样的有序的切分,在正常使用的时候,是是通过二分法来查找。
一致性哈希正常使用还是有问题,我们一般会使用虚拟节点层。为什么要使用虚拟节点层?我们要避免雪崩效果,如果上游服务器挂了,只会影响周边的节点,如果周边的节点已经达到80%的负载,这台机器所有的流量过去,它也跟着挂了,它挂了以后,下游也挂了,就全部都挂了。
我们希望的是A节点挂了以后,能让所有的节点平分流量,这是最好的,其实二次哈希就可以。所谓的虚拟节点层听起来很高大上,其实就是二次哈希。第一次哈希形成一个环,第二次哈希把这个环再做一个哈希,基本上是两层。
一般来说,我们每一层是100到200,有了这样的东西,我们避免雪崩,还有一个好处是分布的均匀性。
无论采用什么样的函数,做完以后,和你本身数据请求的分布不一致,很多的数据都很大这时候怎么解决呢?二次哈希能够使得分布更均衡。
最后再说持久化,以前做持久化数据的时候,就两招,比如说一个数据有很多份冗余,就会想到两招,每次写的时候,把两台都写一遍,我写速度的性能就很差。我写的时候随便写一个,用异步的方式同步给其他的机器,一致性比较差,可能会丢数据,但是性能会比较好。到了亚马逊,零几年的时候出了一个 Quorum 论文,说了这个 NWR 算法,数据冗余份数是N,W是写节点数,R是读节点数,N是冗余节点数,所谓的高可用 W+R>N 就能实现。

W+R大于N,比如说数据有3个节点,R1R2R3,读和写,如果我们写的话,1和3返回了,2没有返回,这时候还是可以成功的。另外在读的时候,只需要读2个,一定能读到1或者是3,这个时候只要我们能够通过时间戳方式,判断谁有正确的数据,就能够保证数据的强一致性。

W大于N,本来写3个节点,现在挂了一个节点,你如果小于这个的话,比如你只有2个节点,你挂了一个节点,写就不能用了。3个节点的话,挂了一个还能用。

今天我的分享就到这里,我总结一下,从底层到高层的看法,不一定正确。

近期好文:

编写贩卖游戏外挂5人被判刑!Google全球宕机的元凶是?Linux 5.10 LTS版本发布!| 一周 IT 资讯

“高效运维”公众号诚邀广大技术人员投稿,

投稿邮箱:jiachen@greatops.net,或添加联系人微信:greatops1118.
点击阅读原文,访问 2020 GOLF+ 官网
点个“在看”,一年不宕机
分类
未分类

波士顿机器狗将比马斯克先登上火星?「恢复算法」加持,跌倒了还能爬起来!



  新智元报道  

来源:NASA

编辑:小匀

【新智元导读】在登陆火星这件事上,人类可能要落后「狗狗」了?近日,NASA和加州理工学院的研究人员展示了「火星犬」,这只机器狗由波士顿动力的Spot改进而来,并一系列配备了AI和传感设备,比起好奇号、毅力号等火星探测器,这只「火星犬」不仅体型小、速度快,还更利于探测火星的险恶地形和地下洞穴。


估计就连天天做火星梦的马斯克都想不到,「狗」可能会比人更快一步,登陆火星。

         

在12月14日在线举行的美国地球物理联盟(AGU)年会上,NASA和加州理工学院的研究人员进行了一次演示,介绍了他们的「火星犬」——Au Spot

 


这只名为 Au Spot 的狗是由波士顿动力公司(Boston Dynamics)制造的四条腿机器人探测器 Spot 的改进版



‍‍据NASA介绍,它能够完成其他火星探测器,这种机器狗可以以典型轮式漫游车(如勇气号、机遇号、好奇号和最近推出的毅力号)永远无法做到的方式进行活动。



难道,机器狗要进攻炼狱般的火星了吗?先来看看这只犬的技术含量有多高!

 

火星上飞檐走壁,自主导航、3D绘制地图


火星的表面,崎岖不平,还有很多洞穴。

 

人类也派出多艘探测器,前去调查。

 

然而,传统的火星探测器大多只能在平坦的地表活动,而且是轮式的,但许多具有重大科学意义的火星区域通常地形崎岖,有的还在地表以下。



波士顿动力的小型机器狗Spot因其矫健灵活的身体素质,轻松穿越复杂地形的能力以及长达多个小时的续航时间,似乎很适合在火星探索。



用于探索火星的「火星犬」,从崎岖不平的表面到隐藏的洞穴


Au-Spot使用一系列由车载计算机处理的传感器扫描周围环境,60 多名科学家和工程师为它配备了网络传感器和软件,使用包括来自激光雷达(使用激光脉冲的遥感)、视觉、热和运动传感器的数据,「火星犬」能够以3D的方式,安全、自主地扫描、导航和绘制环境地图。

  


据介绍,一只「火星犬」由三个独立的单元组成:(Alpha-MD),装备有包括手臂在内的深部洞穴勘探有效载荷;两个(Tether-MD)配备了网络共享系统,其中一个单元带有MMRTG电源。(其中MD是Mars Dog的缩写)



科学家在AGU上表示,「火星犬」的敏捷性和弹性与传感器相结合,使它们能够避开障碍物,在多条路径之间进行选择,并为地球上的操作员构建地下隧道和洞穴的虚拟地图。

绕着岩石行走,潜入洞穴并选择路径,同时收集测量数据并绘制他们「看到」的地图,这可能为科学家检测地球以外的生命迹象提供新的机会。

长得小,跑得快,跌倒了还能爬起来!


每个「火星犬」都配备有传感器和可部署的通信节点,以促进实时的地下到地面数据传输。


与毅力号相比,「火星犬」轻巧,紧凑且移动迅速:体积为2.6%,质量为4.6%,比目前的火星车轻大约12倍;速度快38倍,在测试期间达到5公里/小时的行走速度。作为对比,好奇号探测器以每小时只能行进0.14公里。



研究团队正在对机器狗进行一系列障碍测试,在隧道、走廊中、上楼梯和坡道,以及模拟火星景观的室外场所中测试其性能。


在演示中,科学家表示,倒地并不意味着任务失败,使用恢复算法,机器狗可以在多次摔倒后自动恢复。



火星上的洞穴有着至关重要的研究意义,或许可以为未来的人类聚居地提供庇护所,阻挡紫外线辐射、极端寒冷和持续数周的严重沙尘暴,有的洞穴甚至大到足以被地球望远镜探测到。


这些洞穴可能还含有来自古代火星的生命证据,甚至为生活在地下深处的生物提供了避难所。



小身躯大用途:放羊、拉卡车、实时地图勘探、协助出警样样精通


此前,Spot已经被用于多个应用场景。


新西兰放羊



协助出警


马萨诸塞州警察局是美国第一个使用波士顿动力公司的Spot机器狗的执法机构。根据ACLU获得的文件,马萨诸塞州警察局拆弹小队从波士顿动力公司租借了Spot机器狗,租期三个月,从8月开始,一直持续到11月。


马萨诸塞州警察局与波士顿动力公司的合同被曝光


文件没有透露机器狗使用的确切细节,但州警察局的一位发言人说,与局内其他部门的机器人一样,Spot被用作「移动远程侦查设备」,为警察提供可疑装置的图像或有潜在危险的地点,例如携带武器的嫌疑犯可能藏身的地方。



Spot机器狗在马萨诸塞州警察的训练中打开了一扇门。这段简短的视频展示了如何在恐怖分子或人质情况下用机器人帮助人类摆脱伤害


实时地图构建


很多危险或狭窄的场景下不适合人类工作,比如建筑工地、车间等,但是我们又想了解内部的情况,绘制室内地图。这时Spot就能派上用场了,Spot本身携带有摄像头、雷达、红外传感器、GPS定位系统等,还有超强的运动能力,可以绕过各种障碍,做实时地图构建不费吹灰之力。



马车夫


现代生活节奏快,年轻人都在为生活而奔波,能够陪伴老人的时间很少,很多老年人开始养宠物,这对活动方便的老人来说也是一种陪伴,但是宠物狗只能给老人精神上的慰藉,而Spot则能担起更多的责任。比如老人腿脚不便,Spot就当起了马车夫,老爷爷显得很是兴奋。



拉货车


并排站队的机器狗大军,拉货车的样子像极了雪橇犬在雪地奔跑拉人。从图中也可以看到,Spot们有组织、有纪律,能够完成任务的难度系数也要比雪橇犬们高得多。



硬件传感器和软件API都支持定制,SDK已开源


说到波士顿动力,最近,它第三次易主,被卖给了韩国现代。


此前,他们还开放代码,让粉丝们也可以用Python可以直接控制Spot。


波士顿动力开源了Spot的SDK,意味着你买了Spot之后,可以利用自己DIY它的功能,拥有自己的专用机器狗不是梦。


利用Python开发Spot功能


该开源项目还给出了SDK详细的使用指南,照着官方步骤就能实现Spot的简易开发了,跃跃欲试的朋友们赶紧去码一波代码吧!



于明年夏季发射,并于2021年2月降落于火星的耶泽洛陨石坑内。

 

而在去年,当时的NASA局长表示美国计划在2033年将宇航员送上火星,并在火星上生存2年。



如果要顺利推进这一计划,那么对火星的提前探测就显得尤为重要。


参考链接:

https://futurism.com/the-byte/nasa-sending-boston-dynamics-robodog-mars




分类
未分类

「2020中国AI算力报告」重磅出炉:中国怎么解决GPT-3的算力难题?



  新智元报道  

来源:IDC

编辑:小匀

【新智元导读】2020就快划上句号!12月15日,IDC与浪潮联合发布了《2020-2021中国人工智能计算力发展评估报告》。报告从AI算力产业发展趋势、市场规模、区域算力分布和行业AI算力保有程度等多个角度进行全面综合评估,旨在评估中国人工智能发展的现状,为推动产业AI化发展提供极具价值的参考依据和行动建议。这是该报告自2018年发布以来,连续第三年发布。


如果要评选AI圈儿的年度关键词,GPT-3绝对榜上有名。



1750亿个参数,比2019年发布的谷歌T5还翻了16倍,解锁各项技能,和人类对话,无所不能。GPT-3正是AI崛起,突飞猛进的最佳例证。



然而,为了训练它,Open AI可是花费了460万美元。如果不是以API的方式开放给普通用户使用,这个NLP神器可不是大家都能玩的起的。


而且,随着模型参数和训练数据越来越大,若算力跟不上,GPT-3根本「跑」不起来。


我们可以用petaflops/s-day这个单位来衡量算力,可以玩「变脸」的生成对抗网络(GAN)大概需要3petaflop,目前全球第一快的超级计算机日本的富岳Fugaku ,每秒550petaflop;而GPT-3计算需求居然达到了3640petaflop。



算力,也就是数据的处理能力,与数据、算法,并称为AI三要素。从GPT-3中可以见得,如果没有强大的处理能力,模型的规模再大、再全面,也是纸上谈兵。可以说,算力已经成为制约AI产业化发展的关键因素。


12月15日,权威分析机构IDC与浪潮联合发布《2020-2021中国人工智能计算力发展评估报告》(以下简称《报告》)。



报告从AI算力产业发展趋势、市场规模、区域算力分布和行业AI算力保有程度等多个角度进行全面综合评估,旨在评估中国人工智能发展的现状,为产业AI化提供极具价值的参考依据和行动建议。



此报告也是自2018年起连续第三年发布,已经逐渐成为AI领域内许多用户、企业,甚至地方政府的权威参考。


逆势强增长:37%持续增长,北京仍居中国AI城市首位


2020年,在数据大爆炸和算力、算法的极大提升下,中国AI资源迎来了爆发式的增长。


《报告》显示,人工智能是全球IT产业发展最快的新兴技术应用之一。


先来看一组数据,2020年,整个中国的人工智能市场规模是63亿美元,据IDC预测,到2024年,这个数字将会达到172.2亿美元。而且,虽然今年受到疫情影响,但中国AI整体市场仍然保持着37%的增长。



这个增长率有多惊人?


相比之下,2020年美国整个IT的支出同比在下降,整个AI算力等方面的支出基本和去年持平,没有显著增长,相对来说,中国增速37%属于「逆境中生长」。与此同时,中国在全球AI市场的占比将从2020年的12.5%上升到2024年的15.6%。


全球来看,中国人工智能市场正处于稳步上升的状态,而且会在世界AI市场占有越来越重要的地位。


而在中国AI城市之间,排名较过去两年有了显著的变化。


根据《报告》,2020年AI城市TOP5依次为北京、深圳、杭州、上海、重庆。


对比2018年,北京凭借百度,头条等互联网公司以及国家对AI的扶植,仍然保持在第一位。值得关注的是,与2019年相比,深圳超过杭州位居第二,而重庆也首次进入第一梯队,西安超过南京位居第九。



IDC预测,到2021年,各地方政府将会加大对AI产业的投资30%以上。各个城市在自身产业优势及各种因素推动下,AI应用取得了较大进展。例如东莞的智能制造、武汉的智慧医疗、合肥的智慧农业、重庆的人工智能课程等。


中国人工智能城市正利用自己的差异化优势,为产业发展树立标杆。


2020就快句号,未来的AI圈儿怎么走出感叹号


未来人工智能算力发展的大方向是怎样的?《报告》给出来了几点重要趋势:


首先,技术层面。


人工智能芯片将继续呈现多样性的发展,GPU依然是数据中心加速的首选,占有95%以上的市场份额;中国人工智能服务器将在未来五年保持高速增长,是整体服务器市场增长的核心驱动力;



提到算力时候大家常会提到是芯片,而算力的载体服务器也是近些年不得忽视的因素。前些年,深度学习之前发展缓慢,除了算法的原因外,很重要的一个原因是算力的不足,而解决计算力最重要的支撑是AI服务器。


在这里,国内头部AI服务器厂商浪潮有着清晰的定位。多年来,浪潮一直专攻计算系统,打造了业内最强最全的AI服务器产品阵列。作为系统提供商,浪潮积极推动开放生态建设,AI服务器适配了寒武纪、燧原科技、英特尔等芯片产品,促进AI计算产业的协作共赢。


其次,是架构层面的趋势。


AloT时代,日益增长的业务实时性需求使边缘和端侧的计算能力变得越来越重要,人工智能算力会逐渐向边缘渗透,到2023年,将近20%用于处理AI工作负载的服务器将部署在边缘侧。


浪潮信息副总裁、浪潮AI&HPC产品线总经理刘军表示,「现在的边缘端大家做了一些部署的尝试,做一些样板,场景怎么打通,要更进一步让边缘进入批量化,大规模上业务,我们还是要解决额定功耗条件下尽可能去提升算力的核心问题。」



浪潮信息副总裁、浪潮AI&HPC产品线总经理刘军


另外,AIaaS也会成为人工智能市场发展的重要驱动力,《报告》预测,其2018至2024年的年复合增长率预计将达到93.6%,同时,AI基准测试也会逐步完善,MLperf、SPEC ML、AI-Rank等权威基准测试陆续推出,不仅仅为企业的成本效益提供参考,也对人工智能应用未来可持续发展具有重要意义 。


「未来对AI算力要求以后只会越来越大,五年后,所有计算力都将是AI计算力,所有服务器也都是AI服务器。」


比尔盖茨曾说过,微软的使命是让每个家庭拥有一台PC;未来,浪潮也许可以让每个企业像用水用电一样使用算力。


算力就是生产力,得算力者得「天下」


「让算力变成生产力,我们是叫数据进去,AI出来。」


疫情期间,AI经济以前所未有的方式爆发了。


《报告》显示,2020年,人工智能行业应用渗透度排名TOP5 的行业依次为互联网、政府、金融、电信和制造。同2019年相比,2020年互联网行业仍然保持第一,而电信和制造行业的应用场景更加丰富,市场潜力预计将有较大的提升,但在疫情的影响下,医疗行业人工智能的应用渗透度超过教育行业位列第七。



在这样的成果背后,海量的数据功不可没,它是大量模型训练的基础。据 Open AI 的一份报告显示,从 2012 到 2019 年,人工智能训练集增长将近 30 万倍,每 3.43 个月翻一番,比摩尔定律快 25000 倍。


但是,如果没有足够的算力支撑,就会有大把的数据被浪费掉,算法也不能进入到AI产业的生产力阶段。


为什么人工智能对算力的需求如此之高?


一方面,随着AI应用成熟度的提升,从通用场景走向细分,人工智能面临着识别度不高、准确度不高等关键问题。


根据《报告》,除了人工智能投入相对集中的行业之外,在业务需求的推动下,很多碎片化应用也开始被广泛使用,并辐射到媒体娱乐、现代农业、智能家居、智慧电力等多个不同领域。



另一方面,IDC认为,未来三年,用户的算力还是集中在两个方面:训练和推理,其中,训练仍然是未来投资的主要方向,并且这个方向已经从纯感知的训练,图像识别,视频识别,语音识别,转向了对语意理解,纯感知到感知以后的推理分析。


对于自动驾驶、机器人、内容推荐等综合场景的算力需求也相对较高,平均算力值将达到146P OPS左右。



这些都对算力提出了更高的要求,而算力也已成为制约AI产业化进一步发展的关键。


在2020年4月,浪潮曾提出「智算中心」,即「智能计算中心」。今年4月,以智能计算中心为代表的算力基础设施首次被国家发改委明确新型基础设施的范围。


如果智能计算中心成为全行业的算力提供者,以中国AI市场的规模,类似GPT-3、谷歌T4的超大AI模型的出现将被提上日程,届时,我们就会真正感受到「算力改变中国,算力驱动未来,算力是生产力」。


而那时,算力时代也将真正到来。





分类
未分类

大厂纷纷“逃离”硅谷逃往德州?Oracle宣布搬离总部和马斯克做“邻居”



  新智元报道  

编辑:科雨

【新智元导读】疫情爆发之后,全球著名科技公司纷纷将总部搬离加州。近日,历史悠久的软件巨头甲骨文(Oracle)公司正式宣布,将总部迁至德克萨斯州。各大科技公司的此番举措,是否预示着什么?

本月初,惠普企业宣布,计划在德州休斯顿郊区建造一个44万平方英尺的园区,作为公司的新总部。
 
本周,特斯拉公司首席执行长埃隆•马斯克(Elon Musk)发表讲话,表示他已经搬到了德克萨斯州,现在正于奥斯汀城外建造一座新工厂。
 
就在上周五,硅谷历史最悠久的公司之一甲骨文公司(Oracle Corp.)宣布,将把总部迁至奥斯丁,成为最新一家迁出加州的科技公司。



BREAKING: Oracle just announced they have moved their Headquarters to Austin. 

 

Texas is truly the land of business, jobs, and opportunity. 

 

We will continue to attract the very best.

— Greg Abbott (@GregAbbott_TX) December 11, 2020

 

德克萨斯州州长格雷格·阿博特在推特上率先宣布了这一消息,并表示:“德州是名副其实的商业、就业和机会之乡。我们将继续吸引最优秀的人才。”


工作地点更加灵活,Oracle考虑长远

 

成立于1977年的甲骨文(Oracle)是硅谷老牌科技公司之一,也是该地区的主要企业,拥有13.5万名员工。
 
该公司的红杉城(Redwood City)园区以其著名的圆柱形建筑著称,同时,其所拥有的甲骨文公园(Oracle Park)也是旧金山巨人队(San Francisco Giants)进行训练的场地。此外,Oracle在奥斯汀已经有一个园区,并早先于2018年开放。




上周五,Oracle正式宣布,将总部从加利福尼亚州的红杉城迁至德克萨斯州的奥斯汀,成为最新一家离开硅谷前往德州的科技公司。
 
“我们最近宣布,甲骨文公司正在实施一项更加灵活的员工工作地点政策,并将公司总部从加利福尼亚州的红杉海岸迁至得克萨斯州的奥斯汀,”一位Oracle发言人上周五表示。




“我们相信,这些举措对甲骨文的发展有利,并为我们的员工在工作地点和工作方式方面提供了更大的灵活性。“
 
”根据他们的角色,我们的许多员工可以灵活地选择办公地点,可以选择到岗工作,继续兼职,或一直在家工作。”


GDP增幅全美第二,政策友好,德州吸引力巨大

 

德克萨斯州(英文:State of Texas),简称德州,是美国南方最大的州,也是全美第二大州,仅次于阿拉斯加州。




德州在美国经济中占重要地位,2012年GDP达13,974亿美元(同比增长4.8%,增幅全美第二),占全美经济总量的9%,居全美50个州第二。被誉为美经济复苏的“领头羊”。
 
历史上养牛业发达,至今以牛仔形象闻名。20世纪早期石油大发现促成经济繁荣,20世纪80年代起经济多元发展,高科技产业兴起。德州能源、石化、农业、电子、航天、生物医药等产业均较发达。《财富》500强企业中有57家在得州落户。




根据美国人口普查局的数据,德州是最受前加州人欢迎的旅游目的地,该州房地产价格较低,不征收州所得税,并以其友好的商业政策而自豪。
 
加州大学伯克利分校政府研究所2019年的一项民意调查显示,政治因素也是加州人考虑离开加州的原因之一

 

调整薪酬,搬迁总部,疫情之下,全球科技巨头改革频繁

 

随着远程办公的兴起,一些位于湾区的科技公司在过去几个月表示,他们的员工可以在任何地方工作。这其中就包括Facebook。facebook曾表示,将根据生活成本调整薪酬。
 
此外,早在Covid-19爆发的前期,Twitter就宣布其员工将永久选择在家工作。
 
冠状病毒大流行之后,几家公司纷纷宣布了离开加州的计划:
 
其他将总部迁出加州的科技公司包括惠普企业和Palantir Technologies。惠普上周表示,将把总部迁至得克萨斯州的休斯顿。

 

帕兰提尔科技(Palantir Technologies)可以被称为硅谷最神秘独角兽大数据挖掘公司,其于2004年由一群斯坦福大学程序员成立,创始人包括现任CEO Alex Karp,PayPal联合创始人Peter Thiel和Joe Lonsdale。


美国中央情报局(CIA)是Palantir的早期投资者和客户。美国国家安全局(NSA)和联邦调查局(FBI)也是该公司顾客。Palantir帮助客户整合结构性数据库,并经过机器学习判断后,用直观的可视化图表输出分析结果。


Palantir Technologies自成立起一直保持神秘的行事风格,Gotham平台在美国追捕本·拉登行动中,提供了众多极为重要的情报分析,起到了关键作用。


以金融欺诈解决方案为例,2010年,摩根大通成为Palantir的首批非政府客户。后来,Palantir帮多家银行追回纳斯达克前主席麦道夫庞氏骗局的数十亿美金,名声大振,获得越来越多来自华尔街金融大鳄的信赖与认可。


       

在和当地官员就疫情期间的政策上发生争执后,特斯拉首席执行官埃隆·马斯克(Elon Musk)威胁要将公司完全搬出加州(尽管特斯拉仍在弗里蒙特拥有一家工厂),并正在奥斯汀附近建造一座新工厂。
 
此外,他本人的私人住所也已经搬到了德州。

 

 

参考链接:
https://www.theverge.com/2020/12/13/22172610/oracle-moves-headquarters-california-texas-hewlett-packard-tesla
https://www.marketwatch.com/story/oracle-moves-headquarters-from-silicon-valley-to-texas-11607724796







分类
未分类

狂揽6600+星!这份学习路线图在Github上火了

来源:程序员书库(ID:CodingBook) 猿妹编译
链接:https://syncedreview.com/2020/11/05/german-startups-ai-expert-roadmap-gets-3-5k-github-stars/https://github.com/AMAI-GmbH/AI-Expert-Roadmap


相信你也观察到,周围同事、网络资讯都在谈论AI人工智能、Python编程,也有想了解和学习的冲动,但是没有找到合适的学习途径,迟迟没有迈出第一步。那么,今天和大家分享的这份学习路线图

最近这份学习路线已经引起很多AI专业人员的兴趣,该项目提供了一系列清晰易懂的图表,你可以根据自己的需求选择相应的学习路径,诸如成为数据科学家、机器学习或AI专家。

人工智能在我们日常生活中的角色不断扩大,越来越多的人和企业通过学习人工智能的基础知识来获取行业趋势的判断,这份路线图就是为此而设计的,该项目最初是为卡尔斯鲁厄市的AMAI员工提供的培训指南,事实证明它是非常有用的,短短几天就已经在Github上标星6600+



该交互式路线图易于使用并且可以自定义。每个子模块中列出的内容都可以链接到指定的网站,学习者可以通过Wikipedia或其他来源轻松找到每个术语的定义和扩展内容。AMAI小组表示,随着新研究的出现,路线图将自动更新。

该路线图不仅旨在为学习者提供人工智能的总体概念,而且还可以指导他们在该领域的不同领域进行探索和研究。创建者强调,在科学研究中,一个人一定要清楚哪种工具才是最适合的选择,因此选择比努力更重要。

路径包括数据科学,机器学习,深度学习和数据工程,每个文档都罗列出来大量的资源,例如带有代码的文档,版本控制,变更日志等,项目创建者建议初学者从数据科学基础知识入手,然后再过渡到机器学习,深度学习或数据工程。

下面我们就一起来看看详细的学习路线:

整体概览



基本原理



数据科学路线图




机器学习路线






分类
未分类

25年来的最高成就!MIT科学家让计算机提供创意,可自动设计机器人形态



  新智元报道  

来源:学术头条

作者:阳光

【新智元导读】MIT的研究人员成功开发了一种计算机系统,利用该系统可以对机器人的形状进行仿真,并确定哪种设计的效果是最优的。


设想一下,如果人们需要一个能爬楼梯的机器人,那么这个机器人应该是什么的形状?它是应该像人一样有两条腿?还是应该像一只蚂蚁一样有六条腿?

设计出合适的形状,对于机器人穿越特定地形的能力来讲是至关重要的。但是,不可能通过人工设计来构建和测试每一种潜在的形态。

近日,来自麻省理工学院(MIT)的研究人员,成功开发了一种计算机系统,研究人员利用该系统可以对机器人的形状进行仿真,并确定哪种设计的效果是最优的


相关论文以“RoboGrammar: Graph Grammar for Terrain-Optimized Robot Design”为题,发表在 2020 年度 SIGGRAPH 亚洲的会议上。

(来源:MIT官网)

论文作者之一、来自麻省理工学院计算机科学与人工智能实验室(CSAIL)的博士生 Allan Zhao 说:“机器人设计仍然是一个非常手工化的过程。

RoboGrammar 系统提出了一种新的、更具创造性的机器人设计方法,这种方法设计出的机器人结构可能会更有效果。”


首先,人们要做的是就是告诉 RoboGrammar 系统,车间周围摆着哪些能用的机器人零件(比如:轮子、关节等);

同时,还告诉它机器人需要在什么类型的地面上行驶,然后,RoboGrammar 就会负责其余工作,为人们想要的机器人生成优化的结构和控制程序。


研究人员表示,这一进展可能会给设计机器人形状领域注入一定的计算机辅助创造力。


计算机辅助创造力


机器人是为了完成各种任务而建造的,但是它们的总体形状和设计往往非常相似。

例如,当人们想到建造一个需要穿越各种地形的机器人时,会立即把想到四足动物,比如一种像狗一样,有四条腿的动物。但是这是否真的是最佳设计呢?并没有人知道。

因此,来自 MIT 的团队推测,更多创新的设计才可以改善机器人的功能。他们为这项任务建立了一个计算机模型,这个计算机模型不会受到先前惯例的过度影响。虽然创新是目标,但该模型必须制定一些基本标准才可以保证正常的工作。

研究人员认为,如果人们可以用任意的方式连接机器人的这些部件,那么最终会陷入到混乱当中。

为了避免这种情况,研究团队开发了一种“图形语法(Graph Grammar)”,这是对机器人组件排列的一系列约束。例如,相邻的支腿应该用一个关节连接,而不是用另一个支腿相连。这样的规则确保至少设计是在初级水平上,每个计算机生成的设计作品都是可以工作的。


(来源:MIT 官网)

事实上,该系统图形语法规则的灵感不是来自其他机器人的启发,而是受到动物(尤其是节肢动物)的启发

这些无脊椎动物包括昆虫、蜘蛛和虾。作为一个庞大的群体,节肢动物是一个成功的进化故事,占已知动物物种的 80%以上。

Allan Zhao 表示:“节肢动物的特点是有一个中心体,并且其节数可变,有些部分可能有支腿连接。而且我们注意到,这不仅足以描述节肢动物,还可以描述更熟悉的动物形态,包括四足动物。”

于是,研究人员采用了根据节肢动物启发的规则。但是系统为机器人也增加了一些机械上的功能,例如,它是允许机器人使用轮子的,而不仅仅是腿。


机器人方阵


使用该团队为系统制定的规则,RoboGrammar 可以按三个连续的步骤运行。首先是需要定义问题,然后生成可能的机器人解决方案,最后去选择最佳方案

问题的定义很大程度上取决于人类用户,他们输入了一组可用的机器人组件,例如电机、支腿和连接段。


需要注意的是,这些问题是确保最终机器人可以真正在现实世界中制造的关键。用户还可以指定要穿越的地形种类,这些种类包括阶梯、平坦区域或光滑表面等元素的组合。

通过这些输入,RoboGrammar 使用图形语法的规则来设计成千上万个潜在的机器人结构。有些看起来有点像赛车,有些看起来像蜘蛛,或者是像一个在做俯卧撑的人。



Allan Zhao 说:“看到各种各样的设计,我们感到倍受鼓舞。这无疑显示了图形语法的创造力。”但是,尽管语法可以提高设计数量,但它的设计并不总是具有最佳的质量。

而且,选择最佳的机器人设计还需要控制每个机器人的运动并评估其功能。到目前为止,这些机器人还只是系统生成结构而已。

控制器是给这些结构带来生命的指令集,控制着机器人各种电机的运动顺序。因此,
该团队使用模型预测控制的算法为每个机器人开发了一个控制器,该算法优先考虑快速向前运动

Allan Zhao 表示:“机器人的形状和控制器深深地交织在一起,这就是为什么我们必须为每个给定的机器人单独优化控制器的原因。”一旦每个模拟机器人都可以自由移动,研究人员便可以通过“图形启发式搜索”来寻找高性能的机器人

这种神经网络算法迭代地对机器人集合进行采样和评估,并学习哪种设计更适合给定的任务。Allan Zhao 表示:“启发式功能会随着时间的推移而不断提高,并且搜索会收敛到最优的机器人。”


而这一切,都是在人类设计师拿起螺丝钉之前发生的。

25 年来的最高成就


MIT 的研究人员希望这个系统可以激发人类的创造力。他们将 RoboGrammar 描述为 “机器人设计人员扩大他们所使用的机器人结构空间的工具”。为了展示其可行性,该研究团队还计划在现实世界中构建和测试 RoboGrammar 的一些最佳机器人。

该系统还可以被改造成在穿越地形之外追求机器人形状设计的目标工具。Allen Zhao 表示,RoboGrammar 可以帮助填充虚拟世界。

“比如,在视频游戏中,人们如果想要生成很多类型的机器人,RoboGrammar 几乎会立即为此工作,而不需要艺术家来创造每个机器人。”

图 | 机器人创造力(来源:JAMES YANG)

而该项目的一项令人惊讶的成果是,大多数机器人的设计最终都是四足的。研究人员表示,也许机器人设计人员一直以来都倾向于四足动物,是有一些道理的。

哥伦比亚大学的机械工程师兼计算机科学家 Hod Lipson 评价道:“这项工作是 25 年来自动设计机器人形态和控制的最高成就。使用形状语法的想法已经存在了一段时间了,但是没有一个地方像在这部作品中那样完美地实现了这个想法。一旦我们能够让机器自动设计、制造和编程机器人,所有的赌注都将消失。”


随着该系统的出现,人们可以预见,在未来机器人的设计,或许仅仅需要一台计算机。

参考资料:
https://news.mit.edu/2020/computer-aided-robot-design-1130
https://cdfg.mit.edu/publications/robogrammar-graph-grammar-for-terrain-optimized-robot-design







分类
未分类

TIOBE12月榜单:Java重回第二,Python有望四连冠年度语言

喜欢就关注我们吧!

文|白开水

TIOBE 公布了 2020 年 12 月的编程语言排行榜

TIOBE 将在下个月公布 2020 年的年度编程语言,一年内排名率增长最高的编程语言将获得这一称号。目前,Python 以 +1.90% 数据遥遥领先。其次分别是 C++(+0.71%)、R(+0.60%)和 Groovy(+0.69%)。

TIOBE CEO Paul Jansen 称 ,在今年的最后一个月,Python 被反超的可能性非常低。这意味着 Python 很可能第四次夺得冠军,这在 TIOBE 指数的历史上也是一个新记录。

本月,5 种高潜力语言间也发生了一些有趣的变动。Rust 排名开始回升,从第 25 位上升到了第 21 位;Julia 从第 30 位升到第 26 位;TypeScript 也从第 43 位变成了第 42 位。而 Dart 则从第 27 位降至了第 31 位,Kotlin 也从第 36 位掉到了第 40 位。

TIOBE 11 月 TOP 20 编程语言

前十榜单中,继上月被 Python 反超后,Java 又在本月成功挤下 Python,重新回归榜二的位置,排名率为 12.53%。Python 排名率为 12.21%。除此之外,前十名的榜单暂无变动。

11-20 名之间出现了一些波动。其中排名下降的有:Perl(12→14);Go(13→16)。排名上升的有:Swift(14→13);Assembly language(16→12)。还有 PL/SQL 挤掉 Transact-SQL 重回前 20 榜单。

TOP 10 编程语言 TIOBE 指数走势(2002-2020) 

第 21-50 名编程语言排行

第 51-100 名如下,由于它们之间的数值差异较小,仅以文本形式列出(按字母排序): 

ABC, ActionScript, Applescript, AutoLISP, Awk, Bash, bc, Bourne shell, C shell, CL (OS/400), Clojure, CoffeeScript, Common Lisp, cT, Elixir, Elm, Emacs Lisp, Erlang, F#, Factor, Forth, Hack, Haskell, Icon, Inform, Io, J, Korn shell, Ladder Logic, Maple, Mercury, MQL4, NATURAL, OCaml, OpenCL, OpenEdge ABL, Oz, PL/I, Q, Raku, REXX, Ring, RPG, Smalltalk, SPARK, SPSS, Stata, Vala/Genie, VBScript, Verilog

TIOBE 编程社区指数(The TIOBE Programming Community index)是编程语言流行度的指标,该榜单每月更新一次,指数基于全球技术工程师、课程和第三方供应商的数量。包括流行的搜索引擎,如谷歌、必应、雅虎、维基百科、亚马逊、YouTube 和百度都用于指数计算。具体的计算方式见这里:https://www.tiobe.com/tiobe-index/programming-languages-definition/

值得注意的是,TIOBE 指数并不代表语言的好坏,开发者可以使用该榜单检查自身的编程技能是否需要更新,或者在开始构建新软件时对某一语言做出选择。

公众号聊天窗口回复‘1206’,查看详情榜单。


酷派员工积极提交补丁获Linus关注,并收到公司10万股期权奖励

2020-12-05

微软正在为 Windows 10 开发 Android 子系统

2020-12-05

惊!Kubernetes 将弃用 Docker,开发者们怎么办?

2020-12-04




觉得不错,请点个在看