想象你搬进了一个“智慧小区”,每户人家都配了一台智能冰箱。这台冰箱想为你推荐菜谱,就得知道你的口味:你是无辣不欢还是清淡养生?你对花生是否过敏?这些口味偏好,就是你最重要的“数据隐私”。 最笨的办法,是把口味偏好全部上传到小区物业的“云端菜谱中心”,让云端统一分析。可一旦物业的服务器被黑客攻破,全小区都会知道老王爱啃臭豆腐、李阿姨对花生过敏——这就是“数据上云”的裸奔风险。 聪明的工程师想出了两条路:一条叫本地推理,把菜谱库直接装进你家冰箱的芯片里,冰箱离线就能推荐,数据连家门都不出;另一条叫联邦学习,每家冰箱只在本地“偷偷”记录口味反馈,只把一份加密的“口味总结”传给物业,物业汇总出新的菜谱库再下发各家——你吃了什么,永远只有冰箱知道。 两条路不是二选一,而是可以组合成一套“数据不出门、模型照升级”的兵法。这正是 TensorFlow.js、ONNX.js 等 Web 端 AI 推理技术背后,隐私保护的核心逻辑。接下来,我们就用这个“智能冰箱”的故事,把本地推理与联邦学习的技术细节拆开看明白。

岗位关联

对 AI 从业者的价值:掌握本地推理与联邦学习这对“隐私组合拳”,能在 Web 端 AI 应用中兼顾用户隐私与模型效果,是解决数据合规刚需与工程落地痛点的核心技能。

目录
  1. 可视化演示
  2. 隐私风险挑战
  3. 本地推理优势
  4. 联邦学习原理
  5. 通信开销优化
  6. 安全聚合机制
  7. 前端框架生态
  8. 工程选型实践
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示联邦学习的分布式训练架构:多客户端本地训练后安全聚合全局模型,原始数据不出本地。支持联邦网络拓扑与IID/Non-IID收敛对比两种模式切换。

本节配有交互动效(进入视口后自动加载,约 3KB)。

联邦学习隐私保护架构 客户端本地训练模型参数不上传原始数据 安全聚合全局模型保护隐私 w(t+1)=Σpᵢ·wᵢ(t) 加权聚合各客户端模型参数

隐私风险挑战

小区的智能冰箱要是把口味数据上传到物业中心,数据得先经过小区门口的监控摄像头、物业前台的小张、服务器机房的管理员——中间任何一环被突破,你的隐私就裸奔了。在 Web 端 AI 应用中,很多产品默认采用“数据上云”模式:浏览器把用户输入的文字、图片、音频上传到服务器,云端模型算完后把结果返回。这个过程看似便捷,实际在三个层面埋着地雷。

第一层是数据泄露风险。数据在网络传输中可能被中间人截获,服务器存储的历史数据一旦被拖库、被内部人员倒卖,用户隐私就彻底失控。第二层是浏览器环境的不可控性。浏览器本质上是一个开放沙箱,页面里引入的第三方脚本、浏览器插件、开发调试工具都可能读取页面数据;如果代码用明文字段上传数据,等于把隐私写在快递单上满大街送。第三层是法规合规压力。GDPR、《个人信息保护法》都强调“数据最小化”与“目的限制”,把用户原始数据上传到云端处理,在很多业务场景下根本就不合规,一罚就是几千万。

所以,隐私保护的第一性原理就是:让数据“少出门”,最好“不出门”。正如小区物业后来推出的解决方案——把菜谱库装进每家冰箱,把口味数据锁在家里,问题立刻化解了一大半。

本地推理优势

物业宣布:每户可以申请在智能冰箱里安装“离线菜谱库”。从此,冰箱根据你家冰箱里现有的食材和你自己的口味,当场就能给出推荐。你吃了什么、喜欢什么,只在冰箱的芯片里被计算、被遗忘,物业连一个字节都拿不到。

这就是本地推理(On-device Inference / Client-side Inference)的精髓:把 AI 模型直接部署到浏览器或终端设备上,用户数据在本地完成前向计算,只有“结果”被人使用,没有任何原始数据路径经过服务器。在 Web 端,TensorFlow.js 可以把模型加载进浏览器内存,ONNX.js 可以加载通用格式的模型,推理计算由 WebGL、WebGPU 或 WebAssembly 加速完成。

本地推理有三大优势:一是数据不出端,输入与输出都在设备内部完成,网络请求为零,从根上消除了链路泄露;二是模型驻留,模型文件被缓存在浏览器的 IndexedDB 或 Cache API 中,应用加载一次后即可离线工作;三是离线可用与低时延,没有网络往返时间(RTT),在弱网、地铁、电梯等场景下体验不中断。当然代价也明显:模型体积受设备算力限制,大型模型塞不进浏览器,必须做剪枝、量化、蒸馏等瘦身处理。

把“大厨请回家”固然私密满分,但家里厨房(算力)能做的菜式有限。正因如此,我们还需要另一种协作机制,让模型在不出门的前提下持续进步——这就是联邦学习。

联邦学习原理

每家冰箱都用自己的离线菜谱库,很快暴露出新问题:众口难调,统一的菜谱对老王太辣、对李阿姨太淡。物业想要一份“全小区口碑最好的菜谱”,却又不愿各家交出原始口味记录。于是物业想出一个妙招:各家冰箱在本地悄悄记录“推荐菜被点了几次、哪道菜总被剩下”,月底只上传一份“口味总结向量”给物业;物业把所有总结混在一起,算出一份“新菜谱库”再分发回各家冰箱。

这正是联邦学习(Federated Learning)的核心思想,由 Google 在 2016 年提出。多个客户端(手机、浏览器)在本地用私有数据训练模型,只把模型参数(而非原始数据)上传到参数服务器;服务器执行联邦平均(FedAvg),把各客户端上传的模型参数加权聚合,生成新的全局模型,再下发回各客户端。如此多轮迭代,全局模型越训越好,而原始数据从头到尾没有离开过任何一台设备。

FedAvg 的数学表达非常简洁优雅:

联邦学习让“人民群众的智慧”汇聚成了不断更新的菜谱库,但原材料永远留在各家厨房里。不过,一个新的烦恼随之而来——每家送来的“口味总结”实在太长了,物业收发室快被塞爆了。

wt+1=∑k=1Knkn⋅wt+1k\displaystyle w_{t+1} = \sum_{k=1}^{K} \frac{n_k}{n} \cdot w_{t+1}^k
这个公式的意思是:新菜谱库 = 各家口味总结按“饭量占比”加权平均后合成。
  1. 全局模型参数$w_{t+1}$ 表示第 $t+1$ 轮聚合后服务器生成的新全局模型,相当于“升级后的菜谱库”。
    wt+1w_{t+1}
  2. 客户端本地参数$w_{t+1}^k$ 表示第 $k$ 个客户端在本地数据上训练得到的新参数,相当于“第 $k$ 家的口味总结报告”。
    wt+1kw_{t+1}^k
  3. 数据量权重$\frac{n_k}{n}$ 中 $n_k$ 是第 $k$ 个客户端的本地样本数,$n$ 是全体参与客户端的样本总数;权重代表“这家冰箱记的账越多,发言权越大”,这样数据量大的客户端对全局模型的贡献更大。
    nkn\frac{n_k}{n}
  4. 加权求和$\sum_{k=1}^{K} \frac{n_k}{n} \cdot w_{t+1}^k$ 把每个客户端的参数按其样本占比累加,得到最终全局模型,如同物业把各家的总结按饭量比例混合成一本新菜谱。
    ∑k=1Knkn⋅wt+1k\sum_{k=1}^{K} \frac{n_k}{n} \cdot w_{t+1}^k

通信开销优化

联邦学习每一轮都要在客户端与服务器之间传输模型参数。一个中等规模的神经网络,参数动辄几十到几百 MB——相当于每家每户每个月往物业送一本几百页的“口味总结报告”。如果几千台设备同时上传,服务器的带宽立刻崩溃,用户手机流量也吃不消。所以工程师们发明了三招“压缩通信”的手段。

第一招梯度压缩:客户端算出的梯度更新向量里,大部分分量数值很小、贡献可忽略,干脆只保留绝对值最大的 $k$ 个分量,其余全部置零。第二招稀疏更新:只传输与上一轮相比发生变化的那部分参数及其位置索引,没变的参数一律不报。第三招量化传输:把 32 位浮点数压缩成 8 位整数甚至更低精度,传输体积直接缩小 4 倍以上。这三招可以叠加使用,叠加后通信开销往往能降低几个数量级。

其中梯度压缩里最经典的 TopK 稀疏化,公式如下:

报告变短了,物业处理起来轻松多了,各家也省下了电费和流量。但一个更隐蔽的问题还在:就算只交“口味总结”,这份总结本身也可能泄露口味——模型参数在特定攻击下能反推出训练数据。看来,还需要一个“连总结都偷看不了”的保险箱。

Δw′=TopK(Δw,k)\displaystyle \Delta w' = \mathrm{TopK}(\Delta w, k)
这个公式的意思是:从完整更新里只挑出最“重要”的 k 个变化上报,其余的一律不传。
  1. 完整更新向量$\Delta w$ 表示本地训练产生的完整梯度更新,相当于“每家写好的一本厚总结报告”。
    Δw\Delta w
  2. TopK 筛选$\mathrm{TopK}(\Delta w, k)$ 从 $\Delta w$ 中选出绝对值最大的 $k$ 个分量,把其余分量直接置零。它比喻成“从厚厚一沓报告里只挑信息量最大的三句话”,做到既保留主要信息、又大幅减负。
    TopK(Δw,k)\mathrm{TopK}(\Delta w, k)
  3. 稀疏化结果$\Delta w'$ 是筛选后的稀疏更新向量,传输时只需要带上 $k$ 个非零值及它们的位置索引,通信量从“全部维度”降为“少量数值”,好比把几百页作文压缩成一张电报。
    Δw′\Delta w'

安全聚合机制

物业再次升级方案:准备一个“匿名保险箱”。每家把口味总结写好后,先撕成好几片纸条,分别塞进保险箱的不同暗格;只有当所有暗格都满了,物业才能在箱内把纸条混合、算出汇总值。整个过程里,物业和其他邻居都看不到任何一家的完整纸条——这就是安全聚合(Secure Aggregation)的直观图景。

安全聚合的目标是:服务器只能看到所有客户端参数的聚合结果,但看不到任何单个客户端的参数。主流实现有三条技术路线。加密聚合使用同态加密技术,服务器在密文上直接做加法聚合,解密后只能拿到总和,单个参数永远隐藏在密文中。秘密共享把参数拆分成多份碎片分发给其他客户端,单一碎片看起来如同随机噪声,必须集齐足够碎片才能还原。差分隐私则是在参数中加入校准过的随机噪声,让攻击者无论怎样分析,都分辨不出“某一家的数据是否参与过训练”,从统计学上切断泄露通道。

秘密共享的简化表达如下:

安全聚合让服务器像“只能看到一堆混合颜料的眼睛”——它知道总体色调,却永远分不清哪一笔是谁画的。有了这些安全保障,Web 端推理还要解决最后一个基础问题:模型到底怎么才能在浏览器里跑起来?

s=s1+s2+⋯+sm(modq)\displaystyle s = s_1 + s_2 + \cdots + s_m \pmod{q}
这个公式的意思是:一封信被撕成 m 张纸条碎片,全部拼齐才能读出原文。
  1. 原始秘密$s$ 是要保护的模型参数值,相当于“口味总结报告里的一项具体数值”。
    ss
  2. 随机碎片$s_1, s_2, \ldots, s_m$ 是把参数 $s$ 随机拆成的 $m$ 份碎片。单独看任何一份,都只是无意义的随机数,无法还原出 $s$ 的任何信息,如同把一句话拆成多个字母打散在不同人手里。
    s1,s2,…,sms_1, s_2, \ldots, s_m
  3. 模运算还原$\pmod{q}$ 表示在模 $q$ 的有限整数域内做加法;只有收集齐全部碎片并求和,才能得到原始参数 $s$,如同拼齐所有纸条才能读出完整内容。
    s1+s2+⋯+sm(modq)s_1 + s_2 + \cdots + s_m \pmod{q}

前端框架生态

要让家家户户的冰箱都能运行菜谱库,得有一个“菜谱播放器”把菜谱翻译成冰箱听得懂的语言,再把做菜的计算调度到合适的火力上。在浏览器世界,这个“播放器”由三个技术层共同构成:TensorFlow.js、ONNX.js 和 WebAssembly。

TensorFlow.js 是 Google 推出的浏览器端深度学习库,它能把 TensorFlow 生态训练好的模型(tf.js 格式)直接加载进浏览器,通过 WebGL/WebGPU 调用 GPU 做矩阵运算加速。它的优点是生态成熟、API 友好,是目前 Web 端最主流的推理方案,适合 TF 系模型。ONNX.js 则着眼于“通用格式”——ONNX(Open Neural Network Exchange)是一种开放的模型中间格式,ONNX.js 可以把 PyTorch、Scikit-learn 等各种框架导出的 ONNX 模型拿到浏览器里推理,特别适合“训练在 Python、部署在浏览器”的团队,它的 CPU 后端依赖 WebAssembly。WebAssembly(WASM)是浏览器里接近原生性能的字节码标准,C++/Rust 编写的推理内核(如 XNNPACK)可编译成 WASM 运行,让推理在浏览器中逼近桌面级速度,ONNX.js 的 CPU 后端和大模型算子加速都离不开它。

打个比方:TensorFlow.js 是“原装菜谱播放器”(自家生态兼容最好),ONNX.js 是“万能格式播放器”(什么格式都能读),WebAssembly 则是它们共享的“强劲发动机”。三者配合,让“菜谱库”在每户冰箱里都能流畅运转。工具都齐了,最后的问题是:到底该把菜谱库装在本地冰箱,还是让冰箱定期上传总结?

工程选型实践

工程上的隐私保护方案从来不是单选题,而是像开一家高级餐厅——食材(数据)永远在自己的后厨处理,菜谱(模型)却可以通过“品鉴会”持续迭代。具体怎么选?看三个维度:数据敏感度、模型大小、个性化需求。

优先本地推理的场景包括:输入数据极度敏感(医疗影像、身份证照片、金融单据),模型体积较小(10MB 以内),业务要求离线可用或毫秒级响应。用户点击“分析”按钮后一切本地完成,连网络请求都不发一个。优先联邦学习的场景包括:需要跨用户个性化(输入法联想、商品推荐),数据天然分散在大量用户手中、无法集中训练,模型较大但可通过压缩后传输。最推荐的其实是混合架构:先用联邦学习在“小区范围”训练出不错的全局菜谱库,下发到各家冰箱(本地部署),冰箱日常做本地推理;每隔一段时间,冰箱收集匿名的“口味反馈”做一轮联邦微调,再更新菜谱库。这就形成了“联邦学习 → 本地推理 → 再联邦学习”的持续进化闭环。

合规落地可以按四步执行:第一步数据分类分级,识别哪些字段属于敏感数据,决定能否出端;第二步方案选型,敏感数据不出端就选本地推理,分布式个性化就选联邦学习;第三步安全加固,为联邦学习加上安全聚合、差分隐私、TLS 传输加密;第四步审计留痕,记录数据流向、保留合规审计日志,让每一次隐私保护动作都经得起监管检查。

最终你会发现:隐私保护不是一道“要安全还是要效果”的取舍题,而是一套组合拳。菜谱越做越好,食材却永远锁在自家后厨里——这就是 Web 端 AI 推理隐私保护的终极答案。

AI 应用场景

浏览器端医疗影像辅助诊断

阶段:模型部署与本地推理

解决的问题:CT 影像属于极度敏感的个人健康数据,传统上云诊断既存在隐私泄露风险,又面临《个人信息保护法》的合规压力。采用本地推理方案,将蒸馏压缩后的轻量诊断模型部署到浏览器端,影像文件在本地完成病灶初步筛查,仅输出“疑似概率与热力图”这类非敏感结果,原始影像数据不经过任何服务器。

具体案例:某在线问诊平台在 Web 端集成 TensorFlow.js,运行轻量化肺炎筛查模型。患者上传的 X 光片在浏览器本地完成实时推理,结果直接以可视化热力图呈现,医生端只接收“疑似概率”用于二次审核。整个流程中影像数据从未离开患者设备,合规审计全部通过。

输入法联想词库的联邦个性化

阶段:模型训练与持续更新

解决的问题:输入法的联想词库需要学习每个用户的输入习惯才能好用,但把用户打字内容上传到服务器训练会严重侵犯隐私。联邦学习让本地语言模型基于用户输入习惯在浏览器中微调,只上传加密聚合后的模型参数,服务端据此更新冷启动词库,不上传任何原文。

具体案例:某 Web 文档产品的智能纠错插件,使用联邦学习在浏览器本地记录用户的词语纠错动作,每周末触发一轮参数聚合,更新全局语言模型。用户的原文输入始终只存在于本地浏览器中,模型精度却随迭代持续提升。

电商推荐系统的合规 A/B 实验

阶段:模型服务与合规落地

解决的问题:电商首页推荐需要利用用户浏览行为做个性化,但直接上报行为日志面临严格的数据合规审计。采用“本地特征提取 + 联邦全局推荐”架构:用户行为特征在浏览器本地计算成特征向量,仅上传经差分隐私加噪的特征摘要,服务端返回个性化排序模型参数。

具体案例:某电商 Web 端在个人信息保护法评估后,将用户画像的“特质向量”改为本地计算 + 差分隐私上传,推荐点击率几乎保持不变,但隐私审计全部通过,项目顺利上架。这种混合方案已被证明是数据合规与业务效果兼得的高性价比路径。

Python 演示

python58 行
"""模拟Web端联邦学习:各浏览器客户端私有数据不出门,只上传本地模型参数"""import numpy as np  class BrowserClient:    """模拟一个浏览器客户端:私有数据保存在设备本地"""     def __init__(self, x, y, name):        self.x = x  # 本地特征矩阵(绝不外传)        self.y = y  # 本地标签向量(绝不外传)        self.name = name     def local_train(self, w, epochs=2, lr=0.05):        """在浏览器本地做梯度下降,返回本地模型参数(可以上传)"""        for _ in range(epochs):            grad = (self.x @ w - self.y) @ self.x / len(self.x)            w = w - lr * grad        return w.copy()  def fed_avg(clients, w0, rounds=8):    """服务器端联邦平均:只聚合模型参数,不接触任何原始数据"""    total_n = sum(len(c.x) for c in clients)    w = w0.copy()    for r in range(rounds):        local_models = []        for c in clients:            local_models.append((len(c.x), c.local_train(w.copy())))        w = np.zeros_like(w)        for n, local_w in local_models:            w += (n / total_n) * local_w        if (r + 1) % 2 == 0:            loss = sum(                np.mean((c.x @ w - c.y) ** 2) for c in clients            ) / len(clients)            print(f"第 {r + 1} 轮全局模型 MSE = {loss:.4f}")    return w  def main():    np.random.seed(42)    true_w = np.array([1.5, -2.0, 0.8, 0.5])    X = np.random.randn(120, 4)    y = X @ true_w + 0.1 * np.random.randn(120)     clients = [        BrowserClient(X[:40], y[:40], "Device1"),        BrowserClient(X[40:80], y[40:80], "Device2"),        BrowserClient(X[80:120], y[80:120], "Device3"),    ]     final_w = fed_avg(clients, np.zeros(4))    print("最终全局模型系数:", np.round(final_w, 3))    print("真实生成系数:", true_w)  if __name__ == "__main__":    main()
目的:用 3 个模拟“浏览器客户端”各自持有部分数据,通过 FedAvg 联邦平均算法迭代更新全局线性回归模型,直观演示“数据不出门、参数去聚合”的隐私保护流程。
  1. self.x = x # 本地特征矩阵(绝不外传)每个客户端持有自己的私有数据,数据只存在于本地对象中,模拟“数据不出浏览器”。
  2. grad = (self.x @ w - self.y) @ self.x / len(self.x)在本地计算梯度,整个过程不涉及任何网络通信,是“联邦”里的“本地训练”。
  3. w = w - lr * grad本地更新模型参数,方法返回的是参数而非原始数据,模拟“客户端只上传模型参数”。
  4. local_models.append((len(c.x), c.local_train(w.copy())))客户端只把本地样本数和训练后的参数交给服务器,原始数据从未离开本地。
  5. w += (n / total_n) * local_w服务器按样本数加权平均每个客户端的贡献,这就是联邦平均的核心聚合步骤。
  6. X = np.random.randn(120, 4); y = X @ true_w + ...构造具有真实规律的实验数据,让模型从随机初始化出发,经过多轮联邦迭代逼近真实系数。

常见误区

误区把模型部署到浏览器后,推理就完全本地化了,那模型文件本身也不需要再从服务器下载了吧?本地推理应该等于完全离线。

正解本地推理指的是“推理计算”发生在本地,但模型文件依然是一份需要从服务器下载的资源。首次加载时模型文件要通过网络传输,只是之后会被缓存在浏览器 IndexedDB 或 Cache API 里。模型更新版本时,仍要联网拉取新模型。类比来说,冰箱的“菜谱库”虽然存在冰箱里,但初次安装时还是得由物业派人送来。

为何常见:“本地”这个词让人误以为整个生命周期都离线,忽略了一个基本事实——软件资产需要分发,只有“运行时”才是本地的。

误区联邦学习只上传模型参数而不上传原始数据,因此攻击者拿不到任何隐私信息,可以说是绝对安全的。

正解模型参数本身携带大量训练数据的统计信息。研究者已经证明,通过梯度泄露攻击(DLG)或成员推断攻击,攻击者可以从参数中反推出训练样本的近似值,或判断某条数据是否参与过训练。所以联邦学习并不天然安全,必须叠加安全聚合、差分隐私、加密传输等措施,才能称为“隐私保护”。好比“口味总结”虽然不含原始食材,但认真分析仍能猜出你家的口味偏好。

为何常见:人们习惯用“上传的是什么数据”来判断风险,而忽略了“信息量”才是隐私泄露的本质——参数里浓缩的信息同样能出卖用户。

误区为了让模型能在浏览器里跑,应该把模型压缩得越小越好,反正推理效果差不了多少。

正解模型压缩(剪枝、量化、蒸馏)会带来精度损失,压缩比过大会导致推理结果明显劣化。工程中需要在模型体积、推理精度、运行时延三者之间做权衡:医疗影像这类任务对精度极度敏感,就不能盲目追求小模型;而表单识别这类简单任务,则可以大胆压缩。正确做法是评估任务复杂度,设定精度底线,再选择匹配的压缩方案。

为何常见:看到“移动端/浏览器端模型”就联想到“越小越好”,忽视了不同任务对精度的容忍度完全不同。

误区联邦学习把这么多客户端的参数聚在一起,应该一轮聚合就能得到一个不错的模型吧?这就像是搞一次投票,结果立刻出来。

正解联邦学习是一个非常漫长的迭代过程,每一轮只有“本地训练→上传→聚合→下发”四步中的一小步。而且由于各客户端的本地数据往往是“非独立同分布”的(每个用户的口味完全不同、数据分布差异巨大),全局模型需要几十上百轮才能收敛,甚至可能出现震荡。实际部署中常常要配合学习率调度、客户端采样、服务端动量等技术来稳定训练。

为何常见:把联邦学习类比成“汇总投票”,而忽略了它本质上是分布式梯度下降,收敛规律和集中式训练一样需要多轮迭代。

误区要在浏览器里跑 AI 模型,最出名的就是 TensorFlow.js,估计这是唯一的选择。

正解TensorFlow.js 只是最流行的一种方案。ONNX.js 可以直接运行 PyTorch 导出的 ONNX 模型,更贴近 Python 生态的部署链;WebAssembly 运行时(如 Wasmtime 编译的 XNNPACK 内核)能提供接近原生的 CPU 推理速度;此外还有 WebNN 等浏览器神经网络 API 在演进中。选型时应该看模型来源、目标硬件、是否需要 GPU 加速,而不是“哪个名气大选哪个”。

为何常见:TensorFlow 在深度学习领域知名度太高,让人误以为它是 Web 端唯一的推理引擎,忽略了 ONNX 和 WASM 等中立、高性能的技术路线。

面试题

Q1. 本地推理在隐私保护上的最核心优势是什么?

单选题 · easy

  • A.本地推理速度更快
  • B.数据不出本地设备← 正确答案
  • C.模型完全无需存储
  • D.推理无需任何框架

答案:B。本地推理的本质就是把数据留在设备内完成计算,彻底消除网络传输与服务器存储带来的泄露面。速度快、免存储、免框架都是次要优势,只有“数据不出设备”才是隐私保护的原动力,好比菜谱在自家冰箱里计算,食材从未出门。

Q2. 联邦学习中,客户端向服务器上传的是什么?

单选题 · mid

  • A.原始训练数据
  • B.用户明文标签
  • C.浏览器历史记录
  • D.本地模型参数← 正确答案

答案:D。联邦学习的核心约定是“数据不动模型动”——客户端在本地训练后,只把训练得到的模型参数(或梯度)上传到服务器,原始数据与标签始终留在本地。服务器聚合参数后下发新模型,形成一轮迭代。原始数据一旦上传,就不叫联邦学习了。

Q3. 以下哪些是联邦学习通信开销的优化手段?

多选题 · mid

  • A.梯度压缩技术← 正确答案
  • B.稀疏更新技术← 正确答案
  • C.无限增加数据量
  • D.参数量化传输← 正确答案

答案:ABD。梯度压缩(TopK 只传重要梯度)、稀疏更新(只传变化参数)、参数量化(浮点转低精度整数)都能有效减小传输体积。而“无限增加数据量”会加重通信负担,与优化目标背道而驰。

Q4. 安全聚合机制要解决的核心问题是什么?

单选题 · mid

  • A.使模型推理更快
  • B.服务器只见聚合结果← 正确答案
  • C.降低网络通信延时
  • D.增加模型参数量

答案:B。安全聚合的目标是让服务器只能看到所有客户端参数的聚合结果,而看不到任何一个客户端的具体参数,防止服务器好奇或被迫窥探个体隐私。加速推理、降低延时、增加参数都不是安全聚合的职责。

Q5. 在简化版的秘密共享中,要还原参数 s 需要满足什么条件?

单选题 · hard

  • A.拿到任意一份即可
  • B.必须集齐全部分数← 正确答案
  • C.还要服务器端签名
  • D.需要客户端密码

答案:B。秘密共享把参数拆成 m 份随机碎片,单独任何一份都只是随机数,看不出原始信息;只有把全部碎片收齐后才能还原出原始参数 s。这就像一封信被撕成 m 张纸条,必须拼齐全部纸条才能读到原文。

Q6. 以下哪些技术/框架可以用于 Web 端本地推理?

多选题 · mid

  • A.TensorFlow.js 框架← 正确答案
  • B.ONNX.js 推理引擎← 正确答案
  • C.PyTorch 训练框架
  • D.TorchScript 运行时

答案:AB。TensorFlow.js 和 ONNX.js 都是浏览器端推理运行库,把模型加载进页面本地执行。PyTorch 与 TorchScript 主要用于 Python 后端的训练与推理,并非浏览器本地推理方案。

Q7. WebAssembly 在 Web 端推理中的主要作用是什么?

单选题 · easy

  • A.提升网络传输带宽
  • B.加速本地推理计算← 正确答案
  • C.压缩模型体积大小
  • D.加密通信传输数据

答案:B。WebAssembly 把 C++/Rust 编写的推理内核编译成接近原生性能的字节码,在浏览器中以接近桌面的速度执行矩阵运算,从而加速本地推理。它不负责带宽、压缩或加密。

Q8. 工程中数据极敏感且需离线可用的场景,应优先选择哪种方案?

单选题 · hard

  • A.采用纯云端推理
  • B.选择本地推理← 正确答案
  • C.采用联邦学习
  • D.人工离线处理

答案:B。数据极敏感意味着连“参数摘要”都不应外传;需离线可用意味着推理不能依赖网络。本地推理是唯一同时满足“数据不出设备”和“断网可用”的方案。联邦学习虽然数据不出本地,但仍需联网上传参数,无法满足“完全离线”的要求。

Q9. 关于联邦学习与本地推理的关系,下列说法正确的是?

多选题 · hard

  • A.两者可以组合使用← 正确答案
  • B.联邦学习需要上传原始数据
  • C.本地推理可离线进行← 正确答案
  • D.联邦学习一轮即可收敛

答案:AC。工程实践中最常见的是混合架构——先用联邦学习训练全局模型,再下发到本地做推理,定期再联邦微调,因此 A 正确。本地推理的整个计算都在设备内完成,不依赖网络,C 正确。联邦学习上传的是模型参数而非原始数据,B 错误;它需要多轮迭代才会收敛,D 错误。

Q10. 符合数据合规的 Web 端 AI 隐私保护最佳实践是?

单选题 · easy

  • A.无视隐私直接上传数据
  • B.本地推理加联邦学习组合← 正确答案
  • C.全量数据加密上传云端
  • D.干脆禁用浏览器功能

答案:B。本地推理负责“数据不出门”,联邦学习负责“模型照升级”,两者组合能在隐私、效果与合规之间取得最佳平衡。加密上传虽然比明文好,但仍把数据集中到云端,增加了泄露面;禁用浏览器更是因噎废食。