Mojo崛起:AI-first 的编程语言能否成为新流行?

眨眼之间,你可能会错过又一种编程语言的发明。

有个笑话说,程序员花费20%的时间编写代码,80%的时间决定使用什么语言。

事实上,编程语言如此之多,以至于我们不确定实际有多少种。据估计,至少有700种编程语言在不同程度上被使用和滥用。现在存在的编程语言似乎总有改进的空间。

随着AI不断推动技术进步,它也在挑战我们最流行的编程语言,如Java、C和Python。像其他领域一样,AI是一个迫切需要新编程语言来解决的问题。

诸如Mojo、Bend等AI-first的编程语言能否获得开发人员的芳心?无论答案如何,回顾历史我们会发现,编程语言的创新并不是一个坏主意。

1.AI语言的上一个黄金时代

这并不是AI第一次推动新编程语言的浪潮。20世纪70年代和80年代是AI语言的黄金时代,如LISP和Prolog,它们引入了开创性的概念,如符号处理和逻辑编程。那时,AI也是热门话题。

值得注意的是,LISP语言对软件的未来产生了深远影响,推出了函数式编程范式,最终影响了现代语言如Python、Haskell和Scala的设计。LISP也是首批实现动态类型的语言之一,在这种类型中,类型与值相关联而不是变量,允许更多的灵活性和更容易的原型开发。它还引入了垃圾回收功能,自动回收不再使用的内存,这是许多现代编程语言(如Java、Python和JavaScript)所采用的功能。可以公平地说,没有LISP,我们今天可能不会在这里。

当AI领域在20世纪70年代和80年代经历了一段资金和兴趣减少的长时间时,被称为“AI寒冬”,对专门AI语言如LISP的关注开始减退。同时,通用计算的快速发展导致了通用语言如C的兴起,这些语言为各种应用(包括系统编程和数值计算)提供了更好的性能和可移植性。

图片

2.AI-first语言的回归

现在,历史似乎在重演,AI再次推动了新编程语言的发明,以解决其棘手的问题。现代AI算法所需的强大数值计算和并行处理突显了需要能够有效桥接抽象和充分利用底层硬件的语言。

可以说,这一趋势始于TensorFlow的Tensor计算语法、Julia以及重新燃起的对数组导向语言如APL和J的兴趣,这些语言提供了与机器学习和神经网络的数学基础相一致的领域特定构造。这些项目试图减少将数学概念转换为通用代码的开销,让研究人员和开发人员能够更多地关注核心AI逻辑,而不是低级实现细节。

最近,一波新的AI-first语言应运而生,它们从头开始设计,以解决AI开发的特定需求。Higher Order Company创建的Bend旨在为AI提供灵活和直观的编程模型,具有自动微分和与流行AI框架的无缝集成功能。Modular AI开发的Mojo则专注于高性能、可扩展性和构建与部署AI应用的易用性。Swift for TensorFlow是Swift编程语言的扩展,结合了Swift的高级语法和TensorFlow的机器学习能力。这些语言代表了朝向AI开发的专用工具和抽象的日益增长的趋势。

虽然Python、C++和Java等通用语言在AI开发中仍然很受欢迎,但AI-first语言的复兴表明,AI的独特需求需要专门为该领域量身定制的语言,就像早期的AI研究催生了LISP等语言一样。

3.Python在AI中的局限性

Python因其简单性、通用性和广泛的生态系统长期以来一直是现代AI开发者的首选。然而,它的性能限制对于许多AI用例来说是一个主要缺点。

用Python训练深度学习模型可能会非常慢——我们说的是像在DMV(车辆管理局)排队等候那样慢,等待收银员找零那样慢。像TensorFlow和PyTorch这样的库通过使用底层的C++来帮助提高性能,但Python仍然是瓶颈,特别是在预处理数据和管理复杂的训练工作流时。

在实时AI应用如自动驾驶或实时视频分析中,推理延迟至关重要。然而,Python的全局解释器锁(GIL)阻止了多个本机线程同时执行Python字节码,导致在多线程环境中表现不佳。

在大规模AI应用中,内存管理效率对于最大化可用资源的利用至关重要。Python的动态类型和自动内存管理会增加内存使用和碎片化。像C++和Rust这样的语言提供的低级内存控制允许更有效地使用硬件资源,从而提高AI系统的整体性能。

在生产环境中部署AI模型,特别是在具有有限计算资源的边缘设备上,用Python可能会遇到挑战。Python的解释性和运行时依赖性会导致资源消耗增加和执行速度变慢。像Go或Rust这样的编译语言,因其较低的运行时开销和更好的系统资源控制,通常更适合在边缘设备上部署AI模型。

4.Mojo:新的AI-first编程语言,无缝衔接Python生态

Mojo是一种新编程语言,承诺弥合Python的易用性和前沿AI应用所需的超快性能之间的差距。Mojo由Swift编程语言和LLVM编译器基础架构的创建者Chris Lattner创立的公司Modular开发。Mojo是Python的超集,这意味着开发者可以利用他们现有的Python知识和代码库,同时解锁前所未有的性能提升。Mojo的创造者声称,它可以比Python代码快多达35000倍。

Mojo设计的核心是其与AI硬件(如运行CUDA的GPU和其他加速器)的无缝集成。Mojo使开发者能够充分利用专用AI硬件的潜力,而不必陷入低级细节中。

Mojo的一个主要优势是它与现有Python生态系统的互操作性。与Rust、Zig或Nim等语言不同,Mojo允许开发者编写与Python库和框架无缝集成的代码。开发者可以继续使用他们喜欢的Python工具和包,同时受益于Mojo的性能增强。

Mojo引入了几项使其与Python区别开来的功能。它支持静态类型,可以帮助在开发早期捕捉错误并实现更有效的编译。然而,开发者仍然可以在需要时选择动态类型,提供灵活性和易用性。语言引入了新的关键字,如“var”和“let”,提供不同程度的可变性。Mojo还包括一个新的“fn”关键字,用于在严格的类型系统内定义函数。

Mojo还采用了类似于Rust的所有权系统和借用检查器,确保内存安全并防止常见编程错误。此外,Mojo提供指针的内存管理,使开发者可以对内存分配和释放进行细粒度控制。这些功能有助于Mojo的性能优化,并帮助开发者编写更高效和无错误的代码。   

Mojo最令人兴奋的方面之一是其加速AI开发的潜力。Mojo能够编译成高度优化的机器代码,可以在CPU和GPU上本地速度运行,使开发者能够在不牺牲性能的情况下编写复杂的AI应用。语言包括数据并行性、任务并行性和流水线处理的高级抽象,使开发者能够用最少的代码表达复杂的并行算法。

Mojo在概念上比一些其他新兴AI语言(如Bend)更低级,后者将现代高级语言功能编译到Apple Silicon或NVIDIA GPU上的本地多线程。Mojo提供对并行性的细粒度控制,特别适合手工编码现代神经网络加速。通过为开发者提供直接控制计算映射到硬件上的能力,Mojo实现了高度优化的AI实现。

图片

5.利用开源的力量

根据Mojo的创建者Modular的说法,自去年8月普遍可用以来,该语言已经吸引了超过17.5万开发者和5万家组织。

尽管Mojo的性能和潜力令人印象深刻,但其最初的采用可能因其专有状态而停滞不前。

然而,Modular最近决定将Mojo的核心组件在定制版Apache 2许可下开源。此举可能会加速Mojo的采用,并培育更充满活力的协作和创新生态系统,类似于开源是Python等语言成功的关键因素。

开发者现在可以探索Mojo的内部工作原理,为其开发做出贡献,并从其实现中学习。这种协作方式可能会导致更快的错误修复、性能改进和新功能的增加,最终使Mojo更加多功能和强大。

宽松的Apache许可证允许开发者自由使用、修改和分发Mojo,鼓励围绕该语言的生态系统的增长。通过开源,Mojo有潜力吸引更多的开发者、研究人员和企业,使其成为AI开发的重要工具。

开放源码的决定还表明Modular对其技术和开发社区的信心。通过拥抱开源模式,Modular表明他们致力于透明度、协作和技术进步,这可能会吸引更广泛的开发者社区并加速Mojo的采用。         

6.全新的AI优先编程浪潮

虽然Mojo是一个有前途的新进入者,但它并不是唯一一个试图成为AI开发首选的语言。还有几种其他新兴语言也是从头开始设计的,以满足AI工作负载的需求。

一个显著的例子是Swift for TensorFlow,这是一个雄心勃勃的项目,旨在将Swift的强大语言功能带入机器学习。由谷歌和苹果公司合作开发,Swift for TensorFlow允许开发者使用原生Swift语法表达复杂的机器学习模型,并且具备静态类型、自动微分和XLA编译以在加速器上进行高性能执行。不幸的是,谷歌已经停止了该项目的开发,项目现在已归档,这显示了即使是谷歌这样的巨头在新语言开发中获得用户吸引力的难度。

此后,谷歌越来越关注JAX,一个用于高性能数值计算和机器学习(ML)的库。JAX是一个Python库,提供高性能的数值计算和机器学习功能,支持自动微分、XLA编译和高效使用加速器。虽然它不是独立的语言,但JAX扩展了Python,使其具有更具声明性和功能性的风格,非常符合机器学习的数学基础。

图片

最新的新增内容是Bend,一种大规模并行的高级编程语言,可以将类似Python的语言直接编译成GPU内核。与CUDA和Metal等低级语言不同,Bend更像是Python和Haskell,提供快速对象分配、全闭包支持的高阶函数、不受限制的递归,甚至继续执行。它运行在大规模并行硬件(如GPU)上,基于核心数量实现近线性加速,无需显式的并行注释——没有线程生成、锁、互斥锁或原子操作。由HVM2运行时驱动,Bend在任何可能的地方利用并行性,使其成为AI的万能工具——适用于各种场合。

图片

这些语言利用现代语言特性和强类型系统,使AI算法的编码更加表达性和安全,同时仍然在并行硬件上提供高性能执行。          

7.AI开发新时代的黎明

像Mojo、Bend、Swift for TensorFlow、JAX等以AI为重点的编程语言的复兴标志着AI开发新时代的开始。随着对更高效、更具表达性和硬件优化工具的需求增加,我们预计将看到更多专门针对AI独特需求的语言和框架的涌现。这些语言将利用现代编程范式、强类型系统以及与专用硬件的深度集成,使开发者能够构建具有前所未有性能的更复杂的AI应用。

AI优先语言的兴起可能会激发AI、语言设计和硬件开发之间相互作用的新一波创新。随着语言设计师与AI研究人员和硬件供应商密切合作以优化性能和表达性,我们可能会看到为这些语言和AI工作负载设计的新型架构和加速器的出现。

这种AI、语言和硬件之间的密切关系对于释放人工智能的全部潜力至关重要,能够在自动化系统、自然语言处理、计算机视觉等领域实现突破。我们今天创造的语言和工具正在重塑AI开发和计算的未来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/29413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Android 11】AOSP Settings添加屏幕旋转按钮

前言 这里是客户要求添加按钮以实现屏幕旋转。屏幕旋转使用adb的命令很容易实现: #屏幕翻转 adb shell settings put system user_rotation 1 #屏幕正常模式 adb shell settings put system user_rotation 0这里的值可以是0,1,2&#xff0c…

中国天辰×蓝卓丨共创行业级工业操作系统,加速培育新质生产力!

6月17日,中国天辰工程有限公司(以下简称“中国天辰”)党委委员、总经理梁军湘一行莅临蓝卓,双方就工业互联网平台合作进行座谈交流。蓝卓总经理谭彰、副总经理蓝照斌、总经理助理俞益标,以及中控技术副总裁吴才宝、大客…

Altair 人工智能技术助力MABE预测消费者行为,实现设备性能优化

主要看点 行业: 家电行业 挑战: 企业面临的挑战是如何利用已收集的大量数据,深入了解消费者在产品使用过程中对某些保鲜程序的影响。 Altair 解决方案: Altair采用了Altair RapidMiner人工智能平台来解决问题,特别是…

docker安装消息队列mq中的rabbit服务

在现代化的分布式系统中,消息队列(Message Queue, MQ)已经成为了一种不可或缺的组件。RabbitMQ作为一款高性能、开源的消息队列软件,因其高可用性、可扩展性和易用性而广受欢迎。本文将详细介绍如何在Docker环境中安装RabbitMQ服务…

八股系列 Flink

Flink 和 SparkStreaming的区别 设计理念方面 SparkStreaming:使用微批次来模拟流计算,数据已时间为单位分为一个个批次,通过RDD进行分布式计算 Flink:基于事件驱动,是面向流的处理框架,是真正的流式计算…

访问学者谈CSC青年骨干教师项目出国经历及感受

CSC青年骨干教师出国研修项目实施已近20年,越来越多的青年教师成为该项目的受益者。知识人网小编推荐该项目资助老师谈谈在加拿大卡尔加里大学访学一年的经历及感受。 国家留学基金委(以下简称CSC)高等学校青年骨干教师出国研修项目&#xff…

个股期权有哪些股票?金融新手必须知道!

今天带你了解个股期权有哪些股票?在中国的股票市场中,个股期权是一种衍生品,允许投资者购买或卖出特定股票的期权合约。 个股期权有哪些股票? 个股期权是指在特定时间内,以特定价格买入或卖出特定数量的某只个股的权利…

lombok.jar包,解决 java: 找不到符号 符号: 类 __

打开设置在这里添加这样一小句话. -Djps.track.ap.dependenciesfalse

赛氪网荣膺“创新型中小企业”称号,科技创新再显卓越实力

近日,北京市经济和信息化局揭晓了2024年度3月份北京市创新型中小企业的光荣名单,其中北京环球赛乐科技有限公司(简称赛氪网)脱颖而出,再度展现其在创新领域的卓越实力! 作为早已跻身“高企之光”行列的佼佼…

COUNTIF函数除计数,还可排序哦

COUNTIF函数除统计个数外,还可以排序哦! 近期工作中遇到一个场景“对不同类型的人员按办理量进行排序”,前期只是对同一种类型进行排序,经过查阅资料,可以用COUNTIF函数解决问题,今天就把COUNTIF函数的用法…

EarMaster pro 7 For Mac软件下载-EarMaster Pro(音乐赏析进阶专业版)V6.1下载附加详细安装步骤

EarMaster pro 7 For Mac最新版是一款相当专业的听力训练和音乐理论练习软件,这个EarMaster pro 7 For Mac版带来了全的操作界面,并且更新了课程信息,内置了2000多种课程供用户选择,可以用于听耳训练、视唱和节奏训练等操作。 安 …

视频太大了怎么缩小内存

我们在分享视频的时候,有时候会遇到过视频文件太大,无法发送或者上传的情况,别担心,今天我就来给大家分享一个简单有效的方法,让你的视频变得更小,更方便分享! 打开 “51视频处理官网 的网站。上…

学校分体空调集控系统

学校分体空调集控系统是一种先进的温度控制解决方案,它主要针对学校等公共场所的空调管理需求而设计。该系统通过集中控制和管理多台分体空调设备,实现了更高的能效、更便捷的操作和更舒适的室内环境。 需求与挑战:学校教学楼、办公楼、实验楼…

智能血糖仪的条码二维码读取设备选型经验分享

智能科技的快速发展,推动医疗辅助设备朝着更加智能、操作更便捷的方向发展,便携式血糖仪已经成为糖尿病患者日常监测血糖的重要工具,但传统血糖仪的检测结果需要用户自己判断,缺乏数据分析很容易出错,而便携式智能血糖…

为啥找对象千万别找大厂男,还好我不是大厂的。。

网上看到一大厂女员工发文说:找对象千万别找大厂男,理由说了一大堆,无非就是大厂男为了逃避带娃,以加班为由宁愿在工位上玩游戏也不愿回家。当然这种观点有的人赞同有的人反对。 网友精彩评论: --------------下面是今…

Python基础教程——20个让人眼前一亮的逻辑妙用!

文末免费赠精品编程资料~~ Python不仅仅是一种编程语言,它还是解决问题的艺术,充满了让人拍案叫绝的“小巧思”。通过这15个小技巧,你不仅能提升编程技能,还能让你的代码更加优雅、高效。让我们一探究竟吧! 1. 列表推…

终于把TikTok账号养好了!我是如何做的?

对于很多刚开始运营TikTok的新手小白来说,都会有一个同样的疑问,那就是:TikTok到底需不需要养号?这里明确告诉大家是需要养号的,今天就把我自己实操过的养号经验和策略总结出来,分享给大家。 一、什么是Tik…

2025年计算机毕业设计题目参考

今年最新计算机毕业设计题目参考 以下可以参考 springboot洗衣店订单管理系统 springboot美发门店管理系统 springboot课程答疑系统 springboot师生共评的作业管理系统 springboot平台的医疗病历交互系统 springboot购物推荐网站的设计与实现 springboot知识管理系统 springbo…

Character Animator 2024 mac/win版:赋予角色生命,动画更传神

Character Animator 2024是一款强大的角色动画制作软件,以其创新的功能和卓越的性能,为动画师、游戏开发者以及设计师们带来了全新的创作体验。 Character Animator 2024 mac/win版获取 这款软件采用了先进的骨骼绑定技术,使得角色动画的制作…

基于Java的冬奥会科普平台

开头语:你好,我是计算机学姐码农小野。如果你对冬奥会科普平台感兴趣或有其他技术需求,欢迎随时私信我。 开发语言:Java 数据库:MySQL 技术:Java、B/S架构 工具:MyEclipse、MySQL 系统展示…