【你好!我是MOSS】从0开始搭建本地MOSS智能机器人

前提条件:需要单张A100或A800显卡,或两张3090显卡,或者以上规模。
 

以下正文:远程到GPU服务器,本地使用的是Centos 7.5系统环境。然后查看显卡信息

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第1张图片

查看显卡显存等其他信息,一共8张GTX3080TI显卡,96G显存,应该是够用了。

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第2张图片

下载moss项目到本地

git clone https://github.com/OpenLMLab/MOSS.git

 本文原文,出自我个人的公众号【Dotnet Dancer】,地址:

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人

git clone报错,可能是第一次使用,git 版本有问题,先卸载

yum remove git

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第3张图片

安装git 依赖包们

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc -y
yum install  gcc perl-ExtUtils-MakeMaker -y

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第4张图片

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第5张图片

查看git版本列表

https://mirrors.edge.kernel.org/pub/software/scm/git

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第6张图片

下载指定的版本,例如最新版 git-2.39.2.tar.gz

wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.39.2.tar.gz

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第7张图片

报错了,根据提示进行改造一下,为了以防万一,git版本下载低一点的,例如2.28.0

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第8张图片

解压和创建git安装文件夹

tar -zxf git-2.28.0.tar.gz
mkdir -p ~/local/git 
cd git-2.28.0/
./configure --prefix=$HOME/local/git

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第9张图片

编译与安装git

make && make install

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第10张图片

设置环境变量和查看当前版本

export PATH=$HOME/local/git/bin:$PATH
git version

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第11张图片

重新拉取代码

可能是网络原因,或者其他某些原因,一直无法拉取成功

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第12张图片

只能使用工具传上去,例如 winSCP。先把moss库git clone到本地,然后通过工具传输到远程服务器上。

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第13张图片

MOSS项目现在在服务器上了

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第14张图片

把默认的torch版本改为1.13.1版本或者其他高版本也行【备注:现在最新的代码库,已经修复了低版本问题,该步骤可以省略】

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第15张图片

进行安装moss依赖

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

安装pip

yum install epel-release
yum install -y python-pip

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第16张图片

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第17张图片

验证pip,检查版本通过即可。

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第18张图片

需要conda环境,先安装anaconda,例如我找个最新版进行安装

https://repo.anaconda.com/archive/

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第19张图片

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第20张图片

焦急地等待中……下载有点慢,让它跑一会儿

下载失败,只好本地下载再传送过去了

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第21张图片

传输成功,在路径下可以看见ananconda安装包了

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第22张图片

安装anaconda

 sh Anaconda3-2023.03-1-Linux-x86_64.sh

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第23张图片

配置anaconda环境变量

获取到ananconda安装的路径

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第24张图片

配置环境变量 

vim ~/.bashrc

把anaconda的bin目录添加到环境变量里面去

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第25张图片

输入 conda没有报错,代表环境安装完成

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第26张图片

创建conda环境

conda create --name moss python=3.8
conda activate moss

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第27张图片

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第28张图片

现在重新安装文件里面的依赖,可以通过python3来安装了。先前应该是本地只有python2环境导致的匹配不到高版本的包

pip3 install -r requirements.txt

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第29张图片

如果下载太慢,就换一个国内镜像站,例如清华镜像站,速度马上飞起

-i https://pypi.tuna.tsinghua.edu.cn/simple

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第30张图片

运行demo代码,首次运行会下载模型,大约30G左右

python moss_cli_demo.py

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第31张图片

模型下载失败,一断回到解放前……

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第32张图片

改下下载超时规则,找到 huggingface_hub下面的_http.py代码进行修改

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第33张图片

requests.exceptions包导入额外的功能,可参考自行比对,可能有差异,不够就补。

from requests.exceptions import ConnectTimeout, ProxyError,SSLError,Timeout

以及超时时间、重试等都设置大一点。

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第34张图片

重新走一个,发现好像不明所以地变快了???

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第35张图片

最终还是下载失败,于是上hugging face下载到本地,然后再传输到服务器上。Fugging face所在模型地址:

https://huggingface.co/fnlp/moss-moon-003-sft/tree/main

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第36张图片

丢到MOSS下的fnlp文件夹下:

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第37张图片

最后重新运行demo代码,显示运行通过。

【注意事项】demo源码一些代码,可能需要自己更改默认参数。可以通过vim打开进行更改,此处不演示。

不过在对话过程中,报错了,显示RuntimeError: No CUDA GPUs are available

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第38张图片

开始解决RuntimeError: No CUDA GPUs are available错误

先验证下cuda是否生效,写个python代码进行输出

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第39张图片

验证显卡,发现显卡驱动没了

先确认下显卡还在不在,以及旧版显卡驱动,如果有旧版驱动,先卸载旧版驱动

lspci | grep -i nvidia
yum remove "*nvidia*"

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第40张图片

也检查下驱动的一些其他依赖,例如 cuda、cublas等。发现没查出来,就代表没有。有的话也要进行移除。

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第41张图片

下载最新版驱动

https://www.nvidia.cn/Download/index.aspx?lang=cn

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第42张图片

下载以后,放到服务器上,进行安装。

发现权限可能不够,授予权限

chmod 777 NVIDIA-Linux-x86_64-525.116.03.run

检查nouveau驱动是否禁用,安装显卡前需要先禁用。

lsmod | grep nouveau

如果有输出,代表已启动。

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第43张图片

vim /lib/modprobe.d/dist-blacklist.conf

在文件末尾新增两行

blacklist nouveau
options nouveau modeset=0

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第44张图片

备份initramfs:

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak

重新建立initramfs

dracut -v /boot/initramfs-$(uname -r).img $(uname -r)

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第45张图片

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第46张图片

重启以后,该驱动没输出了,说明驱动屏蔽完毕。

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第47张图片

开始安装

 ./NVIDIA-Linux-x86_64-525.116.03.run -no-x-check

有一些检查项,直接默认

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第48张图片

安装完毕以后,检查显卡,可以出来了

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第49张图片

安装cuda环境

Nvidia安装文档链接

https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html

yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第50张图片

选择下载的版本

https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=CentOS&target_version=7&target_type=rpm_network

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第51张图片

根据提示的内容,进行相关操作

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第52张图片

yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第53张图片

安装dkms驱动

yum clean all
yum -y install nvidia-driver-latest-dkms

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第54张图片

安装cuda环境

yum -y install cuda

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第55张图片

Cuda安装完成

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第56张图片

测试一下环境

nvcc -V

发现还是没有命令,但是在 /usr/local/cuda下面是有文件的,说明可能是环境变量没配置

修改配置文件

vim ~/.bashrc

最末尾新增

export LD_LIBRARY_PATH=/usr/local/cuda/lib
export PATH=$PATH:/usr/local/cuda/bin

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第57张图片

sourse一下,重新输入 nvcc -V 即可看到cuda版本信息,说明cuda环境OK了。

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第58张图片

 本文原文,出自我个人的公众号【Dotnet Dancer】,地址:



【你好!我是MOSS】从0开始搭建本地MOSS智能机器人

重新启动服务器,进入激活moss环境,通过输入python代码重新验证一下,发现已经通过:

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第59张图片

重新运行demo代码,运行成功,输入内容进行对话测试,结果如下图运行所示

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人_第60张图片

OK,本地部署到此结束。

 本文原文,出自我个人的公众号【Dotnet Dancer】,地址:

【你好!我是MOSS】从0开始搭建本地MOSS智能机器人

你可能感兴趣的:(AIGC,nlp,语言模型,人工智能)