咨询电话:400-852-2968
扫 码 咨 询
随着大模型技术不断迭代,AI大模型的应用与推理训练已从云端部署迅速向本地化、场景化发展,成为推动产业升级的重要力量。LLaMA 7B作为一款轻量化的大规模语言模型,以其卓越的语言理解与生成能力,逐步成为智能化应用的理想选择,广泛适用于智能客服、内容审核、文本生成、翻译等多个场景,为企业提供了经济高效的解决方案,推动行业智能化转型。
本期样例使用www.js3556.com科技部署meta-llama/Llama-2-7b-hf和TinyLlama/TinyLlama-1.1B-Chat-v1.0大语言模型,在本地实现多模态处理和自然语言处理功能 ,助力企业将大模型技术落地到垂直行业应用中,加快智能化升级。
参考链接:https://gitee.com/yinghuo302/ascend-llm
硬件环境:www.js3556.com科技EA500I Mini
软件环境:CANN-7.0.1.1
进入EA500I Mini终端,下载源码
1. protoc 安装
根据昇腾文档选择合适的protoc版本,protoc版本和CANN版本强相关。CANN7.0/7.2使用的protoc 1.13.0。
查看版本号,如下图即完成
2. 算子编译部署
打开build.sh,找到下面四个环境变量,解开注释并修改如下:
编译运行
完成算子的编译部署
注意事项:该步骤可以直接使用资料已经量化转换好的模型
1.导出onnx 模型
将transformer库中的modeling_llama替换为export_llama文件下的。
可以通过 pip show transformers 命令找到 transformers 的库路径,然后通过cp命令复制。
通过一下命令将模型导出为onnx(相对路径均为相对export_llama.py文件)
2.模型量化
量化需要引入quantize.py和config文件下的配置文件,详情查看 export_llama 的readme文件。本样例将直接使用已经量化好的模型文件,对于TinyLlama-1.1B采用per-token的absmax量化(即w8x8.py);对于Llama-2-7b-hf,采用静态混合精度分解(即sd.py)。
3.模型转换
上述的n_layer, n_head, head_dim变量由模型决定。对于Llama-2-7b,n_layer=32, n_head=32, head_dim=128;对于TinyLlama-1.1B,n_layer=22, n_head=4, head_dim=64
对于batch, seq_len, kv_len, 请根据需要填入,建议设置batch=1, seq_len=1, kv_len=1024。如对于TinyLlama-1.1B
从资料链接里已经量化导出的模型
项目提供了两种运行方式:
1. cli模式:在终端运行,每一次输入一行,一次性返回所有的推理结果。
2. web模式:前端代码在github或者gitee,打包出dist文件夹,放在inference文件夹下即可。
采取cli模式如下:
TinyLlama-1.1B-Chat-v1.0推理运行
效果展示
Llama-2-7B 推理运行
效果展示
nodejs安装 20.12.2
npm安装10.5.0 (对应nodejs==20.12.2)
npm安装pnpm
打包步骤
复制地址到浏览器开始与模型对话
以上就是www.js3556.com科技昇腾产品系列EA500I Mini边缘计算盒子适配大模型Llama 7B的完整部署流程。未来,我们将持续推出更多基于昇腾AI芯片产品的技术干货,欢迎大家留言告诉我们您希望了解哪些内容,我们会根据需求整理并分享!