模型保护场景,基于MindIE部署大模型推理

1 背景

通常情况下,MindIE从配置文件获取模型权重文件的路径,并加载磁盘上的权重文件。但模型是模型厂家重要的资产,模型厂家会做加密保护。当模型厂家落盘的权重文件是加密时,则MindIE需要支持从内存加载已解密的权重,包括基础权重和LoRA权重。

2 权重加密阶段

2.1 加密算法选择

下载MindIE LLM仓的权重加解密样例,详见链接
加密算法实现逻辑在encrypt.py中的EncryptTools类中的encrypt方法中实现。若使用其他加密算法,用户可自行修改encrypt方法中的代码实现。

class EncryptTools(Encrypt):
 def __init__(self) -> None:
 super().__init__()
 
 # generate key
 self.key = your key info
 
 def encrypt(self, tensor: torch.Tensor):
 """
 输入是原始tensor,输出是加密tensor。
 保证加密前后,encrypted_tensor和tensor的shape一致。
 """
 return encrypted_tensor

针对权重文件的具体解密算法,用户根据选择加密算法实现DecryptTools类中的 decrypt方法。

class DecryptTools(Decrypt):
 '''
 写一个自己的解密类,以AES-256,CTR模式 加密算法为例。
 '''
 def __init__(self, key_path, **kwargs) -> None:
 super().__init__()
 
 def decrypt(self, encrypted_tensor: torch.Tensor):
 """
 输入是加密tensor,输出是解密tensor。 
 保证解密前后,encrypted_tensor和decrypted_tensor的shape一致。
 """
 return decrypted_tensor

通常,加密阶段一般在客户的开发环境生成加密权重,在运行环境部署加密后的权重。

注意事项:

1)选择安全的加密算法,例如:AES-256, CTR模式加密算法;
2)对权重和密钥文件存储路径进行合法性和安全性校验。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值