Yi-1.5基于昇腾的环境配置及应用部署心得

举报
yd_254538132 发表于 2024/12/02 13:58:38 2024/12/02
【摘要】 一、任务需求首先了解熟悉任务计划书(https://bbs.huaweicloud.com/blogs/439896),目的需求是将 Yi-1.5项目适配至华为的 Ascend(昇腾)和 Kunpeng(鲲鹏)处理器,确保模型能在这些硬件平台上的高效运行,需要注意系统架构是aarch64。二、过程本文验证的模型是Yi-1.5-6B-Chat,可根据需求替换不同参数的模型明确需求后开始熟悉模型...

一、任务需求

首先了解熟悉任务计划书(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
yi_cpu_html.png

yi_cpu_terminal.png

NPU
yi_npu_terminal.png

NPU运行状态

npu状态.png


四、心得及其注意事项

  • numpy版本要小于2,本文提供的版本是numpy==1.26.4,建议用transformers==4.40.2,新版的易冲突报错
  • 国外模型网站不是经常能访问到,有需要可设置国内镜像源。
  • 在整个适配过程中,遇到了多个技术挑战,主要问题还是环境配置相关,通过根据报错信息理解和做相应修改等方法,最终成功解决了这些问题。
  • 有些模型由于训练预料的问题,可能不太适合用中文问答,选择合适的模型去应用会事半功倍
  • 参数量较小的模型效果相对较差,容易出现幻觉。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。