标签: AGI

  • 赋予视觉语言模型空间推理能力:SpatialVLM

    视觉语言模型(VLM)在近年来取得了显著进展,在图像字幕生成、视觉问答(VQA)、具身规划、动作识别等各种任务中展现出强大的能力。然而,即使是最先进的VLM在空间推理方面仍然存在不足,例如无法识别物体在三维空间中的位置关系,或无法理解物体之间的距离或大小差异。

    空间推理的缺失:为什么VLM难以理解空间关系?

    我们认为,VLM在空间推理方面能力有限,主要是因为其训练数据中缺乏三维空间知识。大多数VLM都是基于互联网规模的图像-字幕对数据集进行训练,这些数据集包含有限的空间信息。这主要是因为获取包含丰富空间信息的具身数据或高质量的三维空间查询标注存在困难。

    SpatialVLM:让VLM“看懂”空间关系

    为了解决这个问题,我们提出了一个名为SpatialVLM的系统,它可以生成大量包含空间推理信息的VQA数据,并使用这些数据来训练VLM,从而增强其空间推理能力。

    SpatialVLM的核心思想是利用现有的视觉模型来自动生成丰富的三维空间标注。具体而言,通过结合开放词汇检测、度量深度估计、语义分割和以物体为中心的字幕模型,我们可以对真实世界中的数据进行大规模密集标注。SpatialVLM将这些视觉模型生成的标注转换为可用于训练VLM的格式,使其能够学习字幕生成、VQA和空间推理等多种任务。

    SpatialVLM的强大能力:超越传统VLM

    通过实验,我们发现SpatialVLM训练后的VLM具有许多理想的能力:

    • 增强对空间关系的理解: SpatialVLM能够更好地回答关于物体空间关系的定性问题,例如“哪个物体在左边?”或“哪个物体更高?”。
    • 进行定量估计: SpatialVLM能够可靠地进行定量估计,例如“物体A距离物体B有多远?”或“物体A的宽度是多少?”。这种能力不仅赋予了VLM关于物体大小的常识性知识,还可以将其用作重排任务的开放词汇奖励标注器。
    • 解锁新应用: SpatialVLM可以与强大的大型语言模型(LLM)结合,进行空间链式推理,解决需要多步空间推理的复杂问题。

    SpatialVLM的关键技术:

    1. 从2D图像中提取空间信息:

    • 语义过滤: 使用CLIP模型过滤掉不适合生成空间推理VQA数据的图像,例如单一物体图像或没有场景背景的图像。
    • 以物体为中心的上下文提取: 利用现有的视觉模型,例如区域提议、区域字幕和语义分割模型,提取以物体为中心的上下文信息,包括像素簇和开放词汇字幕描述。
    • 将2D上下文提升到3D上下文: 使用深度估计模型将单目2D像素提升到度量尺度的3D点云,并将其转换为大地坐标系。
    • 消除歧义: 使用细粒度的物体字幕和语义导向的后处理算法来消除物体字幕的歧义。

    2. 大规模空间推理VQA数据集:

    • 生成定性和定量问题: 设计了38种类型的定性和定量空间推理问题,并使用模板生成大量VQA数据对。
    • 从点云和3D包围盒中提取答案: 使用专门设计的函数从点云和3D包围盒中提取答案,以确保答案的准确性。

    3. 学习空间推理:

    • 直接空间推理: 使用PaLM-E的架构和训练流程,并使用混合数据集进行训练,其中包含5%的空间推理任务。
    • 空间链式推理: 利用LLM作为协调器,将复杂问题分解成简单问题,并使用SpatialVLM进行回答,最终将推理结果整合在一起。

    SpatialVLM的实验结果:

    • SpatialVLM在定性和定量空间VQA任务上都取得了显著的性能提升,超越了包括GPT-4V在内的所有基线模型。
    • SpatialVLM在其他任务上的性能没有下降,甚至在包含空间推理问题的VQA-v2测试集中表现更好。
    • SpatialVLM可以作为机器人任务的奖励标注器,并能够进行空间链式推理,解决需要多步空间推理的复杂问题。

    总结:

    SpatialVLM为VLM注入了空间推理能力,并为其解锁了新的应用领域。它证明了通过生成大量包含空间推理信息的VQA数据,可以有效地增强VLM的空间推理能力。未来,我们可以进一步研究更细致的几何原语,以更好地将空间推理与三维几何联系起来。

    参考文献:

    • [1] Chen, B., Xu, Z., Kirmani, S., Driess, D., Florence, P., Ichter, B., … & Xia, F. (2024). SpatialVLM: Endowing Vision-Language Models with Spatial Reasoning Capabilities. arXiv preprint arXiv:2401.12168.
  • vAttention: 让 LLM 推理更快速、更便捷

    大型语言模型 (LLM) 正在改变着各个领域,但其高昂的计算资源消耗和内存占用成为了制约其应用的关键瓶颈。为了解决 LLM 推理中的内存问题,vLLM 提出了 PagedAttention,它通过动态分配内存来避免预先分配过多的内存,从而减少内存浪费。然而,PagedAttention 也存在一些缺陷,例如需要修改注意力内核代码,增加了开发难度,并且性能也受到一定影响。

    为了克服 PagedAttention 的局限性,本文介绍了一种全新的内存管理技术——vAttention。vAttention 巧妙地利用了系统本身的虚拟内存机制,将预分配虚拟内存和实际分配物理内存分离,并拓展了分配小内存的 PyTorch 算子,从而实现了更灵活、更高效的内存管理。

    PagedAttention 的局限性

    PagedAttention 通过动态分配内存,将 KV 缓存分割成多个固定大小的块,并在需要时分配内存。然而,这种方法存在以下几个问题:

    • 需要修改注意力内核代码: PagedAttention 导致 KV 缓存存储在非连续的虚拟内存中,需要修改注意力内核代码以支持分页,增加了开发难度。
    • 增加了框架复杂度: PagedAttention 需要在服务框架中实现一个内存管理器,负责分配和释放 KV 缓存,增加了框架的复杂度。
    • 性能下降: PagedAttention 会增加 GPU 和 CPU 的运行时开销,导致性能下降。

    vAttention:突破传统内存管理的限制

    vAttention 则采用了一种更巧妙的方案,它保留了 KV 缓存的虚拟内存连续性,并利用系统本身的虚拟内存机制来实现按需物理内存分配。

    vAttention 的核心思想:

    1. 预留虚拟内存: vAttention 预先分配足够大的虚拟内存空间来存储 KV 缓存,但并不分配物理内存。
    2. 按需物理内存分配: vAttention 仅在需要时才分配物理内存页面,并将这些页面映射到虚拟内存中。
    3. 利用低级 CUDA 支持: vAttention 利用 CUDA 低级 API,可以对虚拟和物理内存进行细粒度控制,实现更灵活的内存管理。
    4. 拓展 PyTorch 接口: vAttention 扩展了 PyTorch 缓存分配器,允许应用程序为张量保留虚拟内存缓冲区,而无需提前提交物理内存。
    5. 请求级 KV-cache 索引: vAttention 使用唯一的标识符来定位每个请求的子张量,并进行相应的内存分配和释放。

    vAttention 的优势:

    • 连续内存: vAttention 保证了 KV 缓存存储在连续的虚拟内存中,避免了内存碎片化问题。
    • 性能提升: vAttention 能够无缝接入 FlashAttention 等高性能注意力计算内核,并通过优化内存管理机制,显著提升了 LLM 的性能。
    • 更易于移植: vAttention 能够直接使用现有的注意力内核,无需修改代码,方便移植到不同的 LLM 模型和框架中。

    性能评估

    实验结果表明,vAttention 在吞吐量和推理时间方面都取得了显著提升,性能比 vLLM 高出 1.97 倍。

    总结

    vAttention 作为 PagedAttention 的升级版本,有效地解决了传统内存管理机制的缺陷,为 LLM 的应用提供了更强大的支持。它不仅提高了 LLM 的性能,也简化了开发流程,为 LLM 的进一步发展提供了新的方向。

    注: 本文内容主要参考了 vAttention: Dynamic Memory Management for Serving LLMs without PagedAttention 的论文,并加入了个人理解和分析。

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网
Page Stats: PV: 2134 | UV: 1161
Last updated: 2025-06-22 02:48:15
沪ICP备2024052574号-1