AI Prompt Engineering · 课时

结合文本与图像

统一的多模态提示。

第 1 / 4 课13 个步骤

结合文本与图像 是 CoddyKit 上的免费 AI Prompt Engineering 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Prompt Engineering 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Prompt Engineering 课程共包含 4 节课。

统一多模态提示词

多模态提示词并不是文本加上一张附加图像,而是一个单一的交错序列,其中图像词元和文本词元位于同一上下文中,并彼此进行注意力计算。模型并不是“先看图片再读文本”——它处理的是融合后的词元流。

  • 图像区块会被投影到与文本词元相同的嵌入空间中。
  • 顺序很重要:将问题放在图像之前,与将问题放在图像之后相比,会激发不同的注意力模式。
  • 您是在编写一个具有两种表面形式的提示词,而不是两个提示词。

交错顺序与锚定

图像相对于指令的位置会改变模型的行为。将指令放在图像之后,模型就能根据已经编码的内容来理解问题;将指令放在图像之前,则会把图像变成预先陈述任务的证据。

对于多图像提示词,请在行内标记每张图像,以便后续文本能够明确引用它([Image 1]、[Image 2])。

messages = [
  {'role': 'user', 'content': [
    {'type': 'text', 'text': 'You will see two product photos.'},
    {'type': 'text', 'text': 'Image 1:'},
    {'type': 'image', 'source': img_a},
    {'type': 'text', 'text': 'Image 2:'},
    {'type': 'image', 'source': img_b},
    {'type': 'text', 'text': 'Which has better lighting? Cite the image label.'}
  ]}
]

编码前明确任务

视觉编码器是有损的:与隐含任务无关的细节可能会在池化过程中被丢弃。如果在图像之前说明任务,您就能引导模型关注重要的区域。

  • 通用的图像说明请求只能得到通用特征。
  • 具体问题(“数一下电路板上的电阻”)会将表征预算集中到相关子区域。

需要精细细节时,请优先明确任务。

分辨率与切块预算

大多数视觉模型会将高分辨率图像切分成固定大小的图块,每个图块都会消耗词元。2000x2000 的图像可能会被分成许多图块,而每个图块还会经过下采样。词元预算是多模态提示中的隐性约束。

  • 发送前请裁剪到感兴趣的区域——不要指望模型自行放大。
  • 对于内容密集的文档,请发送页面裁剪图,而不是一张完整页面图像。
  • 请了解您的服务提供商支持的最大图块数;超过该限制后,细小文字会变得无法读取。
def estimate_image_tokens(w, h, tile=512, per_tile=256):
    import math
    tiles = math.ceil(w / tile) * math.ceil(h / tile)
    return tiles * per_tile + per_tile  # + thumbnail

作为视觉结构化模式的文本

将图像与文本通道中的显式输出模式结合起来。图像提供内容,文本提供契约。这比自由形式的描述可靠得多。

请要求输出以预期实体为键的 JSON,并指示模型对不可见字段输出 null——这样可以抑制幻觉细节。

instruction = (
  'Extract from the receipt image. Return JSON: '
  '{"merchant": str|null, "total": number|null, '
  '"date": str|null, "line_items": [{"name": str, "price": number}]}. '
  'Use null when a field is not legible. Do not invent values.'
)

使用指示语消除歧义

指示性引用(“这个”、“左边的那个”、“高亮显示的框”)会将文本绑定到图像区域。当您可以预先标注图像时(绘制方框、添加箭头),文本引用会比单独使用空间语言可靠得多。

  • 空间词(“右上方”)在图像旋转或裁剪后容易出错。
  • 叠加编号标记并写上“对象 #3”则没有歧义。
  • 预处理图像以添加标记,是一种合理的提示工程手段。

混合模态少样本示例

您可以提供图像到文本的示例,以固定格式和推理风格。每个示例都是一个交错排列的(图像、理想答案)对。模型会从这些演示中归纳出映射关系。

请确保示例图像能够代表真实分布——来自不同领域的示例会教给模型错误的特征选择方式。

shots = [
  ('image', chart_a), ('text', 'Trend: upward. Peak: Q3. Anomaly: none.'),
  ('image', chart_b), ('text', 'Trend: flat. Peak: Q1. Anomaly: Q4 dip.'),
  ('image', target_chart), ('text', 'Trend:')  # model completes
]

将主张锚定到像素

对于高风险的信息提取,请要求模型标明每条主张在图像中的来源位置。近似边界框或图像中引用的文字可以作为可验证的证据,并显著减少自信编造。

  • “对于每个值,请引用您读到的确切标签文字。”
  • “请为每个字段提供一个近似的归一化方框 [x0,y0,x1,y1]。”

证据锚定会将不透明的答案转变为可审计的答案。

需要防范的失败模式

多模态模型会以一些典型方式失败:

  • 小字体或特殊字体会导致OCR 偏移——模型容易混淆 1/7 和 0/O 这样的字符。
  • 面对超过约 6 个相似对象时会出现计数崩溃。
  • 图像说明偏差:描述典型场景,而不是实际场景。
  • 文本通道覆盖:一个自信但错误的文本主张可能会压制正确的视觉证据。

请要求模型先从图像中推导结论,再与任何文本断言进行协调,以减轻这些问题。

冲突协调提示

当文本上下文与图像冲突时,您必须明确决定优先级——模型没有值得信赖的默认策略。请直接说明:“如果图像与所提供的元数据矛盾,请相信图像,并标记这一差异。”

这句话会将静默错误转变为显式且可见的冲突,下游流水线可以将其路由给审核人员。

policy = (
  'You are given metadata AND a photo. '
  'When they disagree, prefer the photo as ground truth. '
  'Emit {"value": ..., "conflict": bool, "note": str}.'
)

架构化融合流水线

生产环境中的多模态提示是一条流水线,而不是一次调用:

  • 预处理:裁剪、标注,并缩小到预算范围内。
  • 融合:将内容与以任务为先的指令和输出模式交错排列。
  • 锚定:要求提供每条主张的证据。
  • 协调:说明不同模态之间的优先级。
  • 验证:解析 JSON,检查空值和冲突标记。

每个阶段都能缩小单靠提示无法控制的失败范围。

快速检查

您必须从高分辨率的合同扫描件中提取小字内容,并且需要可靠的数字。

回顾:融合文本与图像

统一的多模态提示是一条交错的词元流。关键做法包括:通过以任务为先的框定来引导视觉编码器,通过裁剪实现对分辨率和切块的关注,使用带可为空字段的显式输出模式,为每条主张提供像素锚定,并在发生冲突时指定模态优先级。请将其视为一条流水线——预处理、融合、锚定、协调、验证——这样视觉提示中脆弱的部分就会变得可控。

免费开始

用 AI 导师学习 AI Prompt Engineering — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
53
课程
199

常见问题解答

「结合文本与图像」课时是免费的吗?

是的 — 「结合文本与图像」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Prompt Engineering 课程的其余内容,请升级到 CoddyKit PRO。 AI Prompt Engineering 课程共包含 4 节课。

「结合文本与图像」这节课中我会学到什么?

统一的多模态提示。 你通过在浏览器中直接运行的动手代码来练习 AI Prompt Engineering,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AI Prompt Engineering 需要有经验吗?

无需任何先前经验。CoddyKit 上的 AI Prompt Engineering 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「结合文本与图像」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 AI Prompt Engineering 课中编写并运行代码吗?

能。每节 AI Prompt Engineering 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 结合文本与图像
  2. 跨模态建立依据
  3. 音频、文本与视觉协同
  4. 多模态输出控制
← 返回 AI Prompt Engineering