DataLearner logo
Back to LLM blog list

LLAMA 3 70B模型在单3090显卡上的速度基准测试

2024-04-23LLAMA大语言模型基准测试3090显卡

LLAMA 3 70B模型单卡速度测试

近日,Meta发布了LLAMA 3 70B指令微调模型,该模型经过指令微调,在通用自然语言任务上取得了不错的效果。本文对该模型在单个NVIDIA RTX 3090显卡上进行了速度基准测试,以评估其实际使用性能。

测试环境

  • GPU: NVIDIA GeForce RTX 3090 24GB
  • CPU: AMD Ryzen 9 5950X
  • RAM: 64GB

最佳模型选择

在24GB显存限制下,目前性能最好的模型是使用IQ2量化方案的Meta-Llama-3-70B-Instruct-IQ2_XS.gguf,具体参数如下:

  • n-gpu-layers: 81
  • n-ctx: 4096

使用该模型,在3090上可以达到每秒生成12.43个token的速度,对于70B的大模型来说已经非常惊人。

需要注意的是,如果将上下文长度(CTX)提高到8K,并启用全量卸载,速度会大幅下降。这可能是因为GPU内存不足导致的。如果想使用8K的上下文,可以尝试降低GPU层数,但速度仍然会有所下降。例如:

  • GPU-layers: 75, CTX: 8K,速度约为5.9 t/s
  • GPU-layers: 80, CTX: 8K,速度约为8.4 t/s

其他量化方案对比

除了IQ2,我还测试了其他一些量化方案,如使用2.4 bpw的Llama-3-70B-Instruct-exl2模型:

  • max_seq_len: 4096

使用exllama 2量化,最高速度可达4.17 t/s;使用HF版exllama 2量化,速度约为3.6 t/s。虽然也不算慢,但仍比IQ2慢了3倍左右,而且GPU占用很高。

在实际使用中,IQ2_XS.gguf和exl2 2.4bpw生成的回复质量差异并不明显,尽管它们会使用不同的语言风格(例如在确定性设置下重写文本时)。

此外,我还尝试了Meta-Llama-3-70B-Instruct.Q3_K_M.gguf模型,使用60层和4K上下文,速度仅有0.65 t/s,性能太差,就没有继续测试了。

IQ3_XS模型则完全无法使用,要么卡死,要么只输出特殊token。

结论

总的来说,Meta的LLAMA 3 70B指令微调模型表现非常出色,灵活性和适应性都很强,同时在安全性方面也做了一定的限制(不像之前LLAMA 2的微调版那样过于严格,以至于一有更好的微调版本出现,大家就都不用它了)。微调模型很难超越LLAMA 3 70B的性能,可以看出Meta在这方面下了不少功夫。

其他一些讨论要点:

  • Exllamav2 的速度理论上应该是 llama.cpp 的2倍左右。如果更慢,通常意味着模型有点太大了。
  • 可以尝试开启4位缓存,这可以节省相当多的显存。
  • 在3060、60ti、70和50GB内存的机器上,使用30层GPU加载的Q5 km模型可以达到0.8 t/s。
  • 有人使用 llama 3 70b、RTX 3090 和 Ryzen 7950 3D,使用 llamacpp 和 gguf q4k_m 版本,GPU上加载42层,速度为2.5 t/s。低于q4k_m的量化会导致输出质量明显下降。
  • 对于编程任务,2.5 t/s 的速度可能会让人感到工作效率降低,还不如去 StackOverflow 搜索答案。
  • 在语言任务上,IQ2 和 Q4_K_M 的表现不相上下,都能很好地编辑文本。但 IQ2 的速度优势让使用体验大大提升,而 Q4 在 3090 上的速度让人感觉像在拔牙。
  • 有人使用 3090 + 64GB 内存,尝试了 70b XS 量化模型,但对于 Python 游戏等简单编程任务,8b 量化的 Q8 版本错误更少,代码正确率更高,同时速度可达35 t/s,因此选择了更小的8b模型。

以上就是本次 LLAMA 3 70B 模型单卡性能测试的全部内容,希望对大家选择合适的模型和参数有所帮助。Meta在大模型优化方面的成果有目共睹,未来也让我们拭目以待。