WebNN 可用性、后端与浏览器隐私
了解 WebNN 的用途、浏览器支持和执行选择为何不同,以及如何测试机器学习功能而不把能力检查变成用户画像数据。
WebNN 是一种网页 API,可将机器学习计算表达为图并由浏览器执行。它支持在本地运行推理,减少应用对远程服务的依赖,但支持仍取决于实现。应用应准备回退路径,也不应把 API 存在等同于速度或硬件保证。
WebNN 表达什么
应用描述运算和数据流,再请浏览器构建、编译并执行计算图。API 希望让用户代理把工作映射到可用计算资源,同时使应用图模型不依赖某一家设备厂商的接口(参见 W3C 编程模型)。
WebNN 与图形渲染不同。图形计算和渲染见 WebGPU 与浏览器隐私。一个 API 可用,不代表另一个也可用。
应描述用户任务,而不是 API 名称:照片功能可能需要图像计算图,转写功能可能需要音频图,文档功能可能需要文本图。不同任务可能使用不同模型、输入形状、输出解释和回退路径。
应分别决定这些路径,避免只测试一项功能却宣称整体能力可用。这样也能明确告知用户哪项功能不可用,同时保持页面其他无关功能可用。计算图有效不代表它适用于每种输入,例如色彩布局异常的图片或含有不受支持文字的文档。还要验证输入处理流程,并说明用户需要处理哪一步,不应要求用户理解浏览器的执行模型才能继续。
可用性与执行选择
支持情况取决于浏览器实现成熟度、发布通道、操作系统、硬件和配置。浏览器可能只实现目标功能的一部分,也可能完全不提供该接口。规范提供 opSupportLimits() 查询特定运算的支持情况,但不暴露实际选择的设备(运算支持查询,隐私考量);API 可用并不能证明图由哪个后端执行。
这些选择会随版本变化:浏览器可能新增运算、移除实验路径或改变计算图调度方式;操作系统更新可能改变浏览器可用资源;受管理的安装也可能因管理员策略限制功能。这些实现细节会影响兼容性和性能,但不是识别设备的稳定合同。
结果需要追踪时,应记录浏览器版本、操作系统系列、应用版本、模型修订和计算图需求。这些信息可帮助负责人决定调整应用、保留回退或暂缓功能,但不能据此推断用户的物理设备。
同一计算图可能在一个版本通过、另一个版本被拒,因为运算尚未可用,或应用依赖超出支持政策的行为。应把它记为兼容性结果,而非对个人或特定机器的判断。
隐私问题
本地推理可能减少输入数据发送到服务端的需要,但不会自动使应用私密。应用仍决定存储、传输和记录哪些信息。网页也可能知道某项能力是否可用。应将结果视为功能选择信号,而不是用户身份或硬件结论。本地计算不能说明应用其余部分的网络行为;作为应用数据流检查,应另行确认源数据、结果或遥测是否会被上传(参见 W3C 隐私考量)。W3C 的隐私表述针对 WebNN 对输入数据的处理;应用独立上传数据属于另一条数据路径。
能力检查应服务于明确的用户需求,只请求功能所需信息,并在记录遥测前审查用途。隐私取决于完整数据流,而非计算发生的位置:本地计算图可以让输入留在设备上,但应用仍可能存储源图片、缓存模型、导出结果或发送错误报告。远程回退可能需要上传、登录账户并适用不同保留规则;移动数据前要说明这些选择。支持记录尽量只保留简短结果,例如功能可用、选择了回退或任务未完成,而非完整能力对象。源数据可能包含人脸、声音或文档,应另行制定访问与删除规则。浏览器选择的执行方式无法回答这些产品层面的问题。
兼容性测试
在每个受支持的浏览器族中测试应用所需的计算图和预期结果。为不支持 WebNN 的浏览器保留路径,并确认切换回退不会丢失用户数据或留下未完成任务。功能结果和性能预期应分别验证。
不要只凭一台工作站作发布决定。维护简洁记录,包括浏览器版本、操作系统、功能结果和回退结果;不要将耗时变成发布阈值或设备标签。使用有代表性且不敏感的 fixture 测试正常与无效输入、模型数据缺失、运算不可用、取消,以及界面无法呈现的结果。分别评估输出含义、内存稳定性、交互质量、无障碍和用户纠正结果的能力。模型支持不同计算图时,要按功能单独检查,不建立全局“已就绪”状态。记录用户任务、输入类别、完成状态和可见回退结果,但不要永久保存浏览器描述。
管理版本变化
浏览器支持变化时,重跑计算图测试并确认回退仍可用。如果后端变化影响应用依赖的输出或资源行为,应视为兼容性事件;但不要仅凭公开能力查询推断后端。
浏览器版本审查 可用于比较版本。WebNN 的成熟度和接口范围可能独立于 WebGPU 支持 演进。
候选版本测试要使用相同 fixture 比较受支持的浏览器构建和模型修订,并覆盖缓存模型更新。区分接口不可用、输出不可接受和运行未完成:它们分别需要替代路径、调整模型或构建版本、或可恢复取消。
覆盖产品声称支持的每个浏览器系列和操作系统范围,固定应用修订、模型与 fixture,才能归因结果变化。
可选功能的计算图不可用时,不应禁用页面其他功能。记录被测任务、观察结果和支持范围,不承诺所有机器上的输出或速度相同。
调查变化时,尽可能一次只改变一个版本因素。先在模型与预处理不变时比较仅更新浏览器的结果,再用已知浏览器构建单独评估模型更新。这样可以分辨计算图接受情况、输入转换、模型行为与回退选择,而不是把变化混为浏览器结果。
图像测试覆盖色彩布局、方向、alpha 处理与缩放,包括透明图像和需调整尺寸的图像。音频改变采样率与声道数,覆盖静音、削波、带背景噪音的语音以及短、长片段;验证重采样和声道转换遵循模型声明的预处理。文本覆盖空输入、长输入、特殊标点、多种文字系统,以及语言与所选模型不一致的文档。区分校验、预处理、计算图创建、执行、后处理和呈现阶段的失败。评估语义是否有用,而不只是计算图是否运行,并将功能验收与延迟、内存分开比较。重复运行同一输入可发现前一任务遗留的意外状态;再用另一 fixture 检查切换模型或语言后输出路径是否更新。用用户可采取的方式报告输入问题,例如选择其他文件或语言;如果输入超出模型支持范围,不要归咎于浏览器更新。
每个模型都应在 fixture 旁记录输入与输出形状、取值范围、归一化方法和标签映射。测试刚好在支持范围内外的值,并验证不合格输入会在计算图运行前收到具体提示。按任务级验收标准比较输出,而非要求不同实现的底层数值完全相同。fixture 清单应标出模型及预处理修订、输入类别、预期结果,以及是否需要人工复核或纠正。
分类任务应检查标签映射;除非模型定义其含义,否则分数只是参考。转写任务检查漏掉的语音和语言处理;摘要任务将关键主张与原文比对。为每种结果类型规定验收标准。
模型交付必须有明确生命周期规则。替换模型下载期间,继续使用已知可用版本;选择新资产前,先用基本任务验证,并能从中断下载中恢复。缓存资产标注模型、预处理修订和兼容性说明,区分完整资产和部分下载;新版本启用后不能误用旧语言或预处理资产。若网络中断或磁盘空间不足,只删除未完成的临时资产,保留可用版本,并让用户明确选择重试或稍后下载。空间有限时,说明将删除哪项资产,并提供更小模型或服务路径;新模型通过检查前,绝不能删除唯一可用的本地模型。记录许可证限制。模型更新即使不改变计算图运算,也可能改变标签、置信度解释、语言覆盖或无障碍文本;应解释面向用户的变化,并在政策与空间允许时让用户继续使用旧版本。
应使用触发失败的同一用户任务和 fixture,将回退作为完整流程测试。不运行推理的路径可以提供手动编辑转写、普通文档搜索或不依赖分类的筛选;较小模型应说明输入或质量限制;服务路径可能需要账户和上传。用户接受结果前保留原始输入,提供取消,并在断网、权限拒绝、存储已满或离开页面后留下可恢复状态。明确未完成请求是已取消、可以恢复,还是留下部分结果;不能把部分结果显示为完整。任何上传前都说明服务和保留政策,并取得用户明确确认。重试时说明处理仍在本地还是跨入服务边界。用户应能退出而不丢失源数据,也不必授予无关权限;计算图不可用时,绝不静默从本地处理改成上传。
将无障碍检查纳入同一版本记录。预测标签应能被屏幕阅读器读取;仅靠颜色传达的指示还需另一种信号;用户应能纠正或忽略提示性结果。清楚播报进度,并确保页面放大或焦点移到取消按钮后仍易理解。测试从选择输入、纠正结果到取消的完整纯键盘流程;切换模型或回退路径时焦点不能丢失。语音或图像功能应说明输出是建议、转写还是最终导出。当推理结果不确定或用户无法授予所需权限时,应保留手动操作路径。
运维和支持记录只保留复现问题所需字段:浏览器版本、操作系统系列、应用与模型修订、计算图需求、输入类别、失败阶段,以及预期与可见结果。优先使用结果代码和合成 fixture,不保留原始图片、录音、文档或完整计算图对象。记录用户选择的是本地处理还是服务路径,并在支持案例关闭时删除临时 fixture 和诊断数据。设定保留期限,并告知用户选择报告问题时会收集哪些字段。若必须取得原始媒体,应通过独立的支持流程征得同意并提供单独删除控制。比较受支持版本中的完成、回退、取消和未完成任务,不建立永久浏览器画像。浏览器变化只影响可选功能时,要保证无关功能仍可用并说明受影响任务。
当应用数据流或模型行为改变时重新审查隐私。本地推理说明计算图在哪里运行,却不能说明应用是否保存或传输源输入、结果或遥测。应分开检查这些路径:即使计算图留在设备上,选中的图片仍可能被本地缓存,结果可能被导出,诊断也可能被发送。若汇总结果已足够,不要将详细能力对象与账户标识关联。区分功能运行数据与支持数据:推理可能需要短暂处理输入,遥测或许只需记录功能完成、使用回退或取消。支持诊断须由用户选择,并限制为复现任务所需;说明用途和保留期,允许删除记录、缓存模型和临时输出。为保证复现,在任务依赖这些层时,将浏览器、应用、模型版本与预处理、后处理、缓存失效、输入处理和导出一起追踪。若更新只涉及一层,就分别检查该层。功能、内存稳定性、交互体验与无障碍说明应单独评估。告知用户结果是否仅供参考以及如何纠正;覆盖全部支持范围重新测试同一任务前,不移除回退路径。受管理安装的功能政策可能不同于个人浏览器;记录受支持配置,并在管理员禁用可选计算图时保留可用路径。
断言与来源对应
- 计算图编程模型以及浏览器构建、执行计算图的边界,见 W3C 编程模型。
- 按运算查询可用性使用
opSupportLimits();它不披露后端或硬件。 - 关于能力和输入处理的限定性隐私边界见 W3C 隐私考量;应用自行上传、存储和记录遥测属于独立的数据流。
- WebNN 规范是计算图校验、执行和兼容性断言的依据;文中的测试是应用验收检查,不是浏览器的规范保证。