使用确定性图像路由减少88%的令牌消耗(P50:59毫秒)[P]

Reddit r/MachineLearning 工具

摘要

作者开发了一个确定性图像路由系统,对图像进行分类,决定是作为原始字节发送还是通过OCR提取文本,实现了LLM上下文集成中令牌消耗的88%减少。

最近我一直在为我的VEX代理运行时开发图像附件集成,并想出了一个重要的优化步骤的想法。通常,图像作为原始字节(base64编码字符串或公共可访问URL)附加到LLM上下文中,VLM通过将图像数据缩小到批次来处理。但是,如果图像主要由文本组成,为什么还要以原始像素形式附加图像呢?如果空间布局不重要,发送原始像素会浪费VRAM和上下文空间。我实现了一个快速、确定性的预处理路由系统,预先检查图像并决定如何附加它:将图像作为字节数组附加(VLM路由):当空间方向或布局重要时使用(例如,示意图、流程图、PCB蓝图)。提取文本并作为字符串附加(OCR路由):当文本布局是顺序的且位置次要时使用(例如,代码截图、终端日志、书籍页面)。如何分类图像?我们有一些选项,在质量方面最佳——使用专门的分类LLM模型,但它很慢,而且通常是额外的。在速度方面最佳——是纯数学算法(我自己做了一个)。我们可以根据一些迹象判断图像类型:颜色多样性(捷径):自然照片和复杂渲染包含数千种颜色,而书籍和图表使用有限的调色板。结构元素:示意图和表格具有高浓度的垂直结构线。顺序文本在形态学膨胀下产生宽而低纵横比的水平轮廓。优化影响:对于测试的Python代码截图(1069x697像素,.PNG)提取的文本:169个令牌。Base64字符串负载:81858个令牌。VLM视觉令牌:约1500个视觉令牌(VLM图像处理后)。令牌节省:(1500 - 169)/ 1500 = 88.7%的减少,与VLM路由相比提示令牌体积的减少(并且与81k+个原始base64令牌相比,节省了大量带宽)。附注:算法代码行数:58行。基准延迟:使用OpenCV分类器在本地数据集上测试:P01(最佳分类时间):37毫秒;P50(平均分类时间):59毫秒;P99(最差分类时间):71毫秒。
查看原文

相似文章

将文本转换为图像以节省Token使用量

Reddit r/ArtificialInteligence

DeepSeek的OCR论文引入了‘光学压缩’的概念,表明一个图像Token可以编码大约10个文本Token的信息量,且准确性很高,使得文本图像比原始文本更具Token效率。社区工具和新应用Imagizer展示了这种方法在实际中的应用。