Encryption_CN.md 1.6 KB
Newer Older
T
Thomas Young 已提交
1
# 加密模型预测
H
HexToString 已提交
2

H
HexToString 已提交
3
(简体中文|[English](Encryption_EN.md))
H
HexToString 已提交
4

T
Thomas Young 已提交
5
Padle Serving提供了模型加密预测功能,本文档显示了详细信息。
H
HexToString 已提交
6

T
Thomas Young 已提交
7
## 原理
H
HexToString 已提交
8

T
Thomas Young 已提交
9
采用对称加密算法对模型进行加密。对称加密算法采用同一密钥进行加解密,它计算量小,速度快,是最常用的加密方法。
H
HexToString 已提交
10

T
Thomas Young 已提交
11 12 13 14
### 获得加密模型

普通的模型和参数可以理解为一个字符串,通过对其使用加密算法(参数是您的密钥),普通模型和参数就变成了一个加密的模型和参数。

H
HexToString 已提交
15
我们提供了一个简单的演示来加密模型。请参阅[examples/C++/encryption/encrypt.py](../../examples/C++/encryption/encrypt.py)
T
Thomas Young 已提交
16 17 18 19 20 21 22


### 启动加密服务

假设您已经有一个已经加密的模型(在`encrypt_server/`路径下),您可以通过添加一个额外的命令行参数 `--use_encryption_model`来启动加密模型服务。

CPU Service
H
HexToString 已提交
23
```
T
Thomas Young 已提交
24 25 26 27
python -m paddle_serving_server.serve --model encrypt_server/ --port 9300 --use_encryption_model
```
GPU Service
```
28
python -m paddle_serving_server.serve --model encrypt_server/ --port 9300 --use_encryption_model --gpu_ids 0
H
HexToString 已提交
29 30
```

T
Thomas Young 已提交
31
此时,服务器不会真正启动,而是等待密钥。
H
HexToString 已提交
32

T
Thomas Young 已提交
33
### Client Encryption Inference
H
HexToString 已提交
34

T
Thomas Young 已提交
35
首先,您必须拥有模型加密过程中使用的密钥。
H
HexToString 已提交
36

T
Thomas Young 已提交
37
然后你可以用这个密钥配置你的客户端,当你连接服务器时,这个密钥会发送到服务器,服务器会保留它。
H
HexToString 已提交
38

T
Thomas Young 已提交
39
一旦服务器获得密钥,它就使用该密钥解析模型并启动模型预测服务。
H
HexToString 已提交
40 41


T
Thomas Young 已提交
42
### 模型加密推理示例
H
HexToString 已提交
43
模型加密推理示例, 请参见[examples/C++/encryption/](../../examples/C++/encryption/)