说明
场景说明:以客户将【私有模型】通过TKS密钥加密的方式上传到TOS并发布到PCC模型广场后,完成模型服务部署,并提供密文接口供模型推理服务联调测试。
准备一台128GB以上内存物理机器,并安装好Python3环境(建议使用Anaconda环境,避免依赖冲突)。
export VERSION=0.1.7.28 pip3 install bytedance.jeddak_secure_channel-${VERSION}-py3-none-any.whl
from bytedance.jeddak_secure_model.model_encryption import EncryptionConfig, JeddakModelEncrypter if __name__ == "__main__": model_path = "/root/pcc/Qwen32B" # 模型的文件夹路径 【model_path】 bucket_name = "llmmodels" # 创建TOS的存储桶 【buck_name】 # 火山账号的ak sk volc_ak = "your access key" #【AK】 volc_sk = "your secret key" #【SK】 region = "cn-beijing" # 存储桶的区域,对应的映射关系见步骤5 endpoint = "tos-cn-beijing.volces.com" ring_id = "" # 选填,如已有密钥环,在此填写密钥环ID;如未填,则会根据`ring_name` 自动创建密钥环 ring_name = "Qwen32B-Ring" # 自定义密钥环名称【自定义修改】 ring_desc = "Ring for Qwen32B" # 添加对密钥环的描述【自定义修改】 key_name = "Qwen32BKey" # 自定义密钥名称【自定义修改】 key_desc = "Key for Qwen32B" # 添加对可信密钥的描述【自定义修改】 app_id = "your account id" # 火山页面查看自己账号的【app_id】 service = "pcc" # 目前参数传空的 config = EncryptionConfig("", "") encrypter = JeddakModelEncrypter(config) res = encrypter.encrypt_model_and_upload( model_path=model_path, bucket_name=bucket_name, volc_ak=volc_ak, volc_sk=volc_sk, region=region, endpoint=endpoint, ring_id=ring_id, ring_name=ring_name, ring_desc=ring_desc, key_name=key_name, key_desc=key_desc, app_id=app_id, service=service ) print(res)
python3 sdk.py ##输出结果如下,用于下一步 # ring_id 加密模型的可信密钥环ID # key_id 加密模型的可信密钥ID # baseline 加密模型的基线值 # model_name 加密模型的名称
说明
获取的结果,具体如下:
model_path (TOS中的路径信息)
# ring_id 加密模型的可信密钥环ID # key_id 加密模型的可信密钥ID # baseline 加密模型的基线值 # model_name 加密模型的名称
说明
特别说明:不同尺寸模型,部署耗时会有差异。具体建议尺寸如下:
PCC规格 | 说明 |
---|---|
基础版 | 支持小尺寸的模型,如1.5B,具体以实际验证为准。 |
高级版 | 支持中尺寸的模型,如32B,具体以实际验证为准。 |
旗舰版 | 支持大尺寸的模型,如DeepSeek R1-671B(满血版),具体以实际验证为准。 |
{ "ra_url": "open.volcengineapi.com", "ra_service_name": "替换成机密容器界面的service-name", "ra_policy_id": "9eb6b259-a3fe-580c-90c5-ef20a92309c8", "ra_uid": "替换成自己火山账号的uid", "bytedance_top_info": "{\"ak\": \"按照实际情况填写\", \"sk\": \"按照实际情况填写\", \"service\": \"pcc\"}", "attest_interval": 3600 }
export ip={替换为你的模型服务地址} export model_name={替换为合适的模型名称} python3 completion_cipher.py