看板 AI_Art
※ 引述《art1 (人,原來不是人)》之銘言: : https://www.youtube.com/watch?v=edHNTFt5jYk
: 有雙卡 48GB,加上影片提到的多種方式最佳化,應該就能有生產環境級別的算力可用? : 而且照影片中最後的說法,還有向上提昇的空間 : 養龍蝦最缺的就是便宜的算力了吧,尤其現在各家都在縮減使用量,真的是... : 看到陳昭榮的一篇臉書發文,連演員都能如此善用 AI 了,世界真的不一樣了.... 我很討厭那種優點大吹特吹 缺點輕輕帶過的文章/影片 所以用我自己的粗淺理解來解釋一下這個影片裡出現的各種技術 ----- 量化(Quantization) ----- 應該不用解釋了吧 玩本地有人不知道量化嗎? 反而影片用沒量化的模型當基準線來誇大倍率這點讓我很不滿 ----- 多代碼預測(Multi-Token Prediction,MTP) ----- 多代碼預測是模型訓練時就必須加入的一種內生推理機制 可以不用一個接一個推論 而是一次推論複數個token 代價就是權重因為包含額外的機制 所以而是相同訓練預算下 本體模型能用的資源會被 MTP 模組部分佔用 在許多情況下可能可以夠讓推論效率上升 但並不保證正效益 ----- 投機解碼(Speculative Decoding) ----- 投機解碼是由一個小型模型來逐 token預先推論 本體模型可以進行整批驗證而不需要逐一驗證 如果接受率高可以帶來更好的效率 而不接受時 從拒絕處開始放棄草稿帶來的加速效果 繼續推論 (前方已經接受的部分效益依然存在) 權衡代價就是需要獨立的權重和KVCACHE 且草稿接受率過低時可能會有負面效益 因此草稿模型選用很重要 有些模型的MTP模組可以作為這個草稿模型使用 但是本質還是相同的 可以視為本體模型已經包含了一個原生配合 接受率較高的草稿模型 反過來就是在不使用草稿時 這種模型在推理期的效用就無法完全發揮 DFlash和DDTree則都是這個技術的發展型態 ----- DFlash ----- 內容包含兩件事情 一. 是藉由區塊擴散可以一次生成一個範圍 而不再是逐TOKEN推理 區塊越大效率越高但是接受率可能會降低 因此如果區塊大小配置不當或其他因素影響 有可能反而降低草稿整體的被接受度 二. 是KV Injection 讓草稿模型可以提取本體模型的多層隱藏特徵注入草稿模型的K和V投影 並存入KVCACHE持續重用 而不只是作為輸入(這會逐漸被稀釋) 以提升草稿接受的接受率 主要的權衡就是運算會變得更複雜 但在頻寬律速的現況下通常會是正收益 如果說標準投機解碼是讓驗證可以平行運算 DFlash是讓起草也可以平行運算 而平行起草帶來的誤差和接受率風險則由 KV Injection 負責補回達成整體正收益 ----- DDTree ----- 如果說投機解碼的本質是用小型模型去猜測大模型的推論 因此天然存在被驗證拒絕的風險 DDTree則是用更多備案來分散這個風險 再有疑慮的token都不只取一個 而是取複數個可能性 變成樹狀圖 只要其中一條路徑猜中了 就會被接受 因此被拒絕的風險降低 那麼權衡也很明顯: 如果取的點和可能性過多 這棵樹狀路徑會變得過於龐大 而過少的話 則可能根本無法帶來正面收益 而且可能需要為整棵樹設計特殊的因果注意力掩碼 這也帶來實作複雜度和運算需求的增加 ----- 投機解碼 小結 ----- 整體來說 投機解碼這個技術系列本質上 是用更多的記憶體空間和更多的運算能力 來降低對於頻寬需求的權衡交換 所以運用這個技術系列的前提是 1.運算過剩 2.空間過剩 3.頻寬瓶頸 在本地推論來說 CUDA等通用GPU上算力與頻寬的不對等是常態 但VRAM容量(以及有限的權重和KVCACHE容量)作為稀缺資源 可能就是運用上需要考量的部分 Apple Silicon或AMD的解決方案雖然算力頻寬的比例較沒有CUDA那麼極端 但也可能讓原本就不快的prefill階段的所需時間上升 DFlash的區塊解碼正是為了緩解這個問題 但整體取捨仍須試部屬環境與使用需求決定 因為我們現在了解到這個技術的本質本質始終是 "以空間和算力換頻寬" 那麼 "頻寬是否真的是瓶頸" 就成了評估時優先該考慮的問題 例如長prefill短decode(或單純的短decode)的任務 本身體感延遲就是算力瓶頸造成 這類場景投機解碼額外引入的計算開銷反而成為負擔 加上大批次的併行推理是提升總吞吐量與轉移瓶頸的更直接方式 而且還存在VRAM壓力 驗證批次等待等其他問題 那麼我認為對於這套技術的評估路徑就很明顯了: 低併發服務如(單/少用戶對話用途)的本地推理 →可以考慮嘗試 但是對於高併發以追求總吞吐量而非單線速度或者VRAM極度緊張的環境   →需要謹慎評估 例如影片裡講的適合養龍蝦 我就抱持著懷疑的態度 理論上龍蝦大多數時候是自主運作 對延遲極度不敏感 最好的方法反而是高併發開大批次 直接把算力催到極限逼出最大吞吐量 而不是單線在那邊爆改堆極限卻讓總吞吐量下降 所以這系列技術在我看來反而適合算力和VRAM都有餘裕的單人聊天/對話用 ----- TurboQuant ----- 簡單的說 是一種接近無損的KVCACHE量化技術 理論上能夠在4~5bit前後的壓縮率下達到量化以前的精度 但是他的代價是更高的運算需求(PolarQuant 旋轉 + QJL 殘差消除) 也就是說 TurboQuant 和推測性解碼做的交換有些不同 他是 1.VRAM容量固定下 拿運算能力 來交換KVCACHE精度 或 2.KVCACHE精度固定下 拿運算能力 來交換VRAM容量 因此比起投機解碼 TurboQuant 的確有可能較適合Agent使用 但是是建立在願意拿總吞吐量來交換context windows大小(或KVCACHE精度)的前提下 相對就是 如果不是agent 而是當成對話使用這種延遲敏感場景的話 可能在長context時 把原本就很難受的prefill時間變得更難受 至於沒有長context需求的話...那也不需要這個技術來放大context windows不是? ----- 不過這些技術我也沒有真的全部用過 如果我的知識有誤的話請提出指正 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.229.28.82 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/AI_Art/M.1777204045.A.215.html
shin2190: 看完腦袋好癢,感覺要長腦子了… 04/26 20:58
對不起,我還是稍微排版一下好了 ※ 編輯: patvessel (125.229.28.82 臺灣), 04/26/2026 21:25:45
Supasizeit: 測試下來這隻要開至少24K context window才能做事 04/26 22:22
v86861062: 推推 04/27 00:18
galaxy4552: 神似autoresearch的結果 04/27 00:49
patvessel: 我就把這當成讚美了 謝謝( 04/27 01:33
Kroner: 想問一下有沒有關節痛的運動禁忌?怕動得更嚴重… 04/27 01:33