:讓第一個字快一點出來)
用戶對速度的感受往往不是由總耗時決定的。同樣要等十秒一個是白屏十秒后突然全出一個是第一秒就有字、慢慢往外冒后者的體驗要好得多。這就是流式的價值。首字延遲比總時長更關(guān)鍵流式輸出里有兩個指標(biāo)值得分開看首字延遲和總時長。首字延遲決定“快不快”的體感總時長決定“多久能讀完”。很多時候優(yōu)化首字延遲更有價值——把前置的檢索、鑒權(quán)、模板渲染盡量并行讓模型盡早開始出第一個字。工程上還要注意幾件事分流輸出時的分塊策略要合理太碎會增加網(wǎng)絡(luò)開銷太大會讓輸出一頓一頓中間不要有緩沖層把數(shù)據(jù)攢起來再發(fā)網(wǎng)關(guān)和負(fù)載均衡必須支持長連接透傳否則流式會在某一跳被“拍平”成全量響應(yīng)。中斷、續(xù)寫與超時流式一旦鋪開還要處理一批新問題。用戶中途關(guān)掉頁面后端應(yīng)當(dāng)及時感知并釋放推理資源否則算力會白白燒掉網(wǎng)絡(luò)抖動導(dǎo)致連接斷開要不要支持從斷點繼續(xù)長時間沒有任何新內(nèi)容的“靜默”狀態(tài)需要有心跳機制避免連接被中間設(shè)備掐斷超時該按總時長算還是按無輸出時長算也需要明確。這些細(xì)節(jié)處理好了流式才不是“看起來很美”。流式響應(yīng)本身不提升模型能力但它直接決定了用戶愿不愿意等。在體驗這件事上感知的速度和真實的速度同樣重要。