Skip to content

Python

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 實驗結果)

[Python] FastAPI 使用 Server-Sent Events (SSE) 進行串流回覆

最近建立了許多 Chatbot 的後台 API Server,一開始我是接收到使用者的訊息後回傳,將 LLM 的生成回覆一口氣顯示在前端界面,但這樣使用者體驗並不好;之後改成了 HTTP 串流,每生成一個 Token 就回傳前端界面,但後來發現在部份使用者的裝置上會發生黏包,所以最後改成了使用 WebSocket。

Read More »[Python] FastAPI 使用 Server-Sent Events (SSE) 進行串流回覆

使用有限狀態機(FSM)和回滾(Rollback)機制控制 LLM 禁止生成禁止詞彙(Banned-Words)

在大家透過 LLM 架設各種服務時,是否會煩惱 LLM 經常生成一些不受控制的言論?最近我的工作正在專案收尾的緊要關頭,我使用了 Outlines 等工具用以約束 LLM 解碼,確實能控制模型生成符合我想項中的模式 —— 但我同事突然對我發出靈魂一問:那我想要它不生成某些詞彙該怎麼辦?

Read More »使用有限狀態機(FSM)和回滾(Rollback)機制控制 LLM 禁止生成禁止詞彙(Banned-Words)

[Python] 使用 Locust 開源壓力測試框架進行壓力測試

Locust 是一個開源的壓力測試工具,它能幫助我們模擬大量使用者對 Web 應用、API 服務進行負載測試;與傳統的壓力測試工具相比,Locust 具有可客製化、可擴展的優勢 —— 簡單來說,它支持 Python 作為腳本語言,根據我們 API 或網頁服務的不同應用場景來寫測試。

Read More »[Python] 使用 Locust 開源壓力測試框架進行壓力測試

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

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

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