基于CPU的AI推理加速技术在天翼云EMR云主机上的应用 3.2.1 xFasterTransformer (xFT)实施方法 3.2.1.1 模型转换为xFT格式 在使用xFT框架前,需要对模型进行格式转换。xFT提供了转换命令,您可修改和执行/root/tools/xfttrans.py脚本。 plaintext import xfastertransformer as xft 输入huggingface模型路径 HFDIR "/root/models/Llama27bchathf" 输出xft模型路径 XFTDIR "/root/models/Llama27bchatxft" xft.LlamaConvert().convert(HFDIR, XFTDIR) plaintext 在执行前, 需要进入conda运行环境(执行过一次即可) conda activate xFT python xfttrans.py 3.2.1.2 查看numa节点分布 plaintext numactl H 以下输出代表32个vcpu均在同一个numa node下: 以下输出代表vcpu015分布在numa node0, vcpu1631分布在numa node1: 3.2.1.3 检查测试参数 性能测试所需的参数均在、root/tools/llamabenchmark.py中,您可按需进行修改,对比开启和关闭xFT的效果,以及不同token长度的效果等。 3.2.1.4 单进程执行 注意 如果您的云主机存在不止一个numa node,直接使用单进程方式执行脚本会出现大幅性能波动,您可参考单核和多核的不同实施方法。 在单进程情况下,您可直接执行python脚本: plaintext 在执行前, 需要进入conda运行环境(执行过一次即可) conda activate xFT cd /root/tools 绑定cpu核, 性能更稳定 OMP线程数和绑定的cpu核数保持一致 天翼云主机开启了cpu超线程, 01/ 23号vcpu分别在同一个物理核上, 只需要使用其中一个核即可 vcpu与物理核的对应关系可在/proc/cpuinfo查看每个processor的physical id OMPTHREADNUM16 numactl all C 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30 python llamabenchmark.py 您将会得到以下输出(本示例采用天翼云c7.8xlarge.2 32核 64G云主机): 如果想要和加速前的性能进行对比,您可以修改脚本内的USEXFTFalse,然后再次执行。 您也可使用测试脚本查看模型生成的结果: plaintext 在执行前, 需要进入conda运行环境(执行过一次即可) conda activate xFT cd /root/tools 修改prompt后执行 python llamarun.py