You need to enable JavaScript to run this app.
导航

GPU-部署ChatGLM-6B模型

最近更新时间2023.12.07 17:10:25

首次发布时间2023.10.17 11:07:04

本文以搭载了一张A10显卡的ecs.gni2.3xlarge实例为例,介绍如何在GPU云服务器上部署ChatGLM-6B大语言模型。

背景信息

ChatGLM-6B是一个具有62亿参数的、支持中英双语问答的对话语言模型,基于General Language Model(GLM)架构,结合模型量化技术,支持在消费级的显卡上进行本地部署(INT4量化级别下最低只需6GB显存)。ChatGLM-6B使用了和ChatGLM相同的技术,针对中文问答和对话进行了优化。经过约1T标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62亿参数的ChatGLM-6B已经能生成相当符合人类偏好的回答。

软件要求

注意

部署ChatGLM-6B语言模型时,需保证CUDA版本 ≥ 11.4。

  • NVIDIA驱动:
    • GPU驱动:用来驱动NVIDIA GPU卡的程序。本文以535.86.10为例。
    • CUDA:使GPU能够解决复杂计算问题的计算平台。本文以CUDA 12.2为例。
    • CUDNN:深度神经网络库,用于实现高性能GPU加速。本文以8.5.0.96为例。
  • 运行环境:
    • Transformers:一种神经网络架构,用于语言建模、文本生成和机器翻译等任务。本文以4.30.2为例。
    • Pytorch:开源的Python机器学习库,实现强大的GPU加速的同时还支持动态神经网络。本文以2.0.1为例。
    • Anaconda:获取包且对包能够进行管理的工具,包含了Conda、Python在内的超过180个科学包及其依赖项,用于创建Python虚拟环境。本文以Anaconda 3和Python 3.10为例。

    Pytorch使用CUDA进行GPU加速时,在CUDA、GPU驱动已经安装的情况下,依然不能使用,很可能是版本不匹配的问题,请严格关注以上软件的版本匹配情况。

使用说明

下载本文所需软件需要访问国外网站,建议您增加网络代理(例如FlexGW)以提高访问速度。您也可以将所需软件下载到本地,参考本地数据上传到GPU实例中。

操作步骤

步骤一:创建GPU计算型实例

请参考通过向导购买实例创建一台符合以下条件的实例:

  • 基础配置:
    • 计算规格:ecs.gni2.3xlarge
    • 镜像:Ubuntu 20.04,不勾选“后台自动安装GPU驱动”。
    • 存储:云盘容量在100 GiB以上。
      alt
  • 网络配置:勾选“分配弹性公网IP”。

步骤二:安装GPU驱动和CUDA工具包

  1. 登录实例

  2. 执行以下命令,下载CUDA Toolkit。

    CUDA Toolkit大小约4G,其中已经包含了GPU驱动和CUDA,安装过程相对耗时,请耐心等待。

    wget https://developer.download.nvidia.com/compute/cuda/12.2.1/local_installers/cuda_12.2.1_535.86.10_linux.run

  3. 执行以下命令,安装GPU驱动和CUDA。
    sh cuda_12.2.1_535.86.10_linux.run

    1. 输入"accept"确认信息。
      alt
    2. 按键盘上下键选中【Install】,回车确认,开始安装。
      alt
  4. 安装完成后,执行以下命令进行验证。
    nvidia-smi
    回显如下,说明驱动安装成功。
    alt

步骤三:创建虚拟环境

  1. 执行以下命令,下载Anaconda安装包。
    wget https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh

  2. 执行以下命令,安装Anaconda。
    bash Anaconda3-2023.07-2-Linux-x86_64.sh

    1. 持续按“Enter”键进行安装。
      alt
    2. 输入“yes”确认信息。
      alt
    3. Anaconda的安装路径/root/anaconda3,请按“Enter”确认安装。
      alt
    4. 输入“yes”确定初始化Anaconda。
      alt
  3. 执行以下命令使配置文件生效。
    source ~/.bashrc
    回显如下,表示配置成功,进入base环境。
    alt

  4. 创建一个名为“ChatGLMtest”的虚拟环境,并指定该环境中的python版本为3.10。

    1. 执行conda create -n ChatGLMtest python=3.10命令。
    2. 回显Proceed ([y]/n)?时输入“y”确认。
    3. 执行以下命令,激活虚拟环境。
      conda activate ChatGLMtest
      回显如下,表示激活成功。
      alt

步骤四:部署模型并验证

  1. 依次执行以下命令,安装Git。

    apt-get update  # 更新安装包列表
    apt-get install git  # 安装git
    apt-get install git-lfs  # 安装git-lfs
    
  2. 执行以下命令初始化Git LFS。
    git lfs install
    回显如下,表示初始化完成。
    alt

  3. 执行以下命令,下载ChatGLM2-6B大模型的权重文件。
    git clone https://huggingface.co/THUDM/chatglm2-6b

  4. 执行以下命令,下载官方示例代码。
    git clone https://github.com/THUDM/ChatGLM2-6B

  5. 依次执行以下命令,安装相应的依赖包。

    cd /root/ChatGLM2-6B  # 工作目录切换到示例代码的路径
    pip install -r requirements.txt  	# 安装ChatGLM依赖  
    
  6. 修改示例代码路径,加载本地ChatGLM2-6B模型。

    1. 执行vim cli_demo.py打开demo文件。
    2. i进入编辑模式,将文件中的/THUDM/chatglm2-6b替换为本地文件夹的路径/root/chatglm2-6b
      alt
    3. esc退出编辑模式,输入:wq并按Enter键,保存并退出文件。
  7. 执行以下命令,运行示例代码中的“cli_demo.py”。
    python cli_demo.py

    如下图,程序会在命令行中进行交互式对话,在命令行中输入指示并回车即可生成回复,输入clear可以清空对话历史,输入stop终止程序。
    alt