为什么华为和埃隆·马斯克都选择Rust?Rust为何是AGI时代的首选?

查理谈科技 2024-05-08 00:27:25
一、什么是通用人工智能(AGI)?

通用人工智能

通用人工智能,英文Artificial general intelligence,以下简写AGI,是人工智能的一个分支,研究如何开发具有类人智能和自学能力的软件,旨在创建能够执行人类可以完成的任何智力任务的智能系统,一种能够在广泛的任务中理解、学习和应用知识的人工智能。

与针对特定任务而设计的狭义或专业人工智能不同,AGI 旨在实现与人类智能相当的多功能性和一般问题解决能力。AGI系统可以适应新情况,通过学习获得新技能,并表现出一定程度的自主性和创造力,使它们比任何现有的人工智能技术都更强大和有影响力。

AGI是通用人类认知能力在软件中的表现,目标是让软件能够执行训练或开发目的之外的任务。因此,面对不熟悉的任务,AGI系统可以找到解决方案,最终目的是执行人类能够完成的任何任务。

人工智能的强与弱

人工智能(AI)是一个广泛的术语,涵盖任何旨在执行通常需要人类智能的任务的计算机系统或程序。 这包括广泛的技术,从简单的基于规则的系统到更复杂的机器学习算法。

AI可以进一步分为两类:

1、 狭义人工智能(弱人工智能):

此类人工智能是针对特定任务或小范围任务而设计和训练的。 它的范围有限,无法执行其预定义域之外的功能。 狭义人工智能的例子包括 Siri 或 Alexa 等虚拟助手、在线平台使用的推荐系统以及图像识别系统。

2、 通用人工智能(强人工智能):

通用人工智能,也称为通用人工智能(Artificial General Intelligence,AGI),是指具有类人智能,能够理解、学习和执行人类所能完成的任何智力任务的人工智能。 AGI 将有能力将知识和技能从一个领域转移到另一个领域,就像人类一样。

AGI 有哪些例子?

虽然通用人工智能(AGI)仍然是一个理论概念,但目前还没有完全实现的系统的例子。

虽然人工智能领域取得了重大进展,但这些进步主要集中在狭义人工智能领域,该领域专注于专门任务和特定问题解决能力。狭义人工智能应用的一些例子包括:虚拟助理、推荐系统、自然语言处理 (NLP) 应用程序以及图像和语音识别。

实现 AGI 需要集成各种人工智能技术,包括生成对抗网络 (GAN)、微调和大型语言模型(Large Language Model,LLM)。

神经网络

AGI 最有前途的连接之一是通过神经网络的使用。 它们是一种受人脑结构和功能启发的机器学习模型,在人工智能的最新进展中发挥了重要作用。

神经网络,特别是深度神经网络,在各种人工智能任务中取得了显着的成功,包括图像识别、自然语言处理和游戏。

生成对抗网络是一种人工智能算法,由两个神经网络、生成器和鉴别器组成。 生成器的目的是创建真实的数据,例如图像或文本,而鉴别器的任务是区分真实数据和生成的数据。 通过对抗性训练,GAN 学会生成越来越真实的输出,从而创建复杂且可信的内容。

AGI 还利用了一系列其他过程和程序,包括微调、人工智能算法以及图像和文本生成。

这些成功让人们相信机器学习,特别是基于神经网络的深度学习技术,可能是通用人工智能的重要组成部分。

AGI时代的编程语言为什么不是Python?

当今的大型语言模型应用程序,包括推理应用程序和代理,大多是用 Python 编写的。 但是, 事情正在发生变化。

对于新生代的开发人员来说,Python 实在是太慢、太臃肿,而且很太笨拙了。

例如,LLVM、Clang 和 Swift 的发明者, Chris Lattner 已经证明:

Python 的速度比编译语言慢 35,000 倍,这就是为什么Chris Lattner发明 Mojo 语言,用来取代 Python的原因。

Python糟糕的运行速度,糟糕的环境配置,迫使开发人员将越来越多的应用程序逻辑推送到本机编译的代码中,例如 C、C++ 和 Rust。 例如,像 llama.cpp、whisper.cpp 和 llama2.c 等, 这些非常流行的项目现在都是以零 Python 依赖编写的。

Rust! 对,就是Rust!

Python 面临的挑战为高性能编译语言创造了机会。 随着 C 和 C++ 在一般开发者社区中逐渐被 Rust 取代。

Rust 连续7年被 StackOverflow 评为最受开发者欢迎的编程语言,其市场份额持续稳步增长。

埃隆·马斯克的XAI 公司

美国企业家、特斯拉和SpaceX公司首席执行官,埃隆·马斯克,其实也是一个对人工智能早有接触,富有远见的技术领袖。

早在2015 年,马斯克加入非营利人工智能研究公司 OpenAI 的首届董事会。[5] 据报道,他承诺向 OpenAI 投资多达 10 亿美元,但由于人工智能安全问题存在分歧,他未能成功接管其管理层,因此于 2018 年辞去了董事会职务。

xAI 由马斯克于 2023 年 3 月 9 日在内华达州创立,总部位于加利福尼亚州旧金山湾区。伊戈尔·巴布施金 (Igor Babuschkin) 曾与谷歌 DeepMind 部门相关,被马斯克聘为首席工程师。

马斯克于2023年7月12日正式宣布成立xAI。他将日期 (7 + 12 + 23 = 42) 与道格拉斯·亚当斯 (Douglas Adams) 所著的《银河系漫游指南》一书联系起来,《银河系漫游指南》一书指出,未来人类构建的其中一台超级计算机计算出生命、宇宙和一切的终极问题的答案是 42;通过42这个神奇数字, 马斯克表达了对于xAI公司的使命是“了解宇宙”。

虽然 xAI 的既定目标是“了解宇宙的真实本质”,但其近期目标之一是创建一种能够进行高级数学推理的人工智能,这是当前模型中所没有的。

2023 年 11 月 4 日,xAI 推出了 Grok,这是一个与 X 集成的 AI 聊天机器人。一旦结束测试,该机器人将仅对 X 的 Premium+ 订阅者可用。

埃隆·马斯克认为,指出 Rust 可能成为 AGI 的首选语言。

埃隆·马斯克还说:

我是 Rust 的粉丝。 鉴于 Discord 使用了它,显然可以很好地扩展。

然而,为了获得最大性能,没有什么比在专用硬件上使用定制编译器的严格 C 语言更好的了。 对于车辆推理计算机的最大帧速率很重要。

除此之外,我们主要使用 C++ 和 Python。

华为使用Rust 语言搭建可信编程框架

华为极为喜爱Rust 语言,早在Rust 成立Rust 基金会之初,就成为Rust 的白金会员。华为在Rust 上的不断投入, 推动了Rust 的快速发展。

在华为可信编程的网站, 华为是这么介绍自己的:

“作为全球领先的电信公司,华为致力于可信编程。 ”

为了实现这一目标,华为的开发团队不断致力于对 Rust 编程语言的研发支持。 作为Rust基金会的创始成员,华为全力致力于Rust社区的成长和繁荣,并赞助RustConf、RustNationUK、EuroRust、GoSim和RustChinaConference等Rust会议。

为什么华为对于Rust 语言的支持力度这么大呢? 这一点华为其实也有解释。

华为最开始是在通信行业展示出卓越的技术能力, 并成功在全球市场占据主要份额, 因此,华为在通信行业有着深厚的技术积累和沉淀。 而作为软硬件一体化比较明显的通信设备、软件中, 大量代码都是使用C/C++ 语言开发的。 随着时间的推移, 这些系统的迁移、升级中, 语言层面的考量就会显得尤为重要, 而Rust 语言在高性能、高安全性方面的特点, 是华为决定选用Rust 的重要原因。

以华为代表的通信系统软件的开发以C/C++代码为主, 这些Rust库将使C/C++到Rust的迁移更加顺畅。 作为业界领先公司和Rust基金会的创始成员,华为致力于Rust在通信软件行业,并将持续为Rust社区做出贡献。

例如,华为希望通过部分C/C++代码的迁移,在保证高性能的同时,拥有更高的安全性。在此过程中, 华为还为开发者提供一套自动化工具支持:基于开源的C2Rust转译工具, 首先从C代码生成Rust代码, 然后通过源到源变换工具自动重构。

在华为内部, 基于actor的并发编程模式开发了Rust库,方便程序员充分利用 Rust的语言特性, 例如async, await等。

Rust还跟汽车行业有关?华为: 我不想透露这么多!

“软件定义汽车(SDV)”这个术语在汽车软件行业中变得越来越常见。 它是指其特征和功能主要通过软件实现的车辆,此外,车辆中使用的硬件组件在定义车辆规格方面起着次要作用。 驱动 SDV 发展的三大趋势是:电气化、自动驾驶和互联。

现代车辆配备 100 多个电子控制单元 (ECU),运行数百万行代码。 对于 SDV,随着运行它们所需的计算能力进一步扩展,这个数字甚至会更高。

汽车软件传统上是用 C 和 C++ 开发的,因为这些语言最适合资源受限的嵌入式系统。 然而,这些语言很容易出现与内存安全和数据竞争条件相关的问题。

Rust 是一个不错的选择; 它是一种专门为克服这些限制而设计的语言,而无需运行时垃圾收集机制的开销。 此外,整个行业都观察到,Rust 在执行时间和内存使用方面的效率与 C 和 C++ 相当——这意味着您在性能方面不会损失任何东西。

Rust 提供的针对内存泄漏和竞争条件的内置安全性使其非常适合高度重视功能安全性的汽车软件。 考虑到这一点,AUTOSAR 和 SAE 等汽车组织已经组建了兴趣小组,来评估 Rust 在汽车中间件和系统软件中的可用性。

此外,作为一种现代语言,Rust 提供了复杂的构建工具,例如 Cargo,使开发人员可以轻松遵循最佳软件开发实践,例如 TDD、通过 crate 进行依赖管理、linter 检查、格式化和文档等。 这个成熟的工具生态系统提供了管理大型项目的标准化方法,从而提高了开发人员的工作效率。

事实上,汽车行业需要研究现代编程语言,它们至少可以解决 C 和 C++ 无法解决的关键问题,同时又不牺牲这些语言提供的运行时效率。 以下是 Rust 被视为强有力替代方案的一些原因:

Rust 在编译时强制执行内存安全 - Rust 用于处理数据的基于所有权的资源管理 (OBRM) 方法可确保内存安全,而不会影响运行时效率。安全并发 - OBRM 方法还确保多个执行线程之间安全共享数据,而无需竞争条件。现代编译器和工具 - Rust 编译器会产生准确的警告和错误,帮助开发人员快速解决问题。 Rust 构建环境包括用于构建管理的 Cargo、格式化程序、linter、文档生成器、测试等现代工具,可提高开发人员的工作效率。

Rust 社区和生态系统 - 随着 Rust 在行业中的采用不断增加,Rust 社区也在快速发展。 有大量开源库和项目可供开发人员浏览 Rust 开发之旅。

Rust + Wasm:最佳路径

然而,将 Rust 直接编译为本机机器代码,还存在一些问题:

安全。 本机二进制文件可能会使整个系统崩溃。可移植性。 本机二进制文件特定于底层操作系统和硬件。性能。 由于安全性和可移植性要求,通常需要本机二进制文件在 Linux 容器内运行。 此类容器会增加程序的启动和运行时开销,因而会降低程序的运行速度。

Wasm 作为Rust 应用程序的领先安全运行时,Rust+Wasm恰恰是解决这些问题的最好方法。 借助云优化的 Wasm 运行时 WasmEdge,开发人员现在可以选择在 LLM 应用程序堆栈的每一层中使用高性能 Rust,作为 Python 的高性能替代方案。

使用 Rust + Wasm 代替 Python 来增强性能、减少占用空间并提高安全性。

Rust + Wasm的具体方案:

代理层:网络密集型任务,用于接收互联网事件、连接到数据库以及调用其他 Web 服务。 Rust 和 WasmEdge 为高密度和高性能代理应用程序提供异步和非阻塞 I/O。 示例:flows.network。推理层:CPU 密集型任务,将数据(例如单词和句子)预处理为数字,并将数字后处理为句子或结构化 JSON 数据。 这些函数可以用 Rust 编写以实现最佳性能,并在 WasmEdge 中运行以实现安全性和可移植性。 示例:mediapipe-rs。矢量层:GPU 密集型任务,通过 WasmEdge 的 WASI-NN 插件从 Wasm 传递到本机张量库,例如 llama.cpp、PyTorch 和 Tensorflow。

结论

Rust 语言是华为可信计算框架的首选语言, 也是埃隆 马斯克推荐的通用人工智能时代的首选语言, 而在具体架构方面,Rust 和 Wasm 的组合,就是取代 Python 的高性能且对开发人员友好的最佳开发架构。

 

0 阅读:0

查理谈科技

简介:感谢大家的关注