操指南:8 處調(diào)整讓大角色庫打開快 3 倍)
SillyTavern 加載提速實(shí)操指南8 處調(diào)整讓大角色庫打開快 3 倍【免費(fèi)下載鏈接】SillyTavernLLM Frontend for Power Users.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern凌晨兩點(diǎn)你正和角色聊到關(guān)鍵劇情切到角色庫頁面卻轉(zhuǎn)了十幾秒圈消息發(fā)出去半天沒有回音。這類卡頓多數(shù)不在模型身上而是 SillyTavern 的靜態(tài)資源加載、角色卡讀取和網(wǎng)絡(luò)配置沒調(diào)對(duì)。這篇文章帶你完整做一輪 SillyTavern 性能優(yōu)化先確認(rèn)瓶頸在哪再按難度分三檔動(dòng)手改改動(dòng)范圍限定在一個(gè)配置文件和兩個(gè)源碼文件里一個(gè)下午可以全部完成。動(dòng)手之前先花十分鐘做一輪快速排查確認(rèn)瓶頸到底卡在哪一層。SillyTavern 性能優(yōu)化 實(shí)踐場景酒館主題默認(rèn)背景快速體檢清單先定位 SillyTavern 卡在哪 打開瀏覽器 DevToolsF12按順序核對(duì)下面 5 項(xiàng)首次打開靜態(tài)資源慢→ Network 面板里首次加載大量 .js / .css 很慢刷新卻顯示 (from disk cache)大概率是靜態(tài)資源沒有緩存策略。角色庫打開轉(zhuǎn)圈→ 幾百張卡片的角色庫加載慢大概率是全部卡片一次性讀取懶加載開關(guān)沒開。消息保存慢→ 保存請(qǐng)求 Time 超過 1 秒且請(qǐng)求體有幾 MB大概率是請(qǐng)求體過大又沒有壓縮。本地模型首條回復(fù)慢→ 重啟后只有第一條回復(fù)慢、之后恢復(fù)正常大概率是模型被反復(fù)加載進(jìn)內(nèi)存。Lighthouse 跑分低→ 跑一次 Performance 報(bào)告重點(diǎn)看 Largest Contentful Paint 和 Total Blocking Time兩項(xiàng)都高就是首屏資源問題。分檔優(yōu)化路徑SillyTavern 性能優(yōu)化按難度分三檔上面 5 項(xiàng)分別對(duì)應(yīng)三類改法純配置開關(guān)、網(wǎng)絡(luò)行為設(shè)置、源碼微調(diào)。按你能承受的風(fēng)險(xiǎn)挑一檔開始。今天就能做的零風(fēng)險(xiǎn)5 分鐘內(nèi)以下 3 項(xiàng)都是 default/config.yaml 里的一行開關(guān)改完重啟服務(wù)。開啟角色卡懶加載原理和長電商頁的懶加載一樣滾動(dòng)到才加載卡片數(shù)據(jù)。角色卡的內(nèi)存緩存與磁盤緩存已經(jīng)內(nèi)置在 src/endpoints/characters.js打開開關(guān)即可performance: lazyLoadCharacters: true預(yù)期效果500 張卡片規(guī)模的角色庫打開耗時(shí)從幾秒降到 1 秒內(nèi)。調(diào)低頭像縮略圖質(zhì)量96×144 的小頭像用 95 質(zhì)量的 JPG 屬于過度壓縮降到 80 肉眼幾乎看不出差別體積能明顯減小thumbnails: quality: 80 format: jpg預(yù)期效果角色庫里的頭像縮略圖體積減小約三分之一切換頁面跟著變快。開啟請(qǐng)求體壓縮聊天歷史保存時(shí)請(qǐng)求體可達(dá)幾 MB。SillyTavern 內(nèi)置了請(qǐng)求壓縮能力前端邏輯在 public/scripts/request-compression.js開關(guān)在服務(wù)端配置里performance: requestCompression: enabled: true預(yù)期效果聊天保存類請(qǐng)求在鏈路上的體積降到約四分之一Time 從秒級(jí)降到幾百毫秒。SillyTavern 性能優(yōu)化賽博朋克臥室背景展示靜態(tài)資源加載場景花一個(gè)下午能搞定的改配置 / 引依賴這一檔改動(dòng)的是服務(wù)端對(duì)外連接行為改完需要留點(diǎn)時(shí)間觀察日志。打開全局 keep-alive 復(fù)用 API 連接src/server-main.js 里會(huì)根據(jù)這個(gè)配置創(chuàng)建全局 HTTP Agent開啟后 SillyTavern 轉(zhuǎn)發(fā)請(qǐng)求到后端 API 時(shí)復(fù)用連接不再每次重新握手enableKeepAlive: true預(yù)期效果本地網(wǎng)絡(luò)下每次 API 響應(yīng)減少幾十毫秒并發(fā)場景下差距更明顯。配置文件注釋里也寫了如果之后日志出現(xiàn) ECONNRESET把它改回 false 并檢查網(wǎng)絡(luò)環(huán)境。給 CORS 預(yù)檢加緩存跨域部署才需要跨域部署時(shí)瀏覽器每個(gè)真實(shí)請(qǐng)求前都會(huì)先發(fā)一次 OPTIONS 預(yù)檢。設(shè)置maxAge讓瀏覽器緩存預(yù)檢結(jié)果cors: maxAge: 600預(yù)期效果10 分鐘內(nèi)預(yù)檢請(qǐng)求從每分鐘幾百次降到個(gè)位數(shù)弱網(wǎng)下響應(yīng)速度感知提升明顯。關(guān)掉用不到的擴(kuò)展模型自動(dòng)下載SillyTavern 的擴(kuò)展體系會(huì)按需從 HuggingFace 下載 ONNX 模型情緒識(shí)別、圖像描述等首次下載很慢。用不到就關(guān)掉extensions: models: autoDownload: false預(yù)期效果啟動(dòng)流程不再被模型下載拖住擴(kuò)展面板加載也更輕。需要?jiǎng)釉创a的改邏輯 / 加模塊這兩處都改 src/server-main.js動(dòng)手前先備份文件每改一處驗(yàn)證一次。給 compression 中間件加過濾條件現(xiàn)在的app.use(compression())會(huì)對(duì)所有超過 1KB 的響應(yīng)做 gzip而 PNG / JPG 本身已是壓縮格式再壓一遍是白燒 CPU// src/server-main.js app.use(compression({ filter: (req, res) { const type res.getHeader(content-type) || ; return /json|javascript|css|text/.test(type); }, }));預(yù)期效果圖片響應(yīng)不再走壓縮CPU 占用下降可支撐更多并發(fā)文本類接口響應(yīng)速度基本不變。給字體資源加瀏覽器緩存當(dāng)前express.static托管 public/ 時(shí)用的是空選項(xiàng){}。NotoSans 字體文件基本不變可以在它前面加一條專用緩存路由// src/server-main.js放在 express.static(public) 之前 app.use(/webfonts, express.static(path.join(serverDirectory, public/webfonts), { maxAge: 7d, }));預(yù)期效果第二次訪問時(shí)字體傳輸量降到接近 0首屏 LCP 相應(yīng)縮短。效果復(fù)查用兩個(gè)面板驗(yàn)證提速SillyTavern 性能優(yōu)化 復(fù)查冬季湖畔背景用于驗(yàn)證靜態(tài)資源加載驗(yàn)證方法簡單且可復(fù)現(xiàn)Network 面板對(duì)比DevTools → Network勾選 Disable cache 后強(qiáng)制刷新記錄 Transfer Size 和 Time 兩列的總量優(yōu)化前后各測一次。Lighthouse 分?jǐn)?shù)對(duì)比優(yōu)化前后各跑一次 Performance 報(bào)告對(duì)比 Performance 分?jǐn)?shù)和 Largest Contentful Paint 兩個(gè)數(shù)字。下表是在小規(guī)格云服務(wù)器2 vCPU / 4GB上的示例數(shù)據(jù)你的環(huán)境數(shù)值會(huì)有差異指標(biāo)示例數(shù)據(jù)優(yōu)化前優(yōu)化后角色庫打開500 張卡約 2~3 秒約 0.5~1 秒首訪靜態(tài)資源傳輸量約 1.5~2 MB約 0.8~1 MB二次訪問字體資源約 1~1.5 MB接近 0聊天保存請(qǐng)求體3MB 歷史約 3 MB約 0.5~1 MB哪一項(xiàng)沒達(dá)到預(yù)期就回到體檢清單里找它對(duì)應(yīng)的瓶頸項(xiàng)單獨(dú)再查。避坑提醒改之前先看完 ??裝了第三方擴(kuò)展就先別開懶加載—— 部分?jǐn)U展讀取淺層卡片數(shù)據(jù)可能報(bào)錯(cuò)。正確做法開啟后觀察是哪個(gè)擴(kuò)展報(bào)錯(cuò)定位不了就把lazyLoadCharacters改回 false。縮略圖質(zhì)量只對(duì)新縮略圖生效—— 舊緩存不會(huì)自動(dòng)變小。正確做法改完后清空數(shù)據(jù)目錄下的 thumbnails 目錄里的舊圖讓它們按新質(zhì)量重新生成。requestCompression 的 minPayloadSize 別改成 0—— 壓縮一個(gè)幾百字節(jié)的小請(qǐng)求反而讓體積變大、速度變慢。正確做法保持默認(rèn) 256kb 閾值夠大才壓。行動(dòng)清單按這個(gè)順序動(dòng)手打開 default/config.yaml把performance.lazyLoadCharacters設(shè)為 true 并重啟服務(wù)這是大角色庫提速的第一步。同文件把thumbnails.quality改為 80清空數(shù)據(jù)目錄下的舊縮略圖。開啟performance.requestCompression.enabled發(fā)一條消息觀察保存請(qǐng)求是否變快??缬蚧蚨嘤脩舨渴鸬脑捬a(bǔ)上cors.maxAge和enableKeepAlive。以上都不夠時(shí)再改 src/server-main.js 里的 compression 過濾條件和 webfonts 緩存兩處。改完記得跑一遍 Lighthouse看看 Performance 分?jǐn)?shù)比體檢那次漲了多少?!久赓M(fèi)下載鏈接】SillyTavernLLM Frontend for Power Users.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考