千亿级开源大模型Qwen110B部署实测
来源:互联网
时间:2026-08-07 13:48:13
近日,通义千问团队开源了Qwen1.5系列的首个千亿参数模型——Qwen1.5-110B-Chat。消息一出,不少开发者既兴奋又发愁:这么大的模型,普通显卡根本跑不动,普通人想本地部署基本是想多了。
不过,到底要多少资源才能跑起来?实测数据最有说服力。我直接用云计算资源部署了Qwen1.5-110B-Chat,从下载到量化到推理,把存储需求、显存消耗摸了个清楚。以下就是这次测试的全记录。
## 一、下载模型
先从ModelScope拉取模型文件,代码很简单:
```python
#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('qwen/Qwen1.5-110B-Chat', cache_dir='path/to/local/dir')
```
下载完成后,目录结构如下:
```
.
├── config.json
├── configuration.json
├── generation_config.json
├── LICENSE
├── merges.txt
├── model-00001-of-00062.safetensors
├── model-00002-of-00062.safetensors
├── model-00003-of-00062.safetensors
├── model-00004-of-00062.safetensors
├── model-00005-of-00062.safetensors
...
├── model-00062-of-00062.safetensors
├── model.safetensors.index.json
├── out.txt
├── README.md
├── tokenizer_config.json
├── tokenizer.json
└── vocab.json
0 directories, 73 files
```
模型文件一共 **占用硬盘空间208G**。光存储这一步,就劝退了不少人。
## 二、显卡消耗
按照经验公式:模型显存占用(GB) ≈ 大模型参数(B)× 2。那么Qwen1.5-110B的理论显存需求应该在220GB左右。
实际部署时,不开启任何量化,**显存占用约为215GB**。这意味着,如果要做完整无量化部署,至少需要3块80GB显存的显卡(比如A100或H100)。
当然,量化是降低门槛的有效手段。在Transformers中使用LLM.int8()只需安装bitsandbytes,然后即可启用8bit量化。
**8bit量化**
```python
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained(
'qwen/Qwen1___5-110B-Chat',
device_map='auto',
load_in_8bit=True,
max_memory={
i: f'{int(torch.cuda.mem_get_info(i)[0]/1024**3)-2}GB'
for i in range(torch.cuda.device_count())
}
)
```
测试结果显示,8bit量化部署下,**显存需求降至113GB**,两块80GB显卡即可跑起来。
**4bit量化**
```python
from transformers import BitsAndBytesConfig
import torch
nf4_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True,
bnb_4bit_compute_dtype=torch.bfloat16
)
model_nf4 = AutoModelForCausalLM.from_pretrained('qwen/Qwen1___5-110B-Chat', quantization_config=nf4_config)
```
4bit量化后的显存占用更是显著降低——**仅需62GB**。也就是说,单块80GB显存的显卡就能搞定部署,对个人开发者来说终于有了可行性。
## 三、推理代码
模型部署好之后,拿一个“弱智吧”的经典问题来测一测:
```python
from modelscope import AutoModelForCausalLM, AutoTokenizer
device = "cuda" # the device to load the model onto
model = AutoModelForCausalLM.from_pretrained(
"/home/data/qwen/Qwen1___5-110B-Chat",
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("/jydata/qwen/Qwen1___5-110B-Chat")
prompt = "树上有3只鸟,我用步枪打死一只,还有几只鸟?"
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(device)
generated_ids = model.generate(
model_inputs.input_ids,
max_new_tokens=512
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)
```
## 四、推理截图
(此处插入推理截图)
总的来说,千亿参数模型的部署门槛在量化技术的加持下已经大大降低。如果你手头有至少一块80GB显存的显卡,配合4bit量化,完全可以本地跑起来。当然,如果追求完整精度和更大并发,多卡方案依然是必要的。这次实测数据希望能给有部署需求的同行们提供一个明确的参考。 -
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名