立山 发表于 2025-3-31 00:09:31

以Llama 2为例进行大模型推理实践

本节先简要先容了Llama2模型的根本信息,接着详述了怎样在GPU云主机中搭建模型运行情况。基于此,推出了预装 LLaMA2-7B-Chat大模型和模型运行情况的GPU云主机镜像,使您可以或许快速搭建Llama 2推理和微调情况。
什么是Llama2

Meta在7月18日发布了可以免费用于学术研究或贸易用途的Llama2开源大语言模型。

https://i-blog.csdnimg.cn/img_convert/f0144a70204f16b1a8b99f1b07f19e4e.png
Llama的练习方法是先进行无监督预练习,再进行有监督微调,练习奖励模型,根据人类反馈进行强化学习。 Llama 2的练习数据比Llama 1多40%,用了2万亿个tokens进行练习,而且上下文长度是Llama 1的两倍。 目条件供7B 、13B、70B三种参数目的版本。

https://i-blog.csdnimg.cn/img_convert/c525dbc638af6c91318830c8160d18e0.png
根据Meta公布的官方数据,Llama 2在许多基准测试上都优于其他开源语言模型,包罗推理、编程、对话本领和知识测试,在帮助性、安全性方面甚至比部门闭源模型要好。

https://i-blog.csdnimg.cn/img_convert/ce86c0328bb2795909f7c2d85fc751d4.png
Llama 2-Chat在Llama 2的基础上针对聊天对话场景进行了微调和安全改进,使用 SFT (监督微调) 和 RLHF (人类反馈强化学习)进行迭代优化,以便更好的和人类偏好保持同等,提高安全性。
Llama 2-Chat更专注于聊天机器人领域,主要应用于以下几个方面:


[*]客户服务:Llama 2-Chat可以用于在线客户服务,回答关于产品、服务的常见题目,并向用户提供帮助和支持。
[*]社交娱乐:Llama 2-Chat可以作为一个有趣的聊天伙伴,与用户进行随意、轻松的对话,提供笑话、谜语、故事等娱乐内容,增加用户的娱乐体验。
[*]个人助理:Llama 2-Chat可以回答一些日常生活中的题目,如天气查询、时间设置、提醒事项等,帮助用户办理简朴的任务和提供一些实用的功能。
[*]生理健康:Llama 2-Chat可以作为一个简朴的生理健康支持工具,可以与用户进行交换,提供情绪调治、压力缓解的建议和技巧,为用户提供安慰和支持。
在GPU云主机上搭建模型运行情况

步骤一:创建1台未设置驱动的GPU云主机


[*]进入创建云主机页面。
a.点击天翼云门户首页的“控制中央”,输入登录的用户名和暗码,进入控制中央页面。
b.单击“服务列表>弹性云主机”,进入主机列表页。
c.单击“创建云主机”,进入弹性云主机创建页。

[*]进行基础设置。
a.根据业务需求设置“计费模式”、“地域”、“企业项目”、“假造私有云”、“实例名称”、“主机名称”等。
b.选择规格。此处选择"CPU架构"为"X86"、"分类"为"GPU型"、"规格族"为"GPU计算加速型p2v"、"规格"为"p2v.4xlarge.8"。
注意
大模型推理场景须要处理大量的数据和参数,对显卡显存和云盘大小都有肯定要求。


[*] 针对显存,加载全精度Llama-7B-chat模型时,模型将斲丧28G显存,除此之外也须要额外的显存用于存储中间激活和其他临时变量,因此,最低选择显存为32G的V100显卡。同时您也可以根据自身需求对模型进行量化,缩减模型大小,减少对显存的要求并提升计算速率。
[*] 针对体系盘,为了存储模型文件、相关依靠、输入数据以及中间结果,最好将体系盘大小设置为100GB以上。
c.选择镜像。此处选择ubuntu 20.04的基础镜像进行推理实践。
注意
为了演示模型搭建的整个过程,此处选择未配备任何驱动和工具包的ubuntu基础模型。详细创建步骤请参见创建未配备驱动的GPU云主机-GPU云主机-用户指南-创建GPU云主机 - 天翼云。
终极我们生成了预装llama2模型和模型依靠的大模型镜像,并在成都4进行了加载,如您有相关须要可在订购时直接选择该镜像——大模型镜像 LLaMA2-7B-Chat(100GB)。
d.设置云盘范例和大小。

[*]网络及高级设置。设置网络,包罗"网卡"、"安全组",同时配备'弹性IP'用于下载模型和相关依靠;设置高级设置,包罗"登录方式"、"云主机组"、"用户数据"。
[*]确认设置并支付。
步骤二:下载模型并上传

从魔乐社区、魔搭社区等国内大模型社区及平台下载Llama-2-7b-chat-hf模型,如下图所示。下载完成后上传至GPU云主机/opt/llama路径下。

https://i-blog.csdnimg.cn/img_convert/06f17c7bea505b390081975e4cb7ed48.png
说明
怎样将当地文件上传到Linux云主机请参考当地文件怎样上传到Linux云主机。
步骤三:情况搭建


[*]上传并安装GPU驱动
从Nvidia官网下载GPU驱动并上传至GPU云主机,按照如下步骤安装驱动。
# 对安装包添加执行权限
chmod +x NVIDIA-Linux-x86_64-515.105.01.run
# 安装gcc和linux-kernel-headers
sudo apt-get install gcc linux-kernel-headers
# 运行驱动安装程序
sudo sh NVIDIA-Linux-x86_64-515.105.01.run --disable-nouveau
# 查看驱动是否安装成功
nvidia-smi

https://i-blog.csdnimg.cn/img_convert/e47c191d4b835d7717bf08c878898d53.png
说明
怎样选择驱动及相关库、软件版本请参见怎样选择驱动及相关库、软件版本。
TESLA驱动安装更详细说明请参见安装Tesla驱动-GPU云主机-用户指南-安装NVIDIA驱动 - 天翼云。

[*]安装Nvidia CUDA Toolkit组件
wget http://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
# 安装CUDA
bash cuda_11.7.0_515.43.04_linux.run
# 编辑环境变量文件
vi ~/.bashrc
#在当前行下新开一行并插入
o
# 增加环境变量
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
# 按Esc 键退出插入模式并保存修改
:wq
# 使环境变量生效
source ~/.bashrc
# 查看是否安装成功
nvcc -V

[*]安装Miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 安装Miniconda3
bash Miniconda3-latest-Linux-x86_64.sh
# 配置conda环境变量
vim /etc/profile
#在当前行下新开一行并插入
o
# 添加环境变量
export ANACONDA_PATH=~/miniconda3
export PATH=$PATH:$ANACONDA_PATH/bin
# 按Esc 键退出插入模式并保存修改
:wq
# 使环境变量生效
source /etc/profile
# 查看是否安装成功
which anaconda
conda --version
conda info -e
source activate base
python
# 查看虚拟环境
conda env list

https://i-blog.csdnimg.cn/img_convert/7e586dea75f5cbb8d8f64f40c49d404e.png

[*]安装cuDNN
从cudnn-download下载cuDNN压缩包并上传至GPU云主机,按照如下步骤进行安装。
# 解压
tar -xf cudnn-linux-x86_64-8.9.4.25_cuda11-archive.tar.xz
# 进目录
cd cudnn-linux-x86_64-8.9.4.25_cuda11-archive
# 复制
cp ./include/*/usr/local/cuda-11.7/include/
cp ./lib/libcudnn*/usr/local/cuda-11.7/lib64/
# 授权
chmod a+r /usr/local/cuda-11.7/include/* /usr/local/cuda-11.7/lib64/libcudnn*
# 查看是否安装成功
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
#返回根目录
cd

https://i-blog.csdnimg.cn/img_convert/eadf8c1593dba9c0ebc775108ed9920d.png

[*]安装依靠
a. 下载Llama模型代码
git clone https://github.com/facebookresearch/llama.git
b. 在线安装依靠
# 创建python310版本环境
conda create --name python310 python=3.10
# 查看虚拟环境列表
conda env list
# 激活python310环境
source activate python310
# 切换到llama目录
cd /opt/llama

python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
# 下载依赖
pip install -e . -ihttps://pypi.tuna.tsinghua.edu.cn/simple
pip install transformers-ihttps://pypi.tuna.tsinghua.edu.cn/simple
pip install numpy==1.23.1 -ihttps://pypi.tuna.tsinghua.edu.cn/simple
pip install torch==2.0.1 -ihttps://pypi.tuna.tsinghua.edu.cn/simple
pip install -U bitsandbytes -ihttps://pypi.tuna.tsinghua.edu.cn/simple
# 下载peft
git clone https://github.com/huggingface/peft.git
# 传到离线服务器上切换分支,安装特定版本peft
cd peft
git checkout 13e53fc
# 安装peft
pip install . -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
注意
安装相关依靠的耗时较久请您耐烦等待。

[*]准备推理代码和启动脚本
a. 进入/opt/llama目录下
cd /opt/llama
b.下载推理代码
访问 github网站,下载推理代码inference_hf.py并上传至云主机。
c.新建启动脚本run.sh
#新建空文件
vim run.sh
#文件内新增如下内容
python inference_hf.py
--base_model7b-chat
--tokenizer_path 7b-chat
--with_prompt
--gpus 0
步骤四:镜像打包

为了使您能更快的搭建模型运行情况,在完成步骤一和步骤二的操作后,我们对GPU云主机的体系盘进行了打包,生成了标准的GPU云主机镜像。目前已经上传至天翼云成都4、海口2资源池,您可直接对该镜像进使用用。
镜像打包步骤如下:
echo "nameserver 114.114.114.114" > /etc/resolv.conf
echo "localhost" > /etc/hostname

# 清除 machine-id。
yes | cp -f /dev/null /etc/machine-id
# 若有 /var/lib/dbus/machine-id,则:
# rm -f /var/lib/dbus/machine-id
# ln -s /etc/machine-id /var/lib/dbus/machine-id

cloud-init clean -l# 清理 cloud-init。若此命令不可用,则可尝试:rm -rf /var/lib/cloud
rm -f /tmp/*.log# 清除镜像脚本日志。

# 清理 /var/log 日志。
read -r -d '' script <<-"EOF"
import os
def clear_logs(base_path="/var/log"):
    files = os.listdir(base_path)
    for file in files:
      file_path = os.path.join(base_path, file)
      if os.path.isfile(file_path):
            with open(file_path, "w") as f:
                f.truncate()
      elif os.path.isdir(file_path):
            clear_logs(base_path=file_path)

if __name__ == "__main__":
    clear_logs()
EOF
if [ -e /usr/bin/python ]; then
    python -c "$script"
elif [ -e /usr/bin/python2 ]; then
    python2 -c "$script"
elif [ -e /usr/bin/python3 ]; then
    python3 -c "$script"
else
    echo "### no python env in /usr/bin. clear_logs failed ! ###"
fi

# 清空历史记录。
rm -f /root/.python_history
rm -f /root/.bash_history
rm -f /root/.wget-hsts
使用大模型镜像进行模型快速摆设

步骤一:创建GPU云主机

登录天翼云控制台,进入弹性云主机主机订购页,选择计算加速型GPU云主机,在公共镜像中选择大模型镜像 LLaMA2-7B-Chat。
大模型镜像 LLaMA2-7B-Chat最低规格推荐:p2v.2xlarge.4 8vCPU 32GB内存 单张v100 GPU。
步骤二:在线推理

登录GPU云主机,根据如下步骤实验推理任务。
#进入/opt/llama目录并实验sh run.sh命令cd /opt/llama
&& sh run.sh#根据提示在”please input your question :” 后输入推理题目
https://i-blog.csdnimg.cn/img_convert/2ffe449095b02a741d19f1f566f06998.png
注意

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 以Llama 2为例进行大模型推理实践