學習知識究竟為什麼會遺忘:何為遺忘曲線?
前言
一直以來,我都努力讓自己保持著學習的狀態,雖然有時會因為工作的忙碌、朋友的邀約...... 導致當天回家後只感到疲累,玩了會兒 PS5 就草草洗澡上床睡覺。這樣的日子雖然輕鬆又愜意,但內心深處總擔心著不經常學習反而會遺忘自己學習過的知識,就像那句老話「學如逆水行舟,不進則退」。
Read More »學習知識究竟為什麼會遺忘:何為遺忘曲線?一直以來,我都努力讓自己保持著學習的狀態,雖然有時會因為工作的忙碌、朋友的邀約...... 導致當天回家後只感到疲累,玩了會兒 PS5 就草草洗澡上床睡覺。這樣的日子雖然輕鬆又愜意,但內心深處總擔心著不經常學習反而會遺忘自己學習過的知識,就像那句老話「學如逆水行舟,不進則退」。
Read More »學習知識究竟為什麼會遺忘:何為遺忘曲線?Speculative Decoding 和 KV Cache 都是 Transformers 可以應用的加速技巧;前者是利用一個推理速度較快的 draft model 推測性地生成多個後續的解碼結果並讓希望加速的 target model 進行一次性驗證藉此節省自迴歸解碼的開銷,後者則是應用了 Transformer 因果注意力(Causal Attention)機制中過往 Token 不會看到未來的 Token 的特性,將過去部份 Token 的計算結果保存下來,節省了每次推理時的重複計算。
Read More »整合 Speculative Decoding 和 KV Cache 之實作筆記Kangaroo 是一種引入了可訓練的適配器(Adapter)層的 Self-Speculative Decoding 實現,我最近幾週都在嘗試微調其 Adapter,有了一些初步成果,故紀錄於此。
Read More »Kangaroo 加速推理架構實現筆記最近在實作論文 Kangaroo: Lossless Self-Speculative Decoding via Double Early Exiting 時,對於其所採用 Cross Entropy Loss 來讓 draft model 和 target model 的機率分佈輸出越像越好這件事,產生了一個疑惑:為什麼不使用 KL Divergence 呢?
Read More »KL Divergence 和 Cross Entropy 的差異與比較最近在看分散式系統的筆記,希望能對當前這一年所建立的系統進行反思,審視有什麼可以改進的點,就在這時被人推薦看看 CAP 定理,一看之下覺得滿直覺的,就順手紀錄於此。
Read More »布魯爾定理(Brewer's/CAP Theorem)筆記目前我看的許多加速推理技巧,如 Speculative Decoding 等等方式,大多數都是採用把 draft model 信心分數設定一個閾值(threshold)來決定現在要解碼多少個 draft tokens、再交由 target model 進行驗證,以此來減少 draft model 在低信心程度的情況下額外多推測的時間開銷。
Read More »Speculative Decoding 時採用目標模型(Target Model)的信心閾值來決定是否啟用草稿推測最近嘗試實作了許多推測性解碼(Speculative Decoding)的加速方法,而 HuggingFace 的 transformers
套件中自然也有對應的加速方法 assistant_model
,今天就趁這個機會一起紀錄下來。
在過去的一週裡,我抽空按照論文 Draft & Verify: Lossless Large Language Model Acceleration via Self-Speculative Decoding 的思路嘗試復現了一遍自推測性解碼(Self-Speculative Decoding),包含以下模組:
在自推測性解碼(Self-Speculative Decoding)中,由於我們的 draft model 是由 target model 的部份網路擔任,所以找到一個好的『跳層策略』(Layer Skip Strategy)是非常重要的事情 —— 我們不僅要跳得夠多層讓加速真正意義上實現、也需要讓 draft model 的推測解碼程度足夠好且不容易被 target model 驗證時拒絕。
所以今天的實作,就是靠貝氏優化框架 Optuna 來優化我之前的實現的 LayerSkip 模型,決定到底要跳哪幾層。
Read More »透過貝氏優化去搜索 LayerSkip 模型的最佳跳層策略