本文由 GPT- 4 所创作,配图由 Stable Doodle 及 ChatGPT 们生成。
编者按
AGI 的未来,究竟属于 Rust 还是 Mojo?或者我们还需要编程语言吗?
今天,LLVM 之父、苹果的编程语言 Swift 之父、新编程语言 Mojo 之父 Chris Lattner 转了一篇题为「Rust or Mojo for the future of AI?」的文章,文章标题很吸睛,于是我综合使用了 ChatGPT(GPT-3.5)、微软的 Bing AI、终于支持中文的 Google Bard 和 GPT-4 轮番上阵来以这篇文章做素材写文章。
结果非常明显,最终比较靠谱能采用的依然是 GPT-4。但也有几点显著的不同:
首先,让翻译,ChatGPT(GPT-3.5)直接表示臣妾做不到啊,Bing AI 则是对文章的内容进行了概要总结。
在我写了完整的 Prompt 之后,他们开始大展身手了,ChatGPT(GPT-3.5)严格遵守 Prompt:
Bing AI 在 Creative(更多创造力)模式下开启了长篇大论,乍看内心直呼🐂,但细看之下则知实属一本正经地胡说八道,切换到 Balanced(更多平衡)之后,同样的 Prompt,它却很惜字如金了。
而 Google Bard 特别言简意赅,却很直观地给出了对比的表格:
我在 Prompt 里特别写到了「在必要的地方体现代码」,但在实际的生成中,GPT-4 是唯一一个包含了代码的,尽管量少,其他几个压根就没有体现到代码。
让马斯克颇为钟意的 AI 大牛 Andrej Karpathy(现任 OpenAI 科学家)今年初说「The hottest new programming language is English(意指最好的编程语言是自然语言)」,由此引发了诸多关于我们未来是否还需要编程语言的讨论,这个问题在 ChatGPT(GPT-3.5)、Bing AI、Google Bard 和 GPT-4 这里,却收获了一致的答案:在 AGI 时代,我们仍然需要编程语言。Bard 这样说道:「编程语言是一种强大的工具,它使我们能够以一种精确和可重复的方式对计算机进行控制,也是人工智能发展的必要工具。」
接下来,让我们一起看 GPT-4 眼中,编程语言的未来。同样,本文的封面图依然采用 Prompt so easy 的 Stable Doodle 生成。朋友们,如果你在阅读文章时,发现有任何存在错误的地方,请一定要指出来,我们一起来训练 GPT 们~
GPT-4:面向 AGI 时代的编程 —— Rust 还是 Mojo?
在人工智能领域,我们迎来了一个决定性的问题:在通用人工智能(AGI)的时代中,我们应该选择 Rust 还是 Mojo 作为我们的编程语言?为了解答这个问题,我们需要深入探讨这两种语言的特点、优势,以及它们在不同场景中的应用及未来发展。
Rust 和 Mojo:理想中的 AI 编程语言
面对现在 C/C++ 和 Python 在将机器学习模型投入生产、调试问题时的困扰,我们亟需一种语言,既能让系统程序员充分利用硬件资源,同时又能作为一种安全的高级语言,使代码更容易、可靠且高效地投入生产。Rust 和 Mojo 就是这样的语言。
Rust 是一种系统编程语言,它强调安全、速度和并发性,尽管学习曲线陡峭,但它在业界已经开始引起注意作为可能的解决方案。将使用 C/C++/Python 的计算机视觉 ML 模型的生产代码转换为 Rust 是一种愉快的体验,Rust 作为一种高级安全和富有表达力的语言,性能开销非常低。但是,其生态系统仍然年轻,我们仍需要依赖如 OpenCV 这样的庞大 C++ 项目,该项目又依赖于如 FFmpeg 这样的庞大 C++ 项目进行图像和视频的编码和解码。
Mojo 是一种新兴的编程语言,专为机器学习和数值计算而设计。它的目标是提供一种方式,让研究者可以在保持 Python 的优雅和简洁的同时,逐步用 Mojo 重写函数以获得更好的性能,从而消除所有 C/C++/Fortran 依赖项的复杂性和间接性。
社区观点:Rust 与 Mojo 的未来
在 Rust 和 Mojo 的社区中,有许多关于这两种语言未来发展的讨论。其中,一部分人试图在 Rust 中重写 OpenCV 的功能,但自 2019 年推出以来并没有取得太大进展。另一部分人正在使用 opencv-rust C++ 绑定,尽管这个项目是由一个专注但大多是单独的贡献者维护的。
在 Mojo 社区中,有人尝试使用 Mojo 重写 Python、C++ 和 Fortran 的代码。在 Mojo 的环境中,我们可以在一个 Jupyter 笔记本中运行 Python,然后使用 Mojo 代码进行性能优化。
Rust 和 Mojo 的适用场景和未来发展
Rust 的设计初衷是为了解决系统编程的问题,因此它在需要高性能和强大的底层控制的场景中非常有用。在未来,随着 Rust 生态系统的成熟,Rust 有可能在 AI 领域扮演更重要的角色。
Mojo 的设计目标是为了满足机器学习和数值计算的需求,因此它在需要高性能计算和方便的数值处理的场景中非常有用。在未来,Mojo 有可能会成为实现 AGI 的一个重要工具。
结论:在 AGI 时代,我们还需要编程语言吗?
尽管人工通用智能的发展使得机器能够自我学习和解决问题,但编程语言仍然是一个必要的工具。因为,编程语言不仅是一种实现功能的工具,更是一种思考问题、设计解决方案的方式。它帮助我们更好地理解问题,更精确地表述解决方案。
Rust 和 Mojo 的出现,为我们提供了新的思考和工作方式。Rust 提供了一种静态类型、安全并且性能优越的方式来编写系统级别的代码。而 Mojo 则试图解决 Python 在数值计算和机器学习方面的性能问题,同时保留 Python 的优雅和简洁。
在 AGI 的时代,我们可能不再需要关注计算机内部的底层细节,而是更多地关注如何设计和理解复杂的系统。这可能需要我们创建新的编程语言,或者改进现有的编程语言。
无论是 Rust 还是 Mojo,或者是其他的编程语言,我们都应该保持开放和探索的态度。因为在 AGI 的世界,唯一不变的就是变化 。