iPAS AI 應用規劃師 初級 科目一 人工智慧基礎概論

LLM 推論的 Batching 機制,對效能有什麼影響?

原題 25

在大型語言模型(LLM)的推論服務中,常透過請求批次處理(Batching)來提升系統效能。關於批次處理(Batching)機制的影響,下列敘述何者最正確?

白話

大型語言模型(LLM)的推論服務中,常用請求批次處理(Batching)來提升系統效能。

問你:關於批次處理(Batching)機制對系統效能的影響,下列哪項描述最正確?

點選你的答案。

01 總結

一句話總結

Batching 提升 GPU 效率和整體吞吐量,但湊批等待的時間可能讓部分單筆請求延遲增加,兩者是取捨關係。

02 情境

先感受問題:一台 GPU 一次只做一件事,太浪費了

假設「智問科技」在部署一個 LLM 問答服務,讓企業員工問問題。一台高端 GPU 要價 200 萬台幣,每個月電費加機架費要 3 萬。

如果不使用 Batching,每次只處理一筆請求:員工甲問問題,GPU 開始算;算完了,員工乙的問題才開始;再算完,員工丙的問題才輪到。

問題是:GPU 計算一個回答通常只需要 0.5 秒,但員工問問題不是排好隊同時湧入的,有時候間隔幾秒才來一筆。GPU 一直在等,使用率只有 30%,相當於花了 200 萬買了一台機器,70% 的時間它在發呆。

Batching 的想法:把幾毫秒內進來的多個請求合併成一批,一次送進 GPU。GPU 同時幫 8 個人算,使用率從 30% 提升到 90% 以上,整體服務能應付的請求量大幅增加。

03 對照

不用 Batching 的五個後果

「智問科技」在早期沒有實作 Batching,遇到了這些問題:

  1. GPU 使用率低:GPU 是平行計算高手,同時算幾百件事效率最高,一次只算一件,幾乎是浪費它的設計優勢
  2. 成本暴增:服務 100 個並發使用者需要 10 台 GPU;有了 Batching,可能只要 2 台,成本差 5 倍
  3. 高峰期崩潰:中午休息時間大家都在問問題,沒有 Batching 的系統一筆一筆排隊,後面的人等到天荒地老
  4. 資源規劃困難:不知道一台 GPU 能支撐多少使用者,只能保守地買很多台,備而不用
  5. 競爭力輸掉:同樣的 GPU 成本,有 Batching 的服務能服務 5 倍的使用者,沒有 Batching 的服務報價比對手貴 5 倍
04 解法

Batching 怎麼提升效率,代價又是什麼

「智問科技」實作 Batching 後,服務邏輯改成:有新請求進來,先等一個短暫的時間窗口(例如 10 毫秒),如果在這段時間內有其他請求也進來,就把它們合成一批,再一起送進 GPU。

效益:GPU 同時處理 8 筆請求,運算量幾乎一樣(因為 GPU 本來就是設計來平行算的),使用率大幅提升,整體吞吐量(每秒能處理幾筆)增加好幾倍。

代價:先進來的請求要等到後面的請求湊夠一批才能開始算,等待時間就變成延遲的一部分。如果服務很忙、請求一直進來,等待時間很短,幾乎感覺不到;如果服務很閒、請求稀稀落落,可能要等比較久才湊到一批,延遲反而比一筆一筆算還長。

這就是選項 A 描述的:Batching 可提升加速器資源使用效率並增加整體吞吐量,但在部分情境下可能對單筆請求延遲造成影響

技術版:LLM 服務中 Batching 的機制與取捨

為什麼 GPU 特別適合 Batching:GPU 是大規模平行計算的硬體,設計上就是同時做幾千個相同的運算。一批 8 個請求和一批 1 個請求,在 GPU 上的計算時間差距可能很小,但吞吐量是 8 倍。

靜態批次 vs 動態批次:靜態批次(Static Batching)等到湊滿固定大小才算;動態批次(Dynamic Batching)在一個短時間窗口內有多少算多少,更靈活。現代 LLM 服務框架(vLLM、TGI)通常用連續批次(Continuous Batching),讓不同長度、不同進度的請求可以共享 GPU 資源,效率更高。

低併發時 Batching 效果有限:如果服務只有 1-2 個使用者,每次都只能湊到小批,Batching 的效益就很有限,甚至因為等待湊批反而增加延遲。Batching 在高并發(高流量)場景才能發揮最大價值。

為什麼出題者要考這題:AI 規劃師需要理解 LLM 服務的效能優化機制,才能正確評估部署成本、服務容量和延遲承諾。Batching 是 LLM 部署中最基礎的優化手段,不理解它就無法做有效的資源規劃。

05 陷阱

為什麼其他選項是錯的

BBatching 主要用於加快單筆請求回應時間

字面在說什麼

用了 Batching,每一筆請求的回應速度會更快。

為什麼不對

Batching 的設計目的是提高整體吞吐量,而不是加快個別請求的速度。實際上,單筆請求在 Batching 中可能因為要等其他請求湊批而延遲更長。選項 B 把「整體吞吐量」跟「單筆速度」混為一談。

誰會選錯

覺得「一起算比分開算快」所以每筆也變快的人。一起算快的是 GPU 整體使用效率,不是每筆的個別等待時間。

CBatching 的效益主要來自降低記憶體使用量,對於吞吐量與延遲表現影響有限

字面在說什麼

Batching 最主要的好處是節省記憶體,對速度沒什麼幫助。

為什麼不對

Batching 的主要效益是計算效率和吞吐量,不是記憶體。實際上一批多筆可能用的記憶體比一筆更多(因為要同時存多筆的中間結果)。對吞吐量的影響也非常顯著,說「影響有限」完全不符合實際情況。

誰會選錯

把 Batching 跟其他記憶體優化技術(如 KV Cache 壓縮)混淆的人。這些是不同的優化手段,效益方向不同。

DBatching 在低併發請求下,仍能明顯提升系統效能

字面在說什麼

就算使用者很少、請求量低,Batching 還是會有明顯效果。

為什麼不對

低併發時,請求稀少,每次都湊不成大批,Batching 的效益會大幅縮水,甚至可能因為等待湊批反而讓延遲更差。Batching 的效益在高并發(大量請求同時進來)時才能充分展現。

誰會選錯

以為 Batching 是「萬用加速技術」,無論什麼情境都有效的人。技術的效果永遠跟場景有關,低流量場景的 Batching 效益非常有限。

06 變形

同個考點下次怎麼變形

變形 1

在什麼情況下,增加 Batch Size 反而會讓使用者體驗更差?

直覺

Batch 越大不是效率越高嗎?

答案

當服務的延遲要求很嚴格時。Batch 越大,後進來的請求等待湊批的時間越長,首字延遲(Time-to-First-Token)就越長,使用者感覺要等很久才看到模型開始回應。互動式應用(如聊天機器人)通常需要 Batch Size 較小,換取更快的首字回應。

變形 2

吞吐量(Throughput)和並發(Concurrency)有什麼關係?

直覺

吞吐量高不就代表能應付更多同時的使用者嗎?

答案

並發是指系統同時處理的請求數量;吞吐量是單位時間處理的總量。兩者相關但不同。並發量高時,Batching 效果最好(因為請求夠多可以湊大批)。高吞吐量的系統可以支援更高的並發,但每筆請求的延遲不一定更短。

變形 3

連續批次(Continuous Batching)相較於靜態批次有什麼優勢?

直覺

聽起來都是批次,差在哪裡?

答案

靜態批次等到一批全部完成才接受新請求;連續批次允許一批中某個請求完成後,立刻把新請求插進來補上空位。LLM 的不同請求長度差異很大,連續批次讓 GPU 幾乎一直滿載,不會因為等某些長請求算完而閒置。這是 vLLM 等現代推論框架的核心優化。

變形 4

「每秒 Token 數(Tokens per Second)」和「首字延遲(TTFT)」分別衡量什麼?

直覺

兩個都是在衡量 LLM 有多快,有什麼不同?

答案

每秒 Token 數(TPS)衡量的是服務的整體吞吐量,越高越好,但不代表單一使用者感覺快。首字延遲(Time-to-First-Token, TTFT)衡量的是從送出請求到看到第一個字的時間,這才是使用者感受到的「反應速度」。Batching 通常提升 TPS,但可能增加 TTFT。

變形 5

AI 規劃師在設計 LLM 服務時,要怎麼決定 Batch Size 的大小?

直覺

有沒有一個「最佳」的 Batch Size?

答案

沒有通用最佳值,取決於三個因素:延遲要求(SLA 規定多久要回應)、並發量(同時有多少使用者)、GPU 記憶體(Batch Size 越大用的記憶體越多)。互動式應用可能用小 Batch(1-4),批次處理場景可以用大 Batch(32-128)。規劃師的工作是根據業務需求和硬體限制做取捨。

07 延伸

想再往下看,這 5 個

出處

iPAS 經濟部產業人才能力鑑定 ・ 115 年第一次 iPAS AI 應用規劃師 初級 科目一 人工智慧基礎概論 第 25 題

查看官方原文 PDF