99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線(xiàn)實(shí)戰(zhàn)洞察。

大模型推理優(yōu)化:Prefill 與 Decode 兩階段瓶頸及調(diào)優(yōu)實(shí)踐

大模型推理優(yōu)化:Prefill 與 Decode 兩階段瓶頸及調(diào)優(yōu)實(shí)踐 你大概見(jiàn)過(guò)這種曲線(xiàn)服務(wù)剛上線(xiàn)時(shí)首 token 延遲兩百毫秒上下看著挺體面并發(fā)一上來(lái)這個(gè)數(shù)字開(kāi)始抖抖到兩秒、五秒可每 token 的輸出延遲卻穩(wěn)得很四五十毫秒沒(méi)怎么變。運(yùn)維查了網(wǎng)卡、查了顯存占用、查了卡上的利用率指標(biāo)都不難看但用戶(hù)就是在反饋卡。遇到這種情況我一般先不碰硬件也不急著換推理框架而是把一次請(qǐng)求拆成兩個(gè)性質(zhì)完全不同的階段來(lái)看——**Prefill預(yù)填充**和Decode解碼。這兩個(gè)詞在大模型推理里出現(xiàn)的頻率極高但真正搞清楚它們?cè)谟?jì)算上差在哪、為什么要用兩套策略去伺候的人并不多。Prefill 是一次性把整段 prompt 塞進(jìn)網(wǎng)絡(luò)一次前向算完所有 token 并行過(guò)模型Decode 是每步只吐一個(gè) token一步一循環(huán)直到遇到結(jié)束符。前者是典型的算力密集型后者是典型的訪存密集型兩者的瓶頸、優(yōu)化手段、調(diào)參方向幾乎是相反的。你把它們當(dāng)成一件事來(lái)調(diào)用同一套批處理策略、同一個(gè)顯存預(yù)算、同一種量化方案結(jié)果必然是兩頭不討好。這篇內(nèi)容就是把這層窗戶(hù)紙捅破從矩陣乘的形態(tài)講到顯存帶寬的賬從 KV Cache 怎么長(zhǎng)出來(lái)講到分塊預(yù)填充和 PD 分離怎么落地中間插一些我自己踩過(guò)的坑和可以直接抄的壓測(cè)腳本。不需要你先懂 CUDA 算子只要你會(huì)寫(xiě)幾行 Python、跑過(guò)模型服務(wù)就能順著往下讀如果你已經(jīng)在做推理部署第 4、5 部分應(yīng)該能直接對(duì)上你監(jiān)控里的那些異常曲線(xiàn)。1. 把兩個(gè)階段掰開(kāi)看一次請(qǐng)求到底發(fā)生了什么1.1 從輸入到第一個(gè) tokenPrefill 到底干了什么用戶(hù)發(fā)來(lái)一句話(huà)比如三百個(gè) token推理引擎收到的是一整個(gè) token 序列而不是一個(gè)一個(gè)喂進(jìn)去。Prefill 做的事情就是把這個(gè)長(zhǎng)度 300 的序列當(dāng)成一個(gè)整體走一遍完整的前向embedding 查表得到 300 個(gè)向量每一層做自注意力、做前饋網(wǎng)絡(luò)一路往上最后只取最后一個(gè)位置的輸出去算下一個(gè) token 的概率分布。注意這里的關(guān)鍵——300 個(gè)位置全部參與了計(jì)算但它們之間不是獨(dú)立的自注意力里的每個(gè)位置都要看到它前面所有位置的信息所以這一層的計(jì)算量隨序列長(zhǎng)度是平方級(jí)增長(zhǎng)的。用生活化的說(shuō)法Prefill 像是一次性把一整篇文章讀進(jìn)去理解讀的時(shí)候前后文互相對(duì)照讀完整篇才寫(xiě)出第一個(gè)字。這個(gè)過(guò)程里模型權(quán)重只需要被讀取一遍但是要參與大量的乘加運(yùn)算所以它對(duì)算力的胃口極大對(duì)顯存帶寬反而不那么敏感。這也是為什么在 Prefill 階段你會(huì)看到加速卡的算力利用率SM 占用、Tensor Core 活躍度能跑到比較高的水位而顯存控制器沒(méi)那么忙。還有一點(diǎn)容易被忽略Prefill 階段要一次性寫(xiě)入全量 KV Cache。300 個(gè) token每一層都要存下它們的 Key 和 Value這些數(shù)據(jù)后面 Decode 階段要反復(fù)讀取所以 Prefill 不只是算還是一次大規(guī)模的顯存寫(xiě)操作。這個(gè)寫(xiě)的量級(jí)我在 2.4 節(jié)會(huì)算給你看先記住這個(gè)動(dòng)作的存在。1.2 從第二個(gè) token 開(kāi)始Decode 為什么是一個(gè)繞不開(kāi)的循環(huán)第一個(gè) token 吐出來(lái)之后流程就變了。第二步的輸入只有一個(gè) token上一步生成的那個(gè)但它要跟前面 300 個(gè) token 的 KV 拼在一起做注意力。這里就體現(xiàn)出 KV Cache 的價(jià)值了前面 300 個(gè) token 的 K 和 V 在 Prefill 階段已經(jīng)算好存下來(lái)了Decode 每一步只需要算當(dāng)前這一個(gè) token 的 Q、K、V然后把新 K、V 追加到緩存尾部再用當(dāng)前 Q 去跟全部 301 個(gè)位置做注意力。如果沒(méi)有 KV Cache每一步都要把全部歷史重新算一遍代價(jià)會(huì)大到?jīng)]法用。關(guān)鍵是這個(gè)動(dòng)作要重復(fù)幾百上千次。每生成一個(gè) token你就要把整個(gè)模型的權(quán)重從頭到尾讀一遍但在當(dāng)前這一步里真正參與計(jì)算的新 token 只有一個(gè)。權(quán)重讀了幾十 GB算的卻只是一次矩陣乘向量這就是 Decode 階段的根本矛盾——算力大量閑置帶寬被榨干。你可以把它想象成每次只為了查一個(gè)字就把整本字典從頭翻一遍。字典的內(nèi)容權(quán)重沒(méi)有變翻的動(dòng)作顯存讀取卻是實(shí)打?qū)嵉某杀尽?.3 兩個(gè)階段的本質(zhì)差異用一張表說(shuō)清楚把上面的描述收斂成對(duì)照表后面所有的優(yōu)化手段幾乎都能從這張表里推出來(lái)維度Prefill預(yù)填充Decode解碼輸入形態(tài)長(zhǎng)度 T 的完整序列單 token每步計(jì)算量與 T 成正比線(xiàn)性層 與 T2 成正比注意力每步固定與歷史長(zhǎng)度成正比注意力部分權(quán)重讀取一次前向讀一遍每生成一個(gè) token 讀一遍核心瓶頸算力compute-bound顯存帶寬memory-bound矩陣形態(tài)大 GEMM瘦高矩陣乘胖矩陣GEMV 退化矩陣乘向量KV Cache批量寫(xiě)入逐步追加、全量讀取批處理收益中等主要攤薄權(quán)重讀取極高權(quán)重讀取被 batch 攤薄優(yōu)化重點(diǎn)提高算力利用率、減少無(wú)效計(jì)算提高帶寬利用率、增大有效 batch量化敏感度中注意激活值精度高權(quán)重位寬直接決定速度這張表建議你貼在工位上。后面遇到任何優(yōu)化方案先問(wèn)一句它作用在哪一列答案清楚了方案值不值得試也就清楚了。比如有人跟你說(shuō)把權(quán)重量化到 4bit 能提速一倍你心里應(yīng)該有數(shù)這是沖著右列去的對(duì) Prefill 的收益非常有限甚至可能因?yàn)榉戳炕_(kāi)銷(xiāo)反而變慢。2. 算力賬本為什么 Prefill 吃算力、Decode 吃帶寬2.1 算術(shù)強(qiáng)度一個(gè)能解釋大部分現(xiàn)象的比值要判斷一段計(jì)算是吃算力還是吃帶寬標(biāo)準(zhǔn)工具是算術(shù)強(qiáng)度Arithmetic Intensity定義很簡(jiǎn)單每從顯存里搬一個(gè)字節(jié)的數(shù)據(jù)能順帶做多少次浮點(diǎn)運(yùn)算。單位是 FLOP/Byte。拿它去和硬件的脊點(diǎn)Ridge Point比脊點(diǎn)等于硬件峰值算力除以峰值帶寬超過(guò)脊點(diǎn)的計(jì)算就是算力受限低于脊點(diǎn)的就是帶寬受限。拿一塊常見(jiàn)的數(shù)據(jù)中心加速卡舉例FP16 稠密算力按 300 TFLOPS 估顯存帶寬按 2000 GB/s 估脊點(diǎn)大約是 150 FLOP/Byte。意思是每搬 1 個(gè)字節(jié)的數(shù)據(jù)你得做夠 150 次浮點(diǎn)運(yùn)算才算沒(méi)浪費(fèi)這塊卡的算力?,F(xiàn)在看 Prefill。假設(shè) 7B 參數(shù)模型輸入 2048 個(gè) tokenFP16。權(quán)重總量約 13.4 GB只讀一遍計(jì)算量按經(jīng)驗(yàn)公式 2 × 參數(shù)量 × token 數(shù)估2 × 6.7e9 × 2048 ≈ 2.74e13 FLOPs也就是 27.4 TFLOP。算術(shù)強(qiáng)度 2.74e13 / 1.34e10 ≈ 2045 FLOP/Byte。遠(yuǎn)遠(yuǎn)高于 150妥妥的算力受限。所以 Prefill 該做的事是把算力榨干而不是省顯存讀取。再看 Decodebatch 1。每生成一個(gè) token權(quán)重還是讀 13.4 GB計(jì)算量只有 2 × 6.7e9 ≈ 1.34e10 FLOPs。算術(shù)強(qiáng)度 1.34e10 / 1.34e10 1 FLOP/Byte。連脊點(diǎn)的百分之一都不到。這就是為什么單請(qǐng)求跑 Decode 的時(shí)候你看顯卡的算力利用率會(huì)低得離譜而顯存帶寬可能已經(jīng)跑滿(mǎn)。這組數(shù)字帶來(lái)的直覺(jué)是Decode 階段要提升吞吐唯一的出路是把 batch 做大讓同一份權(quán)重讀取服務(wù)多個(gè)請(qǐng)求把算術(shù)強(qiáng)度拉回來(lái)。batch 16 時(shí)算術(shù)強(qiáng)度能到 16雖然離脊點(diǎn)還遠(yuǎn)但吞吐已經(jīng)是 batch 1 的十幾倍了。2.2 Prefill 的 FLOPs 拆解線(xiàn)性層和注意力各占多少很多人以為 Prefill 的耗時(shí)大頭永遠(yuǎn)是注意力這個(gè)認(rèn)知在短上下文下是錯(cuò)的在長(zhǎng)上下文下才對(duì)。我們把 2.74 TFLOP 拆開(kāi)看。線(xiàn)性層部分QKV 投影、輸出投影、FFN 的兩層總共接近 2 × 參數(shù)量 × T就是上面算的 27.4 TFLOP 里的大頭。注意力部分單獨(dú)算QK^T 的乘加是 2 × T2 × d加權(quán)求和 AV 也是 2 × T2 × d兩層注意力矩陣乘加起來(lái) 4 × T2 × d再乘層數(shù) L。代入 T 2048、d 4096、L 324 × 20482 × 4096 × 32 ≈ 2.2e12也就是 2.2 TFLOP。占比約 8%。但注意力是平方增長(zhǎng)的線(xiàn)性層是線(xiàn)性增長(zhǎng)的。把 T 拉到 8192注意力部分乘 16 變成 35 TFLOP線(xiàn)性層只乘 4 變成 110 TFLOP注意力占比升到 24%。再拉到 32768注意力變成 560 TFLOP線(xiàn)性層 440 TFLOP注意力占比過(guò)半。這份賬解釋了為什么同一個(gè)服務(wù)短 prompt 場(chǎng)景跑得好好的一接長(zhǎng)文檔場(chǎng)景就崩。不是你的框架不行是計(jì)算結(jié)構(gòu)變了原來(lái)可以忽略的那一項(xiàng)變成主項(xiàng)了。對(duì)應(yīng)的優(yōu)化手段也就不一樣短上下文該優(yōu)化 GEMM 的分塊和融合長(zhǎng)上下文得先想辦法把注意力的平方項(xiàng)壓下去。2.3 Decode 的訪存賬本單卡吞吐的理論上限D(zhuǎn)ecode 每一步要讀什么權(quán)重 13.4 GB加上當(dāng)前上下文的 KV Cache。上下文 2048 時(shí)KV Cache 大小在 1 GB 量級(jí)算法見(jiàn)下節(jié)總計(jì)約 14.4 GB。顯存帶寬 2000 GB/s理論耗時(shí) 14.4 / 2000 ≈ 7.2 毫秒換算成單請(qǐng)求速度約 139 token/s。這是理論天花板實(shí)際因?yàn)榱魉€(xiàn)氣泡、kernel 啟動(dòng)開(kāi)銷(xiāo)、帶寬利用率達(dá)不到 100%通常是這個(gè)數(shù)字的三分之一到二分之一也就是 40 到 70 token/s。你線(xiàn)上看到的單請(qǐng)求解碼速度基本就在這個(gè)區(qū)間。再看 batch 16。權(quán)重還是讀 13.4 GB但 KV 變成 16 × 1 GB 16 GB總計(jì) 29.4 GB耗時(shí) 14.7 毫秒。注意這 14.7 毫秒里16 個(gè)請(qǐng)求各自都推進(jìn)了一個(gè) token所以吞吐是 16 / 0.0147 ≈ 1088 token/s是單請(qǐng)求的 7.8 倍。這就是連續(xù)批處理的價(jià)值所在。順便說(shuō)個(gè)反直覺(jué)的現(xiàn)象batch 增大時(shí)單個(gè)請(qǐng)求的 TPOT每 token 延遲實(shí)際上是變差的。batch 1 時(shí) 7.2 msbatch 16 時(shí)每個(gè)請(qǐng)求還是要等 14.7 ms 才拿到自己的那個(gè) token。吞吐和延遲在 Decode 階段是明確的 trade-off不是雙贏。這一點(diǎn)在 4.1 節(jié)還要展開(kāi)。2.4 KV Cache 的顯存賬被大多數(shù)人低估的那部分KV Cache 到底多大公式是每 token 每層存一對(duì) K 和 V每個(gè)張量的元素?cái)?shù)是 n_kv_heads × head_dim數(shù)據(jù)類(lèi)型 FP16 占 2 字節(jié)。所以每 token 大小 2K 和 V× n_kv_heads × head_dim × 2 字節(jié) × 層數(shù)以 32 層、32 個(gè) KV 頭、head_dim 128 的模型為例2 × 32 × 128 × 2 × 32 524288 字節(jié)正好 512 KB/token。2048 個(gè) token 就是 1 GB8192 個(gè) token 就是 4 GB32768 token 就是 16 GB已經(jīng)超過(guò)模型權(quán)重本身了。如果模型用了分組查詢(xún)注意力GQA把 KV 頭從 32 組減到 8 組每 token 直接降到 128 KB同樣的顯存能撐四倍上下文。這是現(xiàn)在主流模型幾乎都上 GQA 的核心原因省的不是算力是 KV Cache。做容量規(guī)劃時(shí)可以這樣估一塊 80 GB 顯存的卡模型權(quán)重 13.4 GB留給 KV 的按 60 GB 算還要留激活值和臨時(shí)緩沖區(qū)如果每 token 128 KB能裝下約 46 萬(wàn)個(gè) token 的總量。這個(gè)總量是所有并發(fā)請(qǐng)求共享的8 個(gè)并發(fā)各 8192 上下文就用掉 65 萬(wàn)個(gè) token直接爆。這就是為什么長(zhǎng)上下文并發(fā)一高就 OOM而單純把 batch 調(diào)小只是把問(wèn)題往后推。3. 算子視角從 GEMM 到 GEMV 的性能落差3.1 Prefill 階段是大矩陣乘的堆疊Prefill 里最主要的計(jì)算形態(tài)是 GEMM通用矩陣乘。以 FFN 層為例輸入是一個(gè) [T, d] 的矩陣權(quán)重是 [d, 4d] 的矩陣輸出 [T, 4d]。T 動(dòng)輒幾百上千兩個(gè)維度都足夠大GPU 的 Tensor Core 可以做很好的分塊數(shù)據(jù)復(fù)用率高算力能跑到峰值的相當(dāng)比例。QKV 投影同理輸入 [T, d] 乘權(quán)重 [d, 3d]也是大 GEMM。這類(lèi)計(jì)算的優(yōu)化方向很成熟算子融合把 QKV 三個(gè)投影合成一個(gè)、分塊大小調(diào)優(yōu)、用更寬的累加精度。你去看推理框架的日志Prefill 階段耗時(shí)基本都花在少數(shù)幾個(gè)大 kernel 上每個(gè) kernel 的耗時(shí)是可以預(yù)測(cè)的優(yōu)化空間主要在于減少 kernel 數(shù)量和減少中間結(jié)果的顯存往返。3.2 Decode 階段退化成矩陣乘向量Decode 的輸入只有一個(gè) token也就是 [1, d] 的向量去乘 [d, 4d] 的權(quán)重矩陣。這在形態(tài)上叫 GEMV矩陣乘向量。問(wèn)題是 GEMV 的訪存模式極不友好權(quán)重的每一行只用一次沒(méi)有任何復(fù)用相當(dāng)于純粹把權(quán)重從顯存搬到計(jì)算單元搬完就扔。這在 GPU 上是最浪費(fèi)的場(chǎng)景之一。這也是為什么很多框架在 Decode 階段會(huì)做批量化 GEMV把 batch 個(gè)請(qǐng)求的向量拼成 [B, d]退化成一個(gè)小 GEMM。B 越大越接近 GEMM 的效率。但 B 受限于顯存和延遲要求實(shí)際很難做大通常在 8 到 64 之間徘徊。還有一個(gè)經(jīng)常被忽視的成本kernel 啟動(dòng)開(kāi)銷(xiāo)。Decode 每生成一個(gè) token都要走完全部層幾十個(gè) kernel 挨個(gè)啟動(dòng)。如果每個(gè) kernel 只有幾十微秒啟動(dòng)開(kāi)銷(xiāo)和調(diào)度開(kāi)銷(xiāo)的占比就很可觀了。所以 Decode 階段特別吃算子融合和CUDA Graph 捕獲這類(lèi)手段把整段前向固化成一張圖一次性提交能省掉大量 CPU 側(cè)的調(diào)度開(kāi)銷(xiāo)。這一點(diǎn)在 batch 小的時(shí)候尤其明顯我自己實(shí)測(cè)過(guò)只加圖捕獲這一項(xiàng)小 batch 場(chǎng)景的 TPOT 能降一到兩成。3.3 注意力部分兩種截然不同的數(shù)據(jù)流動(dòng)Prefill 的注意力是一整塊下三角的因果掩碼矩陣。T 個(gè) query 對(duì) T 個(gè) key 做注意力掩碼保證每個(gè)位置只能看到自己和前面。這個(gè)形態(tài)適合做分塊計(jì)算把一個(gè) T×T 的大矩陣切成小塊只算下三角部分跳過(guò)被掩碼的上三角。分塊注意力的核心思路就是避免把整個(gè) T×T 的注意力分?jǐn)?shù)矩陣物化到顯存里——那個(gè)矩陣在 T 8192 時(shí)是 81922 × 2 字節(jié) ≈ 128 MB 每頭每層物化出來(lái)直接爆。Decode 的注意力則簡(jiǎn)單得多當(dāng)前這一個(gè) query對(duì)長(zhǎng)度為 L 的全部 key 做注意力。分?jǐn)?shù)向量長(zhǎng)度是 L不涉及平方項(xiàng)。但它是純讀取操作——要把 KV Cache 里 L 個(gè)位置的數(shù)據(jù)全讀一遍。上下文 2048 時(shí)讀 1 GB耗時(shí) 0.5 ms看著不多上下文 32768 時(shí)讀 16 GB耗時(shí) 8 ms已經(jīng)超過(guò)讀權(quán)重的 6.7 ms 了。這時(shí)候 Decode 的瓶頸從權(quán)重帶寬變成了KV 帶寬。這就是長(zhǎng)上下文解碼慢的底層原因不是模型變復(fù)雜了是每步要搬的數(shù)據(jù)變多了。對(duì)應(yīng)的手段有 GQA直接減少 KV 體積、KV 量化FP16 降到 INT8體積減半、稀疏注意力只讀部分 KV、以及滑動(dòng)窗口限制窗口大小老 KV 直接丟棄。每一樣都是在拿精度或能力換速度沒(méi)有免費(fèi)的午餐。3.4 分頁(yè)式 KV 管理與前綴復(fù)用傳統(tǒng)做法是給每個(gè)請(qǐng)求預(yù)分配一塊連續(xù)的顯存放 KV長(zhǎng)度按最大可能值留實(shí)際用不完也不給別人。這會(huì)造成嚴(yán)重的內(nèi)部碎片——一個(gè)請(qǐng)求只要 200 token你按 8192 預(yù)留剩下 7992 的空位全浪費(fèi)了。當(dāng)并發(fā)上來(lái)顯存被一堆半空的塊占滿(mǎn)明明還有余量卻接不了新請(qǐng)求。分頁(yè)式管理借鑒了操作系統(tǒng)的虛擬內(nèi)存思路把 KV Cache 切成固定大小的塊比如每塊存 16 個(gè) token 的 KV按需分配不要求物理連續(xù)用一張映射表記錄邏輯位置到物理塊的對(duì)應(yīng)關(guān)系。好處有三個(gè)碎片幾乎消失顯存利用率能到 90% 以上請(qǐng)求長(zhǎng)度可以動(dòng)態(tài)增長(zhǎng)不用預(yù)留最重要的是塊可以共享。塊共享這點(diǎn)衍生出一個(gè)非常實(shí)用的功能前綴緩存。很多線(xiàn)上場(chǎng)景的 prompt 有大量相同前綴比如固定的系統(tǒng)提示詞、固定的知識(shí)庫(kù)文檔頭。這些前綴算出來(lái)的 KV 完全一樣沒(méi)必要每個(gè)請(qǐng)求都重算一遍。分頁(yè)管理下只要把相同前綴的塊標(biāo)成共享后續(xù)請(qǐng)求直接跳過(guò)這部分 Prefill只算新增的部分。我在一個(gè)客服類(lèi)場(chǎng)景里試過(guò)系統(tǒng)提示詞加固定說(shuō)明有 1500 token命中前綴緩存后首 token 延遲從 600 ms 降到 180 ms效果立竿見(jiàn)影。注意前綴緩存的前提是前綴逐 token 完全一致差一個(gè)字符都會(huì)失效。實(shí)際落地時(shí)要把動(dòng)態(tài)內(nèi)容時(shí)間戳、用戶(hù)名挪到 prompt 末尾否則命中率會(huì)低得讓你懷疑人生。4. 工程實(shí)踐把兩階段調(diào)順手的幾個(gè)關(guān)鍵動(dòng)作4.1 首 token 延遲與單 token 延遲的取舍衡量推理服務(wù)質(zhì)量?jī)蓚€(gè)核心指標(biāo)必須分開(kāi)看TTFTTime To First Token首 token 延遲主要由 Prefill 決定加上排隊(duì)時(shí)間TPOTTime Per Output Token每 token 延遲主要由 Decode 決定加上調(diào)度間隔。用戶(hù)體感上TTFT 決定點(diǎn)完之后多久有反應(yīng)TPOT 決定吐字流不流暢。這兩個(gè)指標(biāo)是互相打架的。你真要壓低 TTFT就得讓 Prefill 優(yōu)先跑把 Decode 請(qǐng)求掛起等著Preill 一跑就是幾十上百毫秒這期間所有正在解碼的請(qǐng)求全都停頓用戶(hù)看到的就是打字機(jī)卡住。反過(guò)來(lái)你為了保證 TPOT 平穩(wěn)就得限制 Prefill 的頻率和批量TTFT 自然上去。我的經(jīng)驗(yàn)是做分檔交互式場(chǎng)景聊天、助手優(yōu)先保 TPOT把 Prefill 切碎混進(jìn) Decode 的批里TTFT 允許 300 到 800 ms批處理場(chǎng)景文檔摘要、批量翻譯優(yōu)先保吞吐Prefill 可以大批量跑滿(mǎn)TTFT 到幾秒也無(wú)所謂。這兩類(lèi)流量最好在入口就做好路由別混在一個(gè)池子里否則兩邊的指標(biāo)都會(huì)難看。4.2 分塊預(yù)填充讓長(zhǎng) prompt 不再堵車(chē)分塊預(yù)填充Chunked Prefill是我認(rèn)為性?xún)r(jià)比最高的一個(gè)改動(dòng)。做法很簡(jiǎn)單把一個(gè)長(zhǎng) prompt 的 Prefill 拆成若干塊比如每塊 512 個(gè) token然后每一輪調(diào)度時(shí)把一塊 Prefill 和當(dāng)前所有 Decode 請(qǐng)求拼成一個(gè)混合批一起跑一次前向。這樣做的效果是把原來(lái)一次獨(dú)占式的大 Prefill變成多次小塊 Prefill代價(jià)是 TTFT 稍微變長(zhǎng)因?yàn)榉至藥纵喪找媸?Decode 請(qǐng)求幾乎感受不到停頓TPOT 曲線(xiàn)會(huì)變得平滑。對(duì)于那些既要處理長(zhǎng)文檔又要同時(shí)服務(wù)多個(gè)短對(duì)話(huà)的服務(wù)這個(gè)改動(dòng)能直接把尾延遲壓下去一大截。參數(shù)選擇上有講究塊太小調(diào)度次數(shù)變多每次的固定開(kāi)銷(xiāo)占比上升整體吞吐下降塊太大Decode 被擠占的時(shí)間變長(zhǎng)TPOT 抖動(dòng)回來(lái)了。我的經(jīng)驗(yàn)是從 512 開(kāi)始試觀察 TPOT 的 P99 和整體吞吐如果 P99 抖得厲害就往下調(diào)到 256如果吞吐掉得多就往上調(diào)到 1024。這個(gè)值和硬件、模型大小強(qiáng)相關(guān)沒(méi)有一個(gè)通用最優(yōu)解。4.3 連續(xù)批處理與顯存水位控制連續(xù)批處理Continuous Batching解決的是一個(gè)批里最快的請(qǐng)求要等最慢的這個(gè)浪費(fèi)問(wèn)題。傳統(tǒng)靜態(tài)批處理一批里 8 個(gè)請(qǐng)求7 個(gè)已經(jīng)生成完了在等第 8 個(gè)這 7 個(gè)占著顯存不干活。連續(xù)批處理的做法是每生成一步就檢查一次誰(shuí)結(jié)束了立刻踢出去空出來(lái)的位置馬上塞新請(qǐng)求進(jìn)來(lái)。這個(gè)機(jī)制對(duì) Decode 階段意義巨大因?yàn)?Decode 的每一步是一個(gè)天然的調(diào)度點(diǎn)。但要注意一個(gè)細(xì)節(jié)新請(qǐng)求進(jìn)來(lái)通常先要跑 Prefill如果它一進(jìn)來(lái)就獨(dú)占正在解碼的請(qǐng)求又要停。所以連續(xù)批處理必須和分塊預(yù)填充配合使用否則等于把堵車(chē)點(diǎn)從入口挪到了中途。顯存水位控制是配套的另一個(gè)動(dòng)作。引擎一般會(huì)設(shè)一個(gè)閾值比如顯存占用的 90%超過(guò)就拒絕新請(qǐng)求或者排隊(duì)。這個(gè)閾值不能設(shè)太滿(mǎn)因?yàn)?Prefill 的激活值峰值比 Decode 高很多——處理一個(gè) 8192 token 的 Prefill中間激活值可能要吃幾 GB如果你按 Decode 的用量把顯存占到 95%一個(gè)長(zhǎng) prompt 進(jìn)來(lái)直接 OOM。我一般留 10% 到 15% 的余量并且對(duì)超過(guò)某個(gè)長(zhǎng)度的 prompt 單獨(dú)做限流。4.4 量化與推測(cè)解碼分別作用在哪一段量化怎么影響這兩個(gè)階段值得單獨(dú)說(shuō)因?yàn)楹芏嗳肆炕臧l(fā)現(xiàn)沒(méi)提速以為是量化沒(méi)用其實(shí)是作用錯(cuò)了地方。權(quán)重量化比如 4bit、8bit 只量化權(quán)重激活值還是 FP16主要收益在 Decode。因?yàn)?Decode 是帶寬受限權(quán)重從 16bit 降到 8bit讀取量直接減半速度理論上接近翻倍實(shí)測(cè)常見(jiàn) 1.4 到 1.8 倍。而 Prefill 是算力受限權(quán)重量化省下的帶寬它用不上反而要額外做反量化可能還慢一點(diǎn)。權(quán)重加激活全量化W8A8才有可能同時(shí)惠及 Prefill因?yàn)榧せ钜沧兂傻途群缶仃嚦丝梢杂玫途鹊?Tensor Core算力翻倍。但這條路對(duì)精度的影響要仔細(xì)評(píng)估特別是激活值的離群點(diǎn)問(wèn)題很多模型直接上 W8A8 會(huì)掉點(diǎn)得厲害需要配合平滑或裁剪手段。推測(cè)解碼Speculative Decoding是另一個(gè)思路用一個(gè)小模型快速草擬幾個(gè) token再用大模型一次性并行驗(yàn)證。它本質(zhì)上是把 Decode 的多個(gè)串行步驟轉(zhuǎn)化成一次 Prefill 形態(tài)的并行驗(yàn)證——因?yàn)轵?yàn)證階段可以把 k 個(gè)候選 token 當(dāng)成一個(gè)長(zhǎng)度為 k 的序列一次性過(guò)模型這正好是 Prefill 的形態(tài)。所以推測(cè)解碼特別適合 Decode 帶寬打滿(mǎn)、算力閑置的場(chǎng)景能把閑置的算力利用起來(lái)。代價(jià)是要多一份小模型的權(quán)重顯存并且在草稿命中率低的時(shí)候收益歸零。4.5 一套可復(fù)現(xiàn)的壓測(cè)方法調(diào)參不能靠感覺(jué)得有一套能量化 TTFT 和 TPOT 的壓測(cè)。下面這段是我常用的骨架思路是流式接收、記錄首塊到達(dá)時(shí)間和總耗時(shí)然后取中位數(shù)和 P99 看穩(wěn)定性import time import statistics def bench_one(client, prompt, max_new_tokens128): t0 time.perf_counter() ttft None n_tokens 0 for chunk in client.stream(prompt, max_tokensmax_new_tokens): now time.perf_counter() if ttft is None: ttft now - t0 # 首塊到達(dá) n_tokens 1 total time.perf_counter() - t0 # 減去 TTFT 得到純解碼耗時(shí)再除以生成的 token 數(shù) tpot (total - ttft) / max(n_tokens - 1, 1) return ttft, tpot def bench(client, prompt, runs30): ttfts, tpots [], [] for _ in range(runs): a, b bench_one(client, prompt) ttfts.append(a) tpots.append(b) ttfts.sort(); tpots.sort() p99 lambda xs: xs[int(len(xs) * 0.99) - 1] return { ttft_median: statistics.median(ttfts), ttft_p99: p99(ttfts), tpot_median: statistics.median(tpots), tpot_p99: p99(tpots), }壓測(cè)時(shí)有幾個(gè)細(xì)節(jié)必須控制住否則數(shù)據(jù)沒(méi)有可比性。第一固定輸入長(zhǎng)度和輸出長(zhǎng)度別讓模型自由發(fā)揮不然每次生成的 token 數(shù)不同TPOT 沒(méi)法比。第二并發(fā)梯度測(cè)試從 1 并發(fā)測(cè)到目標(biāo)并發(fā)每一檔都記錄你會(huì)看到一條清晰的曲線(xiàn)并發(fā)上升吞吐先漲后平TTFT 和 TPOT 單調(diào)上升拐點(diǎn)就是這套配置的合理水位。第三區(qū)分冷啟動(dòng)和熱態(tài)第一次請(qǐng)求要加載權(quán)重、要編譯圖數(shù)據(jù)不能用。還有一點(diǎn)壓測(cè)客戶(hù)端本身別成為瓶頸。Python 的同步 HTTP 客戶(hù)端在高并發(fā)下會(huì)被 GIL 和連接管理拖垮測(cè)出來(lái)的延遲里有一大半是客戶(hù)端自己的開(kāi)銷(xiāo)。并發(fā)超過(guò)幾十就要用異步客戶(hù)端或者多進(jìn)程壓我吃過(guò)這個(gè)虧一度以為服務(wù)端有問(wèn)題查了兩天才發(fā)現(xiàn)是壓測(cè)腳本自己在排隊(duì)。5. 問(wèn)題排查實(shí)錄那些監(jiān)控看不出原因的卡頓5.1 癥狀速查表線(xiàn)上一旦出現(xiàn)延遲異常先對(duì)照這張表定位能省掉大量瞎猜的時(shí)間癥狀大概率原因優(yōu)先檢查項(xiàng)TTFT 高但 TPOT 正常Prefill 排隊(duì)、批太大、前綴緩存沒(méi)命中排隊(duì)深度、Prefill 批大小、緩存命中率TTFT 正常但 TPOT 抖動(dòng)Prefill 搶占、塊大小設(shè)置不當(dāng)分塊預(yù)填充是否開(kāi)啟、塊大小TTFT 和 TPOT 同時(shí)劣化顯存接近上限、觸發(fā)換頁(yè)或拒絕顯存水位、KV 塊分配失敗率長(zhǎng) prompt 直接超時(shí)激活值峰值 OOM、單請(qǐng)求限流最大輸入長(zhǎng)度限制、顯存余量并發(fā)上不去但顯存沒(méi)滿(mǎn)KV 碎片、塊分配器配置過(guò)小塊大小、可用塊數(shù)量量化后吞吐沒(méi)變化量化只作用在權(quán)重瓶頸在算力側(cè)是 Prefill 還是 Decode 慢單請(qǐng)求快、多請(qǐng)求慢批處理未生效或 batch 上限太低連續(xù)批處理開(kāi)關(guān)、最大批大小首字很快但中途卡住KV 緩存被回收、請(qǐng)求被搶占重算搶占策略、優(yōu)先級(jí)配置這張表不是窮舉但覆蓋了我遇到過(guò)的大部分情況。用法是從左列找最像的然后按右列逐項(xiàng)排除通常兩三輪就能定位。5.2 幾個(gè)反直覺(jué)的坑第一個(gè)坑加大 batch 不一定提升吞吐。很多人看到吞吐不夠就把最大批大小往大了調(diào)結(jié)果發(fā)現(xiàn)吞吐反而降了。原因是 batch 大到一定程度后KV Cache 的讀取量超過(guò)了權(quán)重讀取量邊際收益遞減更糟的是顯存接近上限塊分配失敗率上升觸發(fā)請(qǐng)求搶占和重算實(shí)際干了雙份活。我一般的做法是找到那條吞吐曲線(xiàn)的平臺(tái)段停在平臺(tái)的 80% 位置留出余量應(yīng)對(duì)突發(fā)。第二個(gè)坑Prefill 的耗時(shí)不是線(xiàn)性的。有人按每 token 均攤?cè)ス浪阌X(jué)得 4096 token 的 prompt 應(yīng)該是 2048 的兩倍耗時(shí)。實(shí)際不是因?yàn)樽⒁饬Φ钠椒巾?xiàng)在長(zhǎng)上下文下占比上升4096 的 Prefill 耗時(shí)可能是 2048 的兩倍半甚至三倍。做容量規(guī)劃時(shí)一定要按實(shí)際長(zhǎng)度壓測(cè)別用線(xiàn)性外推。第三個(gè)坑流式輸出的第一個(gè)塊不一定是真首 token。有些客戶(hù)端或網(wǎng)關(guān)會(huì)先發(fā)一個(gè)空的心跳塊或者角色聲明塊你在客戶(hù)端計(jì)時(shí)會(huì)把這段時(shí)間算進(jìn) TTFT測(cè)出來(lái)的數(shù)字比服務(wù)端真實(shí)值高出一截。排查時(shí)要在服務(wù)端也埋一份計(jì)時(shí)兩邊對(duì)不上就說(shuō)明中間有額外緩沖。這個(gè)問(wèn)題很隱蔽因?yàn)榍€(xiàn)看起來(lái)只是TTFT 偏高你會(huì)一直往服務(wù)端查。第四個(gè)坑KV Cache 量化之后長(zhǎng)上下文的精度下降比短上下文明顯得多。因?yàn)?KV 量化誤差會(huì)隨著讀取的位置數(shù)量累積上下文越長(zhǎng)注意力加權(quán)時(shí)引入的偏差越大。短問(wèn)答場(chǎng)景測(cè)不出問(wèn)題一上長(zhǎng)文檔就發(fā)現(xiàn)模型開(kāi)始記不住前面的內(nèi)容。要做 KV 量化必須用長(zhǎng)上下文任務(wù)做驗(yàn)證不能只跑短 prompt 的評(píng)測(cè)集。第五個(gè)坑多卡張量并行的通信開(kāi)銷(xiāo)在 Decode 階段占比極高。張量并行把每一層的矩陣乘切到多卡上每層要做兩次全歸約。Prefill 階段計(jì)算量大通信能被掩蓋Decode 階段每層的計(jì)算只有幾十微秒通信延遲直接暴露出來(lái)。所以你會(huì)看到 4 卡部署的 Prefill 快了 3 倍多Decode 只快了 1.5 倍。小模型做 Decode 尤其不劃算寧可單卡多實(shí)例。最后分享一個(gè)我覺(jué)得最實(shí)用的觀察方式把 TTFT 和 TPOT 畫(huà)成兩條隨時(shí)間變化的曲線(xiàn)疊上并發(fā)數(shù)。正常情況下三條線(xiàn)的形狀應(yīng)該是同步的——并發(fā)漲、兩條延遲漲、并發(fā)落、延遲落。如果是 TTFT 跟著并發(fā)漲但 TPOT 是平的問(wèn)題在入口調(diào)度如果 TPOT 出現(xiàn)周期性尖峰而并發(fā)沒(méi)變多半是分塊預(yù)填充的塊太大或者在跑定期任務(wù)如果兩條線(xiàn)一起抖且幅度很大去看顯存水位十有八九是塊分配器在掙扎。這套看圖方法比翻日志快得多尤其是在你沒(méi)時(shí)間深挖的時(shí)候能讓你在幾分鐘內(nèi)把范圍縮到一兩個(gè)模塊。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
91人妻色色网| 国产精品色色666| 婷婷五月综合网| 99精品视频偷拍| 97碰| 97婷婷狠狠久久综合9色| 999精品乱码77777| 久久这里只有精品视频1| 日韩操女| 五月停性愛| 99热99ai| 婷婷五月色花丁香社区| 日韩成人精品中文字幕| 婷婷五月开心中文字幕在线| 色情婷婷。| 综合色播| 五月婷婷激情中文字幕| 亚洲操操操| 色狠狠色综合| 69er小视频| 久久久国产精品黄毛片| 婷婷久久综合久| 亚洲综合婷婷| 激情播丁香| 91趴趴| 99免费在线| 五月开心婷婷| 97色色色色色色色色色色色色色| 婷婷丁香色五月亚洲| 91色五月在线观看| 日本天堂免费99| www.日日日.com| 久久影视婷婷五月| 丁香婷婷老司机久操| 丁香五月播播| 99视频精品全部观看10| 深爱激情网综合| 婷香五月激情视频| 五月婷婷久久综合| 久久综合婷婷五月| 久热69| 婷婷五月天男人影院色色网| 日韩小视频在线99| 婷婷五月色网| 欧美综合激情五月天| 久青青久| 乱女乱妇熟女熟妇综合网站 | 色婷婷综合网| 激情亚洲网| 综合图片色色| 久久久久婷| 人妻操在线看| 操射国产日本| 亚洲小视频| 久久婷婷丁香五月一二三| 秋霞日本免费毛片A片| 韩国不卡AC视频| 激情久久久| 狠狠色综合网| 99久在线精品99re8热| 丁香六月婷婷色播| 久久久久久97| 九九自拍网| 九色1区视频在线| 99日热在线视频| 久久无码成人| 91精品国产色猫| 久草婷婷网| 色色欧美色色色| 超碰人妻公开在线| 97在线日本| 婷婷五月天黄色| 婷婷五月天影院| 婷婷五月天激情文学| 超碰免费99| 六月色色| www.狠狠| 丁香五月婷婷影院| 成人视频一区| 狠狠干无码| 97操操操| 91精品久久久久久77777| 日本va欧美va欧美va| 久久er+| 日本高清久久| 色婷婷狠狠干| 九九久久这里只有精品XB| 婷婷丁香五月天婷婷| 影音先锋 一区| 97色女人在线| 丁香五月婷婷啪啪| 五月丁香| 久久精品在线| 电影蜘蛛女| 热久久77777| 五月婷六月天| 色综合五月天| 亚洲AV成人精品网站在线播放| 激情五月婷婷综合| 久久久五月天| 五丁香激情综合| 亚洲热手机在线观看| 丁香五月天婷婷91| 久久九九玖玖| 色高清无码视频| 热99这里只有精品视频| 五月婷婷亚洲| 激情五月婷婷免费视频| 开心五月激情婷婷| 中字幕视频在线永久在线观看免费 | 丁香五月婷婷综合91| 五月天久久综合| 欧美日本不卡黄色片| 丁香五月婷婷综合激情哟哟哟| 免看黄大片AA | 五月天激情小说| 天天干天天干天天干天天干天天干天天 | 互月天综合| 性爱电影科技贸易有限公司| 激情婷婷五月天网址| 欧美日韩一区二区三区四区| 色婷婷小说网| 开心五月天激情网| 成人在线观看一区| 色色色99韩| 人人人舔人人人操人人人摸人人人97| 91黄址| 五月天久久小说| 综合另类视频| 婷婷五月天成人在线视频| 婷婷开心六月| 亚洲日韩一页精品发布| 99网址在线看| 五月激情偷拍| 一区二区三区四区牛| 就要去操亚洲成人精品五月天丁香婷婷| 五月天激情Av| 9热在线| 六月天无码网址| 99热丁香| 91久久精品无码一区二区三区| 婷婷色色综合| ay2区| 思思热视频在线观看| 日本三级99人妇网站| 色琪琪一综合久久激情五月视频| 丁香婷婷色九月| 日本久草福利| 五月天激情四射网站| 婷婷五月天大香蕉| 99操逼| 久久人人九九| caopeng97日韩| 99热精品免费| 99久久免费性爱视频`| 成年人丁香五月| 开心五月综合激情网| 婷婷综合五月天| 日韩好吊操| 婷婷五月综合国产精品| 日韩在线婷婷五月天综合| 91久久久久久久久久久| 色五月天.con| 二色av| 狠狠狠狠狠狠狠狠草| 日韩国产在线精品| 五月天伊人综合| 天天 日综合| www.久操| 俺也去五月婷婷丁| 97性视频| 精品无吗va视频免费观看| 色站9/| 日本超碰在线| 91丁香色五月| 亚洲精品视频在线播放| 9l视频自拍9l九色9l成人| 日本精品99| www.9色色色| 亚洲色综合| 久久六月综合| 六月色色婷婷| www色色色com| 丁香五月影院| 九草性爱| 在线亚洲综合网| 久久久久久久人妻| 久久综合激情| 婷婷在线精品| 啪啪啪大香蕉| 99热这里只有精品99| 天天爽天天摸天天爱| 婷婷五月天论坛| 丁香五月色色色色| 丁香五月天堂网| 亚洲婷婷丁香五月| 一区三区视频有限公司| 偷拍91九色| 97成人超碰免| 超碰99热| 思思热在线精品视频网站| 欧美日朝成人| 99精品自拍| 天天影院色| 99亚洲精品| 欧美性生交XXXXX无码小说| 香蕉久久av一区二区三区| 色婷婷导航| 久久丁香五月天| 欧美丰满熟妇BBB久久久| 91狠狠综合久久久| 风流少妇A片一区二区蜜桃| 97福利视频| 五月六月丁香激情视频| 五月丁香六月停停| 97人人做| 日本操B视频在线观看| 午夜福利8055| 五月婷婷色播视频| 日本熟女一区二区| 激情图片五月天| 六月婷婷色综合| 99热国品| 精品人人操| 色视频五月天| 激情五月天综合图片小说网站| 狠狠操狠狠干综合| 人妻六月天| 深爱激情五月天| 日本久久天堂| 办公室少妇激情呻吟A片在线观看 白人荫道BBWBBB大荫道 | 欧美丁香婷婷五月| 婷婷五月天黄色网址| 十月丁香婷婷| 91久久九久久九久久九久久九久久| 91久久精品无码一区二区三区| 婷婷在线精品| 99爱视频在线| 婷婷五月成人色综合| 开心五月激情网| 婷婷国产五月天17c| 色情五月天婷婷| www.色婷婷| 色五月91| www久久99| 综合综合色色| 少妇AB又爽又紧无码网站 | 五月天天天综合| 亚洲婷婷久久综合| 欧美日韩国产伦精品日韩人妻一| 五月丁香激情婷婷| 久九九热| 五月丁香香蕉| 思思热视频| 夜色爱爱亚洲| 五月天桃色深爱网| sisi热国产| BBWCUCKOLD精品熟妇| 裸睡玩奶头(高H)| 91狠狠综合久久久| 六月丁香啪啪啪| 一本道综合网| 综合狠狠伊人| 97色干在线观看| 色综合综合色| 婷婷99丁香| 女人被躁到高潮嗷嗷叫小| 都市激情亚洲| 操九色| 97人人干人人操| 丁香97综合| 操人妻AV| 亚洲性视频| 在线观看五月婷婷网| 婷婷中文字幕网站| 久99婷婷色综合| 亚洲激情综合| 色噜噜狠狠色综无码久久合欧美| 99热这里只有精品99| 天天干com| 狠狠第四色| 日熟女| 色五月婷婷激情基地| 婷婷综合| 一本大道嫩草AV无码专区| 欧美婷婷五月丁香| 九九无码视屏| 狠狠色综合网| 日日想日日夜日日操| 亚洲色综合色网| 4399欧美另类视频| 欧美成人精品A片免费一区99| 婷婷射婷婷舔| 久久五月视频| 伊人深爱综合| 色五月超碰| 另类激情网| 久久人妻精品| 成人性爱无码| 激情二色月| 夜夜撸天天操| 九九久久视频| 97韩国久久电影院| 99久久网站| 五月天婷婷综合| 五月天丁香婷婷久久九| 99 福利 导航| 色色色在线观看| 综合激情九月婷婷,激情综合婷婷中文字| 丁香五月AV| 99久久综合网| 亚洲高清在线| 九九九激情综合| 九九在线精品| 性无码专区无码| 久99999热视频在线观看免费| 亚洲激情网| 无码色色色| 激情五月丁香五月| 久久精品噜噜噜成人A∨色欲| 五月天色小说| 第四色色色色色丁香五月天| 亚洲日比视频| 婷婷色色丁香| 五月婷婷综合色啪首页| 伦99热| 五月天综合图片| 久久婷婷综合五月天| 大香蕉啪啪网| 99re熱| 涩涩五| www.99热这里精品| 91超级碰在线视频| 婷婷操逼| 91人人妻人人操人人爽| 伊人五月天97| 999热这里只有精品| Av九九| 五月丁香六月婷婷激情四射| 高清视频一区| 亚洲日本韩国| 黄网在线播放| 日本色色色色色色色色一色二色| 五月天成人综合| 狠狠色噜噜狠狠狠狠综合| 亚洲综合色成丁香五月色| 人妻乱码久久久| 99热啪啪| 色插综合网| 国产毛多水多女人A片| 久久视这里只有精品| 久久婷婷五月综合色丁香| 五月婷九九草| 丁香八月综合激情| 亚洲另类噜噜| 99爱视频在线| 影院久久久| 色色欧美色色| 人人操人人添人人摸97| 婷五月丁香| 99热这里只有精品中文字幕| 97香蕉久久超级碰碰高清版| 婷婷五月天网址| 丁香五月婷婷www..com| 婷婷五月天开心激情网| 在线中文av| 天天爽天天日人人爱| 99热国产免费| 黄色五月婷婷| www..com色爱| 潮汕成人AV片在线| 色五月激情基地| 欧美婷婷色五月网| 久久99这里只有精品视频 | 久久码久久无清| 日本在线噜噜| 大香蕉五月婷婷丁香| 丁香婷五月| 色婷婷成人做爰A片免费看网站| 激情五月图| 91干网| 久久激情网| 五月天激情小说电影| www.99热| 色综合久久天天综合网 | 日本在线视频播放91| 超碰成人黄色网| 四色永久成人网站| 婷婷六月天激情| www.97干视频| 日韩AV中文字幕在线| 九九婷婷五月天| 久久久精品AV| 五月天桃色深爱网| 日日做夜夜爱| 99亚洲精美视频在线观看| 国产婷婷婷| 99久在线精品99re8| 婷婷五月天黄色网址| 婷婷五月成人社区| 99九九在线精品热动漫| 操逼三区| 日在线V视频在线播放| 久热婷婷在线视频| 91天堂网综合| 五月婷色激情五月| 色婷婷操逼网| 97精品人人A片免费看| 激情五月婷婷综合色播小说| 婷婷伊人75| 国产伦亲子伦亲子视频观看| 天天干,夜夜爽| 天天操人人干| 五月丁香色色| 99色在线| 婷婷综合国产| 婷婷五月天激情网| 不卡在线超碰| 欧美搡BBBBB摔BBBBB| 91精品久久久久久久| 五月丁香六月婷婷综合网缴情| 91视频免费后入强操| 97人人搞| 五月天婷婷免费| 开心五月婷婷五月| 久久99激情| 无码一区二区日韩| 一级操逼内射在线视频| 少妇久久诱惑视频| 综合激情啪啪| 99热这里只有精品66| 综合激情视频| 99久久婷婷| 五月天综合色| 人妻久久久| 九色1区视频在线| 亚洲愉拍99热成人精品| 99性感视频| 日本色婷婷综合| 五月丁香六月婷综合成人综合| 亚洲精品va| 五月婷婷激清网| 婷婷五月免费在线| 婷婷丁香五月天狠狠| 婷婷五月天在婷| 亚洲成人人人操| 99碰| 日本丰满久久| 激情五月六月丁香| 91中文在线| 99热有精品在线观看| 日本精品99| 五月激情婷婷女| 99综合免费视频| 国产婷婷综合| 成人丁香婷婷五月天| 九九免费视频| 无码色综合| 色婷五月丁香久亚洲| 人妻av在线| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 欧洲区自拍| 操操精品| 亚洲操B| www。五月,com| 欧美天天干五月丁香| 99热国产这里只有精品| 激情六月丁香| 色色五月天网站| av第一二区| 色婷婷久久综合久色综| AV操一操| 免费观看欧美成人AA片爱我多深| 日本人妻伦在线中文字幕| 婷婷久久午夜网| 涩综合婷婷| www.99热最新视频8| 高清无码网址| 五月色丁香国产在线视频| 欧美S码亚洲码精品M码| 丁香五月在线视频黑人| 久久久精品免费啪啪国| 婷婷五月天免费视频| 色五月大香蕉婷婷| 久久丁香网| 日日撸天天干| 91大神在线免费看视频全集男男一起操| 操操操操操电影网| 中文字幕亚洲-区久久99婷婷| 国产密乳av一区二区三区四区| 黄色毛片精品| 亚洲色婷婷| 色婷婷伦理| 99玖玖精品| 婷婷精品在线| 五月激情开心婷婷| 久久在线人妻| 超碰京东热av男人的天堂| 婷婷丁香18| 开心婷婷五月天激情网| 色五月激情| 精品导航在线x不卡| 丁香婷婷六月天| 婷婷九月激情| 激情图片99| 99自拍视频在线观看| 五月婷婷久久内射| 97se在线视频| 无码少妇高潮喷水A片免费| 五月婷视屏在线观看| 欧美三日本三级少妇三99| 天天插天天插| 亚洲六月婷婷| 草做免费在线观看| 久久综合激情五月天| www,婷婷,com| 九九视频在线观看| 国产色色视频| 亚洲精色| 婷婷六月开心网| 九九RE视频在线精品| 丁香五月婷婷综合激情哟哟哟| 五月丁香婷婷色| 日日操夜夜爽| 五月综合色播播丁香婷婷| 九九精品在线视频观看| 青草青草久9视频在线视频| 成人一级片| 无码人妻丰满熟妇奶水区码| 六月综合婷婷开心伊人| 激情五月婷婷网在线观看| 激情久久 婷婷| 色婷婷成人色网| 色综合天天综合成人网| 久久婷婷国产| 欧美大肥婆大肥BBBBB| 2025色婷婷| 狠狠88综合久久久久噜噜噜| 自拍视频在线观看9| 婷婷五月天成人网| 色呦呦美女| 婷婷五月天精品| 激情五月综合色婷婷| 激情久久肏屄视频| 九九中文字幕九| 麻豆雪千夏| 亚洲激情 久久| 五月婷婷亚洲| 91黄址| 97色片| 婷婷丁香五月综合网| 风流少妇A片一区二区蜜桃| 中国丰满熟女A片免费观| 国产精品色情AAAAA片软件| 超碰在线日夜| www.com亚洲网站在线免费| 色五月超碰| 91精品电影18T| 丁香五月亚洲综合| 99热国产这里只有精品| 97碰碰视频在线观看| 成人综合网站| 婷婷色色综合| 成人精品一区二区三区四区五区| 五月婷婷色播| 亚洲国产网站| 丁香五月第九色| 91男人操女人视频| 婷婷综合色色| av色婷婷| 另类 在线| 丁香婷婷激情五月天无毒不卡蜜桃| 色情五月停停丁香| 五月丁香婷爱在线| 五月涩涩网| 色99久草在线| 五月天伊人久久| 天天色综合网1| 久久久久久丁香五月| 色五月丁香五月激情五月激情| 日本超碰在线| 九九伊人网| 亚洲视频99| 可以免费观看的av网址| 亚洲婷婷五月天| 五月亭亭六月激情| 一级视频网址| 五月天综合网| 五月丁香婷婷色| 婷婷激情五月| 人妻精品久久久久久久| 婷婷丁香视频| www.久热| 99福利视频| 99热观看| 色五月激情五月天| 综合久久五月| 99热丁香五月| 五月综合色| 五月天色婷婷av| Www.sesese丁香| 日韩aaa| 五月婷婷激情性爱| 欧美性生交XXXXX无码小说| 日日肏夜夜干| 色婷婷五月色| 99视频这里有精品| 五月婷婷激情综合| 激情五月图| 大香伊人久色| 久热一本| 六月天六月婷| 久久思思精品| 99热在线精品观看| 色色欧美色色色| 99在线视频免费| site:xmssd.com| 激情婷婷激情在线不卡| AV九九| 精品成人无码A片观看香草视频| 五月亭大香蕉| 国产精品大香蕉| www.狠狠艹| 欧洲永久精品| 婷婷色在线播放| 丁香五月成人| 国产激情在线| 五月婷婷丁香色吧网| 情色婷婷五月天| 午夜精品人妻无码一区二区三区 | www夜夜操wwwcon| 成人AV中文字幕| 国产成人AV| 97色欧美| 色狠久| 草操网| 色色色色色五月丁香| 搡BBBB搡BBB搡18 | 激情综合网五月天| 久久玖玖综合| 精品无码99| 99久热这里只有精品视频删减版| 婷婷六月综合基地| 五月综合激情网| 另类小说五月天| 亚洲性视频| 色婷婷色五月综合| 激情网第四色| www色婷婷久久综合久色 | 人人操AV| 国产精品丝| 9精品国产在热久久| 美日韩成人| 色欲婷婷五月天| AV操操操| 五月婷婷 激情五月| 色色色综合网| 婷婷金品综合视频| 欧美日朝成人| 91色综合网| 久热这里| 婷婷开心五月| 国产综合网在线| 嫩草AV久久伊人妇女超级a| 99 色色吧| 麻豆科斗777| 五月份婷婷| 欧美久久婷婷| 亚洲高清在线| 婷婷久久五月天| 丁香婷婷基地| 99热九九这里只有精品| 蜜臀AV在线成人| 色色色999| 99热人人| 欧美色狠婷久| 色色啊| 天天摸天天舔天天爽| 激情综合自拍五月婷婷色五月| 一区二区成人电影| 日本熟女视频一区二区| 激情小说婷婷小说| 激情五月婷婷伊人| 国精产品一区二区三区| 天天视频亚洲| 色噜噜狠狠一区二区三区| 爱草人视频| 热久久这里只有精品| 色七七九九| 激情五月综合网| 天天干电影| 欧美韩国日本| 丁香婷婷六月| 久久婷婷人人| 狠狠舔| 色播丁香五月婷婷操:屄| 激情综合激情五月| 日韩爱操视频| 激情婷婷丁香五月天| 天天日,天天插| 99热久| 婷婷干| 色色色色色综合| 国产脫衣舞一区二区三区| av九九| 五月丁香六月婷婷不卡免费无码| 性天天中文网| 久久婷.com| 免费视频WWW在线观看网站| 国内一级片| 六月婷婷久久大全| 丁香色成人| 久久久久人妻| 精品九九久久| 91九色精品熟女内射| 爱草视频在线观看| 人人摸人人澡人人| av中文在线| 9久热在线精品| 99久久婷婷| 精品人妻久久久久久久| 亚洲成人av在线播放| 中文字幕在线日亚洲9| 九九精品免费视频99| 亚洲 视频 导航 一区| 全网最新网黄大秀直播高清,主播国产录屏在线 | www99在线观看视频| 五月天伊人av| 五月综合在线| 少妇AB又爽又紧无码网站| 在线91日韩| 丁香五月在线伊人| 99热只有| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 五月丁香六月综合情在线观看| 天天肏天天爽夜夜爽| 91天天操天天干天天射| 久久九九热38| 黄色99视频| 五月丁香色| 国产人妻777人伦精品HD| 另类 在线| 亚洲激情色色| 操人91| 激情五月天的婷婷| 丁香五月激情性色郤| 99综合网| 99丁香五月婷| 色综合激情| 激情又色又爽又黄的A片| 久草性爱| 色欲AVV| 婷香五月网在线| 色色色在线观看| yw国产AV| 亚洲综合色丁香婷婷六月| 97人人射| 99网址在线看| 欧美色频| 39视频第二区| 激情网综合| 无码人妻AV久久久一区二区三区| 大香蕉久久| 五月丁香啪啪婷婷| 色婷婷综合影院| 亚洲另类噜噜| 中文字幕丰满乱孑伦无码专区| 国产日批视频| 婷色五月| 天天日,天天射,天天插| 久久综合人妻| 91丨九色丨东北熟女| 婷婷五月丁香啪啪| 99亚洲视频| 丁香五月先锋| 亚洲色图五月丁香| 久久婷婷色色| 五月婷婷丁香综合| 九九久久综合| 久久黄A片| 欧美婷婷综合| 日本本土色网第一区| 欧美性爱五月天| 深爱婷婷基地| 婷婷久久综合久| 日本本土色网第一区| 国产成人网址| 伊人婷婷激情| 超碰操日| 六月丁香婷婷综合在线| 激情丁香五月AV| 五月激情婷婷播播开心| 免费人人操| 成人在线高清| 色色色99| 91久久久久久久久久久| 色屌丝中文字幕| 久热这里这里有精品| 无码激情AAAAA片-区区| 99这里只有精品在线观看| 五月婷婷伊| 亚洲va欧美va天堂v国产综合| 欧美啪啪五月天| 色99自拍| 丁香五月婷婷婷婷欧美综合| 精品无码久久久久久久久| 五月永久激情| 99re在线免费视频| 99久久精品国产色欲| 色色五月婷婷| 婷婷在线网| 五月婷婷婷| 大香蕉五月天婷婷| 五月婷婷综合网| 色五月视频,小说| 丁香五月天婷婷91| 五月天色丁香| 99视频精品全部免费观看| 超级碰91| 婷婷五月色天| 玖久精品视频9| 九九热婷婷| 伊人久久艹| 色五月丁香伊人| 久热超碰91| 五月激情在线| 日本婷色| 成人色站,在线视频,看片-SS1AV| 五月丁香色停停啪啪啪| 9久热免费视频99| 色色色99韩| 色婷婷文字幕| 婷婷五月天激情四射| 九九精品网| 热99国产精品| 欧美色偷偷大香| 色综合色综合网| 色性日本| 欧美日韩成人| 国产三级在线播放| 高清无码入口| 99热都是精品| 色五月激情综合| 久久精品五月天| 中文字幕成人网站| 婷婷色五月激情| 这里只有精彩视| 性爱AV天堂| 激情五月开心五月丁香五月| 97色碰| 激情久久月| 专区无日本视频高清8| 婷婷婷久久久| 夜夜操天天爽| 第四色五月激情网| 色在线99| 九九99偷拍视频| 99这里有精品| 亚洲天堂爱爱| 丁香色婷婷五月天| 婷婷五月天手机版视频| 久久丝丝热| 九九九午夜视频| 五月婷婷香蕉| 亚洲亚洲人成综合网络| 狠狠操综合| 婷婷五月天视频免费在线观看| 26UUU在线观看| 婷婷五月激情热播| 91黄址| 久久一级片| 日日夜夜九九| 无码人妻丰满熟妇奶水区码| 狠狠操狠狠操| 久婷婷| 久9精品视频| 五月天 无码| 97色婷婷五月天| 婷婷五月天少妇| 丁香婷婷五月激情综合| 99精品久久| 青青草原亚洲天堂| 日本久久视频| 日本久久爽| 激情久久丁香| 丁香九月激情久久| 综合九九久久| 极品九九九九九九| 黄色91在线观看| 综久久久| 久久色午夜在线导航| 激情婷婷护士激情| 日本在线观看aaa 99| 黄色片avv| 日本久久激情| 中文字幕91,综合| 久久33视频| 97亚洲精品| 国产人人操| 婷婷五月天丁香久久| 天堂va久久久噜噜噜久久Va| 亚洲国产黄色电影| 精品无码片| 五月天大香蕉AV| 日都一级A片| 婷婷五月情| 日本五月婷婷| 亚洲无码色| 国产免费一区二区三州老师F1F1| 成人av在线网址| 久久99久久99精品免视看婷| 影音先锋色婷婷| 婷婷狠狠操| 婷婷五月丁香五月| 免费在线观看AV网站| 91人人人人人人人| 日本99视频精品免费播放| 婷婷午夜综合| 思思热闹这里只有精品| 五月丁香婷婷五月色| 战争与艾拉电影免费观看| www,色色色网站| 涩综合网| 97色色婷婷| 毛片九九九九九九九九18| 国产中文字幕在线视频免费观看| 色噜噜五月天| 色婷婷五月天天天天天| 欧美韩日AAA网站| 九九视频这里只有精品| 玖玖爱伊人| 99国产精品白浆在线观看免费 | 丁香五月成人婷婷| 九月丁香婷婷| 国产精品美女久久久久AV超清| 香蕉99网| 婷婷五月亚洲综合| www..com色爱| 一本色道久久综合狠狠躁小说| 日本99久久| 中文字幕日产A片在线看| 久久99jiu9| WWW,色五月| 人人草人人视| 丁香六月婷婷色XXXXX| 无码视频国内精品久久久| 婷婷激情五月天小说| 五月天激情黄色小说在线观看| 日本噜噜色网| 久久五月网| 国外亚洲成AV人片在线观看| 艹天天射| 五月天婷婷丁香花| 五月丁香激| 亚洲情综合五月天| www.色综合.com| 激情综合网亚洲色图| 婷婷五月综合网| 成人五月丁香花| 超碰人人色| 婷婷噜噜| 九九Av| 丁香六月婷婷开心婷婷网| 99在线er热| www.操.com| 丰满少妇猛烈A片免费看观看| 免费97碰碰| 99性爱精品| 久久丁香五月婷婷| 五月激情射| 天天插天天| 深爱激情五月天| 色色日本欧美| 91人妻视频| 午夜天堂啪啪| 青青草色在线视频观看| 夜夜综合色| 日产精品久久久久久久蜜臀| 激情综合网址| 亚洲精品婷婷| 99A片| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 99re这里只有精品9| 久久九九色| 狠狠色丁香乆乆| 再綫Av免费視品| 欧美婷婷日本| 日本3级片一区2区| 婷婷色五月色| 丁香六月婷婷操逼网| 色亚洲视频| 丁香婷婷基地| 六月丁香综合| 99热碰碰| 91丨九色丨国产在线| 五月久久丁香| 两性婷婷丁香五月| 国产日韩欧美性生活| 色色日本| 玖玖婷婷五月天| 久热黄色| 97色女人在线| 亚洲免费观看高清完整版AV线| 丁香五月色色婷| 男人的天堂五月丁香| 色婷婷激情Av久久久| 丁香五月日本| 国产肥白大熟妇BBBB视频| anquye伊人| 色五月综合网| 激情深愛五月視頻| 九九碰九九爱97超碰| www久久99com| 另类图片五月天| 欧美成人Va| 99免费| 99热99网| 人人操AV| 久久这里只有精品网| 成人国产欧美大片一区| 亚州视频九九99| 婷婷丁香综合网| 天天插天天| 日日夜夜亚洲一区| 婷婷色综合| 思思热在线播放| 色情成人五月天| 丁香五月香蕉| 婷婷五月六月丁香| wwwss在线观看| 免费看欧美成人A片无码| 精品久久久人妻| 国产亚洲99久久精品| 色99热| 中文字幕AV在线| 婷婷亚洲在线| 91九色欧美| 激情综合网五月天天| 久久这里只有精品视频15 | 五月丁香婷婷婷婷综合网| 91九色丨国产丨爆乳| 婷婷丁香黄色| 亚洲精品**不卡在线播he| 精品一二三区久久AAA片| av五月天婷婷丁香| 丁香六月天婷婷开心综合| 丁香六月婷婷综合激情欧美| 久热精品9999| 99热精在线九九久久保| 99色婷婷视频| 久久婷婷综合基地| 婷婷五月图片小说网| 婷婷久久六月费| 婷婷深爱色五月| 99热超碰在线| 狠狠狠婷婷五月综合| 啪啪夜久久| 色五月婷婷在线| 草榴视频黄色网| 色综合久久久无码中文字幕999| 激情五月色婷婷| 色五月激情五月天| 欧美精品XXXXBBBB| 色五月成人网| 国产VA亚洲VA96| 思思热高清在线观看| 狠狠操天天操综合| 婷婷六月激情小说网| 爱99干99| 婷婷五月18永久免费网站| 婷婷五月天综合久久日美女| 99热在线观看精品| 少妇性按摩无码中文A片| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 99精彩视频| 久久综合五月天| 天天干天天拍| 久草婷妨| 色综合中文色综合网| 激情深爱综合| 欧日韩AV| 丁香五月综合亚洲| 欧美国产一区二区三区| 色久天| 婷婷色婷婷| 亚洲网在线观看| 影音先锋AV男人站| 中文字幕av亚洲| 国产日批视频| 丁香五月婷婷亚洲综合精品| 五月天色色色| 午夜不卡久久精品无码免费| 亚洲视频一区| 国产伦亲子伦亲子视频观看| 国产婷婷色综合AV蜜臀AV | 色色亚洲五月天| 色婷婷基地 | 97超碰欧美中文字幕| 先锋资源 996| 超碰99热精品| 97热超碰| 狠狠色丁婷婷日日,伊人激情综合网| 2025天天爽天天摸| 国产毛片精品一区二区色欲黄A片| 久久婷婷丁香花综合网| www。88热在线视频免费观看| 婷婷五月天在婷| 六月激情婷婷| 91人人爱| 秋霞av不能| 丁香婷婷中文字幕| 婷婷五月天伊人网| 色五月天堂| www.色婷婷| 99日本视频| 丁香五月23111| 逼特逼在线免费播放| 狠狠干五月丁香| 三级黄网站| 色五月婷婷 成人| 9久热| 亚洲mm色| 欧美激情五月天| 丰满人妻一区三区三区| 亚洲精品又粗又大又爽A片| 欧洲综合视频| 4438激情网| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 色五月激情网| 一级性感毛片| 伊人网欧美在线男人天堂五月丁香| 中文字幕在线日亚州9| 五月婷婷黄色| 26uuu精品一区二区| 精品九九网| 丁香五月天堂网| 色色五月天com| 丁香婷婷性久久| 这里精品| 久久激情视频99| 99热在这里只有精品| 日韩99视频| 亚洲无线视频| 色婷婷五月在线| 久久五月婷婷电影| 色婷婷五月综合| 欧美色五月天| 色色操| 东北熟女视频99| 色五月偷偷| 狠狠干夜夜干| 男女久久婷婷五月天| 99狠狠色| 九九色综合| 综合网五月天123| www.久久久久久久| 天天色粽合合合合合合合| 色青五月天| 国产精品美女| 国产精品国产成人国产三级| 天天干,夜夜爽| 丁香五月综合久久八| 影音先锋日本三级资源| 五月色色激情网| 丁香五月天导航| 综合网色综合| 五月天婷婷基地| 五月丁香成人视频| 久久久精品人妻录| 中文字幕不卡+婷婷五月| 在线伦子99热| 日本黄色三级片内射| 嫩草AV久久伊人妇女超级A| 99热6精品| www.夜夜騎夜夜狠| 五月天小说激情| 综合激情啪啪| site:xiongshengzz.com| 中文字幕在线日亚州9| 五月婷九月| 怡红院AV亚洲一区二区三区H | 9视频在线成人网站| 99在线观看视频免费| 99天堂网最新| 亚洲综合一区二区| 影音先锋 一区| av超碰在线| 在线亚洲综合| 91精品国产综合久久久不卡电影| 成人免费120分钟啪啪| 99爱这里只有精品免费视频| 色情五月综合婷婷| 亚洲性爱区无码区| 五月婷婷干| 这里只有精品9| 五月婷婷伊人久久| 超碰在线观看成人视| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 欧美色五月| 亚洲激情在线| 在线理论片| 六月激情网| 九色无码| 思思99精品视频在线观看| 丁香色五月直播| 五月婷婷婷婷婷| 久久激情五月天| AV成人在线播放| 色婷婷电影网| 92久操视频| 五月丁了香蕉综合| 亚洲成人五月天| 五月婷婷狠狠干| 思思热在线视频精品| 国产精品91抖高| 极品少妇婷婷五月| 激情五月天婷婷| 人人操人人爱丁香五月| 婷婷金品综合视频| 777影视理论片大全在线观看 | 999精品久久久久久久| 婷婷伊人75| 99色一| 色综合久久久久| 99久久久久久| 99热99热| 精品婷婷| 日本婷婷在线| 巴基斯坦粉嫰无码视频| 久久九九国产精品怡红院| 亚洲精品又粗又大又爽A片| 超碰A V在线| 丁香婷婷五色月| 婷婷综合视频| 九九成人视频| 亚洲综合婷婷六月丁香五月| 天天影院色| 久久草婷婷丁香网站| 亚洲色A| 伊人激情AV一区二区三区| 日韩精品超碰在线观看| 国产伦理精品高清在线观看网站一区二区 | 青青久久五月天丁香婷婷| 久久久久网站| 亚洲综合激情五月| 91精品刘玥| 五月丁香在线看| 久久人妻超碰一区| 99久久精彩视频。| 久色网| 秋霞三级色戒| 国产成人网址| 99毛片| 丁香婷婷色五月激情综合| Xx色综合| 九九国产精视频| 久久综合丁香激情五月| 色五月超碰| 日本99视频| 五月婷婷色播视频| 99色免费观看全部| 亚洲综合成人网| 九九热精品| 色播五月婷婷综合| 91超级碰碰| 无码天天操|