公司唔俾錢買 API?自己砌平價 AI 轉運站
開公司嘅朋友都明:同 management 講「我想買 OpenAI API」,個個都話「再睇下先」。Transformer 都出咗差唔多十年,production 用 LLM 嘅 cost per token 依然貴過好多中小企嘅 monthly cloud bill。問題唔係 AI 冇用,而係你用緊嘅 delivery model 根本唔啱 scale。
大多數香港 startup 嘅 pattern 係咁:一開始好興奮,register 個 OpenAI account,丟幾條 prompt 試下,覺得好神奇。然後逐個月見到個 bill 由幾十蚊變幾百蚊,再變成幾千蚊美金。Finance 部門開始問「呢筆錢係咪必要」,你開始要 justify 每一条 token。到最後,個 project 唔係因為技術做唔到而死,而係因為 marginal cost 太高而被 kill。
但你諗下,如果自己起一個 LLM inference server,用 open source model,成本可以降到幾低?答案係:十分一,甚至更低。呢篇文就同你拆解點樣用 SGLang、Ollama 同 LiteLLM 砌一個低成本嘅 AI 轉運站。
點解 open source model 突然變得可行
2024 年到 2025 年,open source LLM 嘅 quality 追得極快。Llama 3、Qwen 2.5、DeepSeek V3/R1、Mistral——呢堆 model 喺 benchmark 上同 GPT-4 嘅差距已經收窄到幾個百分點。對大部分 use case 嚟講,呢個差距根本唔影響 user experience。
更重要嘅係 inference engine 嘅進步。以前 self-host LLM 係一件好痛苦嘅事:你要 set up CUDA、hand-optimize kernel、搵人寫 batching logic。而家有 SGLang,佢嘅 RadixAttention 同 automatic KV cache management 可以將 throughput 提升 3-5 倍。乜嘢意思?即係同一張 GPU,以前 serve 10 個 concurrent request 會喘氣,而家可以食 50 個。
另一個 game changer 係 OpenAI-compatible API layer。LiteLLM 可以俾你一句 config 就開晒所有 model 嘅 endpoint,interface 同 OpenAI 完全一樣。即係你 codebase 唔使改,只需要改個 base_url,成件事就由 cloud 變 self-hosted。
實戰:三個星期砌好 production-ready 嘅 inferencing stack
我哋團隊用咗三個星期由零到 production,硬件係兩張租返嚟嘅 A100(80GB)。Stack 係咁嘅:SGLang 做 inference engine,因為佢嘅 structured output 同 function calling support 最好;LiteLLM 放前面做 router同 fallback;中間加咗個簡單嘅 queue system 做 load balancing。
Setting 上最關鍵嘅三個決定:
第一,model selection。我哋揀咗 DeepSeek V3 做主力,Qwen 2.5 72B 做 cheaper fallback,code task 用 DeepSeek Coder V2。每個 model 行喺 dedicated GPU 上面,中間用 vLLM 嘅 prefix caching 慳 context 重用。
第二,batch size 同 concurrency。你以為 set 得越高越好?錯。我哋發現 SGLang 嘅 scheduling algorithm 喺 concurrency = 16 左右最 efficient,再高反而会因为 memory fragmentation 而降速。呢個要自己 profile,每個 model 同 GPU combo 都唔同。
第三,observability。冇 monitoring 嘅 self-host 係自殺。我哋用 Prometheus + Grafana 睇 per-endpoint latency、TTFT、throughput、GPU utilization。設定 alert:如果 P99 latency 超過 3 秒就自動 switch traffic 去 LiteLLM 嘅 OpenAI fallback。
結果?Production 行咗三個月,總成本係之前 OpenAI API bill 嘅 8%。Average latency 高咗 200ms,但因為我哋可以自訂 batching 同 caching 策略,peak throughput 反而高過之前。
邊啲 case 適合自砌,邊啲唔適合
講咗咁多好處,都要講下 limitations。唔係所有 workload 都適合 self-host。根據我哋經驗,以下情況 most suitable:
Batch processing 同大量 offline inference。例如每日要 summarize 幾千篇文、generate product description、做 data enrichment。呢類 task 對 latency 唔敏感,但對 cost 極敏感。Self-host 嘅 marginal cost近乎零,你只係俾電費同租機費。
Function calling 同 structured output。SGLang 嘅 guided decoding(基於 JSON schema 或者 grammar)做得極好,可以 guaranteed output format。比起 OpenAI 嘅 function calling,有時仲精準,因為你完全控制 token generation 嘅 constraint。
唔適合嘅 case 包括:real-time chatbot 需要 sub-100ms TTFT(除非你肯投資 H100);需要多模態(image/video generation)— open source model 呢方面仲係落後 production cloud;非常 dynamic 嘅 traffic pattern — 自己維持 idle capacity 嘅成本可能抵消晒慳到嘅錢。
仲有一個重要考量:opportunity cost。你 team 入面嘅 engineering time 係唔係值得花喺 infra 上面?如果你嘅 core business 係 AI application 而唔係 infra,咁 hybrid approach 可能更好:common case 行 self-host,edge case/critical task fallback 去 API。
畀香港 developer 嘅實戰建議
如果你而家心郁郁想試,呢度有幾個 concrete steps:
第一,唔好一開始就買 hardware。去租 GPU,Lambda Labs、Vast.ai、或者本地嘅 Datacom 都得。先租一張 A100 試 water,一個月幾千蚊,比起你綁死幾十萬嘅 capex 靈活好多。
第二,用 Docker 起 environment,唔好自己 compile。SGLang 同 LiteLLM 都有 well-maintained Docker image。你只要 mount 個 model volume,五個 commands 就起好一個端對端嘅端點。
第三,行一個月 benchmark 先 cut API。同時間 keep 住 OpenAI API 做 fallback,用 LiteLLM 嘅 routing rule:錢你慳到,但 quality 同 latency 唔可以跌。Run 一個月,collect data,present 俾 management。
第四,留意 licensing。DeepSeek 同 Qwen 都係 permissive license,可以商用。但某啲 model(例如 Llama 3.1)有佢哋嘅 acceptable use policy,雖然基本上 cover 到 commercial use,但你都需要同 legal 確認。
最後,唔好一個人做晒。香港嘅 AI community 其實好細但好有活力。我哋喺 Discord 有個 group 專討論 self-host LLM infra,share config、benchmark 同 tips。搵到同路人交換心得,個 learning curve 會 flat 好多。
AI 呢個 game,唔係大公司先可以玩。當 open source model 嘅 quality 已經追上 close source,而 inference engine 嘅 efficiency 每年翻幾倍,砌一個自己嘅 AI 轉運站唔再係 luxury,而係 strategic necessity。你公司唔俾錢買 API?你自己砌,然後 show 俾佢哋睇。