专注AIGC领域的专业社区,关注微软&OpenAI、百度文心一言、讯飞星火等大语言模型(LLM)的发展和应用落地,聚焦LLM的市场研究和AIGC开发者生态,欢迎关注!Python凭借它“人生苦短,我用Python”的潇洒,还有背后庞大的生态库,稳坐AI界的头把交椅,从入门小哥到学术大牛,人人都爱它。而Rust以其“内存安全、零成本抽象、无畏并发”三件法宝,正在受到大公司和开发者们的青睐。
一个用纯Rust从零开始实现完整大语言模型的项目RustGPT,在GitHub上火了,两天星标超过1.4k。该项目没有外部ML框架,仅使用ndarray从头开始构建矩阵运算来实现。
真的从零开始用Rust搓了个GPT
项目复刻了整个LLM的功能链,从预训练、指令微调,一直到你能跟它聊天的交互模式,全给办了。架构非常简单:
整个项目设计得跟乐高积木一样,模块化特别清晰:
src/main.rs
:总指挥部,负责整个训练流程、数据怎么处理、以及最后怎么跟你聊天。src/llm.rs
:核心引擎,大模型的前向传播、反向传播、训练逻辑全在这。src/transformer.rs
:Transformer的核心部件,把注意力和前馈网络这两个左膀右臂组装起来。src/self_attention.rs
:大名鼎鼎的多头自注意力机制,模型“理解”上下文关系就靠它。src/feed_forward.rs
:位置感知前馈网络,让模型处理信息更有层次。src/embeddings.rs
:词嵌入层,把文字转化成模型能懂的数学语言。src/output_projection.rs
:输出投影层,把模型计算出的数学结果再翻译成人类语言。src/vocab.rs
:字典和分词器,模型的“新华字典”。src/layer_norm.rs
:层归一化,防止模型训练时“飘了”的稳定器。src/adam.rs
:Adam优化器,指导模型如何“学习”得又快又好。
模型的配置参数非常“迷你”,但五脏俱全,能解剖一个完整的大模型。
它的成长之路也跟主流模型一样,分两步走:
预训练阶段先给它“喂”一堆事实性陈述,让它学习世界的基本规律。比如告诉它“太阳东升西落”、“水往低处流”这类知识。
指令微调阶段教它学会“对话”。用一问一答的语料库来训练,让它明白人类是如何交流的。比如“用户:山是怎么形成的?助手:山是地壳板块运动或火山活动形成的……”
等这两步都走完,这个纯Rust打造的模型就能跟你进行简单的常识问答了:
这不就是个玩具吗?为什么火?Enter prompt: How do mountains form?
Model output: Mountains are formed through tectonic forces or volcanism over long geological time periods.
Rust在AI开发应用领域同时弥补了C/C++和Python的一些非常重要的不足之处:
搞算法研究、快速验证想法,Python是永远的神,无人能敌。但模型一旦上线部署,变成一个7x24小时不能宕机、要扛住海量并发的服务,Python的性能瓶颈和全局解释器锁(GIL)就成了阿喀琉斯之踵。这时候,大家通常会请出C++这位“性能救星”来重写核心模块。然而,请神容易送神难。C++带来了极致性能,也带来了内存安全的“诅咒”。缓冲区溢出、悬垂指针这些幽灵般的bug,不仅是工程师的噩梦,更是70%安全漏洞的温床。
Rust的出现,恰好就站在这两者之间,提供了一个近乎完美的“第三选项”。它承诺给你媲美C++的运行速度和内存控制力,却通过所有权系统在编译时就彻底消灭了内存安全问题,让你“无畏并发”;同时,它又拥有现代化的包管理工具(Cargo)和友好的编译器,开发体验远胜于C++。
Rust的这种重要补充,使整个Rust社区都被点燃了,高质量的LLM相关项目越来越多。
咱们来看看几位重量级选手:
1. mistral.rs,一个快到没朋友的推理引擎
这项目的目标非常明确:就是要快,快到极致。
为了把硬件性能榨干,它对各种加速器的支持也做到了极致:
2. Hugging Face的candle
框架
它的定位是“一个为Rust设计的极简机器学习框架,专注于性能和易用性”。
“极简”和“易用”这两个词,直击Rust学习曲线陡峭的痛点。candle
是怎么做的呢?
它把API设计得和PyTorch非常像,大大降低了Python开发者迁移过来的学习成本;后端全覆盖,CPU、CUDA、WASM,你想在哪跑,它就支持在哪跑;模型库丰富;针对云端部署场景,它解决了传统大型框架实例化慢、资源消耗大的问题,特别适合Serverless (无服务器) 架构。
除了这两大明星项目,还有像rustformers/llm
、kalosm
以及各种llama.cpp
的Rust绑定,整个生态已经发展成了一片繁荣的景象。
Rust到底牛在哪?
内存安全:一行代码,干掉70%的安全漏洞
这可能是Rust最硬核的特性,没有之一。微软研究院 (Microsoft Research) 有个惊人的统计数据,微软每年修复并分配CVE (通用漏洞披露) 的安全漏洞中,70%的根源是内存安全问题。
用C/C++写过代码的同学,肯定都经历过被指针折磨的日日夜夜:缓冲区溢出、悬垂指针、野指针……这些问题就像代码里的“幽灵”,平时看不见摸不着,一旦出事就是系统崩溃或者被黑客攻击。
Rust的解决方案堪称釜底抽薪。它设计了一套独特的“所有权(Ownership)”、“借用(Borrowing)”和“生命周期(Lifetimes)”机制。这套组合拳的核心思想是,在编译代码的时候,编译器就会像一个极其严格的图书管理员,检查你每一寸内存的使用是否合规。任何可能导致内存问题的代码,连编译都通不过,直接给你打回去重写。
无畏并发:为高并发推理量身打造的“八核大脑”
大模型的服务,天生就是高并发场景。Python的GIL (全局解释器锁) 在这里就显得特别尴尬,它就像一个十字路口的独裁交警,不管你有多少个车道(CPU核心),一次只允许一辆车通过,导致多线程性能大打折扣。
而Rust的并发模型,被社区骄傲地称为“无畏并发(Fearless Concurrency)”。所有权系统杜绝数据竞争,从根源上避免了并发编程中最常见的bug。顶级的异步编程支持,让编写高并发、高吞吐量的网络服务变得既简单又高效。例如它支持“自动张量并行”,可以把一个大模型拆分到多个GPU或CPU上协同工作。
零成本抽象:让你写得爽,跑得也快
这是Rust另一个让C++开发者羡慕嫉妒恨的特性。所谓“零成本抽象”,意思就是你可以使用很多高级、优雅的语言特性(比如迭代器、泛型、模式匹配),但这些特性在编译之后,会被优化成和手写的C/C++代码一样高效的机器码,不会带来任何运行时的性能损失。
在一项文件I/O操作的测试中,Rust的速度比Python快了好几个数量级,这就是零成本抽象最直观的体现。Rust用一种近乎天才的设计,同时解决了性能、安全、开发体验这三个在传统编程语言中难以调和的“不可能三角”。
巨头们是怎么用Rust的?
当一项技术开始被行业巨头们认真研究和投入资源时,就说明它已经脱离了“小众玩具”的范畴,真正具备了改变产业格局的潜力。我们来看看科技圈的“五常”们,都是怎么看待和布局Rust的。
微软对Rust的爱,几乎是写在脸上的。毕竟自家产品深受C/C++内存安全问题的毒害,他们比谁都渴望一个更安全的替代品。微软研究院 (Microsoft Research) 搞了个项目,用LLM来帮你修复Rust代码的编译错误。特别是那些让新手头疼的所有权、生命周期问题,AI能自动给出修改建议,准确率高达74%。这简直是在用魔法打败魔法,极大地降低了Rust的学习门槛。
他们把还LLM和一个叫Verus的形式验证工具结合起来,让AI自动为你的Rust代码生成“数学上正确”的证明。
谷歌则是从最核心的安卓系统开始,大规模地引入Rust。而且把内部用了多年的comprehensive-rust培训课程开源了。这套课程覆盖了从基础到并发,再到安卓开发的方方面面,已经培训了数千名原本写C++和Java的工程师。当一家公司开始花大力气对员工进行“换脑”式培训时,其战略决心可见一斑。
亚马逊对Rust的应用,则体现了其“云+端”的业务特色。负责Echo智能音箱等硬件产品的团队,正在研究如何用Rust来提升设备端AI功能的可靠性和性能。AWS的全托管LLM服务Bedrock,早早就提供了官方的Rust SDK,鼓励开发者用Rust来构建云上的AI应用。
Meta则在探索一个非常前沿的方向:WebLLM。这个项目旨在利用Rust和WebGPU技术,把大模型和聊天机器人直接塞进你的浏览器里运行。
Rust要在AI领域取代Python和C++吗?
Python的地位依然是无法撼动的。它那无与伦比的灵活性、极低的上手门槛和浩如烟海的科学计算库,使其成为AI算法研究、模型探索、快速原型验证的“利剑”。科学家和算法工程师们,依然会用Python来挥洒创意,探索AI的边界。Python是“想法”变成“模型”最快的路径。
C++是AI世界的“幕后英雄”。所有主流的深度学习框架,其核心计算层无一例外都是用C++编写的。它能最大限度地压榨硬件性能,与GPU、CUDA进行最底层的交互。在模型训练这个需要极致算力的环节,以及那些已经存在了数十年的庞大工业软件生态中,C++的地位依然稳固。它是“性能”的最终保障。
那么,Rust的角色是什么?它精准地切入了Python和C++之间的那个巨大“真空地带”——性能、安全与开发效率的交叉口。
当模型训练好,需要部署成一个7x24小时稳定运行、能抗住高并发的服务时,Rust的内存安全、无畏并发和高性能,简直是完美的解决方案。它比Python快,比C++安全,开发体验还更好。
模型需要被塞进手机、汽车、无人机这些资源受限的设备里时,Rust的低内存占用、无GC (垃圾回收) 的特性就成了巨大的优势。它编译出的二进制文件小,运行效率高,是端侧AI的理想选择。
你想让AI模型直接在浏览器里跑起来时,Rust是目前唯一能高效、安全地编译到WebAssembly (网页汇编) 的系统级语言。
Python负责“生孩子”:搞研究,做实验,快速迭代模型。C++负责“打地基”:写最底层的计算库,与硬件死磕。Rust负责“建房子和搞物业”:把模型部署成安全、可靠、高效的服务,并把它推广到各种各样的设备上。
Rust通过降低硬件门槛,让大模型在低端或边缘硬件也能流畅跑起来;它通过提升开发效率和安全性,让企业能更有信心地将AI应用于金融、医疗等核心业务。
理解Python的灵活,敬畏C++的深邃,并拥抱Rust带来的现代化工程能力,或许才是AI开发者最佳选择。
参考资料:
https://github.com/tekaratzas/RustGPT
https://github.com/EricLBuehler/mistral.rs
https://github.com/huggingface/candle
https://www.microsoft.com/en-us/research/publication/rustassistant-using-llms-to-fix-compilation-errors-in-rust-code
https://www.amazon.science/publications/verifying-dynamic-trait-objects-in-rust
https://cjwebb.com/aws-bedrock-with-rust
https://dev.to/hamzakhan/vs-rust-vs-python-the-ultimate-showdown-of-speed-and-simplicity-for-2024-2afi
https://www.pullrequest.com/blog/rust-safety-writing-secure-concurrency-without-fear
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.