Yi-1.5基于昇腾的环境配置及应用部署心得
一、任务需求
首先了解熟悉任务计划书(https://bbs.huaweicloud.com/blogs/439896),目的需求是将 Yi-1.5项目适配至华为的 Ascend(昇腾)和 Kunpeng(鲲鹏)处理器,确保模型能在这些硬件平台上的高效运行,需要注意系统架构是aarch64。
二、过程
本文验证的模型是Yi-1.5-6B-Chat,可根据需求替换不同参数的模型
明确需求后开始熟悉模型,了解其需要的配置和环境要求
安装相关依赖:python版本为3.10
#创建环境
conda create -n yi python=3.10
conda activate yi
#使用yum更新下环境包
yum update -y
#更新pip
python -m pip install --upgrade pip
#安装torch
pip install torch==2.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
#安装numpy要2以下
pip install numpy==1.26.4 packaging accelerate sentencepiece gradio transformers==4.40.2 decorator scipy attrs -i https://pypi.tuna.tsinghua.edu.cn/simple
下载模型
#安装ModelScope
pip install modelscope -i https://pypi.tuna.tsinghua.edu.cn/simple
#下载Yi-1.5-6B-Chat模型到当前文件夹
modelscope download --model 01ai/Yi-1.5-6B-Chat --local_dir ./dir
下载代码
Yi-1.5-6B-Chat的github地址:https://github.com/01-ai/Yi-1.5,将其代码库中的代码文件下载下来
git clone https://github.com/01-ai/Yi-1.5.git
需要将模型修改为本地模型地址
代码修改适配,详情见代码仓库:https://gitcode.com/2401_82798006/Yi/overview
web_demo:源码提供了html前端展示页面的代码部分
web_demo_cpu_terminal:代码去除前端交互部分,可在终端交互
web_demo_npu_terminal:昇腾堡垒机不支持前端交互,在终端交互代码,指定npu加速模块
------------------------------------------------------------------------------------------------------------------
昇腾NPU和鲲鹏CPU部署整体过程类似,需要多安装一个touch_npu,版本也选择2.2,NPU需要将cpu核心换成npu,运行时可能会提醒缺少相关依赖,根据提示安装即可
需要更新昇腾环境
export PYTHONPATH=/usr/local/Ascend/ascend-toolkit/8.0.RC2/python/site-packages:$PYTHONPATH
export LD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/8.0.RC2/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/8.0.RC2/lib64/plugin/opskernel:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/8.0.RC2/lib64/plugin/nnengine:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/8.0.RC2/opp/built-in/op_impl/ai_core/tbe/op_tiling/lib/linux/aarch64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64/common:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64/driver:$LD_LIBRARY_PATH
export PATH=/usr/local/Ascend/ascend-toolkit/8.0.RC2/bin:$PATH
export ASCEND_OPP_PATH=/usr/local/Ascend/ascend-toolkit/8.0.RC2/opp
export ASCEND_AICPU_PATH=/usr/local/Ascend/ascend-toolkit/8.0.RC2/aicpu
export ASCEND_TOOLKIT_HOME=/usr/local/Ascend/ascend-toolkit/8.0.RC2
export RDM_HOME=/usr/local/Ascend/rdm/latest
export PATH=$RDM_HOME/bin:$PATH
export LD_LIBRARY_PATH=$RDM_HOME/lib:$LD_LIBRARY_PATH
三、结果
使用Yi-1.5进行对话问答
CPU
NPU
NPU运行状态
四、心得及其注意事项
- numpy版本要小于2,本文提供的版本是numpy==1.26.4,建议用transformers==4.40.2,新版的易冲突报错
- 国外模型网站不是经常能访问到,有需要可设置国内镜像源。
- 在整个适配过程中,遇到了多个技术挑战,主要问题还是环境配置相关,通过根据报错信息理解和做相应修改等方法,最终成功解决了这些问题。
- 有些模型由于训练预料的问题,可能不太适合用中文问答,选择合适的模型去应用会事半功倍
- 参数量较小的模型效果相对较差,容易出现幻觉。
- 点赞
- 收藏
- 关注作者
评论(0)