速成课 · No. 34
多年来,模型只会处理文本。如今它们能接收图像、音频,甚至视频——一个 multimodal 模型可以描述一张照片、读懂一张图表、把一场会议转成文字,或者回答关于一张截图的问题。你为文本学到的那套工程依然适用,外加新的能力和新的陷阱。来了解 multimodal 解锁了什么、模型如何感知文字之外的东西,以及它会在哪里出错。
只讲精髓 · 每个想法一个画面 · 不止于文字
第一件要抓住的事,很简单,就是发生了什么变化:模型不再被限制在读和写文字里。一旦模型能接收图像和声音,一整片全新的问题就被打开了。
一个 modality 是一种输入或输出
一个会读字、同时还能看、能听、能说的人——每一种感官都是接收世界的一个不同通道,而不是一个不同的大脑。
一个 modality 是一种数据类型——文本、图像、音频、视频。能处理不止一种的模型就是 multimodal:它可以同时接收一张图像和一段文本,或者从一段描述生成语音。多年来,模型只能处理文本——读文字、写文字。这个转变在于,单个模型现在能够跨 modality 去感知,就像一个人调用多种感官,而不再对文字之外的一切又聋又盲。
同一个模型可以接收 mixed input
把一张照片递给某人,问「这张有什么问题?」——他们看一眼,用语言回答。一个问题,两种输入,一个回应。
multimodal 的威力不只是处理图像来替代文本——而是把它们一起处理。你可以给模型看一张截图,并就它提一个问题;给它一张图表外加一段书面请求;发一张照片连同指令。模型一次性地在所有这些之上推理。正是这种组合,让 multimodal 真正成为新东西:输入不再是单一通道,于是你的 prompt 可以像真实对话那样把文字和图片混在一起。
文本那套本事依然适用
学会了看,并不会让你忘记怎么读——新的感官是在你已有的能力上做加法,而不是取而代之。
你为文本学到的一切——prompting、context、structured output、grounding、evals——对 multimodal 依然适用。图像或音频只是你装进 context 里的输入的又一部分;模型仍然产出一个你去约束、校验和度量的输出。所以 multimodal 不是一门要从头重学的独立学科;它就是同一套工程,外加一种新的输入和输出。把你的文本本事迁移过来,再在上面叠加这种新 modality 的具体细节。
一个 modality 是一种数据;一个 multimodal 模型处理好几种——图像和音频,不只是文本——并且能把它们混在一个输入里。你所有的文本本事依然适用,只是多了一种新感官。
大致了解一个模型如何接收一张图像,是有帮助的——因为这会戳破 multimodal 能做什么、不能做什么的神秘感,也解释了它为什么有时会把眼前的东西读错。
一张图像会变成和文本同一种表示
一个把口语和手语都转成同一份文字笔记的翻译——不同的输入,被转换成大脑用来工作的一种共同形式。
在底层,一个 multimodal 模型把一张图像转换成它用于文本的那同一种内部表示——把像素变成一个序列,模型可以连同文字一起在它之上推理。图像和文本最终落在一种共享的形式里,这恰恰就是模型为什么能回答关于一张图片的文本问题:两者都已被翻译成模型内部的一种共同语言。你不需要知道细节,但明白图像和文本变得可相互比较,就解释了模型如何把它们关联起来。
看见图像里的文字,和理解整个场景不是一回事
你可以读出罐子上的标签,也可以另外去理解这个罐子是干什么用的——这是两个不同的动作,尽管两者都在看同一个物件。
两种不同的能力常被混为一谈。读出图像里的文字——一块招牌、一份文档、一张截图——大致就是过去需要单独的「OCR」(光学字符识别)才能做的事;一个 multimodal 模型可以直接做到。理解场景——正在发生什么、有哪些物体在场、一张图表意味着什么——则是另一回事。一个好的 multimodal 模型两者都行,但值得把「从这张图像里抽出文字」和「解读这张图像展示了什么」区分开,因为它们是两种不同的诉求,可靠性也不同。
感知是有局限的
再敏锐的眼睛也会漏掉小字、看走眼一张模糊的照片,或读错一张杂乱的图表——看,是强大的,但并非毫无瑕疵。
模型的视觉令人印象深刻,但并不完美。它会读错细小或低质量的文字、漏看一张繁忙图像里的细节、数错物体的数量,或者一本正经地把某个微妙之处描述错。这种感知是真有用,但不是一台精密仪器——把模型「看到」的东西当作一个有力的解读,而不是一次有保证的读取。这一点很重要,因为人很容易假设:既然模型能看,它就看对了;和它的文本回答一样,它的视觉回答也可能是自信地错。
模型把一张图像转换成和文本相同的内部形式,于是它能把两者放在一起推理。读出图像里的文字,不同于理解整个场景——而这种感知尽管强大,却可能自信地出错。
multimodal 之所以重要,是因为它让一大批真实问题变得可解。看到这些具体用途,就明白它绝不只是个新鲜玩意。
理解文档与截图
一个助手,瞥一眼一张纸质表单或一块屏幕,就能精确地把你需要的东西挑出来,而不必你手动一个个敲进去。
一个巨大的实际用途,是读懂文档、表单和截图——从一张发票里抽取数据、理解一份 PDF 的版式、回答屏幕上有什么的问题。在 multimodal 之前,这需要脆弱的专用工具;现在一个模型可以直接看着文档去处理它,连同它的结构一起。任何信息以视觉形式而非干净文本存在的地方,multimodal 都把「得有个人来读它再重新打字」变成了模型能搞定的事。
分析图像与图表
给一位专家看一张图,问它意味着什么——他们读懂这幅视觉内容,解释其中的趋势,不需要任何电子表格。
multimodal 模型可以分析视觉内容:描述一张照片、读懂并解读一张图表或示意图、认出一张图像里有什么、比较两张图片。你可以把一张销售图表递给模型,问它趋势如何;一张产品照片,问哪里出了问题;一张示意图,让它讲解。这把图像从只有人才能解读的东西,变成了你的软件可以推理的输入——为任何有意义信息以视觉形式存在的工作流打开了大门。
无障碍与触达
一位向导为看不见的人把眼前的场景大声描述出来——把一个视觉的世界变成任何人都能用的文字。
multimodal 还拓宽了你的产品能服务的人和事:为视障用户描述图像、让人们对准摄像头而不必打字、处理那些从来就不是文本形式的内容。读懂一张图表的那同一种能力,也能为一张照片配旁白、为一段视频生成字幕。超越任何单个功能,multimodal 扩大了一个 AI 产品所能接收的输入面——从「打出你的问题」变成「让我看、给我讲,或者放给我听你的意思」。
multimodal 解锁了读懂文档与截图、分析图像与图表,以及通过无障碍拓宽触达——把视觉和音频信息变成软件可以推理的东西。
用 multimodal 来构建,大体上就是你已经会的那套工程,只是在输入里加上了图像或音频。那些熟悉的纪律可以直接照搬过来。
把图像连同文本一起发过去
在同一条消息里把一张照片连同你的书面问题一起附上——接收方两样都看到,一次性把整件事答完。
实践中,你构建一个 multimodal 请求和构建一个文本请求很像:你装配 context,只是现在它可以连同你的文本指令一起包含一张图像(或音频)。「这是一张截图,这是我想了解它的什么」作为一个合并后的输入发给模型。这只是 context engineering 配上了更丰富的输入——图像是你有意放进窗口里、与文字并列的又一样东西。你已经具备的那种装配心态可以直接适用。
照样要求 structured output
一个填表的人,看着一张乱糟糟的收据,把总额、日期和商家工整地写进带标注的方框——混乱进去,干净的数据出来。
当你用 multimodal 来抽取信息——从文档里拉出字段、给图像分类、读一张图表——你照样想要 structured output:让模型返回干净的、符合 schema 形状的数据供你的代码使用,而不是散文。一个读收据的 multimodal 模型应该交给你 {total, date, vendor},而不是一段话。把文本模型变成可靠组件的那套 structured-output 纪律,对视觉模型也起同样的作用。modality 是新的;通往你代码的那座桥不是。
一如既往地校验与 grounding
对于别人匆匆一瞥后报回来的东西,你会复核一遍,尤其是那些重要细节——在要紧之处再看一眼。
因为模型的感知可能出错,你施加同样的可靠性纪律:校验抽取出的数据、把答案 ground 在真正可验证的东西上、在高风险的读取上保留一个人。模型从发票上把一个数字读错,就是幻觉的视觉版本,所以你把它的视觉输出当作未经核实即不可信,和你对待它的文本时一模一样。每一门别的课的教训都成立:模型是一个会犯错的组件,一种新 modality 并不改变这一点。
构建 multimodal 就是配上更丰富输入的 context engineering:把图像连同文本一起发过去、照样要求 structured output、对结果做校验与 grounding——撇开 modality 不谈,模型是一个会犯错的组件。
到目前为止我们谈的都是模型接收图像和音频。另一个方向——模型产出它们——本身就是一大片领域,值得点出名字,好让你知道它落在哪里。
模型也能创造图像和音频
一位照着你的描述作画的画家,或一位念出你剧本的配音演员——生成是感知的镜像。
正如模型能接收图像和声音,另一些模型则生成它们:text-to-image 模型从一段描述画出一幅图,text-to-speech 把文字变成一个说话的声音,还有用于音乐、视频等等的模型。生成是理解的反面——把另一种 modality 作为输出而非输入。它本身是一片广阔的领域,但关键在于「multimodal」横跨两个方向:模型可以感知其他 modality,模型也可以产出它们。
同一套工程姿态依然适用
你用一份清晰的简报来指挥一位画家,然后在采用之前审一遍成果——同一个循环,无论他们在产出什么。
用生成式 modality 来构建,遵循和其他一切相同的姿态:一条清晰的指令(prompt)、一个你当作草稿来审的输出、一个掌控着是否采用它的人。一张生成的图像或一段生成的声音,是模型自信的尝试,要去核查和编辑,而不是闭着眼上线——无论输出是文本还是图片,产品设计的纪律都适用。所以你不需要为生成另搞一套全新的打法;同样那种「会犯错的组件,由你掌控」的立场可以照搬过来。
知道它存在;有意地去取用它
你不会为一桩只需一句话的活儿去定制一幅画——你用任务真正需要的那种媒介。
生成式 modality 对合适的活儿很强大——插画、为语音产品合成的语音、视频——但它们是一个有意的选择,而不是一个到处乱撒的默认项。当输出确实需要是那种 modality 时,去取用图像或音频生成;当文本够用时,就守着文本。知道整套这种能力存在,以及它落在哪里,目前就够了——关键是 multimodal 是一条双向的路,跨着各种感官去感知和产出。
multimodal 是双向的:模型也会生成图像、语音等等。同一套工程姿态依然适用——一份清晰的简报、一个审过的草稿、一个掌控的人——而你只在输出确实需要那种 modality 时才去取用它。
multimodal 在那些熟悉的失效模式之上又添了新的。有几个特定的陷阱,会逮住那些把图像当得和文本一样安全、一样便宜的团队。
图像可以夹带隐蔽的攻击
一张照片,里面写着指令,眼睛几乎注意不到,机器却读得一清二楚——一条消息在你眼皮底下被光明正大地夹带过去。
一个 multimodal 模型读取一张图像里的一切,包括人可能漏看的文字。这让图像成了 prompt injection 的一个通道:攻击者可以把指令藏在一张图片里——浅淡的文字、嵌进像素里——而模型乖乖照做。这是安全课里那个注入问题的视觉版本,而且更阴险,因为你不容易看见这次攻击。把模型摄入的任何图像都当作可能携带着指令的不可信输入,而不只是一些无辜的像素。
图像的成本比文本高得多
发一张照片而不是一句话——要传输和处理的东西多得多,账单也如实反映出来。
按计价表算,一张图像远不止值一千个词:处理一张图像消耗的 token 比一段短文本 prompt 多得多,所以 multimodal 调用可能贵出相当一截。一个在每次请求都发送高分辨率图像的功能,能攒出一张吓人的账单。model-economics 那套纪律在这里要加倍用力——对图像的尺寸以及你多久发一张要有所斟酌,因为「干脆把图片也带上」的代价,比带上一行文字高得多。
自信地读错,是那个安静的失效
有人瞥一眼一块模糊的招牌,自信地告诉你一个错的数字——又快、又笃定、又错。
那个熟悉的幻觉问题有了视觉形态:模型会自信地把一个数字读错、把物件数量数错,或者描述出一个图像里根本没有的东西——而且听起来和它说对时一样笃定。因为输入是视觉的,这些错误可能比一处文本的口误更难抓住。所以对于任何一处读错就要紧的场合——从文档上读出的一个数字、一张医学影像、一次安全检查——你要去核实、保留一个人在环路里,并且永远不要假设「它能看见」就等于「它读对了」。模型对图像的自信,并不比它对文本的自信更可靠。
multimodal 的新陷阱:图像可以偷运 prompt injection、它们花的 token 比文本多得多,而模型读错它们时可以像在文本里产生幻觉一样自信。把图像当作不可信的、昂贵的,以及会被读错的。
用好 multimodal,大体上就是把你已经会的一切应用到一种更丰富的输入上,同时尊重这种新 modality 特有的成本和风险。
当信息是视觉的,就去取用 multimodal
当问题是要去看的某样东西时,你就把摄像头请进来;当问题是要去说的某样东西时,就守着打字——让通道匹配任务。
这个决定很简单:当有意义的信息确实存在于一张图像或一段音频里——一份要读的文档、一个要解读的场景、一段要听懂的语音——就用 multimodal,而不是先把它硬塞进文本,也不是在它本能帮上忙时回避它。但也别在文本更干净、更快、更便宜的地方反射性地去够它。这门本事在于认出一个问题何时确实是视觉或听觉的,并让模型直接去感知它,而不是要么无视那种能力、要么过度使用它。
把每一项纪律都带过来,外加这种 modality 自己的
一位拿到新机型资质的飞行员,带着他全部既有的本事,再加上这架新飞机的具体细节——不是从头来过,而是延展。
multimodal 不是一个让你忘掉所学的理由。有意地把图像装配进 context、要求 structured output、对结果做校验与 grounding、盯住成本,并把图像当作不可信的。然后再加上这种 modality 的具体细节:visual injection、更高的 token 成本、感知的局限。文本各门课里的一切依然管事;multimodal 只是用一种新的输入和它自己那一小撮陷阱去延展它。在你已知的之上构建,只学那些新的边角。
- 信息是否确实是视觉或音频——还是说我在文本更干净的地方用了 multimodal? - 我是不是有意地把图像装配进 context,像对待任何别的输入那样? - 当从图像里抽取数据时,我是不是在 要求 structured output? - 这张图像会不会夹带一次隐蔽的 注入——我有没有把它当作不可信的? - 我有没有把图像高出许多的 token 成本算进去? - 我是不是在校验那份感知,并在高风险的读取上保留一个人?
- modality / multimodal——一种数据;一个处理不止一种数据的模型。 - mixed input——在一个 prompt 里把图像(或音频)和文本组合起来。 - OCR / scene understanding—— 读出图像里的文字,对比解读它展示的内容。 - perception limits——模型 会自信地把它看到的东西读错或描述错。 - generation across modalities—— text-to-image、text-to-speech;产出其他 modality。 - visual prompt injection—— 藏在图像里、模型会照做的指令。 - image token cost——图像消耗的 token 远多于文本。
- 你在信息确实是视觉或音频时才去取用它,而不是出于条件反射。 - 你 把图像装配进 context,并在抽取数据时要求 structured output。 - 你 把图像当作不可信的,对 visual injection 保持警觉。 - 你把更高的 成本和感知的局限算进去。 - 你在一处读错就会要紧的读取上校验并保留一个人。
multimodal 把你的文本工程延展到图像和音频:当信息是视觉的就去取用它,把每一项纪律都带过来——context、structured output、校验、成本——并尊重注入、成本和自信读错这些新陷阱。