逆向工程 scikit-learn 序列化模型

Reverse engineer scikit-learn serialized model

我正在尝试了解序列化 scikit-learn/keras 拟合模型(使用 pickle/joblib 等)的安全隐患。

具体来说,如果我处理不想透露的数据,是否有人可以对模型所适用的数据进行逆向工程?还是数据,只是算法更新算法相关coefficients/weights的一种方式? (如果我针对 "This movie is great" 训练模型并将其存储为 foo.pkl 文件,我是否也能够加载 foo.pkl 并说它是在 "This movie is great" 上训练的,如果我可以访问的是 pkl 文件而不是数据)

不,您不能(原则上无论如何)基于模型对数据进行逆向工程。您显然可以派生出经过训练的模型 weights/etc 并开始很好地理解它可能接受过的训练,但是直接派生数据,我不知道有任何可能的方法可以做到这一点,前提是您重新酸洗经过训练的模型。