简介
首先使用Llama-3-1-8B作为例子进行解析。如何Llama-3-1-8B想要在本地电脑运行,那么它需要多少GPU才能完美的运行起来了,大约需要19.2G的GPU才能运行。那么我们的机子最好是4090,哎。。。。。。。
这成本太高了,普通人是无法承受的。
因为很多人看到大模型运行成本这么高,所有都在想使用什么方式降低成本,又能达到接近的效果。参数高效微调后的大模型就是此产物,参数高效微调相关知识可以看我之前写的文章。
今天这篇文章目的不是讲解大模型的知识,今天的内容是怎么在自己的电脑上运行Llama-3-1-8B大模型。
例子中的模型是自己通过4bit量化训练的模型,可以在8G的以下的机子上可以运行。
这里插入一个如何计算大模型运行是需要消耗多少资源。
1)估算公式(该公式来自于Sam Stoelinga简化[1])
符号 | 描述 |
---|---|
M | 用千兆字节 (GB) 表示的 GPU 内存 |
P | 模型中的参数数量。例如,一个 7B 模型有 7 亿参数。 |
4B | 4 字节,即每个参数使用的字节数 |
32 | 4 字节中有 32 位 |
Q | 加载模型时应使用的位数,例如 16 位、8 位或 4 位。 |
1.2 | 表示在 GPU 内存中加载额外内容的 20% 开销。 |
注意:该公式只是为了简化计算的估计,并未包含kvcache所需显存以及context大小的影响。
下面以运行16位精度的 Llama 70B 模型所需的 GPU 内存为例套用公式:
该模型有 700 亿参数。
M = (70 ∗ 4) / (32 / 16) ∗ 1.2 ≈ 168GB
由此可见,模型所需的 GPU 内存相当大。单个 80GB 的 A100 GPU 不足以满足需求,需要多个A100 GPU才能跑的起来。
运行模型
安装依赖
pip install transformers
pip install streamlit
pip install torch
pip install modelscope
下载模型
进入modelscope的https://modelscope.cn/models/ty200509/Llama-3.1-8B-bnb-4bit下载模型
也可以使用一下方式下载:
from modelscope import snapshot_download
model_dir = snapshot_download("ty200509/Llama-3.1-8B-bnb-4bit",cache_dir="下载模型到本地路径")
下载代码
代码地址:https://github.com/tangyi2005/Llama_chatbot.git
使用命令进来Llama_chatbot项目的llama_chat.py
执行以下命令:
# streamlit run llama_chat.py所在文件的路径如:D:\XXXX\XXXX --server.address 127.0.0.1 --server.port 6006
运行后的效果: