教程

Qwen3 Embedding 上 Cloud TPU:16K 长上下文检索怎么做生产化

Google Cloud 在 2026 年 8 月 26 日公布了 vLLM 原生 TPU Embedding 推理方案,重点不是普通 LLM Chat,而是企业 RAG、Semantic Search 和多模态检索常用的高维 Embedding 工作负载。Google 以 Qwen3-Embedding-8B 和 Qwen3-VL-Embedding-8B 为工程目标,处理 4K+ 文本和 15K+ 图文上下文,并在 TPU 上解决 Tensor Alignment、Lazy Loading、JAX/XLA 编译预热、Chunked Prefill 与 StepPool 状态累积问题。官方给出的 Qwen3-Embedding-8B 结果中,在 bf16、16K+ 序列、TP=4 条件下达到 83,996 total token/s 和 5.13 req/s,同时使用文本 ≥0.999、多模态 ≥0.995 的余弦相似度阈值验证跨硬件数值一致性。真正重要的问题是:Embedding 服务扩容和换硬件以后,检索结果能不能保持稳定。

# Qwen3 Embedding 上 Cloud TPU:16K 长上下文检索怎么做生产化 ## 文章摘要 Google Cloud 在 2026 年 8 月 26 日公布了 vLLM 原生 TPU Embedding 推理方案,重点不是普通 LLM Chat,而是企业 RAG、Semantic Search 和多模态检索常用的高维 Embedding 工作负载。Google 以 Qwen3-Embedding-8B 和 Qwen3-VL-Embedding-8B 为工程目标,处理 4K+ 文本和 15K+ 图文上下文,并在 TPU 上解决 Tensor Alignment、Lazy Loading、JAX/XLA 编译预热、Chunked Prefill 与 StepPool 状态累积问题。官方给出的 Qwen3-Embedding-8B 结果中,在 bf16、16K+ 序列、TP=4 条件下达到 83,996 total token/s 和 5.13 req/s,同时使用文本 ≥0.999、多模态 ≥0.995 的余弦相似度阈值验证跨硬件数值一致性。真正重要的问题是:Embedding 服务扩容和换硬件以后,检索结果能不能保持稳定。 --- 很多团队做 RAG 时,最容易低估的组件不是 Vector Database,而是 Embedding Serving。 Demo: ```text 100 个文档 ↓ Embedding API ↓ Vector DB ``` 很简单。 生产环境可能是: ```text 几亿段文档 + 图片 + 实时查询 + 批量重建索引 + 多租户 ``` Embedding 已经是独立推理基础设施。 ## 两条完全不同的工作负载 ### Indexing ```text Document ↓ Chunk ↓ Embedding ↓ Vector DB ``` 重点是 Token Throughput。 ### Query ```text User Query ↓ Embedding ↓ Vector Search ↓ LLM ``` 重点是 Latency。 成熟平台必须同时解决 Batch 和 Online。 ## 长上下文 Embedding 为什么变重要 早期 Embedding 常见输入只有几百 Token。 现在企业想直接处理: - 长文档; - 图文页面; - PDF Section; - Slide; - Image + Text。 Google 这次讨论的是 4K+ 文本和 15K+ 多模态输入。输入越长,Memory Pressure、Pooling Correctness 和 Serving Complexity 都会快速上升。 ## vLLM 原生 TPU 支持意味着什么 vLLM 已经是主流开源 Serving Engine。Google Cloud 把 TPU 纳入 vLLM Serving 后,企业可以用更统一的框架服务 GPU 和 TPU,而不是维护两套完全不同的推理栈。 这对平台团队很重要,因为真正昂贵的往往不是单次推理,而是: > 运维两套不兼容系统。 ## GKE 异构弹性怎么用 Google 给出的架构允许: ```text Primary TPU Pool ↓ 容量不足 ↓ Secondary GPU Spot / On-demand Pool ``` 结合 GKE Custom Compute Classes,可以按优先级做节点自动扩容。 这非常适合周期性的大规模 Index Build。 ## 为什么 Embedding 特别关注数值一致性 Chat Model 在不同硬件上输出略有差异通常可以接受。 Embedding 不一样。 如果同一段文本在 GPU 和 TPU 上生成的 Vector 差异太大,Vector Search 排名就可能变化。也就是说你只是换了一套硬件,搜索结果却悄悄变了。 ## Golden Reference 怎么测 设参考向量: ```text v_ref ``` TPU 向量: ```text v_tpu ``` 计算: ```text cosine_similarity(v_ref, v_tpu) ``` Google 使用的目标阈值: ### Text ```text >= 0.999 ``` ### Multimodal ```text >= 0.995 ``` 这是很严格的跨硬件一致性要求。 ## 切硬件不能只看 QPS 从 GPU 迁 TPU 时,不要只比较吞吐。 至少还应该测: ```text Vector Cosine Recall@K NDCG TopK Overlap Business Success ``` 如果基础设施更快,但 Retrieval Quality 下降,迁移就是失败的。 ## 16K 输入为什么容易吃爆 HBM 长上下文意味着更多 Token、中间状态和内存压力。Chunked Prefill 可以把长输入拆成多个 Step,降低峰值内存。 但 Embedding 有一个特殊问题:最后需要整个序列的 Pooling Result。 如果: ```text Chunk 1 Chunk 2 Chunk 3 ``` 之间状态没有正确累积,最终向量会错。 ## StepPool 解决什么 Google 实现 Hybrid StepPool,并把 Pooling Metadata 放进 CachedRequestState,让状态能够跨 Step 和 Preemption 保持。 这说明生产 Embedding 最危险的问题不是 Crash,而是: > 没报错,但 Vector quietly 错了。 ## Tensor Alignment 为什么是 TPU 特有工程点 TPU MXU 对 Tensor Sharding 有严格对齐约束。Vocabulary Size 和 Tensor Parallel Size 不一定整除,因此需要做统一 Padding,再进行 Shard、All-Gather 和还原。 如果这个细节处理不好,不只是性能问题,甚至会直接导致 Shape 或执行异常。 ## JAX/XLA 预热为什么重要 TPU Serving 依赖编译。如果新 Pod 第一次接生产请求时才触发 JIT,就会出现明显 Latency Spike。 更合理: ```text Pod Start ↓ Load Model ↓ Compile Warm-up ↓ Health Ready ↓ Receive Traffic ``` 尤其在 Auto Scale 场景,Pre-warm 应该成为 Ready Condition 的一部分。 ## 官方最值得引用的结果 Google 给出的 Qwen3-Embedding-8B 条件: ```text bf16 16K+ Sequence TP = 4 ``` 在 TPU Ironwood 上达到: ```text 83,996 total token/s 5.13 req/s ``` 必须强调:这是特定模型、序列长度和 TP 配置下的官方测试点,不是所有 TPU Embedding 的固定性能。 ## 为什么 req/s 看起来不高 因为单请求本身很长。 如果每个 Request 都有几千到上万 Token,那么 5 req/s 对应的 Token Throughput 已经很高。对于批量建索引,total token/s 往往比 req/s 更有意义。 ## 多模态 Embedding 更复杂 Qwen3-VL-Embedding 同时处理 Text 和 Image。Google 当前 vLLM-TPU 方案只对多模态 Prefill 的文本部分做 Chunk,说明多模态 Serving 还要额外处理 Vision Token、Image Feature、Pooling 和 Memory。 它不是“文本模型换个 Input”这么简单。 ## 推荐的企业架构 ```text Document Pipeline ↓ Chunk / Multimodal Parser ↓ Embedding Gateway ↓ vLLM ├── TPU Pool └── GPU Fallback ↓ Vector DB ``` Query 侧: ```text User Query ↓ Embedding Gateway ↓ Online Pool ↓ Vector Search ↓ Reranker ↓ LLM ``` ## Index Pool 和 Query Pool 最好分开 Indexing 是高吞吐、能排队的任务;Query 是低延迟、用户在线等待。 如果两者共用一个 Accelerator Pool,大规模 Index Job 很容易把 Online P99 拉爆。 所以更推荐: ```text Batch Embedding Pool Online Embedding Pool ``` ## Embedding Gateway 应统一哪些字段 至少统一: ```text Model Version Dimension Normalization Max Length Pooling Hardware Backend ``` 尤其是 Model Version。Embedding 模型升级往往意味着 Vector Space 已变化,旧向量和新向量不应该随便混用。 ## 模型升级要做双索引 不要今天切新 Embedding Model,然后拿新 Query Vector 去搜旧 Index。 更合理: ```text Old Model → Old Index New Model → New Index ``` 做 Shadow Query、Compare、Reindex,再正式 Cutover。 ## TPU 是否一定比 GPU 好 不是。 选择取决于云平台、模型支持、QPS、Batch、成本、团队经验和供应。 Google 这次真正有价值的是: > vLLM 把 TPU 纳入主流 Serving 选择。 而不是 TPU 取代 GPU。 ## 生产必须监控什么 ### Performance - token/s; - req/s; - P50/P95/P99; - queue time。 ### Quality - cosine parity; - Recall@K; - TopK overlap; - NDCG。 ### Infrastructure - HBM; - compile time; - preemption; - autoscale。 ### Business - retrieval success; - answer success; - conversion。 ## 最终判断 Google 这次更新真正重要的不是“Qwen3 可以跑 TPU”,而是 Embedding Serving 正在从一个被忽略的小服务,变成需要高吞吐、长上下文、跨硬件数值一致性、弹性调度和可复现能力的独立基础设施。 官方在特定 Qwen3-Embedding-8B 配置下给出: ```text 16K+ TP=4 83,996 total token/s 5.13 req/s ``` 同时用非常严格的 Cosine Threshold 验证跨硬件一致性。 对生产 RAG 来说,真正应该问的不是“模型能不能跑”,而是: > **换硬件、扩规模以后,检索结果还能不能保持一致。** 想继续了解 RAG、Embedding、vLLM 和 AI 推理基础设施,可以访问 **智元选**:https://www.zyentorpicks.com/。

提示:AI 生成内容建议人工检查后使用。免费版可能有使用次数限制。