{"id":1031,"date":"2026-07-06T14:02:43","date_gmt":"2026-07-06T05:02:43","guid":{"rendered":"http:\/\/kyunam.com\/?p=1031"},"modified":"2026-07-06T14:02:44","modified_gmt":"2026-07-06T05:02:44","slug":"vllm-%ec%84%b1%eb%8a%a5-%eb%b9%84%ec%95%bd%ec%a0%81%ec%9c%bc%eb%a1%9c-%ed%96%a5%ec%83%81%ed%95%98%ea%b8%b0%ea%b2%b0%eb%a1%a0","status":"publish","type":"post","link":"http:\/\/kyunam.com\/?p=1031","title":{"rendered":"vLLM \uc131\ub2a5 \ube44\uc57d\uc801\uc73c\ub85c \ud5a5\uc0c1\ud558\uae30(\uacb0\ub860)"},"content":{"rendered":"\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<style>\n  :root{\n    --ink:#1f2123;\n    --muted:#6a6d70;\n    --faint:#9a9da0;\n    --rule:#e6e7e9;\n    --rule-strong:#cfd1d3;\n    --accent:#2f6f6a;\n    --accent-deep:#244f4b;\n    --win-bg:#eef5f3;\n    --warn:#b25a2b;\n    --code-bg:#f6f7f8;\n    --page:#ffffff;\n    --maxw:740px;\n  }\n  *{box-sizing:border-box}\n  html{-webkit-text-size-adjust:100%}\n  body{\n    margin:0;background:var(--page);color:var(--ink);\n    font-family:\"Apple SD Gothic Neo\",\"Pretendard\",\"Noto Sans KR\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif;\n    font-size:17px;line-height:1.82;letter-spacing:-.003em;\n    -webkit-font-smoothing:antialiased;\n  }\n  .wrap{max-width:var(--maxw);margin:0 auto;padding:60px 22px 90px}\n  a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(47,111,106,.30)}\n  a:hover{border-bottom-color:var(--accent)}\n  strong,b{font-weight:700}\n  em{font-style:italic}\n  code{background:var(--code-bg);border:1px solid var(--rule);border-radius:4px;\n    padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em}\n\n\/* masthead *\/\n.eyebrow{font-size:13.5px;font-weight:700;letter-spacing:.04em;color:var(\u2013accent);margin-bottom:14px}\nh1.title{font-size:clamp(28px,5vw,40px);line-height:1.2;font-weight:800;letter-spacing:-.02em;margin:0 0 16px}\n.dek{font-size:18px;line-height:1.7;color:var(\u2013muted);margin:0 0 26px}\nhr{border:0;border-top:1px solid var(\u2013rule);margin:26px 0}\n.lead{font-size:17.5px;line-height:1.85;margin:26px 0 0}\n\n\/* section *\/\nsection{margin-top:56px}\n.snum{font-size:13px;font-weight:800;letter-spacing:.12em;color:var(\u2013accent);margin-bottom:3px}\nh2{font-size:23px;line-height:1.3;font-weight:800;letter-spacing:-.018em;margin:0 0 4px}\n.sub{font-style:italic;color:var(\u2013muted);font-size:16px;margin:0 0 20px}\nh3{font-size:18px;font-weight:700;margin:30px 0 4px;letter-spacing:-.01em}\np{margin:17px 0}\n.muted{color:var(\u2013muted)}\n.caveat{font-size:15.5px;line-height:1.74;border-left:3px solid var(\u2013warn);\npadding:2px 0 2px 16px;margin:24px 0;color:#46484a}\n\n\/* tables \u2014 \ubaa8\ub4e0 \ud45c \ub3d9\uc77c \ud615\uc2dd (\uc138\ub85c\uc120 \uc5c6\uc74c\u00b7\uac00\ub85c\uc904\ub9cc\u00b7\ud68c\uc0c9 \ud5e4\ub354\u00b79\uc5f4\ub3c4 \uc2a4\ud06c\ub864 \uc5c6\uc774) *\/\n.tw{overflow-x:auto;margin:22px 0;-webkit-overflow-scrolling:touch}\ntable{border-collapse:collapse;width:100%;font-family:inherit;line-height:1.5;min-width:0}\n.tw th,.tw td{font-size:12px}\nth,td{border:0;border-bottom:1px solid #e6e7e9;padding:6px 8px;\ntext-align:left;white-space:nowrap;vertical-align:top}\ntd:first-child,th:first-child{white-space:normal;min-width:8em}\nthead th{background:#eceef0;font-weight:700;color:#4a4d50;border-bottom:1px solid #d3d5d7}\ntd.l,th.l{text-align:left}\ntd.win{font-weight:700}\ntd.kk{font-weight:700}\ntd.na{color:var(\u2013faint)}\n.recap td,.recap th{white-space:normal}\n.recap td:first-child,.recap th:first-child{min-width:3em}\n.k{color:var(\u2013muted);font-size:.9em}\n.tcap{font-size:13px;color:var(\u2013faint);font-style:italic;margin:9px 0 0;line-height:1.62}\n\n\/* figures *\/\nfigure{margin:30px 0}\nfigure img{width:100%;height:auto;display:block;border:1px solid var(\u2013rule);border-radius:6px}\nfigcaption{font-size:13.5px;color:var(\u2013muted);font-style:italic;margin-top:10px;line-height:1.64}\nfigcaption b{font-style:normal;font-weight:700;color:var(\u2013ink)}\n\n\/* code *\/\npre{background:var(\u2013code-bg);border:1px solid var(\u2013rule);border-radius:7px;\npadding:15px 17px;overflow-x:auto;margin:22px 0;\nfont-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;\nfont-size:13.5px;line-height:1.6}\npre .c{color:var(\u2013accent)}\n\n\/* lists *\/\nol.pit{margin:20px 0;padding-left:22px}\nol.pit li{margin:12px 0;padding-left:5px}\n\n\/* closing \/ footer *\/\n.closing{margin-top:56px;padding-top:24px;border-top:1px solid var(\u2013rule)}\n.closing .tag{font-size:12px;font-weight:800;letter-spacing:.14em;color:var(\u2013accent)}\n.closing p{font-size:17.5px;line-height:1.8;margin:10px 0 0}\n.env{margin-top:40px;padding-top:18px;border-top:1px solid var(\u2013rule);\nfont-size:13px;line-height:1.7;color:var(\u2013faint)}\n.env b{color:var(\u2013muted);font-weight:700}\n\n@media (max-width:560px){\nbody{font-size:16px}\n.wrap{padding:44px 16px 68px}\n}\n@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto}}\n<\/style>\n\n<div class=\"wrap\">\n\n  <div class=\"eyebrow\">vLLM Performance \u00b7 Engineering Notes \u2014\uc885\ud569\ud3b8<\/div>\n  <h1 class=\"title\">K-Exaone 4.7\ubc30 \ube60\ub974\uac8c \ud558\uae30<\/h1>\n  <p class=\"dek\">\uc774\ubc88 \ud3b8\uc740 \uc55e\uc120 1~4\ud3b8\uc5d0\uc11c \uac80\uc99d\ud55c \ubc29\ubc95\uc744 \uc885\ud569\ud55c\ub2e4. \uae30\ubcf8 vLLM \ub300\ube44 \ub204\uc801 \ucc98\ub9ac\ub7c9, \ub0b4 \ubaa8\ub378\uc5d0 \uc801\uc6a9\ud558\ub294 \uc808\ucc28, \uadf8\ub9ac\uace0 \uc2dc\ub9ac\uc988 \uc804\uccb4\uc758 \uacb0\ub860\uc744 \ub0b4\ub9b0\ub2e4.<\/p>\n\n  <hr>\n\n  <p class=\"lead\">\uc774 \uc2dc\ub9ac\uc988\ub294 \ub3d9\uc77c\ud55c \ubaa8\ub378\uacfc \ub3d9\uc77c\ud55c \uc785\ub825\uc73c\ub85c vLLM\uc5d0\uc11c \ucc98\ub9ac\ub7c9\uc744 \uc5bc\ub9c8\ub098 \ub192\uc77c \uc218 \uc788\ub294\uc9c0\ub97c \ub2e4\ub918\ub2e4. 2\ud3b8\uc5d0\uc11c speculative decoding(suffix), 3\ud3b8\uc5d0\uc11c bestKpad, 4\ud3b8\uc5d0\uc11c W4A4\uc640 \ub3d9\uc801-K\ub97c \ucc28\ub840\ub85c \uac80\uc99d\ud588\ub2e4. \uc774\ubc88 \ud3b8\uc740 \uadf8 \uacb0\uacfc\ub97c \uc885\ud569\ud574 \uae30\ubcf8 vLLM \ub300\ube44 \ub204\uc801 \uc131\uacfc\uc640 \uc801\uc6a9 \uc808\ucc28\ub97c \uc815\ub9ac\ud558\uace0, \uc2dc\ub9ac\uc988\ub97c \ub9c8\ubb34\ub9ac\ud55c\ub2e4.<\/p>\n\n  <!-- ===== 01 \ub204\uc801 \uc131\uacfc ===== -->\n\n  <section>\n    <div class=\"snum\">01<\/div>\n    <h2>\ub204\uc801 \uc131\uacfc: vLLM \uae30\ubcf8 \uc124\uc815 &#8211; van(OFF) \ub300\ube44<\/h2>\n    <p class=\"sub\">\ubaa8\ub378\ubcc4 \ucd5c\uc885 \uad6c\uc131\uc758 \ucc98\ub9ac\ub7c9\uacfc \uae30\ubcf8 vLLM(van(OFF))\uc758 \ube44\uad50. mix \uae30\uc900.<\/p>\n    <p>2\ud3b8\uc758 suffix, 3\ud3b8\uc758 bestKpad, 4\ud3b8\uc758 W4A4\u00b7\ub3d9\uc801-K\ub97c \uc885\ud569\ud574 \ubaa8\ub378\ubcc4 <strong>\ucd5c\uc885 \uad6c\uc131<\/strong>\uc744 \uc801\uc6a9\ud588\uc744 \ub54c, \uae30\ubcf8 vLLM(van(OFF)) \ub300\ube44 \ucc98\ub9ac\ub7c9 \uc99d\uac00\ub97c \uc815\ub9ac\ud588\ub2e4. \ub300\ubd80\ubd84 \ubaa8\ub378\uc758 \ucd5c\uc885 \uad6c\uc131\uc740 bestKpad\uc774\uba70, DeepSeek-R1\ub9cc \ub3d9\uc801-K\uac00 \uadfc\uc18c\ud558\uac8c \uc55e\uc120\ub2e4.<\/p>\n<div class=\"tw\">\n<table>\n  <thead><tr>\n    <th class=\"l\">model (mix)<\/th><th>van(OFF)<\/th><th>\ucd5c\uc885<\/th><th class=\"l\">\ucd5c\uc885 lever<\/th><th>van(OFF) \ub300\ube44<\/th>\n  <\/tr><\/thead>\n  <tbody>\n    <tr><td class=\"l\">K-EXAONE-236B<\/td><td class=\"num\">2,491<\/td><td class=\"num win\">11,702<\/td><td class=\"l\">bestKpad<\/td><td class=\"num\">+369.8% (4.70\u00d7)<\/td><\/tr>\n    <tr><td class=\"l\">Llama-3.1-70B<\/td><td class=\"num\">3,129<\/td><td class=\"num win\">14,389<\/td><td class=\"l\">bestKpad <span class=\"k\">(+\ucf54\ub4dc corpus W4A4)<\/span><\/td><td class=\"num\">+359.9% (4.60\u00d7)<\/td><\/tr>\n    <tr><td class=\"l\">Llama-3.1-8B<\/td><td class=\"num\">8,850<\/td><td class=\"num win\">33,531<\/td><td class=\"l\">bestKpad<\/td><td class=\"num\">+278.9% (3.79\u00d7)<\/td><\/tr>\n    <tr><td class=\"l\">DS-R1-Distill-Qwen-7B<\/td><td class=\"num\">9,058<\/td><td class=\"num win\">27,664<\/td><td class=\"l\">bestKpad<\/td><td class=\"num\">+205.4% (3.05\u00d7)<\/td><\/tr>\n    <tr><td class=\"l\">Llama-3.1-405B-FP8<\/td><td class=\"num\">1,252<\/td><td class=\"num win\">3,446<\/td><td class=\"l\">bestKpad<\/td><td class=\"num\">+175.2% (2.75\u00d7)<\/td><\/tr>\n    <tr><td class=\"l\">Qwen2.5-72B<\/td><td class=\"num\">2,735<\/td><td class=\"num win\">6,897<\/td><td class=\"l\">bestKpad<\/td><td class=\"num\">+152.2% (2.52\u00d7)<\/td><\/tr>\n    <tr><td class=\"l\">Qwen2.5-32B<\/td><td class=\"num\">3,056<\/td><td class=\"num win\">7,274<\/td><td class=\"l\">bestKpad<\/td><td class=\"num\">+138.0% (2.38\u00d7)<\/td><\/tr>\n    <tr><td class=\"l\">DS-R1-Distill-Qwen-32B<\/td><td class=\"num\">4,938<\/td><td class=\"num win\">11,750<\/td><td class=\"l\">bestKpad<\/td><td class=\"num\">+138.0% (2.38\u00d7)<\/td><\/tr>\n    <tr><td class=\"l\">DS-R1-Distill-Llama-70B<\/td><td class=\"num\">3,164<\/td><td class=\"num win\">6,493<\/td><td class=\"l\">bestKpad<\/td><td class=\"num\">+105.2% (2.05\u00d7)<\/td><\/tr>\n    <tr><td class=\"l\">Qwen2.5-7B<\/td><td class=\"num\">4,169<\/td><td class=\"num win\">7,488<\/td><td class=\"l\">bestKpad<\/td><td class=\"num\">+79.6% (1.80\u00d7)<\/td><\/tr>\n    <tr><td class=\"l\">DeepSeek-R1 (671B MoE)<\/td><td class=\"num\">1,538<\/td><td class=\"num win\">2,294<\/td><td class=\"l\">\ub3d9\uc801-K<\/td><td class=\"num\">+49.2% (1.49\u00d7)<\/td><\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n<p class=\"tcap\"><strong>\uc804\uccb4\ud3c9\uade0 2.7\u00d7 (+169%).<\/strong> van(OFF)\ub294 speculative decoding\u00b7\ud328\ub529\u00b7\uc591\uc790\ud654\ub97c \ubaa8\ub450 \uc801\uc6a9\ud558\uc9c0 \uc54a\uc740 \uae30\ubcf8 vLLM\uc774\ub2e4. \ucd5c\uc885\uc740 \ubaa8\ub378\ubcc4 mix \uae30\uc900 \ucd5c\uace0 \uad6c\uc131\uc73c\ub85c, 10\uac1c\ub294 bestKpad, DeepSeek-R1\uc740 \ub3d9\uc801-K(+3% \ucc28)\ub2e4. 70B\ub294 mix \uae30\uc900 bestKpad\uc774\uba70, \ucf54\ub4dc corpus\uc5d0\uc11c\ub294 W4A4 \ucd94\uac00 \uc2dc +16~29%\uac00 \ub354\ud574\uc9c4\ub2e4.<\/p>\n\n<figure>\n  <img decoding=\"async\" src=\"http:\/\/kyunam.com\/wp-content\/uploads\/2026\/07\/IMG_0955.png\" alt=\"van(OFF) \ub300\ube44 \ucd5c\uc885 \ucc98\ub9ac\ub7c9 \ubc30\uc218 \u2014 11\uac1c \ubaa8\ub378\">\n  <figcaption><b>Figure 1 \u00b7 van(OFF) \ub300\ube44 \ucd5c\uc885 \ucc98\ub9ac\ub7c9 \ubc30\uc218(mix).<\/b> K-EXAONE\u00b770B\uac00 4.7\u00d7\ub85c \uac00\uc7a5 \ud06c\uba70, host-bound(CPU \uc5f0\uc0b0) \ube44\uc911\uc774 \ud070 \ubaa8\ub378\uc77c\uc218\ub85d \ub204\uc801 \uc774\ub4dd\uc774 \ud06c\ub2e4. \uac00\uc7a5 \ub0ae\uc740 DeepSeek-R1\ub3c4 1.5\u00d7\ub2e4. 11\uac1c \ubaa8\ub378 \uae30\ud558\ud3c9\uade0 <strong>2.7\u00d7<\/strong>.<\/figcaption>\n<\/figure>\n\n  <\/section>\n\n  <!-- ===== 02 \uc801\uc6a9 \uc808\ucc28 ===== -->\n\n  <section>\n    <div class=\"snum\">02<\/div>\n    <h2>\uc801\uc6a9 \uc808\ucc28<\/h2>\n    <p class=\"sub\">vanilla\uc5d0\uc11c \ucd5c\uc885 \uad6c\uc131\uae4c\uc9c0\uc758 \uc801\uc6a9 \uc21c\uc11c\uc640 \uc120\ud0dd \uc9c0\uc810.<\/p>\n    <p>2~4\ud3b8\uc758 \ubc29\ubc95\uc744 \ub2e4\ub978 \ubaa8\ub378\uc5d0 \uc801\uc6a9\ud558\ub294 \uc21c\uc11c\ub2e4(1\ud3b8\uc740 \ud569\uc131 \ub370\uc774\ud130\ub85c \uc815\ub9ac\uc5d0\uc11c\ub294 \uc81c\uc678 \ud55c\ub2e4). \uc6d0\uce59\uc740 <strong> \uc591\uc790\ud654\ub97c \uc9c4\ud589\ud558\uc9c0 \uc54a\ub294 \ubc29\ubc95\uc744 \uba3c\uc800 \uc801\uc6a9\ud558\uace0, \uc591\uc790\ud654\ub294 \uc131\ub2a5 \uae30\uc900\uc744 \ub9cc\uc871 \ud560\ub54c\ub9cc \ucd94\uac00\ud558\uba70, suffix\uc640 \uae30\ub2a5\uc774 \uacb9\uce58\ub294 \ubc29\ubc95\uc740 \uc801\uc6a9\ud558\uc9c0 \uc54a\ub294\ub2e4<\/strong>\ub294 \uac83\uc774\ub2e4. \uc544\ub798 \uc21c\uc11c\ub3c4\uc640 \uac01 \ub2e8\uacc4\uc758 \uc791\uc5c5\u00b7\uc8fc\uc758\uc810\uc744 \uc815\ub9ac\ud55c\ub2e4.<\/p>\n<figure>\n  <img decoding=\"async\" src=\"http:\/\/kyunam.com\/wp-content\/uploads\/2026\/07\/vllm_optimize_load.jpg\" alt=\"\ub0b4 \ubaa8\ub378\uc5d0 \uc801\uc6a9\ud558\ub294 \ucd5c\uc801\ud654 \uc5ec\uc815 \u2014 vanilla\uc5d0\uc11c \ucd5c\uc885 \uad6c\uc131\uae4c\uc9c0\uc758 \uc21c\uc11c\ub3c4\">\n  <figcaption><b>Figure 2 \u00b7 \uc801\uc6a9 \uc21c\uc11c\ub3c4.<\/b> vanilla \u2192 suffix \u2192 K-pad+FaP \u2192 best-K sweep \u2192 \uc120\ud0dd \ub2e8\uacc4(W4A4\/\ub3d9\uc801-K) \u2192 \ucd5c\uc885 \uad6c\uc131(\ud3c9\uade0 2.7\u00d7). \uccad\ub85d \ub2e8\uacc4\ub294 \ub300\ubd80\ubd84 \ubaa8\ub378\uc5d0 \uad8c\uc7a5\ub418\uba70, \uc120\ud0dd \ub2e8\uacc4\ub294 \uc870\uac74\ubd80 \uc801\uc6a9\uc774\ub2e4.<\/figcaption>\n<\/figure>\n\n<h3>\uc801\uc6a9 \uc21c\uc11c<\/h3>\n<ol class=\"pit\">\n  <li><strong>vanilla baseline.<\/strong> \uc544\ubb34 \ubc29\ubc95\ub3c4 \uc801\uc6a9\ud558\uc9c0 \uc54a\uc740 \uae30\ubcf8 vLLM\uc73c\ub85c \uc790\uae30 \ud2b8\ub798\ud53d(\ub610\ub294 corpus\ubcc4)\uc744 \uce21\uc815\ud574 \uae30\uc900\uc120\uc744 \uc815\ud55c\ub2e4. \uc774\ud6c4 \ubaa8\ub4e0 \ube44\uad50\ub294 \uc774 \uac12\uc744 \uae30\uc900\uc73c\ub85c \ud55c\ub2e4.<\/li>\n  <li><strong>suffix \uc801\uc6a9.<\/strong> speculative decoding(suffix)\uc744 \uc801\uc6a9\ud55c\ub2e4. \ub300\ubd80\ubd84 \ubaa8\ub378\uc5d0\uc11c \uac00\uc7a5 \ud070 \ud5a5\uc0c1\uc774 \uc774 \ub2e8\uacc4\uc5d0\uc11c \ub098\uc628\ub2e4. \ub2e4\ub9cc <strong>MoE \uacc4\uc5f4\uc740 \ud68c\uadc0\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c<\/strong>(3\ud3b8\uc758 671B \uc0ac\ub840) \uc801\uc6a9 \ud6c4 vanilla\uc640 \ube44\uad50\ud574 \ud655\uc778\ud55c\ub2e4.<\/li>\n  <li><strong>K-pad + FaP.<\/strong> draft\ub97c K\ub85c \uade0\uc77c \ud328\ub529\ud574 FULL cudagraph(FULL_AND_PIECEWISE)\ub97c \uc801\uc911\uc2dc\ud0a8\ub2e4. \ud328\ub529 \ud1a0\ud070\uc740 rejection sampler\uac00 \uae30\uac01\ud558\ubbc0\ub85c <strong>\ucd9c\ub825\uc774 \ubcf4\uc874<\/strong>\ub41c\ub2e4. \ucd9c\ub825 \ub3d9\uc77c\uc131\ub9cc \ud655\uc778\ud558\uba74 \uc801\uc6a9\ud55c\ub2e4.<\/li>\n  <li><strong>best-K sweep.<\/strong> \uc790\uae30 corpus\uc5d0\uc11c K\u2208{4,6,8,12}\ub97c sweep\ud574 best-K\ub97c \uc120\ud0dd\ud55c\ub2e4. \ud63c\ud569 \ud2b8\ub798\ud53d(mix)\uc740 \ub300\uccb4\ub85c \ud070 K(K12), \ub2e8\uc77c chat\u00b7\uc9e7\uc740 \ucf54\ub4dc\ub294 \uc791\uc740 K\uac00 \uc720\ub9ac\ud558\ub2e4. \ubaa8\ub378 \ud06c\uae30\uac00 \uc544\ub2c8\ub77c \uc2e4\uc81c \ud2b8\ub798\ud53d\uc73c\ub85c \uce21\uc815\ud574 \uc815\ud55c\ub2e4.<\/li>\n  <li><strong>\uc120\ud0dd \ub2e8\uacc4.<\/strong> (a) <strong>W4A4<\/strong>: \uc591\uc790\ud654\uac00 \uc131\ub9bd\ud558\uace0(FP8\u00b7MoE\ub294 \ub300\uccb4\ub85c \ubd88\uac00) \ucd9c\ub825 \ub4f1\uac00 \uac8c\uc774\ud2b8\ub97c \ud1b5\uacfc\ud558\uba74 \ucf54\ub4dc \ud2b8\ub798\ud53d\uc5d0\uc11c \ucd94\uac00 \uc774\ub4dd\uc774 \uc788\ub2e4. \ucd9c\ub825\uc774 \ubc14\ub00c\uace0 mix\uc5d0\uc11c\ub294 \uc190\ud574\uc77c \uc218 \uc788\uc73c\ubbc0\ub85c \uc790\uae30 \ubd84\ud3ec\ub85c \ud310\ub2e8\ud55c\ub2e4. (b) <strong>\ub3d9\uc801-K<\/strong>: offline best-K\ub97c \ub118\uc9c0 \ubabb\ud558\ubbc0\ub85c, corpus\ub97c \uc54c \uc218 \uc788\ub294 \ud658\uacbd\uc5d0\uc11c\ub294 4\ub2e8\uacc4\uc758 offline best-K\ub97c \uc720\uc9c0\ud55c\ub2e4(\uc801\uc6a9 \ubcf4\ub958).<\/li>\n  <li><strong>\ucd5c\uc885 \uad6c\uc131 \ud655\uc815.<\/strong> \ubaa8\ub378\ubcc4\ub85c \uc704 \uc870\ud569\uc744 \ud655\uc815\ud55c\ub2e4. vLLM vanilla \ub300\ube44 \ud3c9\uade0 2.7\u00d7\ub2e4.<\/li>\n<\/ol>\n\n<h3>\uce21\uc815 \ubc29\ubc95<\/h3>\n<ol class=\"pit\">\n  <li><strong>\uc6b4\uc601\uc5d0 \uac00\uae4c\uc6b4 \ubd80\ud558\ub85c \uce21\uc815\ud55c\ub2e4.<\/strong> \uc2e4\uc81c \ud2b8\ub798\ud53d(real-trace) \ud504\ub86c\ud504\ud2b8, concurrency 32, max_tokens 8,192, streaming \ub4f1 \uc6b4\uc601 \uc870\uac74\uc744 \ubc18\uc601\ud55c\ub2e4. \ud569\uc131\ub41c \uc9e7\uc740 \ud504\ub86c\ud504\ud2b8\ub294 \uacb0\uacfc\ub97c \uc65c\uace1\ud55c\ub2e4.<\/li>\n  <li><strong>corpus\ub97c \uad6c\ubd84\ud574 \uce21\uc815\ud558\uace0 mix\ub97c \ubcc4\ub3c4\ub85c \ub454\ub2e4.<\/strong> chat\u00b7\ucf54\ub4dc \ub4f1 corpus\ubcc4\ub85c \uce21\uc815\ud558\uace0, \uc6b4\uc601 \ubd84\ud3ec\ub97c \ubc18\uc601\ud55c mix(\uc5ec\ub7ec corpus\ub97c <strong>\uace0\uc815 seed\ub85c \uc154\ud50c<\/strong>)\ub97c \ub530\ub85c \uad6c\uc131\ud55c\ub2e4. best-K\uc640 \uac01 \ubc29\ubc95\uc758 \ud6a8\uacfc\uac00 corpus\ub9c8\ub2e4 \ub2e4\ub974\uae30 \ub54c\ubb38\uc774\ub2e4.<\/li>\n  <li><strong>best-K\ub294 \ud55c \ubcc0\uc218\ub9cc \ubc14\uafd4 sweep\ud55c\ub2e4.<\/strong> \ub3d9\uc77c \uc870\uac74\uc5d0\uc11c K\ub9cc 4\/6\/8\/12\ub85c \ubc14\uafd4 \ucd5c\ub300\uac12\uc744 best-K\ub85c \uc120\ud0dd\ud55c\ub2e4. \uc5ec\ub7ec \uc124\uc815\uc744 \ub3d9\uc2dc\uc5d0 \ubc14\uafb8\uba74 \uc6d0\uc778\uc744 \ubd84\ub9ac\ud560 \uc218 \uc5c6\ub2e4.<\/li>\n  <li><strong>W4A4\ub294 \uc801\uc6a9 \uc804\uc5d0 \ucd9c\ub825 \ub4f1\uac00 \uac8c\uc774\ud2b8\ub97c \ud1b5\uacfc\uc2dc\ud0a8\ub2e4.<\/strong> \uc591\uc790\ud654 \uc804\ud6c4 \ucd9c\ub825 \ubd84\ud3ec\ub97c \ube44\uad50\ud574 \ub4f1\uac00\uac00 \uc544\ub2c8\uba74 \uc801\uc6a9\ud558\uc9c0 \uc54a\ub294\ub2e4. \ucc98\ub9ac\ub7c9\uc774 \uc62c\ub77c\ub3c4 \ud488\uc9c8\uc774 \uc800\ud558\ub418\uba74 \uc758\ubbf8\uac00 \uc5c6\ub2e4.<\/li>\n<\/ol>\n\n<h3>\uce21\uc815 \uc2dc \uc8fc\uc758\uc810<\/h3>\n<ol class=\"pit\">\n  <li><strong>\uc138\uc158 \uac04 drift.<\/strong> \ub2e4\ub978 \uc2dc\uc810\u00b7\uc138\uc158\uc758 \uce21\uc815\uc740 \ub3d9\uc77c \uba38\uc2e0\u00b7\ud558\ub2c8\uc2a4\ub77c\ub3c4 \u00b1\uba87 % \ubcc0\ub3d9\ud55c\ub2e4. \uc791\uc740 \ucc28\uc774\ub294 drift\ub85c \uac04\uc8fc\ud558\uace0 \ud070 \ucc28\uc774\ub9cc \uc2e4\ud6a8\uacfc\ub85c \ud574\uc11d\ud55c\ub2e4. \ube44\uad50\uad70\uc740 \uac00\ub2a5\ud558\uba74 \uac19\uc740 \uc138\uc158\uc5d0\uc11c \uce21\uc815\ud55c\ub2e4.<\/li>\n  <li><strong>taskset\uacfc \uc808\ub300\uac12.<\/strong> \uc77c\ubd80 CPU \ucf54\uc5b4\ub97c \uace0\uc815(taskset)\ud55c \uce21\uc815\uc740 \uc808\ub300\uac12\uc758 \uc9c1\uc811 \ube44\uad50\uc5d0 \uc81c\uc57d\uc774 \uc788\ub2e4. \ub3d9\uc77c\ud55c \uce21\uc815 \uc870\uac74\ub07c\ub9ac\ub9cc \ube44\uad50\ud55c\ub2e4.<\/li>\n  <li><strong>cudagraph warmup.<\/strong> FULL cudagraph\ub294 \uccab \ucea1\ucc98\u00b7\uc6cc\ubc0d\uc5c5 \ube44\uc6a9\uc774 \uc788\ub2e4. \uc815\uc0c1\uc0c1\ud0dc(steady-state) \uce21\uc815 \uc804\uc5d0 warmup\uc744 \ucda9\ubd84\ud788 \uc218\ud589\ud574 \ucd08\uae30 \uad6c\uac04\uc758 \uc624\ubc84\ud5e4\ub4dc\ub97c \uc81c\uc678\ud55c\ub2e4.<\/li>\n  <li><strong>MoE\ub294 \ubaa8\ub378\ub9c8\ub2e4 \uac70\ub3d9\uc774 \ub2e4\ub974\ub2e4.<\/strong> suffix \uc218\uc6a9\ub3c4\uac00 MoE\ub9c8\ub2e4 \uac08\ub9b0\ub2e4(671B \ud68c\uadc0, EXAONE 4.4\u00d7). \ud55c MoE\uc758 \uacb0\uacfc\ub97c \ub2e4\ub978 MoE\ub85c \uc77c\ubc18\ud654\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/li>\n  <li><strong>\ucc98\ub9ac\ub7c9\ub9cc\uc73c\ub85c \ud310\ub2e8\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/strong> \ud2b9\ud788 W4A4\ub294 \ucf54\ub4dc corpus\uc758 \uc774\ub4dd\ub9cc \ubcf4\uace0 \uc801\uc6a9\ud558\uba74 mix\uc5d0\uc11c \uc190\ud574\uac00 \ubc1c\uc0dd\ud55c\ub2e4. \ucc98\ub9ac\ub7c9\uacfc \ud488\uc9c8(\ub4f1\uac00 \uac8c\uc774\ud2b8)\uc744 \ud568\uaed8 \ud655\uc778\ud55c\ub2e4.<\/li>\n<\/ol>\n\n  <\/section>\n\n  <!-- ===== 03 \uc2dc\ub9ac\uc988 \uc815\ub9ac ===== -->\n\n  <section>\n    <div class=\"snum\">03<\/div>\n    <h2>\uc2dc\ub9ac\uc988 \uc815\ub9ac<\/h2>\n    <p class=\"sub\">2\ud3b8\ubd80\ud130 4\ud3b8\uae4c\uc9c0\uc758 \uacb0\uacfc \uc885\ud569.<\/p>\n    <p>\uc774 \uc2dc\ub9ac\uc988\uc758 \uc9c8\ubb38\uc740 <strong>\ub3d9\uc77c\ud55c \ubaa8\ub378\uacfc \ub3d9\uc77c\ud55c \ucd9c\ub825\uc73c\ub85c vLLM\uc5d0\uc11c \ucc98\ub9ac\ub7c9\uc744 \uc5bc\ub9c8\ub098 \ub192\uc77c \uc218 \uc788\ub294\uac00<\/strong>\uc600\ub2e4. suffix\uc5d0\uc11c \ucd9c\ubc1c\ud574 bestKpad\ub97c \uae30\uc900 \uad6c\uc131\uc73c\ub85c \ud655\ub9bd\ud588\uace0, 4\ud3b8\uc5d0\uc11c \uadf8 \uc704\ub97c \ub118\uc73c\ub824\ub294 \ub450 \ubc29\ubc95\uc744 \uac80\uc99d\ud588\ub2e4. \uc804\uccb4 \uacb0\uacfc\ub97c \ud55c \ud45c\ub85c \uc815\ub9ac\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n<div class=\"tw recap\">\n<table>\n  <thead><tr><th class=\"l\">\ud3b8<\/th><th class=\"l\">\ub2e4\ub8ec \uac83<\/th><th class=\"l\">\ud575\uc2ec \ub808\ubc84<\/th><th class=\"l\">\ud55c \uc904 \uacb0\ub860<\/th><\/tr><\/thead>\n  <tbody>\n    <tr><td class=\"l\">2\ud3b8<\/td><td class=\"l\">speculative decoding<\/td><td class=\"l\">suffix<\/td><td class=\"l\">\uccab \ub300\ud3ed \ud5a5\uc0c1. MoE\ub294 \ud68c\uadc0 \uac00\ub2a5<\/td><\/tr>\n    <tr><td class=\"l\">3\ud3b8<\/td><td class=\"l\">bestKpad<\/td><td class=\"l\">FaP cudagraph + \uade0\uc77c K\ud328\ub529 + corpus\ubcc4 best-K<\/td><td class=\"l\">\ucd9c\ub825 \ubcf4\uc874, 70\uc140 \uc911 68\uc140\uc5d0\uc11c \ud589 \ucd5c\ub300<\/td><\/tr>\n    <tr><td class=\"l\">4\ud3b8<\/td><td class=\"l\">W4A4 \u00b7 \ub3d9\uc801-K<\/td><td class=\"l\">\ub450 \ub3c4\uc804\uc790<\/td><td class=\"l\">\uae30\uc900\uc120 \ubbf8\ub2ec. W4A4\ub294 70B\ub9cc +7%, \ub3d9\uc801-K\ub294 best-K \ubbf8\ub2ec<\/td><\/tr>\n    <tr><td class=\"l win\">\ub204\uc801<\/td><td class=\"l\">vanilla \u2192 \ucd5c\uc885<\/td><td class=\"l\">\uc704 \uc870\ud569<\/td><td class=\"l win\">van(OFF) \ub300\ube44 \uc804\uccb4\ud3c9\uade0 2.7\u00d7<\/td><\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n\n<h3>\uc694\uc57d<\/h3>\n<ol class=\"pit\">\n  <li><strong>\ubc29\ubc95\uc740 \uc131\uaca9\uc5d0 \ub530\ub77c \uad6c\ubd84\ub41c\ub2e4.<\/strong> \ucd9c\ub825\uc744 \ubcf4\uc874\ud558\ub294 \ubc29\ubc95(suffix\u00b7bestKpad)\uc744 \uba3c\uc800 \uc801\uc6a9\ud558\uace0, \ucd9c\ub825\uc744 \ubc14\uafb8\ub294 \ubc29\ubc95(W4A4)\uc740 \uac8c\uc774\ud2b8\ub97c \ud1b5\uacfc\ud560 \ub54c\ub9cc \ucd94\uac00\ud558\uba70, \uae30\uc874 \uae30\ub2a5\uacfc \uacb9\uce58\ub294 \ubc29\ubc95(\ub3d9\uc801-K)\uc740 \uc801\uc6a9\ud558\uc9c0 \uc54a\ub294\ub2e4. \uc801\uc6a9 \uc21c\uc11c\uac00 \uc804\ub7b5\uc758 \ud575\uc2ec\uc774\ub2e4.<\/li>\n  <li><strong>\ud310\ub2e8 \uae30\uc900\uc740 \uce21\uc815\uc774\ub2e4.<\/strong> best-K \uc120\ud0dd, W4A4 \uc801\uc6a9 \uc5ec\ubd80, \ub3d9\uc801-K\uc758 \ud6a8\uc6a9\uc740 \ubaa8\ub450 \uc790\uae30 corpus\uc640 real-trace \uce21\uc815\uc73c\ub85c \uacb0\uc815\ub410\ub2e4. \ubaa8\ub378 \ud06c\uae30\ub098 \uc9c1\uad00\uc5d0 \uadfc\uac70\ud55c \uaddc\uce59\uc740 \uc790\uc8fc \uc5b4\uae0b\ub0ac\ub2e4. \uc791\uc740 K\uac00 \uc720\ub9ac\ud55c \ubaa8\ub378, MoE \uac04 \uc0c1\ubc18\ub41c \uac70\ub3d9(671B \ud68c\uadc0, EXAONE 4.7\u00d7)\uc774 \uadf8 \uc608\ub2e4.<\/li>\n  <li><strong>\uc74c\uc758 \uacb0\uacfc\ub3c4 \uacb0\uacfc\ub2e4.<\/strong> 4\ud3b8\uc758 \ub450 \ubc29\ubc95\uc740 \ub300\ubd80\ubd84 \uae30\uc900\uc120\uc5d0 \ubbf8\ub2ec\ud588\uace0, \uadf8 \uacb0\uacfc\uac00 bestKpad\ub97c \uae30\ubcf8 \uad6c\uc131\uc73c\ub85c \ud655\uc815\ud558\ub294 \uadfc\uac70\uac00 \ub410\ub2e4. \uc801\uc6a9\ud558\uc9c0 \ub9d0\uc544\uc57c \ud560 \uac83\uc744 \uc544\ub294 \uac83\uc740 \uc801\uc6a9\ud560 \uac83\uc744 \uc544\ub294 \uac83\ub9cc\ud07c \uc6b4\uc601\uc5d0 \uc911\uc694\ud558\ub2e4.<\/li>\n  <li><strong>\ucd5c\uc885 \uacb0\uacfc.<\/strong> \ucd94\uac00 \ud558\ub4dc\uc6e8\uc5b4 \uc5c6\uc774, \ub300\ubd80\ubd84\uc758 \ubaa8\ub378\uc5d0\uc11c \uc815\ud655\ub3c4 \uc190\uc2e4 \uc5c6\uc774 <strong>vanilla \ub300\ube44 \ud3c9\uade0 2.7\u00d7<\/strong>\uc758 \ucc98\ub9ac\ub7c9\uc744 \uc5bb\uc5c8\ub2e4. \ucd9c\ub825\uc740 \uadf8\ub300\ub85c \uc720\uc9c0\ub41c\ub2e4.<\/li>\n<\/ol>\n\n  <\/section>\n\n  <!-- ===== CLOSING ===== -->\n\n  <div class=\"closing\">\n    <span class=\"tag\">\uc2dc\ub9ac\uc988\ub97c \ub9c8\uce58\uba70<\/span>\n    <p>\uc774 \uc2dc\ub9ac\uc988\uc758 \uc9c8\ubb38\uc740 \ub3d9\uc77c\ud55c \ucd9c\ub825\uc744 \uc720\uc9c0\ud55c \ucc44 \ucc98\ub9ac\ub7c9\uc744 \uc5bc\ub9c8\ub098 \ub192\uc77c \uc218 \uc788\ub294\uac00\uc600\ub2e4. \uacb0\uacfc\ub294 \uade0\uc77c \ud328\ub529\uacfc corpus\ubcc4 \uce21\uc815\ub9cc\uc73c\ub85c \ud3c9\uade0 2.7\u00d7\uc600\ub2e4. \ub354 \ubcf5\uc7a1\ud55c \ubc29\ubc95\uc778 \uc591\uc790\ud654\uc640 \ub7f0\ud0c0\uc784 \uc801\uc751\uc740 \ub300\ubd80\ubd84 \uc774 \uad6c\uc131\uc744 \ub118\uc9c0 \ubabb\ud588\ub2e4. \uc774\ubc88 \uacb0\uacfc\uac00 \ubcf4\uc5ec\uc8fc\ub294 \uac83\uc740, \ucc98\ub9ac\ub7c9 \ud5a5\uc0c1\uc758 \uc0c1\ub2f9 \ubd80\ubd84\uc774 \uc0c8\ub85c\uc6b4 \uae30\ubc95\uc774 \uc544\ub2c8\ub77c <em>\uae30\uc874 \uad6c\uc131\uc744 \uc790\uae30 \uc6cc\ud06c\ub85c\ub4dc\uc5d0\uc11c \uc815\ud655\ud788 \uce21\uc815\ud558\ub294 \ub370\uc11c<\/em> \ub098\uc628\ub2e4\ub294 \uc810\uc774\ub2e4. \uc140\ubcc4 \uc804\uccb4 \uce21\uc815\uce58\ub294 \ubcc4\ub3c4\uc758 \uc790\ub8cc\ud3b8 \ud3ec\uc2a4\ud2b8 \u300c\uc804\uccb4 \uacb0\uacfc\ud45c\u300d\ub85c \uc62e\uacbc\ub2e4.<\/p>\n  <\/div>\n\n  <div class=\"env\">\n    <b>\uce21\uc815 \ud658\uacbd<\/b> \u2014 DGX B200 \u00b7 NVIDIA B200\u00d78 (sm_100, HBM3e 183 GiB, NVLink5) \u00b7 Intel Xeon Platinum 8570 \u00d72 (224 thread, AMX\/AVX-512) \u00b7 vLLM 1.7.dev (sm_100) \u00b7 cudagraph FULL_AND_PIECEWISE \u00b7 gmu 0.85 \u00b7 max_model_len 16,384 \u00b7 real-trace prompts, concurrency 32, max_tokens 8,192, streaming.<br>\n    11\uac1c \ubaa8\ub378 \u00d7 7\uac1c corpus \u00b7 bestKpad(bf16, suffix+FaP+best-K) \/ W4A4(Llama-3.1-70B, AWQ+GPTQ NVFP4 4-bit, \ub4f1\uac00 \uac8c\uc774\ud2b8 \ud1b5\uacfc) \/ \ub3d9\uc801-K(bf16, \ub7f0\ud0c0\uc784 K \ucee8\ud2b8\ub864\ub7ec KS={4,6,12}). 2026-06 \uce21\uc815.\n  <\/div>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>vLLM Performance \u00b7 Engineering Notes \u2014\uc885\ud569\ud3b8 K-Exaone 4.7\ubc30 \ube60\ub974\uac8c \ud558\uae30 \uc774\ubc88 \ud3b8\uc740 \uc55e\uc120 1~4\ud3b8\uc5d0\uc11c \uac80\uc99d\ud55c \ubc29\ubc95\uc744 \uc885\ud569\ud55c\ub2e4. \uae30\ubcf8 vLLM \ub300\ube44 \ub204\uc801 \ucc98\ub9ac\ub7c9, \ub0b4 \ubaa8\ub378\uc5d0 \uc801\uc6a9\ud558\ub294 \uc808\ucc28, \uadf8\ub9ac\uace0 \uc2dc\ub9ac\uc988 \uc804\uccb4\uc758 \uacb0\ub860\uc744<span class=\"more-button\"><a href=\"http:\/\/kyunam.com\/?p=1031\" class=\"more-link\">\uc77d\uc5b4 \ubcfc\uae4c?<span class=\"screen-reader-text\">vLLM \uc131\ub2a5 \ube44\uc57d\uc801\uc73c\ub85c \ud5a5\uc0c1\ud558\uae30(\uacb0\ub860)<\/span><\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":1019,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[309,44,310],"tags":[383,382,317,380,381,378,373,318,351,350,316,374,306],"class_list":["post-1031","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-tech","category-vllm","tag-benchmark","tag-bestkpad","tag-cuda-graph","tag-dgx-b200","tag-engineering-notes","tag-gpu-inference","tag-inference-optimization","tag-llm-inference","tag-moe","tag-nvidia-b200","tag-speculative-decoding","tag-throughput","tag-vllm"],"_links":{"self":[{"href":"http:\/\/kyunam.com\/index.php?rest_route=\/wp\/v2\/posts\/1031","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/kyunam.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/kyunam.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/kyunam.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/kyunam.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1031"}],"version-history":[{"count":2,"href":"http:\/\/kyunam.com\/index.php?rest_route=\/wp\/v2\/posts\/1031\/revisions"}],"predecessor-version":[{"id":1034,"href":"http:\/\/kyunam.com\/index.php?rest_route=\/wp\/v2\/posts\/1031\/revisions\/1034"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/kyunam.com\/index.php?rest_route=\/wp\/v2\/media\/1019"}],"wp:attachment":[{"href":"http:\/\/kyunam.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1031"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/kyunam.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1031"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/kyunam.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1031"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}