Skip to content

PyTorch

Self-Speculative Decoding 完整實作: LayerSkip Model, Bayesian Optimization, and Adaptive Draft-Exiting Mechanism(附 gemma-2-9b-it 實驗結果)

在過去的一週裡,我抽空按照論文 Draft & Verify: Lossless Large Language Model Acceleration via Self-Speculative Decoding 的思路嘗試復現了一遍自推測性解碼Self-Speculative Decoding),包含以下模組:

  • 跳層解碼的 Decoder-only Transformer 模型(主要以 Llama 和 Gemma-2 兩種架構為主)
  • 自適應草稿離開機制
  • 貝氏優化探索最佳跳層策略(尋找怎樣的搭配才會是最好的草稿模型)
  • Self-Speculative Decoding —— 完成只靠模型自身的加速
Read More »Self-Speculative Decoding 完整實作: LayerSkip Model, Bayesian Optimization, and Adaptive Draft-Exiting Mechanism(附 gemma-2-9b-it 實驗結果)

Self-Speculative Decoding 實現: 跳層 Transformer 模型實作筆記

介紹

自推測性解碼(Self-Speculative Decoding)是一個推測性解碼(Speculative Decoding)的變體。原本的 Speculative Decoding 是採用一個草稿模型(draft model)來優化我們真正想要推理的目標模型(target),並且 draft model 擁有與 target model 相似的輸出以及快上幾倍的推理時間,通常是由 target model 蒸餾而來。

Read More »Self-Speculative Decoding 實現: 跳層 Transformer 模型實作筆記

推測性解碼(Speculative Decoding)實作筆記(附簡易實驗結果)

介紹

推測性解碼(Speculative Decoding)是一種實用性極強的加速推理技巧,通過讓小模型(draft model)快速、連續地解碼多個 Tokens 並保留過程中的採樣機率分佈,並讓我們真正希望加速的大模型(target model)在此之上預測下一個 Token —— 同時把過往的每個 Token 位置的採樣機率分佈一次性地計算得出,再透過 target model probs 去驗證 draft model probs 的有效性,並接受足夠可靠的 draft model 的推測解碼 Tokens。

Read More »推測性解碼(Speculative Decoding)實作筆記(附簡易實驗結果)

大型語言模型的解碼採樣筆記

我們在利用大型語言模型進行生成任務時,尤其是自迴歸任務(Auto-regression),模型實際上是在做一個好幾萬的分類任務,而分類的標的,其實就是我們詞庫(vocabulary)中的詞,通常是被稱為詞元(Token),也就是組成詞彙的最小單位。

如果我們希望採用貪婪解碼(greedy decoding),那麼我們永遠取模型最後一層解碼層的 logits 最大值就完事;但如果我們希望模型的生成結果具備多樣性與一定程度的隨機性,那麼,我們就有了許多的參數可以用來調整 logits 成為機率分佈了。

Read More »大型語言模型的解碼採樣筆記

使用 SFTTrainer 微調多模態大型語言模型筆記(以 LLaVa-1.5 為例)

多模態大型語言模型(Multi-Modal Large Language Model)是一種不侷限於文字的語言模型,我知道這聽起來很衝突,不過這算是目前大家普遍接受的一種稱呼;而我今天想要紀錄的,就是該怎麼使用一個腳本就進行多模態模型的微調。

Read More »使用 SFTTrainer 微調多模態大型語言模型筆記(以 LLaVa-1.5 為例)

[Machine Learning] 旋轉位置嵌入 (Rotary Position Embedding, RoPE)筆記

介紹

(備註:由於本篇文章自我個人 Hackmd 導入,所以有些符號跟 WordPress 顯示不對位,還請閱讀者多多包涵,Sorry~)

RoPE 是一種通過絕對位置編碼的方式,引入相對位置的資訊給自注意力機制(Self-Attention Mechanism)的位置嵌入。

Read More »[Machine Learning] 旋轉位置嵌入 (Rotary Position Embedding, RoPE)筆記