作者:来自 Elastic Scott Martens
了解视觉语言模型 ( VLMs ),jina-vlm 可以做什么,如何使用它,以及最佳实践 。
动手体验 Elasticsearch:深入了解 Elasticsearch Labs 仓库中的示例 notebooks,开始免费 cloud 试用,或者现在就在你的本地机器上试用 Elastic。
视觉语言模型 ( VLMs ) 是生成式语言模型,它们以文本和图像作为输入,并生成新的文本作为输出。它们被设计用于 视觉问答 ( VQA ),这是 多模态 AI 的一种应用,通过融合 图像处理 和 自然语言处理 ( NLP ),实现了几年前还不可能做到的能力。Jina 的新模型 jina-vlm 在 VQA 方面开辟了新方向,能够对图像进行 先进的 语义处理,这些图像包括 扫描件、幻灯片 和 图表,它们通过 文本 和 视觉材料 的组合来承载信息,而不是像 照片 那样的自然场景。
jina-vlm 开启了新的应用领域:
- 无障碍:为视障人士创建图像描述。
- 索引:生成详细的文本信息,以改进对 包含图像的图像和文档的搜索。
- 查询:通过直接分析图像内容,将自然语言查询与图像进行匹配。
- 视觉内容分析:自动对图像进行分类和分析。
- 检索增强生成 ( RAG ):在 RAG 系统中,将 视觉信息作为知识来源使用。
本文将向你介绍 VLMs,并展示如何使用 jina-vlm,将 多模态 AI 引入你自己的解决方案中。
视觉语言模型
jina-vlm 是一个仅解码器的语言模型,增加了额外的能力和训练,用于 回答问题或生成图像的通用描述。
我们使用 Qwen3-1.7B-Base 开放权重语言模型作为 jina-vlm 的骨干。让它成为视觉语言模型 的关键在于:我们将它连接到了一个 定制微调的图像编码器模型,该模型源自 SigLIP2-So400M/14-384,用于将 图像 转换成语言模型可以理解的形式,并专门针对 VQA 和描述生成进行了训练。
为了理解这是如何工作的,可以想一想语言模型 是如何 “读取” 你的提示的。输入的文本会被拆分成 token(单词或单词的一部分),然后通过查找表被替换为嵌入向量,接着输入到神经网络 中。模型从来不会看到你实际输入的字母。
如图所示,每个唯一的 token 都会被替换成一个数字,而这个数字又对应模型词表中存储的一个 embedding 向量。这使得模型能够处理你提供的任何文本,即使这些单词不在它已存储的词表中。
这也是为什么语言模型在统计生僻单词中的字母数量时会遇到困难,比如下面这个使用 Claude Haiku 4.5 的示例:
该模型能够正确识别 Qaqortoq;它知道这个单词表示格陵兰的一个城镇,并且可以告诉你关于它的所有信息,但它根本不知道这个名字由哪些实际字母组成。有一些方法可以补充语言模型以解决这一缺点,因此一些模型(如 ChatGPT 5、Gemini 和 Claude Sonnet)通常不会犯这种错误。
然而,这一架构上的缺陷使得创建多模态语言模型成为可能。
生成式语言模型的实际输入是一系列语义 embedding,而这些 embedding 并不一定非要来自文本。它们可以来自任何来源,只要与模型的训练兼容。只要我们能为图像生成与 token 相同 embedding 空间的向量,就可以让任何语言模型处理图像。
jina-vlm 包含一个图像 embedding 模型和适配器,专门用于实现这一点。图像(经过一些预处理成重叠的 patch)作为模型的输入,输出在与语言模型文本 token embedding 相同的语义 embedding 空间中的一系列 embedding。这些 embedding 然后像文本输入 embedding 一样被处理。完整的语言模型可以同时访问你的文本和图像,并将两者视为同类输入。
图 3 是 jina-vlm 模型的示意图,展示了文本和图像的双通道联合处理。
这种架构有一些重要的优势。语言模型从训练数据中学到了大量关于世界的隐含信息,而 VLM 架构可以利用这些信息来帮助理解图像内容。此外,其他多模态架构中存在的一些偏差问题在该架构中不存在,尤其是困扰CLIP 风格模型的媒体 “差距”。
jina-vlm 能做什么?
jina-vlm 有三个交叉的核心能力:
- 描述图像并生成标题。
- 理解信息丰富的图像。
- 回答关于图像内容的问题。
描述和为图片生成标题
为图像提供良好的描述对于无障碍非常有帮助。随着互联网数字化图像的增多,对提供替代文本( alt-text )的法律和非正式要求也在增加。尤其是搜索引擎优化( SEO )策略,通常需要高质量的图像标题和 alt-text。手动撰写这些描述既昂贵又耗时。
jina-vlm 可以提供帮助。例如:
你可以将这张图片和文本输入给 jina-vlm:
- 输入指令:详细描述这张图片。
结果如下:
- 输出:图片展示了一盘白色盘子,里面装满了各种颜色的果冻豆。果冻豆呈绿色、黄色、橙色、紫色、红色和蓝色,散布在盘子上,形成类似彩虹的效果。盘子本身放在灰色表面上,与色彩缤纷的果冻豆形成鲜明对比。图片中没有可辨认的文字。果冻豆的相对位置各异,有的聚集在一起,有的分散开来,使图片具有深度和质感。整体构图简单却引人注目,色彩丰富的果冻豆是视觉焦点。
这个描述有点冗长,但非常详细。
jina-vlm 会将你提供的文本视为问题或指令,通过一些 prompt engineering 可以大幅改善结果。例如,对于同一张果冻豆图片:
- 输入指令:描述这张图片。简明扼要。
- 输出:一盘白色盘子里装满了各种彩色果冻豆,包括绿色、黄色、红色、紫色和蓝色,散布排列。
或者:
- 输入指令:为这张图片提供标题。
- 输出:一盘满是彩色果冻豆的白色盘子。
特别要求提供标题时,结果通常会很短。大多数标题都比较简短,因此 jina-vlm 训练时也倾向生成简短标题。
你还可以使用 jina-vlm 来识别并列出图片中的物品:
作为一个相对较小的模型,jina-vlm 在物体识别方面有一定的局限性。对于常见类别,它表现非常好。例如:
它能够处理像 “红色汽车” 这样的内容,但如果向 jina-vlm 提出涉及详细类别的问题,它的可靠性会很快下降。例如,使用同一张图片:
- 输入指令:这是什么型号的汽车?
- 输出:图片中的汽车是一辆经典的法国车,具体来说是 Citroën DS。该型号以其独特的圆润车身闻名,这是 DS 系列的标志。DS 生产于 1955 年到 1969 年,以其风格、性能和实用性的结合而受到欢迎。它被设计为既可在城市街道驾驶,又可在公路上行驶的豪华车,是当时非常多功能的车辆。DS 还以创新特性著称,如后扰流板和带有 Citroën 标志的前格栅。
这个答案在很大程度上是虚构的。图片中的汽车是历史上最易识别的车型之一:Citroën 2CV,生产于 1948 年到 1990 年。Citroën DS 生产于 1955 年到 1975 年,外观如下:
总之,当被要求提供超出其能力范围的细节时,jina-vlm 会毫无预警地产生幻觉。
在处理人物图片时尤其需要注意这一点:
汤姆·克鲁斯足够有名,且在训练数据中出现频率高,因此 jina-vlm 能够识别他。但是,使用同一张图片:
- 输入指令:为这张图片提供标题。
- 输出:一个穿绿色衬衫、笑容灿烂的男人。
这个标题从未提到汤姆·克鲁斯,尽管这是图片中最重要的信息。要求生成标题时几乎不会产生幻觉,但信息量也非常有限。
相比之下,让我们对这张图片做同样操作:
这完全错误。罗纳德·里根看起来一点也不像理查德·尼克松。
当你让 jina-vlm 识别人时,它很可能会产生幻觉,因为它没有很深的世界知识。只有那些在训练数据中多次出现的人才可能被正确识别。
jina-vlm 是一个小型语言模型 ( SLM )。它的世界知识非常有限,对表面可见的事物表现最好。和所有语言模型一样,当超出其能力范围时,它容易出错和产生幻觉,而且不会提前给出任何警告。
当要求生成标题时,jina-vlm 的幻觉会少得多。例如,使用同一张理查德·尼克松的图片:
- 输入指令:为这张图片提供标题。
- 输出:一个穿西装的男人坐在椅子上,身后有一个书架。
减少幻觉的最有效方法是提示模型少说。任何使用或部署 jina-vlm 的场景都应考虑这一点。
理解信息内容
jina-vlm 在理解信息图和合成图像方面表现尤为出色,例如图表、曲线图、截图、打印页扫描件、广告文案和演示幻灯片。下面的示例仅展示了 jina-vlm 能力的一部分。
图表
jina-vlm 可以报告各种数据展示的内容。
柱状图:
饼图:
面积图:
折线图:
表格:
多语言内容
jina-vlm 的多语言支持意味着它可以识别语言,并用与呈现内容不同的语言描述信息内容:
当存在多种语言时,它还可以列出这些语言:
如果图像内容是另一种语言或与另一种语言高度相关,jina-vlm 可能会用与你要求的语言不同的语言回答:
要解决这个问题,请在查询中指定语言。使用同一张图片:
- 输入指令:用 English 总结这份文档的内容。
- 输出:图片是一张 KFC Thailand 活动的宣传海报。海报以红色为主,文字为白色和黑色。顶部有 KFC 标志,是一个红白相间的方块,中间有黑色的桑德斯上校剪影。标志下方有三名年轻男性,大概是活动的主要参与者或主持人。他们穿着休闲服,其中两人穿红色外套,一人穿白色带黑色条纹的衬衫。
海报中央有一段白色大字写着:“เปิดตัวใหม่! ร่วมกับ KFC Thailand พบกับความสนุกสนานที่ไม่เหมือนใคร!” 翻译为:“Launching New! Join KFC Thailand and experience something unique!” 下方有较小文字写着:“ทุกคนมีส่วนร่วม! วันนี้ 8 พฤศจิกายน 64 เวลา 12:00 น.”,表示活动时间为 2021 年 11 月 8 日 12:00。
海报底部包括社交媒体图标和 Facebook 页面链接,表明活动将在 Facebook 上直播。还有鸡腿和桶的图标,与 KFC 品牌相关,加强品牌识别。
海报整体设计鲜艳醒目,突出活动主题和品牌形象。红白配色是 KFC 品牌的典型风格,以大胆而充满活力的视觉效果著称。海报旨在吸引注意力并告知观众即将举办的活动。
复杂信息展示
我们专门训练了 jina-vlm 来理解复杂的信息展示,并能够用自然语言进行总结。
信息图:
技术和教育图表:
地图:
截图
jina-vlm 已经过训练,可以解析和理解截图:
它甚至可以解析电子游戏:
扫描件
jina-vlm 擅长处理扫描件和印刷文本的图像:
数字化前的材料
对扫描件的强大支持也使数字化前的材料能够被数字搜索技术访问:
社交媒体
由于互联网上的大部分内容是 “由五大网站组成,每个网站都充满了来自其他四个网站的文本截图”,jina-vlm 在处理互联网上大量此类内容时尤其有用:
jina-vlm 有时甚至可以解释表情包:
视觉问答
“一张图片胜过千言万语。”虽然这句老生常谈,但多模态 AI 可以证明这一点。
VQA 是 jina-vlm 擅长的领域,也是具有最大潜力的新型革命性应用领域。jina-vlm 可以像语言模型回答文本问题一样,回答关于图像内容的问题。这意味着它可以作为 RAG 系统的一部分,从数据库中存储的图像和文本混合中生成回答。
下面的这张信息图信息量很大,使用 jina-vlm 你可以用自然语言提问其内容:
或者,使用同一张图片:
- 输入指令:SLS 的乘员舱叫什么?
- 输出:Orion spacecraft
这一能力使得查询正式的原理图和图表成为可能:
使用同一张图片:
- 输入指令:有多少个浴室?
- 输出:4
如果使用照片或自然场景,jina-vlm 通常能很好地识别高可见特征:
但如果你询问的是更细微、可见性较低的细节,答案可能就不太可靠:
谢谢你,明显队长。
jina-vlm 也不太适合识别光学幻觉:
你可以对照片中的文字提出问题:
jina-vlm 非常适合理解传统杂志和报纸广告:
视觉问答也可以跨语言进行:
使用同一张图片:
- 输入指令:葡萄每公斤多少钱?
- 输出:葡萄每公斤价格为 3.98。
它也可以回答使用说明书中的问题:
它还可以回答关于海报和艺术作品内容的问题:
我们在上一节中展示了,jina-vlm 在一般人脸识别方面表现不佳,除了少数非常有名的人。不过,它可以利用图像中的文字来回答仅靠图片无法回答的问题:
最佳实践
jina-vlm 是一个生成式语言模型,而不是数据库。它容易出错和产生幻觉。在你的使用场景中考虑这一点非常重要。
和所有生成式语言模型一样,我们强烈建议你仅在对错误高度容忍的场景中使用 jina-vlm。
为了尽量减少错误,我们提供以下建议:
测试你的提示
如果你依赖于持续获得某种类型的结果,你应该对查询进行全面的质量测试。仅使用一个提示得到几个好结果,并不能保证在不同图片上也能得到同样质量的结果。你可以通过手动审核一大批真正代表你计划处理内容的图片的查询结果来最小化这种风险。
指定语言
在查询中加入你希望答案使用的语言。和所有语言模型一样,jina-vlm 很难区分你的指令和它应该应用指令的数据。它唯一知道如何回答的方法是查看输入中识别出的语言,或遵循你的明确指示。
不要提出诱导性问题
通过提出诱导性问题,很容易让 jina-vlm 产生幻觉。例如:
提示生成简短答案
jina-vlm 有时会非常冗长。使用“briefly”和“concise”等词可以减少输出长度。
对比:
使用同一张图片:
- 输入指令:这是什么类型的车辆?请非常简明。
- 输出:这是一辆 Massey Ferguson 拖拉机。
只提出与图片相关的问题
jina-vlm 并不总能判断你的问题是否与内容无关,而且很容易产生幻觉答案。例如:
通过一些规划,你可以通过使用决策树来减少这种影响:提出多个问题,每个问题都依赖于上一个问题的答案。使用上面的同一幅毕加索画作,如果我们先问这个问题,就不会去问文字的语言了:
- 输入指令:这张图片中有文字吗?请非常简明。
- 输出:没有
像语言模型一样思考
我们训练 jina-vlm 时让它关注所提供的图片。这意味着无论你问什么,它的答案都是基于它看到的图片。将语言模型拟人化是 AI 用户的一大风险,但如果我们提出需要反思的问题,就很容易理解 jina-vlm 的“思考”方式。例如:
你可以向 jina-vlm 提出任何问题,甚至是像“你感觉怎么样?”这样的问题,如果可能的话,它也会以关注图像的方式来回答。
jina-vlm 没有过滤机制、安全训练或可靠的事实来源,它只知道你提供的图像中所看到的内容是重要的。例如:
但是:
这不是一个漏洞,而是一个特性。jina-vlm 会依赖你提供的内容来支撑它的回答。你需要自己决定提供什么内容。
正如人们所说,
而且,
开始使用 jina-vlm
jina-vlm 可以通过公共 OpenAI 兼容 API 访问,网址为 https://api-beta-vlm.jina.ai。要使用此 API,请在 Jina 网站获取免费的 Jina API key。它包含 1000 万个免费 token,可用于试用 Jina by Elastic 的模型。额外的 token 可购买。
你可以在 Jina AI 网站找到访问 jina-vlm API 的说明,并且还有一个基于网页的沙箱用于试用图片和请求。
你也可以从 Hugging Face 下载模型并在本地运行,供非商业用途使用。若要在现场进行商业部署,请联系 Elastic 销售部门。
有关模型的更多技术信息,包括定价信息,请访问 jina-vlm 模型页面。你也可以在 arXiv.org 阅读发布论文。
原文:https://www.elastic.co/search-labs/blog/visual-language-model-jina-vlm