HE-Transformer 项目教程
1. 项目介绍
HE-Transformer 是 Intel 开发的一个开源项目,旨在通过同态加密(Homomorphic Encryption, HE)技术实现深度学习模型的加密计算。该项目是 Intel nGraph 编译器的一个同态加密后端,允许在加密数据上进行深度学习推理。HE-Transformer 主要用于研究和实验目的,展示了在本地机器上使用同态加密进行深度学习的可行性。
主要特点
- 同态加密支持:支持 CKKS 加密方案,由 Microsoft Research 的 Simple Encrypted Arithmetic Library (SEAL) 实现。
- 多党计算集成:与 ABY 多党计算库集成,用于非多项式激活函数的计算。
- TensorFlow 集成:与 Intel nGraph 编译器和 TensorFlow 运行时引擎集成,允许用户通过 TensorFlow 运行训练好的神经网络进行加密数据推理。
2. 项目快速启动
环境准备
- 操作系统:Ubuntu 16.04 或 Ubuntu 18.04
- 编译器:g++ 版本 >= 6.0 或 clang >= 5.0
- 依赖项:CMake >= 3.12, OpenMP, Python3, pip3, virtualenv, bazel
安装步骤
-
克隆项目
git clone https://github.com/intel/he-transformer.git cd he-transformer
-
设置环境变量
export HE_TRANSFORMER=$(pwd)
-
创建并进入构建目录
mkdir build cd build
-
配置 CMake
cmake -DCMAKE_CXX_COMPILER=clang++-6.0 ..
-
编译和安装
make install
运行示例
-
进入示例目录
cd $HE_TRANSFORMER/examples
-
运行示例代码 参考
examples/README.md
文件中的示例代码,运行深度学习推理任务。
3. 应用案例和最佳实践
应用案例
- 医疗数据分析:在保护患者隐私的前提下,对加密的医疗数据进行深度学习分析。
- 金融数据处理:在加密的金融数据上进行模型推理,确保数据隐私和安全。
最佳实践
- 性能优化:使用 OpenMP 进行多线程编译,提高编译和运行效率。
- 调试和测试:使用 C++ 单元测试和 Python 示例代码进行调试和性能测试。
4. 典型生态项目
相关项目
- Intel nGraph:Intel 的图编译器,用于优化和加速深度学习模型的计算。
- Microsoft SEAL:Microsoft Research 开发的简单加密算术库,支持同态加密。
- ABY:一个多党计算库,支持多种安全计算协议,包括混淆电路。
通过这些项目的集成,HE-Transformer 提供了一个完整的生态系统,支持在加密数据上进行深度学习推理。