产品精选73°

Vercel发布27.5KB浏览器语法高亮模型gpu-lexer

Vercel 团队 @shuding 发布了一个在浏览器里做语法高亮的小型神经网络模型「gpu-lexer」,只有 27.5KB,推理跑在 WebGPU 上:https://t.co/sUDpIhIr...

精选理由

Vercel出了个超小浏览器语法高亮模型,27.5KB跑WebGPU,比传统方案快多了

Vercel团队推出gpu-lexer模型,大小仅27.5KB,在WebGPU上运行。该模型解决了传统语法高亮的三大痛点:语料包过大、语言检测麻烦和性能差。模型采用序列标注任务,为每个token预测语法角色,支持50+语言且有泛化能力。

原文 · shao__meng

Vercel 团队 @shuding 发布了一个在浏览器里做语法高亮的小型神经网络模型「gpu-lexer」,只有 27.5KB,推理跑在 WebGPU 上:https://t.co/sUDpIhIr...

Vercel 团队 @shuding 发布了一个在浏览器里做语法高亮的小型神经网络模型「gpu-lexer」,只有 27.5KB,推理跑在 WebGPU 上: gpu-lexer.vercel.app Shu 发现多年来在语法高亮上的真实痛点: 1. 语法语料包太大。传统方案(如 Shiki、TextMate grammar 体系)每种语言都要带一份完整的 grammar 定义,几十种语言叠加后体积很容易到 MB 级; 2. 语言检测与动态加载麻烦。渲染一段未知语言的代码,得先检测语言、再去异步拉取对应的 grammar bundle,链路又长又复杂; 3. 性能差、阻塞主线程。传统的 tokenizer 在 CPU 上跑,代码量大时会卡住页面主线程。 gpu-lexer 用一个思路同时回应了这三点:把高亮从“基于规则”改成“基于模型”。一个 27.5KB 的模型内联打包,天然消灭了动态加载问题;跑在 GPU 上,天然绕开了主线程阻塞。这是典型的“用一次性的模型训练成本,换取运行时的体积和延迟优势”。 技术上的关键点 本质上是一个序列标注任务:模型读入源代码的 token 序列,为每个 token 预测它的语法角色(关键字、字符串、注释、函数名等),再映射到高亮的 span 上。 几个值得注意的细节: · 50+ 语言训练,且有泛化能力。帖子特意提到对训练集之外的语言“表现尚可”——这说明模型学到的不只是各语言的特例,而是某种跨语言的语法模式共性(比如大多数语言里 // 后面是注释、引号包裹的是字符串这类统计规律)。这是神经方法相对规则引擎最有想象力的地方。 · 正确性以 Shiki 为基准衡量。Shiki 使用真实的 VS Code 语法语料,gpu-lexer 用“top 25 GitHub 流行语言的加权正确率”来对比。帖子也诚实指出了方法论差异:Shiki 解析的是真实 AST,而其他高亮器(包括 gpu-lexer)可能只是近似,所以差距是结构性的。 · 不能全量替代。Shu 明确说“所有高亮器有不同的管线和使用场景”,这个项目目前无法完整替代任何一个。这是很克制、很专业的表述——神经高亮在确定性、边角 case、语义级区分(比如区分“用作函数调用的标识符”和“普通变量”)上仍有天然短板。 Shu @shuding I trained a small model to do syntax highlighting in the browser with GPU. Meet gpu-lexer from Vercel Labs: Small (27.5KB), fast (runs on WebGPU), and language-agnostic (model guesses the syntax). gpu-lexer.vercel.app It is experimental and built for learning! Your browser does not support the video tag. 🔗 View on Twitter 🔗 View Quoted Tweet 💬 1 🔄 0 ❤️ 0 👀 289 📊 1 ⚡