大模型入门 | 搭建 AI 模型开发环境(二)安装 PyTorch 和 Transformers、使用 Modelscope 下载加载模型、PyCharm 项目配置....

四、安装 PyTorch 和 Transformers

Flax、PyTorch 或 TensorFlow 都是深度学习框架,而 Transformers 底层可以使用 Flax、PyTorch 或 TensorFlow 深度学习框架,实现模型加载、训练等功能。

PyTorch 安装参考文档:https://pytorch.org/get-started/locally/

可以安装 GPU 版本(CUDA)或 CPU 版本,然后复制下方提示的安装命令。

在这里插入图片描述

conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia

然后还需要执行命令安装 Transformers 和一些依赖库。

pip install protobuf 'transformers>=4.41.2' cpm_kernels 'torch>=2.0' gradio mdtex2html sentencepiece accelerate

可能会自动安装最新版本的 transformers,会出问题,后面的章节讲述如何解决。

五、使用 Modelscope 下载加载模型

ModelScope 是阿里云主导的一个国内 AI 模型社区,提供了各类模型和数据集以及开发工具库,由于 huggingface 上手难度稍大以及国外网络原因,这里使用 Modelscope 下载和加载模型。

安装 modelscope:

pip install modelscope

六、PyCharm 项目配置

PyCharm 是最常用的 Python 编程工具,因此这里讲解如何在 PyCharm 中配置 miniconda3 环境。

打开 PyCharm ,在设置中添加 miniconda3 的环境,步骤如图所示。

然后创建一个项目,在项目中选择基于 conda 的环境。

七、模型加载和对话

在项目目录下创建 main.py 文件。

将以下代码贴到 main.py,然后运行代码,会自动下载模型、加载模型和对话。

from modelscope import AutoTokenizer, AutoModel, snapshot_download  
  
# 下载模型  
# ZhipuAI/chatglm3-6b 模型仓库  
# D:/modelscope 模型文件缓存存放目录  
model_dir = snapshot_download("ZhipuAI/chatglm3-6b",cache_dir="D:/modelscope", revision="v1.0.0")  
  
# 加载模型  
# float 是 32,half 是16 位浮点数,内存可以减少一半  
tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)  
model = AutoModel.from_pretrained(model_dir, trust_remote_code=True).half().cuda()  
model = model.eval()  
  
# 开始对话  
response, history = model.chat(tokenizer, "你好", history=[])  
print(response)  
response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history)  
print(response)  

"ZhipuAI/chatglm3-6b" 指的是 ZhipuAI 仓库的 chatglm3-6b 模型,可以通过 ModelScope 查看社区已上传的各类模型:

https://www.modelscope.cn/models

revision="v1.0.0" 下载版本号跟仓库分支名称一致,可以填写不同分支名称下载不同的版本。

八、CPU 和 GPU 问题

如果出现以下报错,可能安装的是 CPU 而不是 GPU 版本的 PyTorch。

    raise AssertionError("Torch not compiled with CUDA enabled")  
AssertionError: Torch not compiled with CUDA enabled

在这里插入图片描述

执行代码:

import torch  
print(torch.__version__)

按经验,如果使用了 pip 安装相关库,而不是使用 conda 命令安装的,需要执行以下命令卸载 pytorch:

pip uninstall torch torchvision torchaudio
conda uninstall pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia

然后执行命令重新安装 pytorch:

conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia

重新执行命令后即可正常:

九、transformers 版本错误

由于安装各类库的时候都是安装最新版本安装的,可能有部分库不兼容,执行到以下代码行时,抛出错误。

response, history = model.chat(tokenizer, "你好", history=[])

首先出现以下警告,然后出现报错:

1Torch was not compiled with flash attention. (Triggered internally at C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\transformers\cuda\sdp_utils.cpp:555.)  
  context_layer = torch.nn.functional.scaled_dot_product_attention(query_layer, key_layer, value_layer,

在这里插入图片描述

需要将 transformers 版本安装要求的最新版本(升级)。

pip install transformers==4.41.2

在这里插入图片描述

经历各种曲折,最后终于成功了:

十、TORCH_USE_CUDA_DSA 错误

笔者碰到的问题应该是 GPU 性能不够导致的,该问题出现在 Azure A10 机器上,家用的 RTX 4060TI 没有出现这个问题。

不过也有可能是显卡驱动跟 CUDA 版本不一致导致的。

  File "C:\ProgramData\miniconda3\Lib\site-packages\transformers\generation\utils.py", line 2410, in _sample  
    next_token_scores = logits_processor(input_ids, next_token_logits)  
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  File "C:\ProgramData\miniconda3\Lib\site-packages\transformers\generation\logits_process.py", line 98, in __call__  
    scores = processor(input_ids, scores)  
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  File "C:\Users\xxx\.cache\huggingface\modules\transformers_modules\chatglm3-6b\modeling_chatglm.py", line 55, in __call__  
    if torch.isnan(scores).any() or torch.isinf(scores).any():  
       ^^^^^^^^^^^^^^^^^^^^^^^^^  
RuntimeError: CUDA error: the launch timed out and was terminated  
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.  
For debugging consider passing CUDA_LAUNCH_BLOCKING=1  
Compile with <code>TORCH_USE_CUDA_DSA</code> to enable device-side assertions.

使用 CPU 是可以的:

随便跑了一个 demo ,也是可以执行的。

https://github.com/pytorch/examples/blob/main/mnist/main.py

可能是 CUDA 库和驱动库版本不一致导致的,首先执行 nvidia-smi 命令,检查显卡驱动库兼容的 CUDA 版本。

下载安装对应版本的 CUDA,然后重新解压 cuDNN 以及设置环境变量。

最后,服务器也成功搭建起 AI 环境。


如何学习大模型?

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

1. 成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
在这里插入图片描述

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

在这里插入图片描述

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

在这里插入图片描述

4. 大模型项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

在这里插入图片描述

5. 大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

在这里插入图片描述

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值