马斯克为何说大模型中R语言会替代Python

为什么不是Python?

当今的LLM应用程序,包括推理应用程序和代理,大多是用 Python 编写的。但这种情况即将改变。对于新一波的开发人员来说,Python 实在是太慢、太臃肿,而且要命的是太笨拙了。事实上, LLVM、Clang 和 Swift 的发明者Chris Lattner已经证明 Python 比编译语言慢 35,000 倍——这就是他发明 Mojo 作为Python 替代品的原因。

Chris Lattner 表示,编译语言可能比 Python 快 35,000 倍。

这迫使开发人员将越来越多的应用程序逻辑推送到本机编译的代码中,例如 C、C++ 和 Rust。例如,非常流行的项目,如llama.cpp、llama.cpp和llama2.c,都是以Python 依赖编写的。

格雷格·布罗克曼 (Greg Brockman) 是 OpenAI 的联合创始人兼总裁。他也认为 Python 太慢了

这反过来又会降低 Python 开发人员的体验。事实上,管理云部署的 Python 安装已成为一项重大挑战。

Chris Albon 是维基媒体机器学习总监。即使是他也很难理解“现代”Python

换句话说,Python 不仅非常慢,而且很难用于开发 LLM 应用程序。

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

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

Rust + Wasm,两全其美

   然而,将 Rust 直接编译为本机机器代码还有其他问题。

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

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

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

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

结论

   Rust 和 Wasm 可能是当今 Python 的高性能且对开发人员友好的替代品。

  • 它们与底层 GPU 张量库集成得更好,这些库也是用 C/C++/Rust 编写的。
  • 它们在实现特定于应用程序的预处理和后处理数据功能(这是推理工作负载的大部分)方面更加高效
  • 它们可以更有效地执行LLM 代理所需的网络密集型和长时间运行的任务。
  • 它们的容器映像大小比 Python 映像小得多(几 MB 与数百 MB)。
  • 由于软件供应链有限且攻击面减少,它们比 Python 容器更安全。
  • 它们比 Python 程序更容易安装和管理依赖项。

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

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

相关文章

Node.js入门

安装 前往官网下载即可:https://nodejs.org/zh-cn 安装之后检查是否成功并查看版本,winr --> 输入cmd --> 确认 --> 进入命令提示符窗口 --> 输入 node -v --> 出现以下就代表成功了,这也是node的版本号 什么是Node.js Nod…

MyBatis动态SQL:打造灵活可变的数据库操作

目录 if标签trim标签where标签set标签foreach标签 动态SQL就是根据不同的条件或需求动态地生成查询语句,比如动态搜索条件、动态表或列名、动态排序等。 if标签 在我们填写一些信息时,有些信息是必填字段,有的则是非必填的,这些…

[oneAPI] 使用序列到序列网络和注意力进行翻译

[oneAPI] 使用序列到序列网络和注意力进行翻译 oneAPI特殊写法使用序列到序列网络和注意力进行翻译Intel Optimization for PyTorch导入包加载数据并对数据进行处理序列到序列网络和注意力模型与介绍编码器解码器简单解码器注意力解码器 训练过程准备训练数据训练模型可视化注意…

TCP/IP---网络层

一、网络层的主要功能 1、提供了通讯过程中,必须要使用的另一个地址:逻辑IP地址【ipv4、ipv6】 2、连接不同媒介类型【内网--外网(intra -- inter)】 3、根据运行的不同的路由协议,选择不同的最佳路径 4、在选择的最好…

免费开源的vue+express搭建的后台管理系统

此项目已开源 前端git地址:exp后台管理系统前端: exp后台管理系统前端 后端git地址:express后台管理系统: express后台管理系统 安装运行 npm i yarn i 前端: npm run dev | yarn dev 后端: npm run start | yarn start 主要技术栈 前端后端名称版本名…

【抖音直播小玩法】介绍

一、是什么 直播小玩法是基于抖音直播场景的新型实时互动内容。直播小玩法由开发者自主开发,接入平台并开放给抖音主播挂载使用。开发者提供创意,依托平台生态,获取收益。 介入标准: 企业开发者,暂不支持个人开发者…

【IMX6ULL驱动开发学习】07.驱动程序分离的思想之平台总线设备驱动模型和设备树

一、驱动程序分离的思想 【IMX6ULL驱动开发学习】05.字符设备驱动开发模板(包括读写函数、poll机制、异步通知、定时器、中断、自动创建设备节点和环形缓冲区)_阿龙还在写代码的博客-CSDN博客 之前编写驱动程序的代码存在不少弊端:移植性差…

linux vscode 下开发

linux vscode 下开发 javajdk插件 java jdk 各种JAVA JDK的镜像分发 编程宝库 - 技术改变世界 jdk 镜像 ubuntu22.04 安装 # Linux x64 64位 jdk-8u351-linux-x64.tar.gztar -zxf jdk-8u351-linux-x64.tar.gz mv jdk1.8.0_351 jdk8/ vim ~/.profile expo…

Ceph如何操作底层对象数据

1.基本原理介绍 1.1 ceph中的对象(object) 在Ceph存储中,一切数据最终都会以对象(Object)的形式存储在硬盘(OSD)上,每个的Object默认大小为4M。 通过rados命令,可以查看一个存储池中的所有object信息,例如…

chromedriver.exe 的所有版本下载地址

Chrome for Testing availability 上面的网址是V115 v116.... 以上的。 CNPM Binaries Mirror 上面这个是V115版本以下的。 这个文章没有任何实际价值,记录的原因是因为突然发现过去的py无法运行,原因是chrome浏览器偷偷升级到V115,于是找…

Redis消息传递:发布订阅模式详解

目录 1.Redis发布订阅简介 2.发布/订阅使用 2.1 基于频道(Channel)的发布/订阅 2.2 基于模式(pattern)的发布/订阅 3.深入理解Redis的订阅发布机制 3.1 基于频道(Channel)的发布/订阅如何实现的? 3.2 基于模式(Pattern)的发布/订阅如何实现的? 3.3 Sp…

Linux多线程【初识线程】

✨个人主页: 北 海 🎉所属专栏: Linux学习之旅 🎃操作环境: CentOS 7.6 阿里云远程服务器 文章目录 🌇前言🏙️正文1、什么是线程?1.1、基本概念1.2、线程理解1.3、进程与线程的关系…

【Java 动态数据统计图】动态数据统计思路案例(动态,排序)二(113)

需求&#xff1a; 有一个List<Map<String.Object>>,存储了区域的数据&#xff0c; 数据是根据用户查询条件进行显示的&#xff1b;所以查询的数据是动态的&#xff1b;按区域维度统计每个区域出现的次数&#xff0c;并且按照次数的大小排序&#xff08;升序&#…

容器和云原生(二):Docker容器化技术

目录 Docker容器的使用 Docker容器关键技术 Namespace Cgroups UnionFS Docker容器的使用 首先直观地了解docker如何安装使用&#xff0c;并快速启动mysql服务的&#xff0c;启动时候绑定主机上的3306端口&#xff0c;查找mysql容器的ip&#xff0c;使用mysql -h contain…

shell和Python 两种方法分别画 iostat的监控图

在服务器存储的测试中,经常需要看performance的性能曲线&#xff0c;这样最能直接观察HDD或者SSD的性能曲线。 如下这是一个针对HDD跑Fio读写的iostat监控log,下面介绍一下分别用shell 和Python3 写画iostat图的方法 1 shell脚本 环境:linux OS gnuplot工具 第一步 :解析iosta…

设计模式——适配器模式

引入实例 说起适配器其实在我们的生活中是非常常见的&#xff0c;比如&#xff1a;学校的宿舍的电压都比较低&#xff0c;而有的学生想使用大功率电器&#xff0c;宿舍的就会跳闸&#xff0c;然而如果你使用一个适配器&#xff08;变压器&#xff09;就可以使用了&#xff08;…

微服务最佳实践,零改造实现 Spring Cloud Apache Dubbo 互通

作者&#xff1a;孙彩荣 很遗憾&#xff0c;这不是一篇关于中间件理论或原理讲解的文章&#xff0c;没有高深晦涩的工作原理分析&#xff0c;文后也没有令人惊叹的工程数字统计。本文以实际项目和代码为示例&#xff0c;一步一步演示如何以最低成本实现 Apache Dubbo 体系与 S…

基于Servlet实现的管理系统(包含服务器源码+数据库)

资料下载链接 介绍 基于Servlet框架的管理系统 简洁版 &#xff1b; 实现 登录 、 注册 、 增 、 删 、 改 、 查 &#xff1b; 可继续完善增加前端、校验、其他功能等&#xff1b; 可作为 Servlet项目 开发练习基础模型&#xff1b; 课程设计 、 毕业设计 开发基础&…

Git 删除 GitHub仓库的文件

新建文件夹 git bash here 在新建的文件夹里右键git bash here打开终端&#xff0c;并执行git init初始化仓库 git clone <你的地址> 找到github上要删除的仓库地址&#xff0c;并复制&#xff0c;在终端里输入git clone <你的地址> 要删除文件的库里右键git b…