4.0 KiB
4.0 KiB
昆仑芯XTRT-LLM使用指南
产品整体定位
XTRT—LLM产品定位是快速对齐Nvidia的大模型产品,在不改或者少改几行代码的情况下,能够做到完全兼容现有TensorRT-LLM产品;以模块化、Python组网的方式来支持大模型的推理。保证用户在使用上不会感知底层运行时的不同,只需关注模型结构和对应的算法本身,通过简单配置就可以实现单卡和单机多卡分布式两种推理运行方式,也符合算法工程师普遍的使用习惯。下图是XTRT-LLM整体架构图:
使用场景
XTRT-LLM可提供以下场景的支持:
- 在已经使用TensorRT-LLM进行GPU模型的推理与部署的情况下,XTRT-LLM可支持用户快速完成模型的迁移与适配,提供高性能版本的XPU推理能力,降低对接成本。
- 在指定开源LLM进行部署和性能测试情况下,对于XTRT-LLM已经验证支持的模型,可直接加载Huggingface上的公版权重,进行高性能版本的模型推理。
环境搭建与Demo
XTRT-LLM的环境搭建需要下载对应的Docker环境以及XTRT-LLM的产出来搭建大模型的运行环境。大模型的运行需要有编译和运行两个阶段。每个模型的具体运行会略有差异,详细的模型运行步骤可以参考对应模型目录下的README.md文件,这里以LLama-7B模型的单卡运行举例
环境搭建
- 下载Docker image并启动Docker
# 下载Docker image
docker pull iregistry.baidu-int.com/isa/xtcl_ubuntu2004:v4.3
# 启动Docker
sudo docker run -it
--net=host
--cap-add=SYS_PTRACE
--device=/dev/xpu0:/dev/xpu0 --device=/dev/xpu1:/dev/xpu1 #根据实际的昆仑芯卡设备数选择--device映射的数目**
--device=/dev/xpu2:/dev/xpu2 --device=/dev/xpu3:/dev/xpu3
--device=/dev/xpu4:/dev/xpu4 --device=/dev/xpu5:/dev/xpu5
--device=/dev/xpu6:/dev/xpu6 --device=/dev/xpu7:/dev/xpu7
--device=/dev/xpuctrl:/dev/xpuctrl
--name xtrt_llm
-v /宿主机路径:/容器路径
-w /容器工作路径
iregistry.baidu-int.com/isa/xtcl_ubuntu2004:v4.3 /bin/bash
- 下载XTRT-LLM产出包并解压
# 去除代理
unset http_proxy https_proxy
# 下载产出包
wget https://klx-sdk-release-public.su.bcebos.com/xtrt_llm/release/v0.5.3/output.tar.gz && tar -zxf output.tar.gz
cd output/
- 设置代理
根据实际网络场景,设置scripts/install_release.sh脚本中代理配置
set_proxy() {
export http_proxy=xxx
export https_proxy=xxx
}
- 切换到运行环境
source /home/pt201/bin/activate
bash scripts/install_release.sh
source scripts/set_release_env.sh
运行模型
- 下载模型权重
以llama-7b为例
cd examples/llama
bash ../../scripts/download_model.sh llama-7b
# bash ../../scripts/download_model.sh <模型名称>
# 当前支持的模型有: llama-7b, llama-13b, llama-65b, llama2-70b, chatglm-6b, chatglm2-6b, chatglm3-6b, baichuan-7b, baichuan-13b, baichuan2-7b, baichuan2-13b, bloom, gpt-neox-20b, qwen-7b, qwen-14b, qwen-72b and gptj-6b
下载的模型权重默认存放在 examples 目录下各模型对应的文件夹下的downloads,例如examples/llama/downloads
- 编译模型
模型具体的build命令请参考 examples 目录下各模型对应的README.md或README_CN.md
根据需要添加build.py中的配置参数,该过程需要几分钟的时间,每次修改参数都需要重新执行编译过程。
python3 build.py --model_dir ./downloads/llama-7b-hf/ \
--dtype float16 \
--use_gpt_attention_plugin float16 \
--output_dir ./downloads/llama-7b-hf/trt_engines/fp16/1-XPU/
- 运行模型
模型具体的run命令请参考 examples 目录下各模型对应的README.md或README_CN.md
python3 run.py --engine_dir ./downloads/llama-7b-hf/trt_engines/fp16/1-XPU/ --max_output_len 128 --tokenizer_dir ./downloads/llama-7b-hf/
