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等等都可能成为替代。但同时,现主流算力维持在互联网上,但是迟早会向物联网倾斜。安波里欧们,紧跟加速吧!

相关推荐
张人玉1 小时前
人工智能——猴子摘香蕉问题
人工智能
草莓屁屁我不吃1 小时前
Siri因ChatGPT-4o升级:我们的个人信息还安全吗?
人工智能·安全·chatgpt·chatgpt-4o
小言从不摸鱼1 小时前
【AI大模型】ChatGPT模型原理介绍(下)
人工智能·python·深度学习·机器学习·自然语言处理·chatgpt
AI科研视界1 小时前
ChatGPT+2:修订初始AI安全性和超级智能假设
人工智能·chatgpt
霍格沃兹测试开发学社测试人社区1 小时前
人工智能 | 基于ChatGPT开发人工智能服务平台
软件测试·人工智能·测试开发·chatgpt
小R资源2 小时前
3款免费的GPT类工具
人工智能·gpt·chatgpt·ai作画·ai模型·国内免费
artificiali5 小时前
Anaconda配置pytorch的基本操作
人工智能·pytorch·python
酱香编程,风雨兼程5 小时前
深度学习——基础知识
人工智能·深度学习
Lossya5 小时前
【机器学习】参数学习的基本概念以及贝叶斯网络的参数学习和马尔可夫随机场的参数学习
人工智能·学习·机器学习·贝叶斯网络·马尔科夫随机场·参数学习
#include<菜鸡>6 小时前
动手学深度学习(pytorch土堆)-04torchvision中数据集的使用
人工智能·pytorch·深度学习