百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

比C语言还快20%!Mojo首个大模型开放下载,性能达Python版250倍

off999 2025-04-26 20:24 23 浏览 0 评论

明敏 发自 凹非寺

量子位 公众号 | QbitAI

专为AI而来的新语言Mojo,推理LLaMA2性能比Python提升250倍

比C语言也要快上20%

上周五才开放下载,Mojo这么快就自证实力了。

要知道,之前官方号称Mojo可以比Python快6.8万倍。

而且作者表示,其实还有进一步提升的空间。

这也展示了通过Mojo进行硬件优化的潜力。

OpenAI创始成员Karpathy已经赶来围观了。

目前,LLaMA.mojo已开放下载~

几行代码即可下载

带来这个版本的老哥是一位前Meta工程师Aydyn Tairov

他利用Mojo的SIMD(Single Instruction Multiple Data,单指令多数据)和向量化原语,将llama2.py转化为Mojo,性能较Python版本提升了近250倍

即便在快速运行模式下,Mojo版本也比C语言版本性能提升15-20%

不过作者尝试了在Mojo中使用并行模式,速度就慢了很多。

作者进行性能比较的系统和硬件情况如下:

如果你也想下载运行这个模型,需要先在环境中安装配置Mojo(文档链接见文末)。

首先将存储库保存到保存项目时的文件夹:

git clone https://github.com/tairov/llama2.mojo.git

然后打开存储文件夹:

cd llama2.mojo

下面就可以下载模型:

wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories15M.bin

然后即可运行:

mojo llama2.mojo
num hardware threads: 6 SIMD vector width: 8
checkpoint size: 60816028
<s>
Once upon a time, there was a little girl named Lily. She loved to play outside in the sunshine. One day, she saw a big, red ball in the sky. It was the sun! She thought it was so pretty.
Lily wanted to play with the ball, but it was too high up in the sky. She tried to jump and reach it, but she couldn't. Then, she had an idea. She would use a stick to knock the ball down.Lily found a stick and tried to hit the ball. But the stick was too short. She tried again and again, but she couldn't reach it. She felt sad.
Suddenly, a kind man came by and saw Lily. He asked her what was wrong. Lily told him about the ball. The man smiled and said, "I have a useful idea!" He took out a long stick and used it to knock the ball down. Lily was so happy! She thanked the man and they played together in the sunshine.
<s>
Once upon a time, there was a little girl named Lily. She loved to play outside in the sunshine. One day, she saw a big, red
achieved tok/s: 264.24870466321244

为啥Mojo这么快?

不过话说回来,为啥Mojo的速度可以这么快?

这还得从Mojo的来历说起。

它诞生于今年5月,专为AI领域开发,由LLVM之父Swift之父Chris Lattner带来。

它兼顾了Python和C++的优点,语法简单、运行快,而且可以和任何Python库无缝交互。

自从上线以来,Mojo已经吸引了12万开发者,GitHub星标达9K。

今年8月,Mojo背后公司Modular新获1亿美元融资,总融资金额达1.3亿美元。

Mojo语言这么快的原因,可以归结为4点。

第1步,通过类型注释消除Python动态类型的损失,并做代数简化(algebraic simplifications),避免开方运算以及简化复数平方运算,达到89倍加速。

第2步,通过向量化实现SIMD(单指令多数据)的并行计算,并让向量宽度以匹配CPU的FMA(浮点乘法累加单元)数量,达到874倍

第3步,把前两步开发好的单线程实现改成多核并行化,对于88核的系统再获得30倍加速,与原始Python相比已经到了26000倍

第4步,解决并行化中的加载不均衡问题,让线程从池中动态获取任务,得到最终结果68000倍

几天前,Mojo正式开放下载。目前支持Linux系统,后续将陆续添加Mac和Windows。

同时支持VSCode插件,可以实现语法高亮和代码补全等功能。

以及也能像Python一样在Jupyter里交互式操作。

感兴趣的童鞋,可以去上手体验一下~

GitHub地址:
https://github.com/tairov/llama2.mojo

Mojo文档:
https://docs.modular.com/mojo/manual/get-started/index.html

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

相关推荐

阿里云国际站ECS:阿里云ECS如何提高网站的访问速度?

TG:@yunlaoda360引言:速度即体验,速度即业务在当今数字化的世界中,网站的访问速度已成为决定用户体验、用户留存乃至业务转化率的关键因素。页面加载每延迟一秒,都可能导致用户流失和收入损失。对...

高流量大并发Linux TCP性能调优_linux 高并发网络编程

其实主要是手里面的跑openvpn服务器。因为并没有明文禁p2p(哎……想想那么多流量好像不跑点p2p也跑不完),所以造成有的时候如果有比较多人跑BT的话,会造成VPN速度急剧下降。本文所面对的情况为...

性能测试100集(12)性能指标资源使用率

在性能测试中,资源使用率是评估系统硬件效率的关键指标,主要包括以下四类:#性能测试##性能压测策略##软件测试#1.CPU使用率定义:CPU处理任务的时间占比,计算公式为1-空闲时间/总...

Linux 服务器常见的性能调优_linux高性能服务端编程

一、Linux服务器性能调优第一步——先搞懂“看什么”很多人刚接触Linux性能调优时,总想着直接改配置,其实第一步该是“看清楚问题”。就像医生看病要先听诊,调优前得先知道服务器“哪里...

Nginx性能优化实战:手把手教你提升10倍性能!

关注△mikechen△,十余年BAT架构经验倾囊相授!Nginx是大型架构而核心,下面我重点详解Nginx性能@mikechen文章来源:mikechen.cc1.worker_processe...

高并发场景下,Spring Cloud Gateway如何抗住百万QPS?

关注△mikechen△,十余年BAT架构经验倾囊相授!大家好,我是mikechen。高并发场景下网关作为流量的入口非常重要,下面我重点详解SpringCloudGateway如何抗住百万性能@m...

Kubernetes 高并发处理实战(可落地案例 + 源码)

目标场景:对外提供HTTPAPI的微服务在短时间内收到大量请求(例如每秒数千至数万RPS),要求系统可弹性扩容、限流降级、缓存减压、稳定运行并能自动恢复。总体思路(多层防护):边缘层:云LB...

高并发场景下,Nginx如何扛住千万级请求?

Nginx是大型架构的必备中间件,下面我重点详解Nginx如何实现高并发@mikechen文章来源:mikechen.cc事件驱动模型Nginx采用事件驱动模型,这是Nginx高并发性能的基石。传统...

Spring Boot+Vue全栈开发实战,中文版高清PDF资源

SpringBoot+Vue全栈开发实战,中文高清PDF资源,需要的可以私我:)SpringBoot致力于简化开发配置并为企业级开发提供一系列非业务性功能,而Vue则采用数据驱动视图的方式将程序...

Docker-基础操作_docker基础实战教程二

一、镜像1、从仓库获取镜像搜索镜像:dockersearchimage_name搜索结果过滤:是否官方:dockersearch--filter="is-offical=true...

你有空吗?跟我一起搭个服务器好不好?

来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。昨天闲的没事的时候,随手翻了翻写过的文章,发现一个很严重的问题。就是大多数时间我都在滔滔不绝的讲理论,却很少有涉及动手...

部署你自己的 SaaS_saas如何部署

部署你自己的VPNOpenVPN——功能齐全的开源VPN解决方案。(DigitalOcean教程)dockovpn.io—无状态OpenVPNdockerized服务器,不需要持久存储。...

Docker Compose_dockercompose安装

DockerCompose概述DockerCompose是一个用来定义和管理多容器应用的工具,通过一个docker-compose.yml文件,用YAML格式描述服务、网络、卷等内容,...

京东T7架构师推出的电子版SpringBoot,从构建小系统到架构大系统

前言:Java的各种开发框架发展了很多年,影响了一代又一代的程序员,现在无论是程序员,还是架构师,使用这些开发框架都面临着两方面的挑战。一方面是要快速开发出系统,这就要求使用的开发框架尽量简单,无论...

Kubernetes (k8s) 入门学习指南_k8s kubeproxy

Kubernetes(k8s)入门学习指南一、什么是Kubernetes?为什么需要它?Kubernetes(k8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。它...

取消回复欢迎 发表评论: