Blog

追求完美:我们如何将模型优化至95%精度

Author

Admin

2025-09-19

9 min read

在人工智能的世界里,"精度"是一个捉摸不透的概念。在数学方程中,精度是二元的:答案要么正确,要么错误。但在计算机视觉中,精度是主观的。

如果你向AI展示一张金毛猎犬在公园里奔跑的照片,AI说"狗",这准确吗?技术上是准确的。 但如果另一个模型说,*"一只金毛猎犬在阳光明媚的草地上奔跑,背景模糊,"*第一个模型突然显得不够充分。

Lens Go (https://lensgo.org/),我们不满意"技术上的正确"。我们想要"人类水平的感知"。我们的目标是构建一个不仅能给物体贴标签,还能理解场景的视觉引擎。

达到我们的专业用户依赖的95%精度率不是偶然。这是无情的工程、架构转变和拒绝在数据质量上妥协的结果。

这是一个深入了解我们如何优化Lens Go引擎来弥合像素与真相之间差距的视角。

重新定义视觉描述中的"精度"

在我们能够优化精度之前,我们必须定义它。在标准机器学习基准(如ImageNet)中,精度通常通过"Top-1"或"Top-5"分类来衡量——模型是否猜对了正确的标签?

对于Lens Go,分类是不够的。我们是一个语义描述引擎。

我们在三个维度上定义精度:

  1. **对象幻觉率:**模型是否声称一个不存在的对象存在?(假阳性)。
  2. **属性精度:**如果模型看到一辆车,它是否正确识别颜色、型号年份和状况?
  3. **关系逻辑:**模型理解物理吗?(例如,杯子在桌子上,而不是"浮在上面")。

要达到95%,我们必须在三个方面都得分很高。一个正确识别"猫"但说它在"开车"的模型是一个失败的模型。

向视觉变换器(ViT)的转变

我们精度的最大飞跃是在从纯卷积神经网络(CNN)转向**视觉变换器(ViT)**架构时发生的。

CNN历来是视觉的金标准。它们擅长通过在小网格中扫描图像来检测边缘和纹理。然而,它们与"全局上下文"斗争。它们常常见树不见林。

变换器,最初为语言处理设计(如GPT),将图像视为"补丁"的序列。

12层的差异: Lens Go使用一个深层的12层神经网络。

  • **层1-4(视觉的语法):**这些层处理原始视觉数据——识别线条、曲线和颜色渐变。
  • **层5-8(对象的词汇):**在这里,模型将特征聚合成可识别的实体。
  • 层9-12(语义理解):这是变换器架构闪亮的地方。使用称为自注意力的机制,模型一次看整个图像。

"注意力"机制使模型能够理解依赖关系。它"注意到"棒球棒暗示棒球、手套或球员的可能存在。这种上下文意识显著减少了我们对复杂混乱场景的错误率,传统的CNN经常在那里被混淆。

斗争"幻觉"问题

生成式AI最常见的批评之一是幻觉——模型自信地编造事物的倾向。在计算机视觉中,这可能看起来像AI描述一个"微笑的女人"当对象实际上皱眉,或者在多云的天空中添加一个"日落"。

对于我们的专业用户(研究人员和设计师),幻觉是不可接受的。

为了对抗这一点,我们实施了一个视觉接地协议。 我们训练我们的模型不仅生成文本,而且将该文本内部映射到特定像素。如果模型想输出"红伞"这个词,它必须能够在内部指向图像中包含红伞的特定坐标区域。

如果该映射的内部置信度分数低于某个阈值,描述符将被丢弃。我们优化模型以保守而非创造。我们宁愿模型说"一个人"(高置信度)而不是"名人"(低置信度),确保你从Lens Go获得的信息在事实上是可靠的。

训练数据的质量

数据科学中有一句老话:"垃圾进,垃圾出。"

许多开源视觉模型在来自互联网的大规模抓取数据集上训练。这些数据集很嘈杂。它们包含字幕图像,其中alt-text是错误的、不相关的或垃圾内容。

要达到95%的精度,我们必须调整我们的饮食。 我们在Lens Go上微调了一个专有的高保真图像-文本对数据集。

  • 我们使用由人类专家用高粒度描述图像的数据集,而不是通用字幕。
  • 我们专门平衡数据集以包括"边缘情况"——低光摄影、运动模糊、不寻常的相机角度和高密度人群。

通过在"困难"图像上训练,"容易"图像对模型来说变得微不足道。这种严格的训练制度确保Lens Go不会在你上传专业照明或不完美帧的照片时分解。

空间关系的微调

我们优化过程中的一个主要障碍是空间逻辑。模型的早期迭代会正确列出对象,但弄乱它们的位置。它可能会说"男人站在桌子后面"而他实际上坐在桌子上。

我们通过引入专注于几何方向的特定损失函数来优化这一点。我们在训练期间每当模型错误地使用介词(on、under、beside、behind)时严重惩罚它。

这迫使神经网络发展对深度感知和遮挡的更深入理解。它了解到,如果"对象A"遮挡了"对象B"的底部的一半,那么"对象A"必须在"对象B"前面。这对人类来说可能听起来很基础,但对于机器来说,学习这种逻辑是玩具和专业工具之间的区别。

推理速度的优化

精度通常是以速度为代价的。运行一个大规模的12层变换器需要计算能力。然而,我们的用户期望实时视觉翻译

为了实现速度和精度,我们采用了模型量化。 我们压缩了神经网络的数学权重,而不损害其智能。通过将32位浮点精度转换为网络特定不太关键层的较低精度格式,我们将模型大小减少了300%,提高了推理速度。

这种优化使我们能够在浏览器环境中在几秒钟内处理高分辨率图像(最多5MB),同时保持95%的精度基准。它还支持我们的零数据保留政策——因为处理如此之快,我们不需要将图像排队到磁盘驱动器上。我们立即处理和清除。

100%的旅程

在工程中,你永远不会真正"完成"。虽然我们为我们的95%精度率感到骄傲——以及UX设计师和数字营销人员对我们的信任——我们仍然对剩余的5%着迷。

我们不断改进我们的注意力头,扩展我们的训练数据集以包含更多不同的文化背景,并调整我们的基础算法。

当你使用Lens Go时,你不仅仅是在使用一个静态工具。你使用的系统是持续严格优化的产物。我们处理神经网络的复杂性,这样你就可以简单地拖放和理解。

体验我们12层引擎的精度。 在 **https://lensgo.org/**亲自测试精度。