浏览器中的AI:设备端机器学习
直接在浏览器中运行AI模型
人工智能越来越多地在您的设备上运行,而不是在云端。在浏览器中运行AI模型有几个优点:您的数据永远不会离开您的计算机(非常适合隐私保护),应用程序可以离线工作,并且运行推理没有服务器成本。现代浏览器足够强大,可以直接运行令人印象深刻的AI模型。
浏览器的主要AI运行时
有几个框架可以让您在浏览器中运行机器学习模型。TensorFlow.js是谷歌的旗舰库,支持多个后端:用于显卡的WebGL、用于现代GPU的WebGPU以及用于CPU回退的普通WebAssembly。它可以转换来自Keras和TensorFlow SavedModel格式的模型。
ONNX Runtime Web是一个跨平台运行时,通过ONNX格式支持来自PyTorch、TensorFlow和Scikit-learn的模型。它也使用WebGPU和WebAssembly后端。MediaPipe提供了用于人脸检测、手部追踪、姿态估计和物体检测的预构建解决方案,这些方案可以实时工作。
对于自然语言处理,Transformers.js让您可以直接在浏览器中运行Hugging Face模型。而对于最雄心勃勃的项目,WebLLM可以在本地运行大型语言模型,尽管这需要大量内存。
您可以构建什么
计算机视觉是最实用的应用之一。您可以实时从图像中移除背景、为健身应用追踪身体姿势、检测人脸和情绪、从图像中读取文本(OCR)或扫描条形码——所有这些都无需将图像发送到服务器。
对于语言,您可以对文本进行分类、识别命名实体、在语言之间进行翻译、总结文章,甚至可以在本地运行聊天机器人。音频处理包括语音识别(如Whisper)、关键词检测和文本转语音合成。
性能考虑
在浏览器中运行AI变得越来越快,但也有局限性。WebGPU是现代硬件上性能最高的后端,尤其是对于Transformer模型。WebGL得到更广泛的支持,但速度较慢。量化——将模型权重的精度从32位降低到8位——可以使模型缩小4倍并加快速度,同时精度损失最小。
实用的模型大小约为100-500MB。较大的模型下载时间过长,占用内存过多。对于复杂任务,一种常见的模式是在设备上运行一个小型模型,并在困难情况下回退到服务器端模型。
隐私和架构
设备端AI的最大优势是隐私。数据永远不会离开用户的设备,因此您不需要为AI处理遵守GDPR或CCPA。没有服务器推理成本。而且应用程序可以离线工作。缺点是模型权重对用户可见(他们可以检查下载的文件),设备能力差异很大,并且电池寿命可能会受到影响。
一种常见的架构是使用混合方法:在大多数情况下在设备上运行一个小型快速模型,并且只将困难情况发送到服务器端模型。这平衡了隐私、速度和准确性。
