1 英特尔技术介绍
英特尔 Extension for Transformers 是英特尔推出的一个创新工具包,可基于英特尔架构平台,尤其是第四代英特尔至强可扩展处理器(代号 Sapphire Rapids,SPR)显著加速基于 Transformer 的大语言模型 (Large Language Model, LLM)。其主要特性包括:
通过扩展 Hugging Face transformers API 和利用英特尔® Neural Compressor,为用户提供无缝的模型压缩体验;
提供采用低位量化内核(NeurIPS 2023:在 CPU 上实现高效 LLM 推理)的 LLM 推理运行时,支持 Falcon、 LLaMA、MPT、 Llama2、 BLOOM、 OPT、 ChatGLM2、GPT-J-6B、Baichuan-13B-Base、Baichuan2-13B-Base、Qwen-7B、Qwen-14B 和 Dolly-v2-3B 等常见的 LLM;
先进的压缩感知运行时(NeurIPS 2022:在 CPU 上实现快速蒸馏 和 QuaLA-MiniLM:量化长度自适应 MiniLM;NeurIPS 2021:一次剪枝,一劳永逸:对预训练语言模型进行稀疏/剪枝)。
2 实验环境配置
进入ModelScope(https://www.modelscope.cn/home),右上角点击完成新用户的注册;
注册完成后,登录modelscope,进入首页,请确定已经绑定阿里云账号,并已获得免费的配套云计算资源。启动CPU服务器:
打开terminal
进入环境目录/opt/conda/envs,新建文件夹itrex:
拷贝镜像文件至itrex目录(任选一个下载即可):
解压文件:
结果如下:
激活环境:
安装对应的kernel
3 设计实现
创建notebook
基于itrex kernel新建notebook
下载模型,新建cell,下载中文大模型:
新建cell,下载embedding模型:
准备知识库文件sample.jsonl
1) 新建文件sample.jsonl:右键->New File 双击文件,在文件里面输入如下内容,保存文件。
回到notebook,新建cell,添加以下代码构建chatbot,点击运行:
新建cell,添加以下代码disable retrieval,运行结果如下:
新建cell,添加以下代码enable retrieval,运行结果如下:
4 个人心得
在英特尔Extension for Transformers 中,我发现了一种创新工具,能够显著地提升基于 Transformer 的大语言模型(LLM)的推理效率。这个工具包括了一个名为LLM Runtime的运行时环境,专门为英特尔至强可扩展处理器进行了优化。通过这个运行时环境,我能够利用英特尔®的各种AI加速技术,如AMX、VNNI,以及AVX512F和AVX2指令集,来实现更高效的LLM推理。
其中,LLM Runtime还提供了多种量化选择,使得我可以根据需要进行不同粒度和不同组大小的量化,从而更好地适应我的应用场景。此外,它还拥有优化的KV缓存访问和内存分配策略,以及张量并行化功能,有助于在多路系统中进行分布式推理。
在实验中,我发现这个工具包极大地提升了我的工作效率,特别是在处理大型语言模型时。通过充分利用英特尔的硬件优势和优化的运行时环境,我能够更快速地完成推理任务,同时减少了资源消耗。这使得我能够更好地应对LLM在聊天等应用场景中的挑战,提供更流畅、更智能的用户体验。
总的来说,英特尔 Extension for Transformers 提供了一套强大而高效的工具,为我在英特尔架构平台上开发和部署基于Transformer的大语言模型提供了极大的帮助。我相信在未来的工作中,这个工具包将继续发挥重要作用,帮助我更好地应对各种复杂的自然语言处理任务。