夜雨聆风学习资料网

ARTICLE · 1065297

同态加密在AI里到底能干什么?

同态加密在AI里到底能干什么?
最近又翻到了一些隐私计算的东西。
里面有个词很有意思。
Homomorphic Encryption。
同态加密。
这两年 AI Agent 越来越火,我又把这个东西翻出来看了一遍。
以前我们用云服务,给服务器的数据其实没那么多。
搜 Google,给它一个关键词。
上传一张图片,给它一张图片。
现在不一样。
AI 越来越有用的前提,就是它知道你的东西越来越多。
邮件。
公司文档。
代码。
聊天记录。
日历。
银行卡流水。
病历。
以后 Agent 真要帮你操作电脑,搞不好连你屏幕上正在干什么它都知道。
这里有一个问题以前一直被大家默认了。
服务器要帮我算东西,它当然得先看到我的数据。
HTTPS 可以保证数据传过去的时候别人看不到。
硬盘加密可以保证数据放在磁盘上的时候别人看不到。
但服务器真正开始计算的时候。
还是得解密。
说白了。
数据传输的时候穿衣服。
存储的时候也穿衣服。
开始干活了。
还是得脱。
同态加密想干的事情就比较变态了。
不脱。
照样干活。

这个想法其实非常老。
1978 年,Rivest、Adleman 和 Dertouzos 就已经讨论过类似的问题:
数据能不能一直保持加密状态,同时还允许别人对它做计算?
后来也出来过很多部分同态方案。
有些可以加。
有些可以乘。
但问题一直卡在这里:
到底能算多复杂?
因为密文不是随便让你折腾的。
加一下。
乘一下。
再乘几次。
里面的噪声会越来越大。
最后直接炸掉。
直到 2009 年。
Craig Gentry 发了那篇:
《Fully Homomorphic Encryption Using Ideal Lattices》。
第一次给出了全同态加密构造,可以通过 Bootstrapping 支持任意深度的电路计算。
我愿称之为同态加密的牛顿时刻。
这个问题几十年前就有人提出来了。
中间也有各种局部解法。
到了 Gentry 这里,终于第一次把“理论上能不能通用计算”这件事情跑通了。
Bootstrapping 怎么理解?
粗暴一点。
一个密文算着算着,噪声越来越大,眼看快死了。
洗一下。
又能继续算。
再脏。
再洗。
Gentry 先把“能不能”这道坎迈过去了。
后面十几年大家一直在折腾另外一个问题:
跑不跑得动。
这是两个完全不同的问题。
数学家说:
可以。
工程师说:
你这个可以是什么意思?

我觉得 CryptoNets 特别适合理解这个区别。
2016 年微软搞了一篇:
《CryptoNets: Applying Neural Networks to Encrypted Data with High Throughput and Accuracy》。
干的事情现在看很直白。
用户把图片加密。
把密文扔给服务器。
服务器不知道图片是什么,但可以直接在密文上跑神经网络。
输出结果也是密文。
最后只有用户自己解密。
当年在 MNIST 上准确率做到了 99%。
论文还写:
一台 PC 每小时可以跑大约 59000 次预测。
第一眼看。
卧槽。
2016 年都这么猛了?
然后再往下看一眼。
单次预测延迟:
250 秒。
……
四分钟。
这就是一个特别经典的 Benchmark 阅读案例。
59000 次/小时是真的。
250 秒一次也是真的。
因为它可以一次批量塞很多数据进去。
所以吞吐很高。
但你自己坐在那里等一个结果。
还是得等四分钟。
这跟投资看财报其实差不多。
两个数字都没造假。
只看其中一个,故事完全不一样。

后来 CKKS 出来以后,我觉得同态加密和 AI 才真的有一点天然匹配的味道了。
2017 年 Cheon、Kim、Kim、Song 发表:
《Homomorphic Encryption for Arithmetic of Approximate Numbers》。
也就是 CKKS。
它有个地方我觉得特别适合机器学习。
它接受误差。
很多密码学计算希望结果是精确的。
1 就是 1。
但 AI 根本没这个包袱。
FP32。
BF16。
FP8。
现在甚至往 FP4 干。
模型自己都不在乎最后几位小数,你同态计算也没必要非得死磕绝对精确。
CKKS 就是做近似数值计算,支持密文上的近似加法和乘法。
这对神经网络很重要。
因为神经网络一天到晚都在干什么?
矩阵乘法。
Linear。
Convolution。
Attention 里面也是一堆矩阵乘。
看到这里好像很完美。
然后问题来了。
神经网络又不只有矩阵乘法。

Transformer 开始找麻烦
ReLU。
GELU。
Softmax。
LayerNorm。
这些东西 FHE 看了都比较烦。
同态加密最喜欢的世界,大概就是:
加法。
乘法。
最好其他什么都别有。
结果 Transformer 恰恰不是这样的。
后面的论文看多了,会发现一个挺有意思的变化。
大家慢慢不再只问:
怎么让 FHE 跑 Transformer?
也开始有人反过来想:
能不能把 Transformer 改成 FHE 喜欢的样子?
2022 年 THE-X 就是在处理 GELU、Softmax、LayerNorm 这些非多项式运算,用近似方法把它们变得更适合同态计算。
到了 2024 年 ICML,甚至直接有一篇叫:
《Converting Transformers to Polynomial Form for Secure Inference Over Homomorphic Encryption》。
名字已经懒得装了。
直接把 Transformer 往多项式改。
为什么多项式?
因为:
x²。
x³。
2x + 3。
拆到底就是加法和乘法。
FHE 看了很开心。
Softmax 看了头疼。
我觉得这里其实很像以前 AI 模型迁就硬件。
GPU 擅长什么。
模型慢慢就往什么地方长。
TPU 擅长什么。
模型又会跟着变。
现在多了一个:
密码学擅长什么。
模型能不能也迁就一下。

然后到了 LLM,问题又变态了一层
CNN 还好。
Transformer 已经麻烦。
LLM 又把规模直接拉大几个数量级。
所以现在如果看到有人说:
“FHE 已经可以跑 LLM 了。”
我第一反应已经不是:
牛逼。
而是:
多大的模型?
完整模型吗?
一个 Token 多久?
有没有改模型结构?
用了多少机器?
有没有混 MPC?
需不需要交互?
这个东西特别容易出现 CryptoNets 那种情况。
标题看起来非常猛。
把 Benchmark 展开以后,是另外一个故事。
我翻 Reddit 的时候也看到有人直接问:
FHE 跑 LLM 到底有没有戏,还是 TEE 更现实?
讨论里面一个我觉得比较准确的说法是:
FHE 和 TEE 一直绕不开隐私保护和性能之间的取舍。
FHE 的保证更漂亮。
服务器数学上就看不到你的数据。
TEE 没那么纯粹。
数据还是会解密,只不过只允许在一个硬件隔离环境里看。
但 TEE 现在明显更容易跑起来。
Reddit 上做这一块的人,目前也普遍觉得 TEE 更适合现在的 LLM。
全尺寸 LLM 真要全套 FHE 跑起来,离实用还有距离。
这个我觉得挺值得想。
因为技术圈特别容易犯一个毛病。
谁数学上更漂亮。
谁就应该赢。
实际商业根本不是这么回事。
如果 A 可以做到 100% 理想,但是贵 1000 倍。
B 只能做到 90 分,但是成本加 10%。
最后大家买哪个。
还真不好说。

而且还有一个更现实的问题。
到底谁真的愿意为隐私付钱?
Reddit 上有个做 Differential Privacy 的人说,他读博最后一个很现实的感受是:
真正特别在乎隐私保护机器学习的,很多时候还是那些法律逼着必须在乎的人。
医疗。
人口统计。
这类行业。
我觉得这个观点挺值得想。
我们技术人员很容易默认:
隐私越强当然越好。
但用户最后看的可能是:
贵不贵。
慢不慢。
麻不麻烦。
我又没有什么特别见不得人的东西。
为什么要多花十倍的钱?
所以同态加密最先用起来的地方,我觉得未必是普通 ChatGPT 用户。
更可能是那些:
数据特别值钱,而且真的不能泄露。
医疗。
金融。
企业核心数据。

比如医院有 CT。
病理数据。
基因信息。
想用外面的模型。
现在的逻辑是:
为了让模型看病,先把病人的数据给模型提供方看。
这件事情本身就有点奇怪。
同态加密想做的是:
模型给你用。
算力也给你用。
但数据不给你看。
这个就很合理。
金融也一样。
交易流水。
账户信息。
风控特征。
很多时候不是“最好别泄露”。
是真的不能泄露。

还有一个方向我也很感兴趣。
Embedding。
RAG。
向量检索。
因为这些东西数学结构简单很多。
Embedding 最后就是向量。
向量检索大量操作又是:
点积。
距离。
相似度。
刚好比较适合同态计算。
比如以后一个公司的 RAG 里面塞满了内部文档。
你搜一句东西。
理论上服务器连你搜了什么、最后匹配到了什么,都没必要知道。
这比:
“明年用 FHE 完整跑一个万亿参数模型。”
我觉得现实多了。
别一上来就想把整个 AI Stack 吃掉。
先找最好啃的地方。

AI 越有用,这个老问题可能越重要
这东西现在最大的问题还是贵。
慢。
难工程化。
很多场景 TEE 可能已经够用了。
能本地跑模型的话,本地跑甚至更简单。
FHE 不一定是答案。
但有一个东西我以前一直默认,现在越来越觉得不应该默认。
计算为什么一定要看到明文?
以前是因为没得选。
CPU 要算。
先给 CPU 看。
GPU 要算。
先给 GPU 看。
云服务器帮你算。
那当然也先给云服务器看。
好像天经地义。
同态加密说:
不一定。
我觉得这才是最有意思的地方。
尤其以后 Agent 真要把邮件、代码、内部文档、日历、病历、银行卡流水全部塞进 Context。
Agent 越有用。
它知道你的东西越多。
这两个东西天然就是冲突的。
但密码学给的是另外一种答案。
让它数学上就看不到。
就这样吧~

相关学习资料