Made In Heaven,LLM要加速了

借鉴了荒木老师笔下的普奇神父的台词

玩LLM的多数用的是Huggingface框架,而它本身提供的是accelerate库来提升模型的训练推理速度。这些都离不开Nvidia 的 Cuda 计算,而目前适配这一驱动的只有Windows和Linux。于是我就尝试在这两个系统上进行加速实验,尝试Huggingface Doc中推荐的 Flash Attention 2以及 vLLM的 Page Attention。

原理参考

LM(十七):从 FlashAttention 到 PagedAttention, 如何进一步优化 Attention 性能

Windows

显卡:RTX 2070 模型:Phi2

我首先尝试通过pip安装 flashattn, 结果发现需要git submodule,只好VPN和Proxy怼上去,一直卡在build状态。放弃后尝试git clone 源码,走 python setup.py install, 过程很坑,让我回想起被Gentoo支配的日子。一直没成功说rule有问题,难道是我的CUDA上12.4导致的,可是在Arch这里成功了。 既然WSL 2不行,我就尝试从TensorRT LLM的经验安装容器,一顿Ops,说WSL的cuda路径识别不了。(吐槽:当初忽悠我WSL有多好,方便Windows和Linux无差别生态,结果Blog几乎在2023年停止了,shit,我还要尝试很多底层,比如ebpf、wifi、蓝牙。。。)

最后用原生的 msvc 来build,和wsl一样。2070难道不是安倍架构吗?吐槽:微软为什么要集成在Visual Studio里,不能单独领出来。

换vllm走pip安装,顺利,速度明显,快了一倍。

建议windows尝试vllm加速。

Arch

显卡:RTX 4090 模型:zephyr-7b-beta

我首先尝试通过pip安装 flashattn, 结果发现需要git submodule,只好VPN和Proxy怼上去,一直卡在build状态。也放弃后尝试git clone 源码,走 python setup.py install, 直接顺利make,但是编译很慢。

用time库随便测试一下,快了一倍。

接着 按照windows安装vllm(pip就可以了),也很顺利,就是 运行报了

vbnet 复制代码
ValueError: The model's max seq len (32768) is larger than the maximum number of tokens that can be stored in KV cache (28912). Try increasing `gpu_memory_utilization` or decreasing `max_model_len` when initializing the engine.

搜 Bing,都是在Issue里提问,还是没有准确的答案。没办法,这种小问题,我只好看看源码,发现可以 gpu_memory_utilization(default)是0.9,我就试了1.0.运行就通过了。估计90%不够,用95%(0.95)也可以。

但是vllm在Linux上不算理想。这个模型速度变慢了,估计是GPU使用增加了导致的。但是在Phi 2上又加快,但貌似只有4%左右。

总之还是推荐用 Flash Attention 2。

最后

之前,我就说过目前是大算力时代,对于算力开发是一场前所未有的较量。未来对于AI模型地训练和推理可不止英伟达的GPU一家,比如Groq TPU,Google TPU,Intel APU等等都可能成为替代。但同时,现主流算力维持在互联网上,但是迟早会向物联网倾斜。安波里欧们,紧跟加速吧!

相关推荐
xingyuzhisuan9 小时前
租用GPU服务器进行深度学习课程教学的实验环境搭建
运维·人工智能·深度学习·gpu算力
yu85939589 小时前
神经网络遗传算法函数极值寻优(非线性函数极值)
人工智能·深度学习·神经网络
乔江seven9 小时前
【李沐 | 动手学深度学习】12 使用块的网络VGG
人工智能·深度学习·卷积神经网络·vgg网络
haina20199 小时前
《品牌观察》专访海纳AI:引领AI面试测评新时代
人工智能·面试·职场和发展
云烟成雨TD10 小时前
Spring AI Alibaba 1.x 系列【22】Agent 并行工具执行与超时 / 协作式取消实战
java·人工智能·spring
阿里云大数据AI技术10 小时前
让 AI 帮你写大数据AI开发代码:MaxFrame Coding Skill 正式发布
人工智能·agent
麦哲思科技任甲林10 小时前
大懒人AI结对工作模式——驾驭AI编程的进阶指南
人工智能·ai编程·结对编程·工作模式·ai赋能
Raink老师10 小时前
【AI面试临阵磨枪】什么是 MCP(Model Control Protocol)、A2A(Agent-to-Agent)协议?
人工智能·面试·职场和发展·ai 面试
明月照山海-11 小时前
机器学习周报四十一
人工智能·机器学习