两张4090极限部署qwen模型,72b-int4版本能布上吗?

背景:

项目需要用到大模型,但是只提供两张4090 24G显存的显卡。要在这上面部署qwen大模型,最多部署哪个版本?[所有模型部署均使用了vllm]
在这里插入图片描述

实践:

qwen上月最新发布了qwen2.5版本,其中包含了0.5b、1.5b、3b、7b、14b、32b、72b(好全啊,之前只有0.5b、1.5b、7b和72b)。

访问qwen2.5官方文档,查看各个大小的模型部署需要的GPU大小。

在这里插入图片描述

一看72b的大模型int4量化版本输入长度14336才只需要46.86G显存,高兴坏了,立马运行试了一下,结果报错(但是最后调整一些参数后,极限跑通了,详情后面

torch.cuda.OutOfMemoryError: CUDA out of memory.

torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 928.00 MiB. GPU 1 has a total capacty of 23.64 GiB of which 773.69 MiB is free. Process 407715 has 22.88 GiB memory in use. Of the allocated memory 22.22 GiB is allocated by PyTorch, and 18.60 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

好吧,我觉得这里可能是官方文档上显示使用1张卡跑的,我这里用了两张,那么使用效率肯定会降低,对应需要的显存则会升高。

于是我尝试32b-int8版本的,但是依然报错

ValueError: No available memory for the cache blocks. Try increasing gpu_memory_utilization when initializing the engine

我按照它说的,把gpu_memory_utilization提高到0.98(默认情况下是0.9),然后运行报错:

ValueError: The model’s max seq len (32768) is larger than the maximum number of tokens that can be stored in KV cache (1008). Try increasing gpu_memory_utilization or decreasing max_model_len when initializing the engine

说明模型可以加载,但是没有缓存存放输入文本。到这里松了一口气,只要模型加载进去了就好办了,大不了减少输入文本长度。于是乎将输入文本长度调整为20480,然后运行,报错:

ValueError: The model’s max seq len (20480) is larger than the maximum number of tokens that can be stored in KV cache (11680). Try increasing gpu_memory_utilization or decreasing max_model_len when initializing the engine.

好家伙,输入长度还是太长了,那我按他说的限制在11680内,设置最大输入为10240,运行,总算跑通了。
在这里插入图片描述

这样的话,qwen2.5-32b-int8版本的模型运行起来是最极限的。

之后还试了下qwen2.5-32b-int4版本,但是输出全是感叹号,不知道为什么?(不使用vllm跑了一次是好的,就很奇怪)

在这里插入图片描述

最后,我还在32b-int8的逻辑上改进72b-int4的部署,把gpu_memory_utilization提高到0.99,最大输入设置为1024,也跑通了!!!

在这里插入图片描述

但是这个太极限了,项目中输入文本肯定不止1024的长度,只能说句"可惜了"…

这里挖掘两张4090极限部署qwen模型只给了思路,尝试的也挺粗略的,最大文本长度精确到个位数还需要感兴趣的同学自己尝试挖掘,并且不同显卡,多个几kb少个几kb的,请况可能就不太一样了.

对于大模型的部署,欢迎大家评论区交流!

参考资源链接:[安卓手机部署Qwen1.5-0.5B语言模型教程](https://wenku.csdn.net/doc/12xtvs2csz?utm_source=wenku_answer2doc_content) 部署并优化大语言模型在安卓设备上的运行效率是移动计算和人工智能领域的一项重要任务。为了解决这个技术挑战,你可以参考《安卓手机部署Qwen1.5-0.5B语言模型教程》这一资源。该教程详细介绍了使用MNN框架在安卓设备上部署和优化大型语言模型的完整流程。 首先,模型转换是部署的第一步。你需要将训练好的Qwen1.5-0.5B-Chat模型转换为MNN支持的格式。这一过程可以通过MNN提供的模型转换工具完成,它支持多种训练框架产出的模型格式转换。 其次,为了确保模型在资源受限的安卓设备上有效运行,进行模型压缩和量化是关键步骤。MNN提供了高效的压缩和量化工具,可以帮助你减小模型大小,同时尽量保留模型的性能。在这个阶段,可能需要根据模型的特性选择合适的压缩算法,如权重量化、剪枝等。 接下来,将优化后的模型集成到安卓应用中是实现模型功能的必要步骤。你可以利用MNN提供的Java或C++ API,将模型加载到安卓应用中。同时,你需要处理模型输入输出的编码和解码工作,确保应用能够正确地与模型交互。 最后,针对特定的安卓设备进行性能调优是提升用户体验的关键。由于不同设备的硬件配置差异,你可能需要调整模型运行参数,如批处理大小、线程数等,来获得最佳的运行速度和准确率。 通过上述步骤,你能够将Qwen1.5-0.5B-Chat大语言模型成功部署到安卓手机上,并通过模型优化确保其运行效率。这不仅能够让你的应用在移动设备上提供更加智能化的服务,也能够加深你对移动深度学习应用的理解。如果你希望深入了解相关的优化技术和方法,推荐查阅更多关于MNN框架和大语言模型部署的资料,以获得更全面的知识和技巧。 参考资源链接:[安卓手机部署Qwen1.5-0.5B语言模型教程](https://wenku.csdn.net/doc/12xtvs2csz?utm_source=wenku_answer2doc_content)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值