Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

量化后推理速度 #4

Open
jundolc opened this issue Jan 26, 2024 · 7 comments
Open

量化后推理速度 #4

jundolc opened this issue Jan 26, 2024 · 7 comments
Labels
efficiency Inference speed or throughput

Comments

@jundolc
Copy link

jundolc commented Jan 26, 2024

量化完后推理速度反而变慢了,难道不应该加速吗

@AniZpZ
Copy link
Owner

AniZpZ commented Jan 26, 2024

请问你使用的是什么模型呢,是和transformers库做对比吗?
我们目前还未针对这个库的推理进行优化,在小batchsize的情况下quant/dequant的开销可能掩盖了量化带来的收益。关于这个仓库的推理优化已经在我们的计划之中了。
如果你当前就像获得明显的推理加速的话,建议使用我们维护的vLLM分支进行推理。可以参考这两个PR:
模型量化:vllm-project/vllm#1508
KV Cache量化:vllm-project/vllm#1507

@jundolc
Copy link
Author

jundolc commented Jan 26, 2024

我参照你的代码改写了qwen的int8推理模型,测试的是qwen的模型,对比的是transformers库,推理的时候batchsize是1,这样子对比int8的推理会比transformers库慢。
还有我想问的是这边的代码里用了cublas,和torch_int速度有差别吗

@AniZpZ
Copy link
Owner

AniZpZ commented Jan 26, 2024

我参照你的代码改写了qwen的int8推理模型,测试的是qwen的模型,对比的是transformers库,推理的时候batchsize是1,这样子对比int8的推理会比transformers库慢。 还有我想问的是这边的代码里用了cublas,和torch_int速度有差别吗

我们测试下来cublas的gemm速度比torch_int的gemm稍微快一些。请问你现在使用的是什么粒度的量化呢? 如果使用per-token量化是会比per-tensor慢一些的。 torch_int仓库应该默认使用per-tensor量化的。

@jundolc
Copy link
Author

jundolc commented Jan 26, 2024

pertensor和pertoken的我都试过了,我这边测试用的opencompass,测试的是winogrande和siqa这两个数据集,用的单卡3090
transformers原始fp16版本的推理完用了337s,
pertensor的是500s,
pertoken的是520s,
pertensor精度会低很多,pertoken的精度和fp16版本测出来差不多,

@AniZpZ
Copy link
Owner

AniZpZ commented Jan 26, 2024

pertensor和pertoken的我都试过了,我这边测试用的opencompass,测试的是winogrande和siqa这两个数据集,用的单卡3090 transformers原始fp16版本的推理完用了337s, pertensor的是500s, pertoken的是520s, pertensor精度会低很多,pertoken的精度和fp16版本测出来差不多,

好的。我们本周在进行mixtral等新模型的支持。随后会尽快排查一下这个问题。

@AniZpZ AniZpZ added the efficiency Inference speed or throughput label Jan 26, 2024
@jundolc
Copy link
Author

jundolc commented Jan 26, 2024

好的,我这边也会一直更进这个问题,感谢

AniZpZ pushed a commit that referenced this issue Feb 1, 2024
@AlexMa0
Copy link

AlexMa0 commented Jul 9, 2024

我参照你的代码改写了qwen的int8推理模型,测试的是qwen的模型,对比的是transformers库,推理的时候batchsize是1,这样子对比int8的推理会比transformers库慢。 还有我想问的是这边的代码里用了cublas,和torch_int速度有差别吗

我们测试下来cublas的gemm速度比torch_int的gemm稍微快一些。请问你现在使用的是什么粒度的量化呢? 如果使用per-token量化是会比per-tensor慢一些的。 torch_int仓库应该默认使用per-tensor量化的。

你好,请问你是按照什么代码去改写的qwen的int8量化与推理?我也想尝试量化qwen或者其他模型,但是看到autosmoothquant/models里有四种模型的文件,如果我想测评这四种以外的模型,我该如何参考代码去改写呢?非常期待您的回复!!!感谢!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
efficiency Inference speed or throughput
Projects
None yet
Development

No branches or pull requests

3 participants