close

小夥伴們在使用 ComfyUI 的時候,有沒有遇到過 "fill_empty_deterministic_" not implemented for 'Float8_e4m3fn" 的錯誤?

特別是在使用 Flux 技術(或模型)時?跟 Nivida 顯卡驅動有關嗎?怎麼解決?

 貓與蟲2025|ComfyUI 的 “fill_empty_


貓與蟲的遊記生活FB粉絲專頁.jpg

歡迎大家按讚分享~夥伴們最期待的貓咪照片&影片

最新資訊也會同步更新在粉絲專頁喔!


※國內外各大旅遊行程就在旅遊咖!凡舉自由行、機票、飯店、團體旅行通通都有!點我看折扣!

※來台南看展囉~~台南奇美博物館常設展 & 特展門票,特展定期更新~點我看折扣!

※什麼!?台南也有SUP可以體驗!?漁光島立式划槳體驗,點我看折扣!

※穿著華美的旗袍與風雅的馬褂,漫步於安平蜿蜒的巷弄間,彷彿置身在風華歲月的民初年間,來體驗一天中華文化的服飾,點我想折扣!

※貓與蟲大推的台南一日遊,2人即可成團,一次網羅各景點,讓夥伴們玩得盡興,美麗島捷運站出發也很方便!點我看折扣!

※來到全球唯二的泥漿溫泉,走一趟放鬆身心的溫泉之旅,觀看水火同源的奇景,2人即可成團!點我看折扣!

※大台南一日遊,2人即可成團,烏山頭水庫、安平樹屋、新化老街,熱門景點一次給你,台南火車站美麗島捷運站出發,點我看折扣!

※來到台南一定要來一趟機車漫遊啦!騎著機車浪漫的穿梭其間,深入走訪台南的每一處秘境,租一台Gogoro智慧又實惠,點我看折扣!

※高鐵&租車的行程一次包給你,給你最便利懶人包,讓你擁有一天舒適又自在的台南大眾運輸與自駕的自助行程!點我看折扣!


 以蟲的經驗來說,第一個是檢查你使用的模型 (通常是 checkpoints 模型),是不是使用 fp8 (超低精度浮點數模型) 的量化模型,

 第二是檢查你的顯示卡,如果你是用是 Nvidia RTX 3060 Ti 的話,那問題就來了,這張消費級的顯示卡是沒辦法跑 fp8 的模型的!

 你需要改用 fp16 (半精度浮點數)的模型才能用 RTX 3060 Ti 去跑~也就才不會遇到 fill_empty_deterministic_" not implemented for 'Float8_e4m3fn 問題~

 所以在下載模型時,得先了解自己的硬體條件,再來選擇模型~雖然 fp8 模型容量比較小,但顯卡不支援也是沒轍~

貓與蟲2025|ComfyUI 的 “fill_empty_

 ※ 延伸閱讀 powered by GPT

 → 為什麼 RTX 3060 不支持 FP8?

    ◦ FP8 是一種較新的浮點格式,主要由 NVIDIA 在其數據中心級 GPU(如 H100 和部分 A100)中引入,這些 GPU 基於 Hopper 或 Ada Lovelace 架構(專為 AI 訓練和推理優化)。
    ◦ RTX 3060 使用的是 Ampere 架構(GA106 晶片),而 RTX 4090 使用的是 Ada Lovelace 架構(AD102 晶片)。雖然這些架構支持 FP16 和 BF16(16 位浮點數),但它們的硬件設計並未包含對 FP8 的原生支持。
2. FP8 的硬件需求
    ◦ FP8 需要特定的 Tensor Core 版本(例如 Hopper 架構中的第四代 Tensor Core)來進行高效計算。Ampere 架構(RTX 3060)使用的是第三代 Tensor Core,僅支持 FP16、BF16 和 INT8,而不包括 FP8。
    ◦ 即使 RTX 4090 是更新的 Ada Lovelace 架構,它的 Tensor Core 也主要針對 FP16 和 INT8 優化,並未明確支持 FP8(FP8 更多是為企業級 GPU 設計的特性)。
3. 軟件模擬的限制
    ◦ 理論上,PyTorch 可以通過軟件模擬 FP8 計算(不依賴硬件加速),但這種情況下性能會大幅下降,且 ComfyUI 的某些組件(例如 CLIPLoader)可能假設硬件支持 FP8,從而導致你遇到的錯誤。
4. NVIDIA 官方文檔
    ◦ 根據 NVIDIA 的規格說明,FP8 支持明確出現在 H100 的技術文檔中,而 RTX 3060 和 4090 的消費級產品線並未提及 FP8 作為支持的格式。

 

 → 量化模型的量化,是什麼意思?

 

- 從模型精度上的改變
- **「量化」是名詞**,英文原文是 "quantization"。這裡它是作為「結構性壓縮」的一個例子出現的,與「剪枝」(pruning)並列。
- 句子中的意思是:FP16 和 FP8 只改變了數據的表示方式(從 FP32 到 FP16 或 FP8),但它們本身並不屬於更深層次的壓縮技術,比如「剪枝」(移除模型中的冗餘參數)或「量化」(將參數轉換到更低位數,通常指比 FP16 更極端的壓縮,例如 INT8 或更低)。

### 詞性澄清

- **動詞形式**:如果是「進行量化」,英文會用 "quantize"(例如 "We quantize the model",我們對模型進行量化)。
- **名詞形式**:這裡是 "quantization",表示一種技術或過程。

### 「這是一個量化模型」的含義

當別人說「這是一個量化模型」(This is a quantized model),他們通常指的是:

- 這個模型的參數已經經過量化處理,從高精度(比如 FP32)轉換成了低精度(比如 INT8、FP16,甚至 4 位或 2 位)。
- **目的**:可能是為了讓模型更小、更快,或者能在特定的硬件(如手機、邊緣設備)上運行。
- **例子**:
    - 一個原始的 FP32 模型大小是 100 MB,量化成 INT8 後可能只剩 25 MB。
    - 量化後的模型可能在推理時更快,但生成的結果可能略有不同(視量化方式而定)。

### 常見的量化類型

1. **後訓練量化(Post-Training Quantization, PTQ)**
    - 在模型訓練完成後,直接將參數轉換為低精度。
    - 簡單,但可能損失一些準確性。
2. **量化感知訓練(Quantization-Aware Training, QAT)**
    - 在訓練過程中模擬低精度效果,讓模型適應量化後的參數。
    - 效果更好,但訓練成本更高。

### 總結

- **「量化」在句子中是名詞**,指的是將參數轉換到低精度(如 INT8)的壓縮技術。
- *「量化模型」**是指經過這種處理的模型,通常更小、更快,但可能精度稍低。
- 你聽到的「這是一個量化模型」,多半是指模型被優化過,適配低功耗設備或加速推理。

arrow
arrow
    創作者介紹
    創作者 貓與蟲的遊記生活 的頭像
    貓與蟲的遊記生活

    貓與蟲的遊記生活X唯君札記

    貓與蟲的遊記生活 發表在 痞客邦 留言(0) 人氣()