看法
LLM/SLM

【好書推薦】全面解析生成式 AI 部署:《Inference Engineering》

TH
Thomas
發布於: 2 個月前
265
24

留言區

排序
AU
大約 1 個月前
補充一個個人開發者的角度:書裡講的優化方法很多,但不知道從哪裡下手的話,我會建議先只盯三個數字——TTFT(第一個 token 多久出來)、tokens/sec(產生速度)、還有記憶體用量高峰。 這三個搞清楚之後,通常瓶頸在哪就很明顯了,再去談 batching 或 quantization 才有依據。
菲菲
菲菲
#2
大約 2 個月前
這本書推薦感覺很實用!想請問一下,如果要把 inference 優化的東西真的落地,第一步應該從哪裡開始?我在公司是 PM,想幫工程師整理流程,但不確定要先搞清楚現有的 serving 架構,還是先從找 latency 瓶頸開始 🤔
CT
CtrlC
回覆 菲菲
大約 1 個月前
我會先把現有 serving 架構跟監控指標拉出來,至少先有 TTFT 跟 throughput 的基線。數字先跑起來,後面才知道該優先打 latency 還是成本。
TH
Thomas
回覆 菲菲
大約 1 個月前
這本書確實整理得非常全面!身為 PM,要帶領工程師團隊將這些 Inference 優化技術落地,建議的順序是「先盤點現有架構(Baseline),再尋找瓶頸(Bottleneck)」。
菲菲
菲菲
回覆 Thomas
大約 1 個月前
同為 PM 的我看到這個順序超有共鳴 😭 上次直接跳過 Baseline 讓工程師衝功能,結果做到一半才發現方向跑掉了,整個重來超崩潰的...下次一定要先盤點清楚再動
VI
大約 2 個月前
PM 角度補充一下:這本書最有價值的地方是幫你跟 infra team 說人話。很多時候 latency 跟 cost 的 tradeoff 不是技術問題,是溝通問題。stakeholder 要快、finance 要省、engineering 要穩,你要能把 inference 的各種 config 翻譯成商業語言,才有辦法推動決策。光有工程師看懂不夠。
小萱
小萱
#4
2 個月前
請問一下,如果要開始評估 inference 成本,到底要先看 latency 還是先看 throughput? 我現在在做課堂 project,預算有限所以想先抓最重要的那個指標下手,但看到書裡這兩個好像都很關鍵,有點不知道從哪個切入 QQ
滷蛋
滷蛋
回覆 小萱
大約 1 個月前
預算有限就先看 throughput 吧 🔖 latency 是有錢才能煩惱的奢侈品 😂
TH
Thomas
回覆 小萱
2 個月前
先看你的使用情境是什麼。
小萱
小萱
回覆 Thomas
大約 2 個月前
哦這樣... 那我的情境是課堂 project,最後要 demo 給教授跟同學看。這樣算是 latency 優先嗎?還是因為只有幾個人用所以 throughput 不用管?
TH
Thomas
L3
回覆 小萱
大約 2 個月前
對於課堂 project 的 demo 來說,Latency(延遲)絕對是你的首要考量。 當你站在台上 demo 給教授和同學看時,大家都在盯著螢幕等模型吐出結果。如果系統為了追求極致的 Throughput(吞吐量)而把請求都扣住在後台做 Batching,導致畫面卡了 10 秒鐘才開始有反應,那在台下的體感就會覺得「這系統是不是壞了?」。 為了解釋得更清楚,我們可以把這兩個指標在你的情境下拆開來看: 1. Latency(延遲):Demo 順暢度的生命線 在語言模型的推論中,Latency 通常會再細分為兩個關鍵指標 : Time To First Token (TTFT): 從你按下 Enter 到模型吐出第一個字的時間。這對使用者體驗最重要,TTFT 越短,教授覺得系統反應越靈敏。 Time Per Output Token (TPOT): 模型每生成一個字需要的時間。這決定了字「噴」出來的速度。只要這個速度比人類閱讀的速度快,看起來就很順暢。 2. Throughput(吞吐量):預算與大規模服務的考量 Throughput 指的是系統單位時間內能處理的總請求數(例如:每秒能生成多少個 Token 或處理多少個 Request)。 為什麼現在先不用管? 因為在你的課堂 demo 中,同時間最多可能只有你,或是兩三個同學在操作。系統根本沒有「同時湧入上百個請求需要消化」的壓力,所以花費心力與預算去拉高 Throughput 的意義不大。 預算有限的切入策略 既然預算有限,又必須確保 Latency 夠低,你的硬體資源應該「剛剛好」滿足單一請求的極限速度即可,不需要為了不存在的高併發流量去租用超大顯存或多張 GPU 的機器。 你可以把心力放在推論引擎的最佳化上。透過使用像 vLLM 或 SGLang 這類高效的 Inference Engine,搭配量化(Quantization)過的小模型(像是 AWQ 或 GGUF 格式),通常就能在一張相對平價的 GPU(甚至消費級顯卡)上,跑出非常漂亮的 Latency 表現,完美扛住你的期末 Demo。
小萱
小萱
L4
回覆 Thomas
大約 2 個月前
原來如此!! latency 優先我懂了,那 vLLM 跟 SGLang 我去查一下哪個比較好裝 quantization 那邊有推薦哪種格式嗎,GGUF 還是 AWQ?感覺選擇太多有點暈
TH
Thomas
L5
回覆 小萱
大約 2 個月前
完全取決於你打算用什麼硬體來跑 Demo。
小萱
小萱
L6
回覆 Thomas
大約 2 個月前
啊對!我沒想到這個問題...... 我打算先在自己的 MacBook M2 上跑 Demo,這樣的話哪個比較適合?
TH
Thomas
L7
回覆 小萱
大約 2 個月前
如果你打算直接帶著 MacBook (Apple Silicon) 上台,或者是用只有一般 CPU 的筆電來跑: 首選格式: GGUF 為什麼: GGUF 是專門為 CPU 和 Mac 環境打造的格式。它可以把模型塞進你電腦的系統記憶體(RAM)裡面跑。 注意: 如果選 GGUF,你通常不會配 vLLM 或 SGLang,而是會改用 llama.cpp(或基於它包裝的工具,例如 LM Studio),這是在這類硬體上跑 GGUF 效能最好的推論引擎。
TH
Thomas
回覆 Thomas
2 個月前
使用者在等嗎?→ 先看 latency。沒人在等、批次跑?→ 先看 throughput。
承翰
承翰
#5
2 個月前
補充一個實務建議:memory vs latency 的 trade-off 其實不用猜,先做 profiling 比較快。 我自己的做法是先用 nsys 或 torch.profiler 把 prefill 和 decode 各自的瓶頸抓出來,確認是 compute-bound 還是 memory-bound,再決定要優先上 quantization 還是 PagedAttention。如果 decode 階段 memory bandwidth 已經吃滿,這時候才去調 KV cache 策略才有意義,不然調了也看不出效果。
鍵盤
2 個月前
KV cache 那章是整本的核心。很多人優化 inference 只盯著 throughput,但 prefill 跟 decode 的 latency profile 完全不同,要分開對待。少數有把這點講清楚的資源,值得看完。
十年
2 個月前
KV cache 那塊我最近剛好在看相關的論文,有個蠻有趣的現象是很多人知道 KV cache 能加速,但不清楚它在 memory 上的代價有多大。長序列下幾乎會吃掉你大半的 VRAM。想請問 Thomas 這本書有沒有比較深入討論 memory 和 latency 之間的 trade-off?還是比較偏實作配置的方向?
TH
Thomas
回覆 十年大博士
2 個月前
這本書比較偏向工程實作與架構配置的方向喔!從書中的 5.3 節來看,作者確實有提到長序列下 KV cache 會成為 VRAM 消耗大宗的痛點,但他並沒有花太多篇幅深究 latency 和 memory 之間的理論 trade-off,而是直接給出業界的『解法大全』。例如直接介紹怎麼用 FlashAttention 減少讀寫、用 PagedAttention 降低碎片化、或是透過 Chunked Prefill 與多卡平行化來硬扛 VRAM 瓶頸。如果想看底層複雜度分析可能會覺得稍淺,但作為『如何解決 VRAM 被吃光』的實戰 Checklist,這本整理得非常到位!
十年
十年大博士
回覆 Thomas
2 個月前
了解,感謝說明!其實實戰 checklist 對我來說也很有用,理論的部分看論文補就好。5.3 節我等等去翻一下,FlashAttention 和 PagedAttention 放在一起討論的整理我還沒看過,應該蠻有參考價值的。
CH
Chi
#8
2 個月前
感謝分享!內容從 Runtime、Infrastructure 到 Tooling 都涵蓋到了,超完整耶。 而且能把量化、Speculative Decoding、KV cache re-use 這些技巧都集結在同一本書裡真的很酷, 對想深入 LLM 推論工程的人來說是一份很棒的參考資源。
十年
十年大博士
回覆 Chi
大約 2 個月前
我最有感的是 KV cache re-use 那段,很多人只談吞吐,這本把 latency 跟成本的連動講得很清楚。
關聯 / 被收藏牆
被引用
尚未被引用或收藏
相關卡片
尚無相關卡片