ChatGLM-6B
ChatGLM-6B copied to clipboard
推理速度有点慢,有什么好方法加速吗
m
是呀,支持转成FasterTransformer吗
INT4量化应该会快一点。。缩小输入与输出的长度应该会快一点。。 但是希望在快的同时完全保持效果是不太现实的。
同问,我一张1080的卡,问了一个旅游地点问题,都要50s才有结果返回。
@dogvane 6B参数的模型,上下文窗口又这么大,慢是必然的。能勉强跑起来就不错了。想象一下,每秒钟输出4~5个字,是不是也说的过去了。跟打字速度差不多 你的GPU也就只能跑跑1B甚至更小的模型而已,体验会好一点。
好奇chatGPT为啥可以这么快呢,有啥技术要点不
好奇chatGPT为啥可以这么快呢,有啥技术要点不
几百亿美元堆出来的速度
好奇chatGPT为啥可以这么快呢,有啥技术要点不
@huangtao36 ChatGPT后面是成吨的H100 GPU来给你inference结果.用这些设备跑这个model也会很快.
我目前用4090跑FP16其实速度并不慢,给一个bench dp: 我的prompt是76 token (242 characters)的一个数学问题 在我的机器上ChatGLM-6B花了20s输出的结果是578 token (2214 characters) 有ChatGPT plus会员的情况下,同样的prompt,用Legacy (GPT3.5)花了19s,输出结果是480 token (2038 characters)
对于6B参数的LLM, 1080显存太小了 @dogvane
所以其实影响观感速度的原因是因为chatgpt流式输出...
业内人士不会以为单张卡跑6B大模型就能0.1秒出几百字结果吧? chatGPT部署在微软azure云上,数不清的GPU服务器集群,还有大型超算支持。
我看设置里vocab的词表有15W,这很大。我曾经有个大规模分类的项目里用BERT,但鉴于最后一层输出的类别(几千)很多,发现最后的计算每个类别的概率还有softmax这一步很耗时和计算量。我觉得如果仅在中文场景的话可以基于BERT之类的词表做词表压缩,并且把第一层的token embedding layer进行重新改写(把不要的token embedding去掉,相应词表也要做改变)这应该能减少一些耗时
我看设置里vocab的词表有15W,这很大。我曾经有个大规模分类的项目里用BERT,但鉴于最后一层输出的类别(几千)很多,发现最后的计算每个类别的概率还有softmax这一步很耗时和计算量。我觉得如果仅在中文场景的话可以基于BERT之类的词表做词表压缩,并且把第一层的token embedding layer进行重新改写(把不要的token embedding去掉,相应词表也要做改变)这应该能减少一些耗时
好吧今天看了下,底层不是像以前BERT GPT之类的分字,而是实打实的分词了,那就没办法了
我用的CPU推理的,macOS的intel U 看推理的时候,CPU的利用率并不高,只有一个python进程的利用率是100%,其他核都在围观。 是不是没有并行计算啊???
我用的CPU推理的,macOS的intel U 看推理的时候,CPU的利用率并不高,只有一个python进程的利用率是100%,其他核都在围观。 是不是没有并行计算啊???
好奇intel U的mac多久能跑一个样本
苹果m1一个你好就这么慢
一次性生成所有结果,速度是比较慢的,硬件算力是有上限的,特别是并发时,这个问题尤为突出,一般解决办法是渐进式推理,也就是通常所说的流方式,结果是一点一点出来的,看起来像打字的感觉,但实际上是为了解决性能问题的。ChatGLM-6B已支持流模式:model.stream_chat,调用方法可参考: https://github.com/little51/ChatGLM-6B/blob/main/api_stream.py
慢是可以理解的,但为什么int4反而比fp16慢,还慢得很明显?
请问下手持4090卡的同学,推理一次大概多久。。。
慢是可以理解的,但为什么int4反而比fp16慢,还慢得很明显?
解决了吗? 我也发现了这个问题,量化的比float16慢
慢是可以理解的,但为什么int4反而比fp16慢,还慢得很明显?
解决了吗? 我也发现了这个问题,量化的比float16慢
慢很多,同一台机器大概慢30%
慢是可以理解的,但为什么int4反而比fp16慢,还慢得很明显?
解决了吗? 我也发现了这个问题,量化的比float16慢
没解决,官方似乎不重视这个问题。我只能通过加大推理batchsize变相提速。。
慢是可以理解的,但为什么int4反而比fp16慢,还慢得很明显?
解决了吗? 我也发现了这个问题,量化的比float16慢
没解决,官方似乎不重视这个问题。我只能通过加大推理batchsize变相提速。。
这种加大推理batchsize变相提速带来的后果是显存的不断增加,算了一下,其实增加的显存和提升的推理效率是一样的
同问,我一张1080的卡,问了一个旅游地点问题,都要50s才有结果返回。
@dogvane 方便了解下你的NVIDIA drive 和 cuda版本是多少吗?用430的版本,pytoch 提示 too old
多堆几张显卡能更快吗?确实快这件事情非常关键
Hi, All. 速度和吞吐量上有需求,可以尝试: https://huggingface.co/TMElyralab/lyraChatGLM 。 这个是对 ChatGLM6B 的加速版本,已封装 Python 上层调用,兼容 A100, V100, A10, A30 等显卡。
慢是可以理解的,但为什么int4反而比fp16慢,还慢得很明显?
解决了吗? 我也发现了这个问题,量化的比float16慢
没解决,官方似乎不重视这个问题。我只能通过加大推理batchsize变相提速。。
想问一下,如何加大推理batchsize
Hi, All. 速度和吞吐量上有需求,可以尝试: https://huggingface.co/TMElyralab/lyraChatGLM 。 这个是对 ChatGLM6B 的加速版本,已封装 Python 上层调用,兼容 A100, V100, A10, A30 等显卡。
这个好像只能用原版,不支持加载自己微调后的模型
Hi, All. 速度和吞吐量上有需求,可以尝试: https://huggingface.co/TMElyralab/lyraChatGLM 。 这个是对 ChatGLM6B 的加速版本,已封装 Python 上层调用,兼容 A100, V100, A10, A30 等显卡。
这个好像只能用原版,不支持加载自己微调后的模型
对,且只支持N卡,我想在A卡上部署,您能否提供您增大推理时batch_size的源码和方法,谢谢。
同问
Hi, All. 速度和吞吐量上有需求,可以尝试: https://huggingface.co/TMElyralab/lyraChatGLM 。 这个是对 ChatGLM6B 的加速版本,已封装 Python 上层调用,兼容 A100, V100, A10, A30 等显卡。
这个好像只能用原版,不支持加载自己微调后的模型
对,且只支持N卡,我想在A卡上部署,您能否提供您增大推理时batch_size的源码和方法,谢谢。
可以看一下我提的这个pull request,使用了batch推理,支持高并发。亲测一千条数据只需要30秒就能返回响应。https://github.com/THUDM/ChatGLM-6B/pull/1244