1. 背景介绍

今天到了两块新的3090卡,用nvidia-smi看下部署情况。我们使用Qwen2.5-7B简单做了下推理测试。

3090卡的基本配置信息如下图所示,使用两块卡做成GPU集群,显存有48G,内存带宽936.2 GB/s, 基本上可以应对一些常见的大模型推理服务以及模型的微调,甚至用QLora能支持650亿参数模型的微调【1】。在上次文章中我们介绍了如何预估模型占用GPU的资源《大模型显存资源计算以及GPU如何选择》。

  1. 大模型GPU推理测试

我们将使用Qwen2.5-7B,精度BF16,差不多模型大小站到15G+,单块3090显卡也足以应对。

使用huggingface下载模型,会遇到下载的问题,报OSError: We couldn’t connect to ‘https://huggingface.co’ to load this file,如下所示:

为了快速验证,所以我们切换到使用modelscope,采用snapshot_download 函数下载模型。modelscope可以认为是国产版本的hugging face,大模型的托管平台,提供了国内镜像站点,模型下载速度比较友好。正如前面计算所示,该7B模型大小预估差不多是15G左右,所以可能会花一点点时间。

    代码示例:
import torch
from modelscope import snapshot_download, AutoModel, AutoTokenizer
import os

model_dir = snapshot_download('qwen/Qwen2.5-7B-Instruct', cache_dir='/root/autodl-tmp', revision='master')
    我大概花了20分钟左右下载完成。

    推理测试代码:
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# 检查是否有可用的GPU
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Using device: {device}")

# 定义模型路径
mode_name_or_path = '/root/autodl-tmp/qwen/Qwen2___5-7B-Instruct'

def get_model():
    # 从预训练的模型中获取 tokenizer
    tokenizer = AutoTokenizer.from_pretrained(mode_name_or_path, trust_remote_code=True)
    tokenizer.pad_token = tokenizer.eos_token
    # 从预训练的模型中获取模型,并设置模型参数
    model = AutoModelForCausalLM.from_pretrained(mode_name_or_path, torch_dtype=torch.bfloat16).to(device)

    return tokenizer, model

# 加载 Qwen2.5 的 model 和 tokenizer
tokenizer, model = get_model()

prompt = "我购置了两块3090的gpu,描述一下3090gpu的性能数据"
messages = [
    {"role": "system", "content": "你是一款智能的大模型用户助手工具"},
    {"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,
    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)

开始执行上述测试代码的时候,可能还会报tokenizer类不存在的错误:ValueError: Tokenizer class Qwen2Tokenizer does not exist or is not currently imported

    这个错误可能是和模型版本比较新有关,升级一下你本地的transformers库【3】,即可解决:

pip install --upgrade transformers

之后就可以愉快的跑起来了,我的示例代码中是让大模型介绍下3090显卡的配置信息:

不过我也发现,Qwen2.5的回答有明显的幻觉问题,重复跑几次,会出现说3090卡是一款虚拟的卡,没有实际发布过。

GPU监控信息:

AI大模型学习路线

如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!

扫描下方csdn官方合作二维码获取哦!

在这里插入图片描述

这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!

请添加图片描述
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

100套AI大模型商业化落地方案

请添加图片描述

大模型全套视频教程

请添加图片描述

200本大模型PDF书籍

请添加图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

LLM面试题合集

请添加图片描述

大模型产品经理资源合集

请添加图片描述

大模型项目实战合集

请添加图片描述

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐