视觉语言模型 (VLM) 通过学习共享表示空间来执行跨模态检索任务,在该空间中可以直接比较图像和文本。这些模型,例如 CLIP 或 ALIGN,使用双编码器——一个用于处理图像(例如,卷积神经网络或视觉 Transformer),另一个用于处理文本(例如,基于 Transformer 的语言模型)。在训练过程中,图像及其对应文本描述的对被嵌入到一个公共向量空间中。模型优化这些嵌入,使得对齐的图像-文本对具有相似的向量,而错配的对则被推开。例如,一张猫的照片和句子“一只黑猫坐在窗台上”将被映射到该空间中附近的点,从而实现高效的相似度比较。
为了从文本查询(或反之)检索图像,VLM 将输入编码到共享空间中并搜索最接近的匹配项。例如,如果用户搜索“停在咖啡馆附近的一辆红色自行车”,文本编码器会为此查询生成一个嵌入。然后系统将此向量与数据库中预先计算的图像嵌入进行比较,返回相似度得分最高的图像。类似地,一幅山景图像可以被编码并与文本描述(如“晴朗蓝天下白雪覆盖的山峰”)进行匹配。实际应用中通常使用近似最近邻搜索库(例如 FAISS)来高效地将此过程扩展到大型数据集。检索的质量取决于模型在训练期间对模态的对齐程度及其训练数据的多样性。
跨模态检索的挑战包括处理模糊查询、管理计算成本以及确保跨领域的鲁棒性。例如,一个模糊的文本查询,如“一些令人放松的东西”,可能会匹配各种不同的图像(例如,海滩、书籍或蜡烛),这要求模型能够捕捉抽象概念。训练 VLM 通常需要海量的图像-文本对数据集,这可能会引入偏差或覆盖范围的空白。开发人员可能会在特定领域的数据(例如,带有技术描述的医学图像)上对预训练模型进行微调,以提高准确性。此外,平衡模型大小和推理速度对于实时应用至关重要。通过解决这些因素,VLM 能够支持搜索引擎、内容审核和辅助工具等应用,这些应用弥合了视觉和文本理解之间的差距。