【玩转AIGC系列】从0快速搭建个人版“对话大模型”

简介: 本教程介绍如何在阿里云GPU云服务器上基于Alpaca大模型快速搭建个人版“对话大模型”。

底部活动跳转横幅.png

背景信息

Alpaca大模型是一款基于LLaMA的大语言模型,它可以模拟自然语言进行对话交互,并协助用户完成写作、翻译、编写代码、生成脚本等一系列创作任务。同时,使用了中文数据进行二次预训练,提升了中文基础语义理解能力。

本文基于阿里云GPU服务器和Alpaca大模型,指导您如何快速搭建个人版“对话大模型”。


操作步骤

创建ECS实例

  1. ECS实例创建页面,创建ECS实例。关键参数说明如下,其他参数的配置,请参见自定义购买实例
  • 实例规格:选择实例规格为ecs.gn7i-c16g1.4xlarge
  • 镜像:公共镜像Ubuntu 20.04,并选中安装GPU驱动,选择CUDA 版本11.4.1/Driver 版本470.161.03/CUDNN 版本8.2.4
  • 公网IP:选中分配公网IPv4地址,带宽计费方式选择按量付费,带宽峰值选择100 Mbps,以加快模型下载速度。
  1. 添加安全组规则。
    在ECS实例安全组的入方向添加安全组规则并放行7860端口。具体操作,请参见添加安全组规则
  2. 查看驱动以及CUDA库是否安装成功。

a.使用root用户远程登录ECS实例。具体操作,请参见通过密码或密钥认证登录Linux实例。首次登录ECS实例时,系统会自动安装驱动。当显示如下图所示的回显信息时,表示驱动以及CUDA库已安装成功。

特别提醒

 系统自动安装驱动以及CUDA库时,请不要手动操作或者重启实例,否则可能会导致驱动或者    CUDA库安装失败。等到安装驱动以及CUDA库完成以后,系统会自动重启。

 如果创建完ECS实例后,没有立即远程登录ECS实例,可能看不到类似下图的回显信息。

b.再次使用root用户远程登录ECS实例。具体操作,请参见通过密码或密钥认证登录Linux实例

c.执行以下命令,查看GPU驱动的版本。

nvidia-smi

回显信息类似下图所示。

d.执行以下命令,查看CUDA库的版本。

nvcc -V

回显信息如下图所示。

配置软件

1.执行以下命令,安装Git和Git LFS软件。

apt install -y git git-lfs python-is-python3

2.依次执行以下命令,安装模型所需要的Python包。

pip install git+https://github.com/huggingface/transformers
pip install sentencepiece==0.1.97 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install peft==0.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

说明:

从GitHub上下载Transformers库,由于网络原因偶尔可能会不成功,建议您多尝试几次。

3.在PyTorch环境下验证GPU是否正常工作。

a.执行以下命令,进入PyTorch环境。

python

b.执行以下命令,验证GPU是否正常工作。

import torch
torch.cuda.is_available()

  返回true,表示GPU正常工作。

c.执行以下命令,退出Python。

quit()

下载与配置模型

1.依次执行以下命令,下载tmux并创建一个tmux session。

apt install -y tmux
tmux


说明 :下载模型耗时较长,建议在tmux session中下载,以免ECS断开连接导致下载中断。

2.执行以下命令,下载Chinese-LLaMA-Alpaca模型。

git clone https://github.com/ymcui/Chinese-LLaMA-Alpaca.git

3.执行以下命令,下载chinese-alpaca-lora-13b模型。

git-lfs clone https://huggingface.co/ziqingyang/chinese-alpaca-lora-13b

4.执行以下命令,下载llama-13b-hf。

llama-13b-hf是预训练的llama 13b模型,已经转换成了Huggingface的模型格式。下载llama-13b-hf大约有40 GiB的数据,预估下载时间约30分钟,请您耐心等待。


LLaMA是第三方提供的Huggingface格式的预训练模型数据。Meta官方发布的LLaMA模型禁止商用,并且官方暂时还没有正式开源模型权重。这里使用这个下载链接只为做演示使用,不承担任何法律责任。


git-lfs clone https://huggingface.co/decapoda-research/llama-13b-hf


5.依次执行以下命令,合并代码。

cd Chinese-LLaMA-Alpaca/
python scripts/merge_llama_with_chinese_lora.py --base_model ~/llama-13b-hf/ \
        --lora_model ~/chinese-alpaca-lora-13b/ --output_type huggingface \
        --output_dir ./llama_with_lora_hf


命令行中需要用--output_dir命令指定一个输出目录,本示例中输出目录为/root/Chinese-LLaMA-Alpaca/llama_with_lora_hf 。转换需要一段时间,需要耐心等待。


6.执行以下命令,查看转换完成后的文件。

ls -lh llama_with_lora_hf

 

部署WebUI

1.执行以下命令,在/root目录或者您的工作目录,下载WebUI并且进行代码部署。

cd
git clone https://github.com/oobabooga/text-generation-webui.git

2.执行以下命令,安装代码及依赖库。

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

3.执行以下命令,在models目录下面生成一个软链接,指向合并后模型数据的目录。合并后的数据模型目录为/root/Chinese-LLaMA-Alpaca/llama_with_lora_hf,您可以从合并代码步骤获取。

ln -s /root/Chinese-LLaMA-Alpaca/llama_with_lora_hf/ models/llama_with_lora_hf

参数说明如下:

  • /root/Chinese-LLaMA-Alpaca/llama_with_lora_hf/:指的是合并模型存放的目录,您可以从合并代码步骤获取。
  • models/llama_with_lora_hf:指的是模型名称,您可以修改成其他名称。

验证结果

完成以上操作后,您已经成功完成了WebUI部署和个人版对话大模型的搭建。您可以在WebUI页面,进行验证。

  1. 执行以下命令,运行WebUI。
cd text-generation-webui/
python server.py --model llama_with_lora_hf --listen --chat --load-in-8bit

参数说明如下:

  • --model:指定的是步骤3生成的软链接的名称,不需要带前面的model/目录名。本示例软链接的名称为llama_with_lora_hf
  • --listen:用于设置WebUI监听所有外部IP(不配置--listen默认只能监听本地IP),以实现从实例外访问WebUI。默认监听端口是7860,您可通过--listen-port来指定其他监听端口。
  • --chat:用于指定默认的运行模式,本文示例为对话模式(可按需尝试其他模式)。
  • --load-in-8bit:用于指定以8bit模式加载模型。正常加载13B模型需要26 GB以上显存,A10显卡只有24 GB,所以需要以8bit模式加载,模型占用显存大约为15 GB。

当显示如下图所示的回显信息时,表示运行WebUI成功。

  1. ECS实例页面,获取ECS实例的公网IP地址。
  2. 在浏览器中输入http://:7860,即可访问个人版对话大模型。您可以输入相应的问题和AI机器人进行对话。

了解更多AIGC实践和GPU优惠

底部活动跳转横幅.png


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
19天前
|
决策智能 开发者
手把手教你如何用AIGC大模型写一首歌
本文记录了作者用大模型创作歌曲及视频的全过程。
|
2月前
|
机器学习/深度学习 数据采集 自然语言处理
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
AIGC-Transformer 模型
8月更文挑战第6天
|
2月前
|
自然语言处理
AIGC使用问题之GPT-1如何优化目标函数,如何做模型微调
AIGC使用问题之GPT-1如何优化目标函数,如何做模型微调
|
1月前
|
人工智能 自然语言处理 搜索推荐
人工智能的奇妙世界:从 AI 到 AIGC,再到大模型与 AGI
人工智能的奇妙世界:从 AI 到 AIGC,再到大模型与 AGI
40 0
|
2月前
|
机器学习/深度学习 运维 算法
「AIGC算法」K-means聚类模型
**K-means聚类模型概览:** - 是无监督学习算法,用于数据集自动分组。 - 算法步骤:初始化质心,分配数据点,更新质心,迭代直至收敛。 - 关键点包括K的选择、初始化方法、收敛性和性能度量。 - 优点是简单快速,适合大样本,但对初始点敏感,需预设K值,且仅适于球形簇。 - 应用场景包括图像分割、市场分析、异常检测等。 - 示例展示了使用scikit-learn对Iris数据集和自定义CSV数据进行聚类。
38 0
「AIGC算法」K-means聚类模型
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
AIGC领域中的模型
7月更文挑战第6天
|
2月前
|
机器学习/深度学习 人工智能 大数据
AIGC使用问题之多模态大模型如何升级AIGC的内容创作能力
AIGC使用问题之多模态大模型如何升级AIGC的内容创作能力
|
2月前
|
人工智能
AIGC使用问题之视觉大模型如何提高AIGC的感知能力
AIGC使用问题之视觉大模型如何提高AIGC的感知能力
|
3月前
|
人工智能 自然语言处理 机器人
【AIGC】大型语言模型在人工智能规划领域模型生成中的探索
【AIGC】大型语言模型在人工智能规划领域模型生成中的探索
71 6