[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-llama-benchy-api-benchmark-zh":3,"article-related-llama-benchy-api-benchmark-zh":33,"series-tools-09c2902c-97a8-433c-94de-874a7f55d2ff":85},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":25,"views":29,"created_at":30,"published_at":31,"topic_cluster_id":32},"09c2902c-97a8-433c-94de-874a7f55d2ff","llama-benchy-api-benchmark-zh","llama-benchy 把 API 也納入基準測試","\u003Cp data-speakable=\"summary\">llama-benchy 是一個用來測 \u003Ca href=\"\u002Ftag\u002Fopenai\">OpenAI\u003C\u002Fa> 相容 API 的基準測試工具，重點看上下文變長、併發增加時的延遲與吞吐表現。\u003C\u002Fp>\u003Cp>說真的，這工具很實用。\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Feugr\u002Fllama-benchy\" target=\"_blank\" rel=\"noopener\">llama-benchy\u003C\u002Fa> 目前有 451 顆星、42 個 fork、96 次提交。它不是在比誰的簡報好看。它是直接拿 API 來測。\u003C\u002Fp>\u003Cp>很多團隊平常只看一個速度數字。那很容易翻車。因為提示詞變長、cache 命中、串流回應、併發請求一變，數字就會整個走樣。llama-benchy 想做的事很單純，就是把這些變數放進同一個 CLI。\u003C\u002Fp>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>指標\u003C\u002Fth>\u003Cth>代表什麼\u003C\u002Fth>\u003Cth>README 範例\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>pp\u003C\u002Ftd>\u003Ctd>提示詞處理速度\u003C\u002Ftd>\u003Ctd>2048 token 提示詞，深度從 0 到 32768\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>tg\u003C\u002Ftd>\u003Ctd>Token 生成速度\u003C\u002Ftd>\u003Ctd>範例跑 32 個生成 token\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>depth\u003C\u002Ftd>\u003Ctd>測試的上下文長度\u003C\u002Ftd>\u003Ctd>0、4096、8192、16384、32768\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>concurrency\u003C\u002Ftd>\u003Ctd>平行請求數\u003C\u002Ftd>\u003Ctd>可用 --concurrency 調整\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>runs\u003C\u002Ftd>\u003Ctd>每組重複次數\u003C\u002Ftd>\u003Ctd>預設 3 次\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2>為什麼要做這個工具\u003C\u002Fh2>\u003Cp>先講白了。\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fggerganov\u002Fllama.cpp\" target=\"_blank\" rel=\"noopener\">llama.cpp\u003C\u002Fa> 有 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fggerganov\u002Fllama.cpp\u002Fblob\u002Fmaster\u002FREADME.md#benchmarking\" target=\"_blank\" rel=\"noopener\">llama-bench\u003C\u002Fa>，但那套主要在 llama.cpp 生態內用。你如果跑的是 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvllm-project\u002Fvllm\" target=\"_blank\" rel=\"noopener\">vLLM\u003C\u002Fa>，或 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsgl-project\u002Fsglang\" target=\"_blank\" rel=\"noopener\">SGLang\u003C\u002Fa>，或其他 OpenAI 相容伺服器，就很難直接拿同一把尺量。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780775303246-184z.png\" alt=\"llama-benchy 把 API 也納入基準測試\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>這就是 llama-benchy 的切入點。它不碰推論引擎內部。它直接量 API 層。這很貼近真實使用情境，因為使用者打到的就是這層。request 處理、串流行為、server-side cache，全都會算進去。\u003C\u002Fp>\u003Cp>我覺得這個設計很對。因為很多 \u003Ca href=\"\u002Ftag\u002Fbenchmark\">benchmark\u003C\u002Fa> 只會在實驗室裡漂亮。真正\u003Ca href=\"\u002Fnews\u002F5-things-to-know-about-metas-llama-3-rollout-zh\">上線\u003C\u002Fa>後，第一個 \u003Ca href=\"\u002Ftag\u002Ftoken\">token\u003C\u002Fa> 出來慢 5 秒，使用者就直接跳走。你在報告上看到的平均值，跟產品體感常常是兩回事。\u003C\u002Fp>\u003Cul>\u003Cli>目標是 \u003Ca href=\"https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fapi-reference\u002Fchat\" target=\"_blank\" rel=\"noopener\">\u002Fv1\u002Fchat\u002Fcompletions\u003C\u002Fa> 風格 API\u003C\u002Fli>\u003Cli>分開量提示詞處理和 token 生成\u003C\u002Fli>\u003Cli>提示詞取自 \u003Ca href=\"https:\u002F\u002Fwww.gutenberg.org\u002F\" target=\"_blank\" rel=\"noopener\">Project Gutenberg\u003C\u002Fa> 文字\u003C\u002Fli>\u003Cli>可在 warmup 後做 coherence 檢查\u003C\u002Fli>\u003Cli>輸出 Markdown、JSON、CSV\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>它到底量了什麼\u003C\u002Fh2>\u003Cp>llama-benchy 量的東西比一般 README 清楚很多。它會報 prompt processing speed、token generation speed、Time To First Response、estimated prompt processing time，還有 end-to-end TTFT。這些數字拆開看，才知道瓶頸在哪。\u003C\u002Fp>\u003Cp>它也支援可調提示詞長度、生成長度、context depth，還有多次重跑。最後會算平均值和標準差。這點很重要。因為單次結果很容易被雜訊騙。多跑幾次，才知道伺服器是真快，還是剛好那次沒塞車。\u003C\u002Fp>\u003Cp>另外一個細節我很喜歡。它用 \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Ftokenizers\u002Findex\" target=\"_blank\" rel=\"noopener\">Hugging Face tokenizers\u003C\u002Fa> 算 token 數。這不是小事。不同模型、不同模板，token 數都可能不一樣。算錯了，整份 benchmark 就會看起來很專業，其實很假。\u003C\u002Fp>\u003Cblockquote>\u003Cp>「It is widely used in LLM community to benchmark models and allows to perform measurement at different context sizes.」\u003C\u002Fp>\u003Cfooter>— eugr，\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Feugr\u002Fllama-benchy\" target=\"_blank\" rel=\"noopener\">llama-benchy README\u003C\u002Fa>\u003C\u002Ffooter>\u003C\u002Fblockquote>\u003Cp>這句話很直白。它不是要發明新理論。它就是把 llama-bench 類型的量測，搬到任何 OpenAI 相容端點。這個範圍不大，但很實際。\u003C\u002Fp>\u003Ch2>數字怎麼看，才不會被騙\u003C\u002Fh2>\u003Cp>README 的範例很有意思。它用 \u003Ca href=\"https:\u002F\u002Fopenai.com\u002Findex\u002Fgpt-oss-120b\u002F\" target=\"_blank\" rel=\"noopener\">openai\u002Fgpt-oss-120b\u003C\u002Fa>，base URL 是 \u003Ccode>http:\u002F\u002Fspark:8888\u002Fv1\u003C\u002Fcode>。測試深度從 0 一路拉到 32768。這種設計就是要看上下文變長後，性能會掉多少。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780775302866-r3at.png\" alt=\"llama-benchy 把 API 也納入基準測試\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>結果很誠實。depth 0 時，prompt processing speed 是 8521.08 t\u002Fs。到了 depth 32768，只剩 6896.57 t\u002Fs。TTFR 也從 240.36 ms 拉到 5048.31 ms。這不是小波動。這是使用者體感會直接變差的差距。\u003C\u002Fp>\u003Cp>Token 生成也沒完全倖免。tg32 從 73.18 t\u002Fs 掉到 65.80 t\u002Fs。雖然不像 prefill 那麼誇張，但這已經足夠影響聊天體驗。尤其是長對話、長文件摘要、或多輪 \u003Ca href=\"\u002Ftag\u002Fagent\">agent\u003C\u002Fa> 工作流，差一點點，總時間就會累很多。\u003C\u002Fp>\u003Cul>\u003Cli>depth 0：8521.08 t\u002Fs，TTFR 240.36 ms\u003C\u002Fli>\u003Cli>depth 4096：9450.36 t\u002Fs，TTFR 253.95 ms\u003C\u002Fli>\u003Cli>depth 8192：8481.42 t\u002Fs，TTFR 246.50 ms\u003C\u002Fli>\u003Cli>depth 16384：7954.96 t\u002Fs，TTFR 289.46 ms\u003C\u002Fli>\u003Cli>depth 32768：6896.57 t\u002Fs，TTFR 5048.31 ms\u003C\u002Fli>\u003C\u002Ful>\u003Cp>它還有幾個很務實的功能。可以加噪音避免 cache 命中。可以在測完後跑清理指令。也可以開併發，直接看多請求壓上去後的吞吐。這些都是上線團隊會在意的事，不是紙上談兵。\u003C\u002Fp>\u003Cp>安裝方式也很接地氣。它主打 \u003Ca href=\"https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F\" target=\"_blank\" rel=\"noopener\">uv\u003C\u002Fa>。你可以用 \u003Ccode>uvx\u003C\u002Fcode> 跑，也可以裝進虛擬環境，或用 \u003Ccode>uv run\u003C\u002Fcode>。README 甚至把 release 跟 main branch 的做法都寫了，想追最新版的人會很省事。\u003C\u002Fp>\u003Ch2>和其他工具比，差在哪\u003C\u002Fh2>\u003Cp>如果你把它拿去跟一般壓測工具比，差異會很明顯。像 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftsenart\u002Fvegeta\" target=\"_blank\" rel=\"noopener\">vegeta\u003C\u002Fa> 或 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwg\u002Fwrk\" target=\"_blank\" rel=\"noopener\">wrk\u003C\u002Fa> 很適合測 HTTP 壓力，但它們不懂 LLM 的語意。它們不會幫你拆 prompt processing，也不會幫你看 token generation。\u003C\u002Fp>\u003Cp>llama-benchy 的強項，就是把 LLM serving 的細節拆開。你可以看到不同 context depth 的變化。你也可以看 concurrency 拉高後，TTFT 和 throughput \u003Ca href=\"\u002Fnews\u002Fhow-to-start-vibe-coding-with-ai-zh\">怎麼\u003C\u002Fa>一起變。這對比單純測 QPS 的工具更接近實戰。\u003C\u002Fp>\u003Cp>跟 llama.cpp 內建的 llama-bench 相比，llama-benchy 的價值在於 API 中立。你不用綁死某個推論引擎。只要是 OpenAI 相容 API，大多都能接。這對台灣很多做私有化部署、內網模型服務、或多供應商比較的團隊，真的很方便。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftsenart\u002Fvegeta\" target=\"_blank\" rel=\"noopener\">vegeta\u003C\u002Fa>：偏 HTTP 壓測\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwg\u002Fwrk\" target=\"_blank\" rel=\"noopener\">wrk\u003C\u002Fa>：偏 web 服務吞吐\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fggerganov\u002Fllama.cpp\" target=\"_blank\" rel=\"noopener\">llama.cpp\u003C\u002Fa> 的 llama-bench：偏引擎內部\u003C\u002Fli>\u003Cli>llama-benchy：偏 API 實際體感\u003C\u002Fli>\u003C\u002Ful>\u003Cp>如果你的服務有 streaming、cache、或多輪對話，這種工具就更有用了。因為真正的瓶頸常常不在模型本身，而是在 serving 層。這也是很多團隊忽略掉的地方。\u003C\u002Fp>\u003Ch2>這工具背後的產業脈絡\u003C\u002Fh2>\u003Cp>現在做 LLM 服務，光有模型還不夠。你還要管 API、排程、cache、串流、權限、觀測。模型跑得快，不代表產品快。伺服器一塞，前端就卡，使用者只會覺得「這 AI 很慢」。\u003C\u002Fp>\u003Cp>所以 benchmark 的重點也跟以前不同了。以前大家愛看單卡吞吐。現在要看端到端延遲。尤其是\u003Ca href=\"\u002Fnews\u002Fvibe-coding-enterprise-software-change-management-zh\">企業\u003C\u002Fa>場景，很多時候不是跑單輪問答，而是\u003Ca href=\"\u002Ftag\u002F長上下文\">長上下文\u003C\u002Fa>摘要、文件檢索、agent 工具呼叫。這些情境都很吃 API 行為。\u003C\u002Fp>\u003Cp>llama-benchy 的出現，等於把測試焦點往前推了一步。它提醒大家，真正要比較的是整條 serving 路徑，不只是模型核心。這種觀念其實很務實。少一點口號，多一點數字，大家才知道錢花在哪。\u003C\u002Fp>\u003Cp>如果你現在在評估 vLLM、SGLang、或其他 OpenAI 相容服務，我會建議你把這類工具放進 CI 或 nightly job。至少每次版本更新後，你都能看到深度、併發、TTFR 有沒有變差。這比事後救火便宜多了。\u003C\u002Fp>\u003Ch2>結論：先測 API，再談快不快\u003C\u002Fh2>\u003Cp>我對 llama-benchy 的看法很簡單。它不是什麼華麗新玩具。它是把 LLM 服務測試拉回現實。你可以看到長上下文下的速度掉多少，也能看到併發上來後，伺服器還撐不撐得住。\u003C\u002Fp>\u003Cp>如果你手上有 OpenAI 相容 API，我會直接建議你試一次。先拿 2048 token、再拉到 32768 depth，然後看 TTFR、pp、tg 怎麼變。你很可能會發現，真正的瓶頸不是模型名字，而是你沒量到的那一層。\u003C\u002Fp>\u003Cp>接下來最值得做的事，就是把這類測試固定化。每次改動 serving 參數、升級版本、換 backend，都跑一次。這樣你才知道，你是在優化，還是在默默把延遲弄爛。\u003C\u002Fp>","llama-benchy 把 llama-bench 類型測試搬到 OpenAI 相容 API，能看上下文變長、併發增加時的延遲與吞吐。","github.com","https:\u002F\u002Fgithub.com\u002Feugr\u002Fllama-benchy",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780775303246-184z.png","tools","zh","92a22a3d-6d0c-4884-9865-c1fe0f2e5e78",[17,18,19,20,21,22,23,24],"llama-benchy","OpenAI 相容 API","LLM 基準測試","TTFR","token generation","prompt processing","vLLM","SGLang",[26,27,28],"llama-benchy 把 llama-bench 類型測試搬到 API 層，較貼近實際使用情境。","它會分開看 prompt processing、token generation、TTFR、併發與 context depth。","長上下文下的延遲差異很大，單看平均速度很容易誤判伺服器表現。",0,"2026-06-06T19:47:53.968325+00:00","2026-06-06T19:47:53.949+00:00","c3c88dd2-a940-438a-b359-0e5a24562273",{"tags":34,"relatedLang":44,"relatedPosts":48},[35,37,39,41,43],{"name":20,"slug":36},"ttfr",{"name":19,"slug":38},"llm-基準測試",{"name":18,"slug":40},"openai-相容-api",{"name":21,"slug":42},"token-generation",{"name":17,"slug":17},{"id":15,"slug":45,"title":46,"language":47},"llama-benchy-llama-bench-style-api-benchmarks-en","llama-benchy brings llama-bench tests to APIs","en",[49,55,61,67,73,79],{"id":50,"slug":51,"title":52,"cover_image":53,"image_url":53,"created_at":54,"category":13},"34162763-ffe3-416d-a719-e450ba87ac3d","llm-leaderboard-2026-300-models-ranked-zh","2026 LLM 排行榜：309 模型怎麼選","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780776191145-786j.png","2026-06-06T20:02:36.847112+00:00",{"id":56,"slug":57,"title":58,"cover_image":59,"image_url":59,"created_at":60,"category":13},"2c75f00f-eb01-418f-a793-45c1522f226e","how-to-start-vibe-coding-with-ai-zh","怎麼開始 AI Vibe Coding","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780773471291-8bu6.png","2026-06-06T19:17:22.400458+00:00",{"id":62,"slug":63,"title":64,"cover_image":65,"image_url":65,"created_at":66,"category":13},"fd6e6e2e-4036-4fc0-8521-0d8237178f85","nvidia-ai-models-playbook-zh","NVIDIA AI Models 把選模變成流程","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780771714449-s6kx.png","2026-06-06T18:48:02.508579+00:00",{"id":68,"slug":69,"title":70,"cover_image":71,"image_url":71,"created_at":72,"category":13},"c62bb593-ee76-46eb-bb3e-c160e78f7a5b","kimi-k25-agent-code-setup-zh","Kimi K2.5 讓代理編碼更穩","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780769047868-ajc6.png","2026-06-06T18:03:19.108312+00:00",{"id":74,"slug":75,"title":76,"cover_image":77,"image_url":77,"created_at":78,"category":13},"50b75ca3-5060-48d1-966a-56cfaa19b410","why-small-businesses-should-use-ai-for-admin-zh","為什麼小型企業只該把 AI 用在行政，不該什麼都交給它","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780758168808-yjnz.png","2026-06-06T15:02:17.869478+00:00",{"id":80,"slug":81,"title":82,"cover_image":83,"image_url":83,"created_at":84,"category":13},"cd6961a9-52ee-46f0-8e9b-2de544cd1906","crun-ai-gemini-omni-chat-video-editing-zh","Crun AI 把 Gemini Omni 變聊天剪片","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780733909044-zn45.png","2026-06-06T08:17:59.890613+00:00",[86,91,96,101,106,111,116,121,126,131],{"id":87,"slug":88,"title":89,"created_at":90},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":92,"slug":93,"title":94,"created_at":95},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":97,"slug":98,"title":99,"created_at":100},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":102,"slug":103,"title":104,"created_at":105},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":107,"slug":108,"title":109,"created_at":110},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":112,"slug":113,"title":114,"created_at":115},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":117,"slug":118,"title":119,"created_at":120},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":122,"slug":123,"title":124,"created_at":125},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":127,"slug":128,"title":129,"created_at":130},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":132,"slug":133,"title":134,"created_at":135},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]