英特尔推理技术分享
此次英特尔分享了深度学习模型优化技术,主要内容包括以下几个方面:
-
演讲者介绍:田丰是英特尔人工智能模型性能优化团队的经理和软件架构师,拥有丰富的AI框架性能优化和工具开发经验。
-
目标受众:面向深度学习领域的初学者、寻求硬件加速深度学习模型的工程师,以及对模型优化算法/方法感兴趣的人群。
-
推荐学习材料:包括浮点运算知识、半精度浮点数、混合精度训练、深度学习推理的整数量化等。
-
先决条件:涉及FMA(融合乘加)、计算机理论峰值性能、矩阵乘法TFLOPS计算等基础知识。
-
议程:包括通用优化技术(量化、混合精度、剪枝/稀疏性、蒸馏)和大型语言模型(LLM)相关的优化技术(平滑量化、仅权重量化、FP8)。
-
深度学习优化技术概述:介绍了量化方法(后训练量化、静态量化、动态量化、权重量化)、量化公式、静态量化细节等。
-
INT8在Intel Xeon平台的支持:介绍了AVX512和AVX512_VNNI指令集对INT8的支持。
-
量化的优点和缺点:讨论了量化的优缺点,并对大型语言模型的量化挑战进行了讨论。
-
平滑量化(SmoothQuant):介绍了平滑量化技术及其增强,包括自动操作优化和将SmoothQuant应用于矩阵乘法。
-
BF16数据类型:介绍了BF16(Brain Floating Point 16)数据类型及其在Intel平台的支持。
-
权重量化:讨论了仅权重量化技术,包括INT4存储格式和GPTQ、AWQ算法。
-
Intel AutoRound:介绍了Intel AutoRound工具及其代码示例。
-
FP8数据类型:介绍了FP8数据类型的两种格式和延迟缩放技术。
-
剪枝:讨论了支持的权重剪枝算法和剪枝对模型性能的影响。
-
知识蒸馏:简要提及了知识蒸馏技术。
-
其他优化主题:如FlashAttention等。
整体而言,深入探讨了深度学习模型在英特尔平台上的加速和优化技术,涵盖了量化、混合精度、剪枝、蒸馏等多种优化手段,并提供了一些具体的代码示例和工具介绍。
课程实验
这个实验是关于如何使用ModelScope平台和英特尔的扩展工具来构建和优化一个聊天机器人模型的指南。实验的主要步骤包括:
-
注册和登录ModelScope:
- 访问ModelScope网站并完成新用户注册。
- 登录后确保已经绑定阿里云账号,并获得了免费的云计算资源。
- 启动CPU服务器并查看启动状态。
-
环境配置:
- 打开终端。
- 在
/opt/conda/envs
目录下创建名为itrex
的新文件夹。 - 从提供的两个下载源中选择一个下载
itrex.tar.gz
镜像文件。 - 解压下载的文件到
itrex
目录。 - 激活
itrex
环境,并安装对应的kernel。
-
创建notebook:
- 使用
itrex
kernel新建一个notebook。 - 下载所需的模型,包括中文大模型
chatglm3-6b
和embedding模型bge-base-zh-v1.5
。 - 准备知识库文件
sample.jsonl
,包含一些基础内容和链接信息。
- 使用
-
构建聊天机器人:
- 在notebook中添加代码以启用retrieval插件,并设置相关参数。
- 创建聊天机器人配置
PipelineConfig
,并使用build_chatbot
函数构建聊天机器人实例。 - 配置优化选项,例如设置计算数据类型为
int8
,权重数据类型为int4_fullrange
。
-
测试聊天机器人:
- 禁用retrieval功能,并向聊天机器人提出问题,观察并打印回答。
- 启用retrieval功能,再次提出相同的问题,观察并打印回答。
实验的目的是展示如何使用英特尔的工具和优化技术来提升聊天机器人的性能,同时比较启用和禁用知识检索功能时聊天机器人的表现差异。通过这个实验,参与者可以学习到如何在实际应用中部署和优化大型语言模型。
心得体会
结合英特尔的深度学习模型优化技术讲座和实验手册,我深刻体会到硬件与软件协同优化的重要性。通过量化、混合精度等技术,可以在保持模型准确性的同时,显著提升模型在英特尔硬件平台上的性能和效率。实验手册提供了一个实践平台,让我能够亲自操作并验证理论知识。此外,英特尔提供的扩展库简化了优化过程,使得开发者可以更容易地集成和应用这些技术。这不仅加深了我对深度学习优化技术的理解,也强调了持续学习和适应新技术的重要性。