用WebGPU小试大模型
2025 Dec 26
See all posts
为2025年画一个句号,把5月份Python版本的看图播报做一个Web离线版。在三驾马车——Claude
Code/Gemini
Cli/Codex的加持下,本以为一天就能搞定,结果修修补补用了四天才做完——第一天跑通核心功能,然后不停的观察-改进-观察-改进......,能用和好用差十万八千里,剩下的三天时间全在解决一些大大小小的用户体验问题,如:
- 用户访问不了huggingface.co怎么办?还好transformers.js v3可以换host,
但国内hf-mirror镜像居然CORS禁止,最佳解决方式是用cloudflare,但是我不想让渡原来的二级域名的控制权和TLS证书的生成权给cf,在cf里切换为
"灰色云朵"
模式后迅速圆满解决,看看人家老外多开放多有效率,国内的这个鸡贼环境......大哥,你要开放,你要自信啊......
- kokoro-js只支持英文,中文只能自己G2P,Python版本用
misaki[zh]很容易(本质上是汉字
→ [jieba分词+词性标注] → [pypinyin转拼音+变调] → [直接映射IPA] →
IPA音标),js版本引入pinyin/pinyin2ipa之类就可以了,但带来新的问题,js打包后大了6MB,首页加载这么大的js不能忍,代码上重构,分版本打包解决;
- 大模型的 Vibe Coding 能力这一年以来飞速进步,从 Sonnet3.5
开始已经完全不用古法编程,这次代码自然是100%用AI生成。在技术选型阶段用时最多,具体细节层面,发现Sonnet4.5理解transformers.js
v3有限,生成的Cache
Storage缓存的key没有复用transformers.js的key,造成下载文件翻倍,还好看dev
tools里的缓存大小发现了;前端Service
Worker第一次接触,大模型处理它的时候也是磕磕绊绊,还是gemini-3-pro-preview大杀器智力最高,最后收尾用gpt-5.1-code-max,它能算是优秀的文科生。
- ......
总结一下这个技术的优缺点:
优点
- 隐私:数据不离开设备
- 便捷:无需部署服务器
- 离线:飞行模式也能用
缺点
性能。纯浏览器端体验肯定没有 B/S
的好,这是显然的。在本地计算,需要本地机器性能好,之前5月份做的B/S架构在手机端识图秒出声音,这个只能在有显卡的PC上用Chrome浏览器玩玩,一般的手机浏览器应该跑不起来;
需要下载模型,所有模型和语音包下载下来大概需要3~4G大小,适合先用Wifi环境把模型先下载下来,模型大小如下:
| 视觉问答(ITT) |
SmolVLM-500M |
1.92 GB |
模型已经很小了,量化不要太过分,还是用高一点精度的吧 |
| 语音合成(TTS) |
Kokoro-82M |
310.45 MB |
还会下载一些voice语音包,不过都很小 |
| 语音识别(ASR) |
Whisper-medium + base + tiny |
1.68 GB |
base和tiny还是算了,只有medium以上才堪一用,首页没有设计用ASR的场景,单独列了一个工具页面 |
总结
对个人项目没有服务器或注重隐私的场景,这算是个兜底的选择。
附:代码和使用地址,没有独立显卡的机器就别浪费时间试了。
用WebGPU小试大模型
2025 Dec 26 See all posts为2025年画一个句号,把5月份Python版本的看图播报做一个Web离线版。在三驾马车——Claude Code/Gemini Cli/Codex的加持下,本以为一天就能搞定,结果修修补补用了四天才做完——第一天跑通核心功能,然后不停的观察-改进-观察-改进......,能用和好用差十万八千里,剩下的三天时间全在解决一些大大小小的用户体验问题,如:
misaki[zh]很容易(本质上是汉字 → [jieba分词+词性标注] → [pypinyin转拼音+变调] → [直接映射IPA] → IPA音标),js版本引入pinyin/pinyin2ipa之类就可以了,但带来新的问题,js打包后大了6MB,首页加载这么大的js不能忍,代码上重构,分版本打包解决;总结一下这个技术的优缺点:
优点
缺点
性能。纯浏览器端体验肯定没有 B/S 的好,这是显然的。在本地计算,需要本地机器性能好,之前5月份做的B/S架构在手机端识图秒出声音,这个只能在有显卡的PC上用Chrome浏览器玩玩,一般的手机浏览器应该跑不起来;
需要下载模型,所有模型和语音包下载下来大概需要3~4G大小,适合先用Wifi环境把模型先下载下来,模型大小如下:
总结
对个人项目没有服务器或注重隐私的场景,这算是个兜底的选择。
附:代码和使用地址,没有独立显卡的机器就别浪费时间试了。