今天開始,我們正式進入 DeepSeek 開源周。
DeepSeek 開放原始碼專案第一彈 FlashMLA,已經在極短的時間內發酵到全網了,短短幾個小時,該項目就已經收穫了超過 3.5K Star,且還在不斷飆升。
雖然 FlashMLA 裡的每個字母都認識,連在一起就看不懂了。別急,我們整理了一份 FlashMLA 速通指南。
據官方介紹,FlashMLA 是一個針對 Hopper GPU 最佳化的高效 MLA(Multi-Head Latent Attention)解碼核心,支援變長序列處理,現在已經投入生產使用。
FlashMLA 通過最佳化 MLA 解碼和分頁 KV 快取,能夠提高 LLM(大語言模型)推理效率,尤其是在 H100 / H800 這樣的高端 GPU 上發揮出極致性能。
說人話就是,FlashMLA 是一種專門為 Hopper 高性能 AI 晶片設計的先進技術——一種「多層注意力解碼核心」。
聽起來很複雜,但簡單來說,它就像是一個超級高效的「翻譯器」,能讓電腦更快地處理語言資訊。它能讓電腦處理各種長度的語言資訊,而且速度特別快。
比如,你在用聊天機器人的時候,它能讓你的對話更快地得到回覆,而且不會卡頓。為了提高效率,它主要通過最佳化一些複雜的計算過程。這就像是給電腦的「大腦」做了一個升級,讓它在處理語言任務時更聰明、更高效。
DeepSeek 官方特意提到,FlashMLA 的靈感來自 FlashAttention 2&3 和 cutlass 項目。
FlashAttention 是一種高效的注意力計算方法,專門針對 Transformer 模型(如 GPT、BERT)的自注意力機制進行最佳化。它的核心目標是減少視訊記憶體佔用並加速計算。cutlass 也是一個最佳化工具,主要幫助提高計算效率。
DeepSeek 的爆火出圈很大程度上是因為以低成本創造了高性能模型。
而這背後的秘籍主要得益於其在模型架構和訓練技術上的創新,尤其是混合專家(MoE)和多頭潛在注意力(MLA)技術的應用。
FlashMLA 則是 DeepSeek 公司開發的一種針對多頭潛在注意力(MLA)技術的實現和最佳化版本。那麼問題來了,什麼是 MLA(多頭潛在注意力)機制?
在傳統的語言模型裡,有一種叫「多頭注意力(MHA)」的技術。它能讓電腦更好地理解語言,就像人用眼睛同時關注多個地方一樣。
不過,這種技術有個缺點,就是需要很大的記憶體來儲存資訊,就像一個很能裝的「倉庫」,但倉庫太大就會浪費空間。
MLA 的升級之處在於一種叫「低秩分解」的方法。
它把那個大倉庫壓縮成一個小倉庫,但功能還是一樣好,就像把一個大冰箱換成一個小冰箱,但裡面的東西還是能放得下。這樣一來,在處理語言任務的時候,不僅節省了空間,速度還更快了。
不過,雖然 MLA 把倉庫壓縮了,但它的工作效果和原來一樣好,沒有打折扣。
當然,除了 MLA 和 MoE,DeepSeek 還用了其他一些技術來大幅降低了訓練和推理成本,包括但不限於低精度訓練、無輔助損失的負載平衡策略以及多 Token 預測(MTP)。
性能資料表明,FlashMLA 在記憶體和計算限制下的表現遠超傳統方法,這得益於其線性複雜度的設計和針對 Hopper GPU 的最佳化。
與標準多頭注意力的對比,更是進一步凸顯 FlashMLA 的優勢:
FlashMLA 的主要應用場景包括:
目前 AI 訓練或推理主要依賴輝達 H100 / H800,但軟體生態還在完善。
由於 FlashMLA 的開源,未來它可以被整合到 vLLM(高效 LLM 推理框架)、Hugging Face Transformers 或 Llama.cpp(輕量級 LLM 推理) 生態中,從而有望讓開源大語言模型(如 LLaMA、Mistral、Falcon)運行得更高效。
同樣的資源,能幹更多的活,還省錢。
因為 FlashMLA 擁有更高的計算效率(580 TFLOPS)和更好的記憶體頻寬最佳化(3000 GB/s),同樣的 GPU 資源就可以處理更多請求,從而降低單位推理成本。
對於 AI 公司或者云計算服務商來說,使用 FlashMLA 也就意味著更低的成本、更快的推理,讓更多 AI 公司、學術機構、企業使用者直接受益,提高 GPU 資源的利用率。
此外,研究人員和開發者還可以基於 FlashMLA 做進一步的最佳化。
過去,這些高效 AI 推理最佳化技術通常主要掌握在 OpenAI、輝達等巨頭手裡,但現在,隨著 FlashMLA 的開源,小型 AI 公司或者獨立開發者也能用上,更多人進入 AI 領域創業,自然也就有望催生更多的 AI 創業項目。
簡言之,如果你是 AI 從業者或者開發者,最近在用 H100 / H800 訓練或推理 LLM,那麼 FlashMLA 可能會是一個值得關注或研究的項目。
與春節期間網友扒出 DeepSeek V3 論文具體提到了 PTX 的細節相似,X 網友發現 DeepSeek 發佈的 FlashMLA 項目中同樣包含了一行內聯 PTX 程式碼。
PTX 是 CUDA 平台的中間指令集架構,處於高級 GPU 程式語言和低級機器程式碼之間,通常被視為輝達的技術護城河之一。
通過內聯 PTX,這使得開發者能夠更精細地控制 GPU 的執行流程,從而可能實現更高效的計算性能。
此外,直接利用輝達 GPU 的底層功能,而不必完全依賴於 CUDA,也有利於降低輝達在 GPU 程式設計領域的技術壁壘優勢。
換句話說,這或許也意味著 DeepSeek 可能在有意繞開輝達封閉的生態。
當然,如無意外,根據外媒的爆料,本周接下來預計還有 GPT-4.5、Claude 4 等模型的發佈,去年年底沒能看到的 AI 大戰或將在本周上演。
看熱鬧不嫌事大,打起來,打起來。 (APPSO)
FlashMLA 是一種高效的 MLA 解碼核心,專為 Hopper GPU 最佳化,可用於處理變長序列推理。
當前已發佈版本支援:
在 H800 SXM5 上運行 CUDA 12.6,FlashMLA 在受記憶體頻寬限制的組態下可達 3000 GB/s,在受計算能力限制的組態下可達 580 TFLOPS。
項目配備:
附上 GitHub 項目地址:
https://github.com/deepseek-ai/FlashMLA
安裝
python setup.py install
基準
python tests/test_flash_mla.py
python tests/test_flash_mla.py 是一個命令列指令,用於運行 Python 測試檔案 test_flash_mla.py,通常用於測試 flash_mla 相關的功能或模組。
用法
from flash_mla import get_mla_metadata, flash_mla_with_kvcache
tile_scheduler_metadata, num_splits = get_mla_metadata(cache_seqlens, s_q * h_q // h_kv, h_kv)
for i in range(num_layers):
...
o_i, lse_i = flash_mla_with_kvcache(
q_i, kvcache_i, block_table, cache_seqlens, dv,
tile_scheduler_metadata, num_splits, causal=True,
)
...