---
title: "動態批處理（Dynamic Batching）"
slug: dynamic-batching
language: zh-TW
source: https://aiterms.tw/terms/dynamic-batching
updated_at: 2026-06-22
tags: [模型部署, 大型語言模型, 推理優化, MLOps]
ipas_term: false
---

# 動態批處理（Dynamic Batching）

根據系統負載和數據可用性，動態調整批次大小和處理時機的推理最佳化技術，用於平衡吞吐量和延遲。

## 完整說明

動態批處理是一種推理服務的最佳化技術，通過根據實際系統負載、輸入隊列深度和延遲約束，動態調整批次大小來執行推理任務。相比於固定批次大小，動態批處理可以更靈活地適應不同的負載情況，從而在保持低延遲的同時提高吞吐量。常見應用包括線上推理服務、實時推薦系統和多租户推理平台。

## 常見問題

### 動態批處理如何平衡延遲和吞吐量？

動態批處理通過調整最大等待時間和最大批次大小來平衡這兩個目標。在低負載時，系統可以設置較長的等待時間（如 100ms），允許請求積累以形成較大的批次，提高吞吐量。在高負載時，系統自動縮短等待時間，防止隊列堆積，保持延遲低。這種自適應的調度策略使系統能在各種負載條件下保持穩定的性能。現代框架如 TensorRT 和 Triton Inference Server 提供了開箱即用的配置參數。

### 動態批處理與靜態批處理相比有什麼優勢？

靜態批處理使用固定的批次大小，這在負載均勻時效率高，但在負載波動時性能不佳。在低負載時，系統可能會浪費時間等待請求填滿批次，導致高延遲。在高負載時，隊列可能堆積，也導致高延遲。動態批處理根據實際負載調整，始終維持在一個較好的工作點。研究表明，與靜態批處理相比，動態批處理通常能實現更高的吞吐量（提升 30-50%）或更低的尾部延遲（降低 40-60%）。

### 輸入長度不同的請求如何進行動態批處理？

這是動態批處理的一個重要挑戰。當請求包含不同長度的輸入（如文本序列）時，系統需要將它們填充到相同的長度以形成統一的張量。一種方法是為不同長度的請求維護不同的隊列，相同長度或接近長度的請求形成一個批次。另一種方法是使用注意力遮罩（attention mask）和打包技術，在不進行顯式填充的情況下處理可變長度輸入。現代框架如 Triton Inference Server 提供了對可變長度輸入的原生支援。

---

來源：https://aiterms.tw/terms/dynamic-batching
快查頁：https://aiterms.tw/terms/dynamic-batching
最後更新：2026/06/22
深度解說：https://aiterms.tw/learning/what-is-dynamic-batching