社区供稿 | 10G显存,通义千问-7B-int4消费级显卡最佳实践

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 在魔搭社区,通义千问团队发布了Qwen-7B-Chat的Int4量化模型,Qwen-7B-Chat-Int4。该方案的优势在于,它能够实现几乎无损的性能表现,模型大小仅为5.5GB,内存消耗低,速度甚至超过BF16。

导读

在魔搭社区,通义千问团队发布了Qwen-7B-Chat的Int4量化模型,Qwen-7B-Chat-Int4。该方案的优势在于,它能够实现几乎无损的性能表现,模型大小仅为5.5GB,内存消耗低,速度甚至超过BF16。


环境配置与安装

本文实例均在魔搭社区的PAI-DSW Notebook(GPU版本)直接运行

python>=3.8


使用步骤

本文在ModelScope的Notebook的环境(这里以PAI-DSW为例)配置下运行 (可单卡运行, 显存要求20G)


服务器连接与环境准备

1、进入ModelScope首页:modelscope.cn,进入我的Notebook


2、选择GPU环境,进入PAI-DSW在线开发环境


3、进入Terminal,先查看一下GPU的使用情况


最佳实践

更新量化方案为基于AutoGPTQ的量化,提供Qwen-7B-Chat的Int4量化模型相比此前方案,该方案在模型评测效果几乎无损,且存储需求更低,推理速度更优。


以下我们提供示例说明如何使用Int4量化模型。在开始使用前,请先保证满足AutoGPTQ的要求,并使用源代码安装(由于最新支持Qwen的代码未发布到PyPI):

git clone https://github.com/PanQiWei/AutoGPTQ.git && cd AutoGPTQ
pip install .


模型下载

通义千问-7B-Chat-int4现已在ModelScope社区开源:https://modelscope.cn/models/qwen/Qwen-7B-Chat-Int4/summary

from modelscope import snapshot_download
from auto_gptq import AutoGPTQForCausalLM
model_dir = snapshot_download("qwen/Qwen-7B-Chat-Int4", revision='v1.0.0')


读取量化模型

随后便能轻松读取量化模型

from auto_gptq import AutoGPTQForCausalLM
model = AutoGPTQForCausalLM.from_quantized(model_dir, device_map="auto",revision = 'v1.0.0', trust_remote_code=True, use_safetensors=True).eval()


模型推理

推理方法和基础用法类似,但注意需要从外部传入generation config:

from modelscope import GenerationConfig
config = GenerationConfig.from_pretrained("qwen/Qwen-7B-Chat-Int4", revision='v1.0.0', trust_remote_code=True)
response, history = model.chat(tokenizer, "Hi", history=None, generation_config=config)


快速使用

如下是一个使用Qwen-7B-Chat-int4模型,进行多轮对话交互的样例:

from modelscope import (
    snapshot_download, AutoModelForCausalLM, AutoTokenizer, GenerationConfig
)
from auto_gptq import AutoGPTQForCausalLM
model_dir = snapshot_download("qwen/Qwen-7B-Chat-Int4", revision='v1.0.0')
# Note: The default behavior now has injection attack prevention off.
tokenizer = AutoTokenizer.from_pretrained(model_dir, revision = 'v1.0.0',trust_remote_code=True)
model = AutoGPTQForCausalLM.from_quantized(model_dir, device_map="auto",revision = 'v1.0.0', trust_remote_code=True, use_safetensors=True).eval()
# Specify hyperparameters for generation
config = GenerationConfig.from_pretrained(model_dir, revision = 'v1.0.0',trust_remote_code=True)
response, history = model.chat(tokenizer, "你好", history=None, generation_config=config)
print(response)
# 你好!很高兴为你提供帮助。


效果评测

效果评测

我们对BF16和Int4模型在基准评测上做了测试,发现量化模型效果损失较小,结果如下所示:

Quantization

MMLU

CEval (val)

GSM8K

Humaneval

BF16

53.9

54.2

41.1

24.4

Int4

52.6

52.9

38.1

23.8


推理速度 (Inference Speed)

我们测算了BF16和Int4模型生成2048和8192个token的平均推理速度。如图所示:

Quantization

Speed (2048 tokens)

Speed (8192 tokens)

BF16

30.53

28.51

Int4

45.60

33.83


具体而言,我们记录在长度为1的上下文的条件下生成8192个token的性能。评测运行于单张A100-SXM4-80G GPU,使用PyTorch 2.0.1和CUDA 11.4。推理速度是生成8192个token的速度均值。


显存使用 (GPU Memory Usage)

我们还测算了BF16和Int4模型编码2048个token及生成8192个token的峰值显存占用情况。结果如下所示:

Quantization Level

Peak Usage for Encoding 2048 Tokens

Peak Usage for Generating 8192 Tokens

BF16

18.99GB

24.40GB

In4

10.20GB

15.61GB


具体显存占用截图:


相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
云上一键部署通义千问 QwQ-32B 模型,阿里云 PAI 最佳实践
3月6日阿里云发布并开源了全新推理模型通义千问 QwQ-32B,在一系列权威基准测试中,千问QwQ-32B模型表现异常出色,几乎完全超越了OpenAI-o1-mini,性能比肩Deepseek-R1,且部署成本大幅降低。并集成了与智能体 Agent 相关的能力,够在使用工具的同时进行批判性思考,并根据环境反馈调整推理过程。阿里云人工智能平台 PAI-Model Gallery 现已经支持一键部署 QwQ-32B,本实践带您部署体验专属 QwQ-32B模型服务。
|
12天前
|
人工智能 自然语言处理 机器人
招商银行X通义大模型 ,2024年度AI最佳实践案例!
招商银行X通义大模型 ,2024年度AI最佳实践案例!
|
16天前
|
人工智能 自然语言处理 机器人
招商银行X通义大模型,2024年度AI最佳实践案例!
招商银行X通义大模型,2024年度AI最佳实践案例!
66 2
|
6月前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
5月前
|
人工智能 持续交付 开发者
通义灵码:加速个人成长与团队协作的最佳实践
从首个AI代码助手——通义灵码公测至今已有一年。作为云服务商运维工程师,我通过使用通义灵码的个人版和企业版,体验到了其在项目启动、代码调试、团队协作等方面的强大功能。个人版的 @workspace 和 @terminal 功能帮助我快速上手新项目,企业版的 #team docs 和自动化工作流则显著提升了团队协作效率。以下是具体使用心得和案例分享。
445 57
|
5月前
|
人工智能 算法 前端开发
阿里通义灵码的最佳实践
上周首次尝试了阿里巴巴的通义灵码AI插件,体验良好。该插件体积适中,约5.8M,适合项目开发使用。其@workspace和@terminal功能强大,能快速帮助开发者熟悉新项目结构,提供智能代码导航、搜索、优化及错误提示等服务,显著提升开发效率与代码质量。实践证明,通义灵码在加速项目理解和新需求实现方面表现出色,是开发者的得力助手。
260 1
阿里通义灵码的最佳实践
|
5月前
|
SQL 人工智能 安全
【灵码助力安全1】——利用通义灵码辅助快速代码审计的最佳实践
本文介绍了作者在数据安全比赛中遇到的一个开源框架的代码审计过程。作者使用了多种工具,特别是“通义灵码”,帮助发现了多个高危漏洞,包括路径遍历、文件上传、目录删除、SQL注入和XSS漏洞。文章详细描述了如何利用这些工具进行漏洞定位和验证,并分享了使用“通义灵码”的心得和体验。最后,作者总结了AI在代码审计中的优势和不足,并展望了未来的发展方向。
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
通义灵码:新体验与最佳实践
随着AI技术的发展,阿里巴巴推出的通义灵码作为先进的大模型,提升了自然语言处理能力,并在智能对话、多语言支持及自定义训练等方面带来全新体验。文章介绍了通义灵码在客服系统、智能写作及教育领域的应用案例,展示了其提升效率和创造价值的能力。
147 1
|
5月前
|
数据可视化 数据库
通义灵码个人版新功能最佳实践测评
作为一名软件开发工程师,我使用通义灵码个人版的@workspace和@terminal功能,快速熟悉新的电商项目代码并实现新功能,效率提升了约30%。通过自动识别项目结构、代码分析、智能注释和自动补全等功能,大幅减少了查找资料和调试的时间,使开发流程更加顺畅,专注于业务逻辑实现。
125 1
|
5月前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了一种结合知识图谱与大型语言模型(LLM)的GraphRAG系统,利用PolarDB、通义千问及LangChain实现。知识图谱通过结构化信息、语义理解和推理等功能,增强了信息检索与自然语言处理效果。PolarDB具备图引擎与向量检索能力,适配知识图谱存储与查询。通义千问处理自然语言,LangChain则整合模型与应用。实战步骤包括环境准备、数据库配置与数据导入,并通过实例展示了图谱与向量联合检索的优越性,提升了问答系统的准确性和实用性。

热门文章

最新文章