整個想法其實建立在一個有點複雜的上下文之上,為了避免失焦,我先把結論放在文章前面,中間再補充上下文,最後再回來看整個想法是怎麼建立起來的。
一種 LLM 佈署策略與架構
原本是針對 LLM (Large language model) 構想的,不過套用到 SD (Stable Diffusion) 或其他體系的類神經演算法大概也差不多。
Serverless
拜容器化技術與 OCI (Open Container Initiative) 映像檔的標準化所賜,交付、佈署到運行網路應用程式(通常是 HTTP 伺服器)的流程變得非常容易。
雲端服務業者甚至能夠在沒有人使用服務的時候關閉容器,或是在流量變大的時候動態增加容器的數量來應付需求,這就是 Serverless。
Serverless Function
但是啟動 OCI 容器需要載入 OCI 映像檔、運行程式完成初始化直到到待命才能開始處理任務,這段時間被稱作冷啟動時間 (cold start time)。OCI 映像檔越大、程式越複雜這個時間就越久。
於是開始出現一種雲端服務是開發者直接佈署幾個函式,而不是寫一整個完整的程式,例如:
exports.helloHttp = (req, res) => {
const msg = (req.body && req.body.message) || 'Hello World!';
res.status(200).send(msg);
};
這個就是 Serverless Function。而 Serverless 是我認為最適合佈署 LLM 應用程式(與其產物)或其他模型的型態。
info
Serverless Function 不見得由 OCI 容器實現,但是不少雲端業者的 Function 服務是由 OCI 容器實現的。