课程
构建搜索与检索系统过去往往意味着要么把一切转成文本,要么将分别训练的视觉模型与文本编码器拼接在一起。虽然这对许多通用场景有用,但我们很容易错过文本与图像之间更深层的联系。
在本文中,我将带您了解 Gemini Embedding 2,并展示它如何消除这些摩擦。您将了解它是什么、为什么重要,以及如何在真实项目中开始使用它。
什么是 Gemini Embedding 2?
Gemini Embedding 2 是 Google 最新的嵌入模型,专为多模态编码而设计。Google 的 genai Python API 允许开发者使用 gemini-embedding-2-preview 模型。
从高层来看,嵌入模型会将数据转换为 数值向量,以捕捉其含义。历史上,这些模型主要聚焦文本。Gemini Embedding 2 扩展了这一范围,让开发者能够用单一模型处理多种数据类型。
其核心价值主张很简单:我们现在可以在不同媒体格式之间进行索引、比较与搜索,而无需为每种格式分别构建流水线。
向原生多模态的转变
旧系统以迂回的方式处理多模态数据。音频必须转写,视频需要字幕,图像要打标签。
每一步都会增加延迟与额外工作量,并引入潜在的信息丢失。而这一切都是为了将所有内容映射到一个通常以文本为主的共享向量空间中。
Gemini Embedding 2 消除了这层额外处理。
它从一开始就将文本、图像、视频、音频与 PDF 映射到共享向量空间。在实践中,这意味着一段展示拥挤城市街道的视频,在向量空间中可以与“urban traffic”(城市交通)这段文本相邻。
这种关系是直接从原始输入中学习到的,而不是通过诸如音频转写等中间文本来推断。这一转变简化了系统设计,并保留了更多原始上下文。
Gemini Embedding 2 的关键特性
下面来看看让 Gemini Embedding 2 脱颖而出的特性:
- 大文本上下文:支持最多 8,192 个 token,足以处理长文档或详细记录。
- 原生音视频支持:可处理最长两分钟的视频或音频,无需转写。
- 交错式输入:在单个请求中接收文本与媒体的组合,生成统一的嵌入。
- 多语言覆盖:支持 100 多种语言,无需翻译流水线即可进行跨语言搜索。
这些功能减少了对独立预处理系统的需求,简化了整体架构。
Gemini Embedding 2 的技术优势
Gemini Embedding 2 的一大亮点是其使用了 Matryoshka Representation Learning(MRL,套娃表示学习)。这个理念相当优雅:嵌入被结构化,使最关键信息“前置”到向量的起始部分。
尽管完整的 向量输出为 3,072 维,但得益于 MRL,开发者可以干净利落地将其截断为更小的尺寸,如 768,甚至 256 维。您可以灵活存储更小的向量,从而大幅降低成本并加速检索,同时准确率几乎不受明显影响。
这对性能调优是巨大利好,因为您无需为优化存储而重新训练模型或彻底改造流水线。
跨模态的共享语义空间
MRL 很出色,但该模型在大规模上处理多模态对齐的方式才是真正有趣之处。本质上,它在所有数据类型之上创建了一个统一的语义空间。
与其为不同格式建立各自的孤岛,不如让模型学习将相似概念聚类在一起。
如果语音备忘、照片与一段书面文字表达了相同的想法,它们都会映射到同一个数学“邻域”。
您不再需要在特定模态模型之间来回切换,或在输出前将它们硬拼在一起,这使排序与下游相似度搜索顺畅得多。
跳过翻译这一步
回看传统的 检索流水线,它们通常依赖中间转换。在搜索前,您必须先转写音频文件或为图像生成字幕。每做一次,就会压缩原始数据并不可避免地引入噪声。
Gemini Embedding 2 通过直接嵌入原始音频与视频,完全绕过了这一步。没有中间环节,信息几乎零损失。
如果您在为通话录音构建语义搜索,或试图在原始视频片段中识别用户意图,就不会受限于文本转写模型“恰好捕捉到”的内容。
用混合输入捕捉上下文
当您将不同数据类型(例如文本与图像)在一次嵌入调用中组合时,另一个巨大的优势就会显现。模型会在推理期间实际学习这些输入之间的关系。
以电商商品页为例。与其把商品图片与文字描述视为彼此孤立的数据,模型会将它们融合为一个高度具备上下文的向量。
当嵌入能反映完整信息而非碎片化部分时,检索质量自然会提升。
显著更简单的架构
从基础设施角度看,这种简化之大难以言表。依赖单一嵌入模型来处理所有数据类型,将彻底改变您搭建系统的“算术”。
不必再维护一团乱麻般的专用工具,您只需一个索引流水线、单一相似度度量与一个向量数据库模式。这会大幅削减运维开销,也让扩展不再头疼。
此外,如果您日后想尝试新的数据源,也无需拆改现有架构才能接入。您终于可以基于“意义本身”来设计检索系统,而不是总被数据类型的限制掣肘。
如何开始使用 Gemini Embedding 2
让我们通过一个简单示例,看看如何即使在本地也能使用 Gemini Embedding 2。
设置环境与 API 密钥
首先通过 Google AI Studio 创建 API 密钥。然后在您的 Python 环境中安装最新的 Python SDK:
pip install -U google-genai
完成后,将您的 API 密钥设置为名为 GEMINI_API_KEY 的环境变量。您可以在项目内通过 .env 文件设置,或通过系统的环境变量管理器进行设置。
生成您的首个多模态嵌入
以下是一个同时从文本与图像创建嵌入的简单示例:
from google import genai
from google.genai import types
client = genai.Client()
with open(“sample.png”,”rb”) as f:
image_bytes = f.read()
# Example of an interleaved input, this has both the text and the image as part of a single vector
# Create multiple of these for separate encoding vectors
response = client.models.embed_content(
model="gemini-embedding-2-preview",
contents=[
"A photo of a vintage typewriter",
types.Part.from_bytes(
data=image_bytes,
mime_type="image/jpeg"
)
]
)
print(response.embeddings)
这会生成一个同时表示文本与图像的单一向量。
从旧模型迁移的最佳实践
如果您正从旧的嵌入模型迁移,请注意以下几点:
- 重新索引数据:现有向量与新模型不兼容。
- 基准测试检索质量:用真实查询进行测试,以确认在您的用例中是否有改进。
- 从子集开始:先迁移较小数据集,以验证存储与检索行为。
循序渐进能降低风险,也更便于对比结果。
统一向量空间的真实用例
既然我们已经会使用 Gemini Embedding 2,接下来谈谈如何在现实世界中落地。
推进检索增强生成(RAG)
如今大多数 RAG 系统依赖文本嵌入。使用 Gemini Embedding 2,您可以将其扩展到 多模态 Agentic RAG 系统。
例如,客服助理可以从 PDF 中检索图示、翻译音频转写,或执行短视频片段中描述的操作,而不再仅仅解析文本与邮件。借助单一模型而非多个不同模型与代理,可覆盖更广的用例。
简化跨模态搜索与分类
组织通常会存储大量非结构化数据,如图像、录音与文档。其中大多数要么难以搜索,要么记录维护不佳。
借助共享嵌入空间,您可以用 自然语言查询这些数据。诸如“系统架构的白板草图”这样的搜索,可以在无需人工打标的情况下,定位相关图像或会议录音。
结语
Gemini Embedding 2 简化了一个过去需要多个系统与复杂模型架构才能解决的问题。通过在单一模型中支持文本、图像、音频与视频,它同时降低了工程负担与运维复杂度。
如果您在构建搜索、推荐系统或 RAG 流水线,这非常值得探索。最大优势不仅在于性能更佳,更在于我们为系统解析信息的方式迎来了一次小小的变革。若您对如何使用 Gemini 或更广泛的 AI 感兴趣,也可参考以下资源:
Gemini Embedding 2 常见问题
Gemini Embedding 2 与旧模型的主要区别是什么?
较早的模型(如 text-embedding-004)仅支持文本。若要搜索视频或图像,必须先对其进行转写或打标签。Gemini Embedding 2 则是原生多模态的,这意味着它能在同一数学“空间”内直接理解文本、图像、音频、视频与 PDF,而无需任何中间步骤。
对于视频和音频等非文本输入,有哪些限制?
在当前预览版中,您每次请求最多可嵌入 120 秒视频与 80 秒原生音频。对于更长的文件,最佳实践是将其“切片”成片段,从而创建可搜索的语义时间线。
我还需要为搜索转写音频文件吗?
截至 2026 年发布,文本、图像与视频输入的费用为每 100 万 token 0.25 美元。原生音频略贵,每 100 万 token 为 0.50 美元,因为直接处理声波的计算量更大。
Gemini Embedding 2 能处理多页文档吗?
可以,它可直接嵌入最多 6 页的 PDF。对于更长的文档,您应将 PDF 按 6 页为一组切分,并分别进行索引。
