{"id":105957,"date":"2026-09-16T13:16:46","date_gmt":"2026-09-16T05:16:46","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/105957.html"},"modified":"2026-09-16T13:16:46","modified_gmt":"2026-09-16T05:16:46","slug":"%e3%80%90%e4%b8%89%e5%b9%b4%e9%9d%a2%e8%af%95%e4%ba%94%e5%b9%b4%e6%a8%a1%e6%8b%9f%e3%80%912026-09-10-%e7%99%be%e5%ba%a6%e5%a4%9a%e6%a8%a1%e6%80%81%e5%a4%a7%e6%a8%a1%e5%9e%8b%e4%b8%80%e9%9d%a2%ef%bc%9a","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/105957.html","title":{"rendered":"\u3010\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u30112026-09-10 \u767e\u5ea6\u591a\u6a21\u6001\u5927\u6a21\u578b\u4e00\u9762\uff1a9\u9053\u6280\u672f\u95ee\u7b54\u4e0e2\u9053\u624b\u6495\u9898\u8be6\u89e3"},"content":{"rendered":"<h2>\u5199\u5728\u524d\u9762<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260916051643-6aaa263b43cdb.png\" alt=\"\u56fe\u7247\" \/><\/p>\n<p>\u6b22\u8fce\u5927\u5bb6\u5173\u6ce8Rocky\u7684\u516c\u4f17\u53f7&#xff1a;WeThinkIn \u6b22\u8fce\u5927\u5bb6\u5173\u6ce8Rocky\u7684\u77e5\u4e4e&#xff1a;Rocky Ding \u300a\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u300bAIGC\/LLM\/AI Agent\u7b97\u6cd5\u5de5\u7a0b\u5e08\/\u5f00\u53d1\u5de5\u7a0b\u5e08\u6c42\u804c\u9762\u8bd5\u79d8\u7c4d\u72ec\u5bb6\u8d44\u6e90&#xff1a;\u3010\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u3011WeThinkIn\/AIGC-Interview-Book&#xff0c;\u6b22\u8fce\u5927\u5bb6Star&#xff5e;<\/p>\n<p>Rocky\u6700\u65b0\u64b0\u5199\u768410\u4e07\u5b57AI Agent&#xff08;AI\u667a\u80fd\u4f53&#xff09;\u6df1\u5165\u6d45\u51fa\u5168\u7ef4\u5ea6\u89e3\u6790\u6587\u7ae0&#xff1a; \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790AI Agent&#xff08;AI\u667a\u80fd\u4f53&#xff09;\u7684\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/p>\n<p>AIGC\/LLM\/AI Agent\u7b97\u6cd5\u5c97\/\u5f00\u53d1\u5c97\u6c42\u804c\u9762\u8bd5\u5185\u63a8\u5b66\u4e60\u793e\u7fa4&#xff08;\u6db5\u76d6AIGC\u3001LLM\u5927\u6a21\u578b\u3001AI Agent\u3001\u4f20\u7edf\u6df1\u5ea6\u5b66\u4e60\u3001\u81ea\u52a8\u9a7e\u9a76\u3001\u673a\u5668\u5b66\u4e60\u3001\u8ba1\u7b97\u673a\u89c6\u89c9\u3001\u81ea\u7136\u8bed\u8a00\u5904\u7406\u3001\u5f3a\u5316\u5b66\u4e60\u3001\u5927\u6570\u636e\u6316\u6398\u3001\u5177\u8eab\u667a\u80fd\u3001\u5143\u5b87\u5b99\u3001AGI\u7b49AI\u884c\u4e1a\u6700\u65b0\u9762\u8bd5\u5e72\u8d27\u7ecf\u9a8c\u4e0e\u6838\u5fc3\u77e5\u8bc6&#xff09;\u6b22\u8fce\u5927\u5bb6\u52a0\u5165&#xff1a;https:\/\/t.zsxq.com\/33pJ0<\/p>\n<hr \/>\n<p>\u5927\u5bb6\u597d&#xff0c;\u6211\u662fRocky Ding\u3002<\/p>\n<h3>\u6838\u5fc3\u5bfc\u8bfb<\/h3>\n<p>\u591a\u6a21\u6001\u5927\u6a21\u578b\u9762\u8bd5\u5f80\u5f80\u628a\u7b97\u6cd5\u76ee\u6807\u3001\u663e\u5b58\u9884\u7b97\u3001\u7cfb\u7edf\u541e\u5410\u548c\u4ee3\u7801\u5b9e\u73b0\u653e\u5728\u540c\u4e00\u6761\u8ffd\u95ee\u94fe\u4e0a&#xff1a;\u4e3a\u4ec0\u4e48\u91c7\u7528 GRPO&#xff1f;\u7701\u6389 Critic \u540e&#xff0c;\u8ba1\u7b97\u53bb\u4e86\u54ea\u91cc&#xff1f;8 \u5f20 A100 \u600e\u6837\u5206\u914d\u8bad\u7ec3\u4e0e\u751f\u6210&#xff1f;\u6700\u540e&#xff0c;\u80fd\u5426\u628a\u6ce8\u610f\u529b\u7684\u5f20\u91cf\u5f62\u72b6\u548c\u8fb9\u754c\u6761\u4ef6\u5199\u5bf9&#xff1f;<\/p>\n<p>\u8fd9\u7ec4\u767e\u5ea6\u591a\u6a21\u6001\u5927\u6a21\u578b\u4e00\u9762\u95ee\u9898\u8986\u76d6 9 \u9053\u6280\u672f\u95ee\u7b54\u4e0e 2 \u9053\u624b\u6495\u9898\u3002\u7406\u89e3\u5b83\u4eec\u7684\u4e3b\u7ebf\u662f&#xff1a;\u5148\u786e\u5b9a\u8bad\u7ec3\u4fe1\u53f7&#xff0c;\u518d\u6838\u7b97\u6570\u636e\u3001\u8ba1\u7b97\u4e0e\u72b6\u6001\u7684\u6210\u672c&#xff0c;\u6700\u540e\u7528\u4efb\u52a1\u8d28\u91cf\u4e0e\u53ef\u6267\u884c\u4ee3\u7801\u68c0\u9a8c\u65b9\u6848\u3002 \u540c\u4e00\u4e2a\u201c\u52a0\u901f\u201d\u7ed3\u8bba&#xff0c;\u53ea\u6709\u8bf4\u660e\u786c\u4ef6\u3001\u5e8f\u5217\u957f\u5ea6\u3001\u89c6\u89c9 token\u3001\u5e76\u884c\u65b9\u5f0f\u548c\u8bc4\u6d4b\u53e3\u5f84&#xff0c;\u624d\u6709\u53ef\u6bd4\u8f83\u7684\u542b\u4e49\u3002<\/p>\n<p>\u4e0b\u9762\u6309\u95ee\u9898\u987a\u5e8f\u5c55\u5f00\u3002\u7b97\u6cd5\u516c\u5f0f\u4f7f\u7528\u5178\u578b\u5b9a\u4e49&#xff1b;\u7cfb\u7edf\u914d\u7f6e\u7528\u4e8e\u8bf4\u660e\u9009\u578b\u4f9d\u636e&#xff0c;\u4e0d\u4ee3\u8868\u5df2\u7ecf\u5728\u767e\u5ea6\u4e1a\u52a1\u6216 8 \u5361 A100 \u73af\u5883\u4e2d\u83b7\u5f97\u4e86\u5b9e\u6d4b\u7ed3\u679c\u3002<\/p>\n<h3>\u9879\u76ee\u8868\u8fbe&#xff1a;\u628a\u4e1a\u52a1\u76ee\u6807\u8fde\u63a5\u5230\u5b9e\u9a8c\u4f9d\u636e<\/h3>\n<h4>1.\u9879\u76ee\u6df1\u6316<\/h4>\n<p>\u56de\u7b54&#xff1a;<\/p>\n<p>\u9879\u76ee\u6df1\u6316\u4e0d\u80fd\u53ea\u6309\u6280\u672f\u6808\u62a5\u83dc\u540d&#xff0c;\u5e94\u6cbf\u7740\u201c\u4e1a\u52a1\u76ee\u6807 -&gt; \u6570\u636e\u4e0e\u4efb\u52a1\u5b9a\u4e49 -&gt; \u6a21\u578b\u65b9\u6848 -&gt; \u8bad\u7ec3\/\u63a8\u7406 -&gt; \u8bc4\u6d4b -&gt; \u4e0a\u7ebf\u7ea6\u675f\u201d\u5f62\u6210\u4e00\u6761\u53ef\u9a8c\u8bc1\u7684\u4e3b\u7ebf\u3002\u5148\u8bf4\u660e\u7cfb\u7edf\u4e3a\u8c01\u89e3\u51b3\u4ec0\u4e48\u95ee\u9898\u3001\u539f\u6d41\u7a0b\u7684\u74f6\u9888\u662f\u4ec0\u4e48&#xff0c;\u518d\u8bf4\u660e\u4e3a\u4ec0\u4e48\u9009\u62e9\u5f53\u524d\u6a21\u578b\u548c\u8bad\u7ec3\u65b9\u6cd5&#xff0c;\u4ee5\u53ca\u81ea\u5df1\u771f\u6b63\u8d1f\u8d23\u7684\u6a21\u5757\u3002<\/p>\n<p>\u4e00\u4e2a\u5b8c\u6574\u7684\u9879\u76ee\u56de\u7b54\u81f3\u5c11\u5305\u542b\u4ee5\u4e0b\u5185\u5bb9&#xff1a;<\/p>\n<li>\u4efb\u52a1\u5b9a\u4e49\u3002 \u8f93\u5165\u8f93\u51fa\u662f\u4ec0\u4e48&#xff0c;\u5c5e\u4e8e\u5206\u7c7b\u3001\u751f\u6210\u3001\u68c0\u7d22\u3001\u89c6\u89c9\u95ee\u7b54\u3001\u5de5\u5177\u8c03\u7528\u8fd8\u662f\u591a\u9636\u6bb5\u4efb\u52a1&#xff1b;\u6210\u529f\u4e0e\u5931\u8d25\u5982\u4f55\u5224\u5b9a\u3002<\/li>\n<li>\u6570\u636e\u6784\u5efa\u3002 \u6570\u636e\u6765\u6e90\u3001\u6e05\u6d17\u89c4\u5219\u3001\u6807\u6ce8\u534f\u8bae\u3001\u8bad\u7ec3\/\u9a8c\u8bc1\/\u6d4b\u8bd5\u5212\u5206\u3001\u53bb\u91cd\u548c\u56f0\u96be\u6837\u672c\u8986\u76d6\u3002\u591a\u6a21\u6001\u9879\u76ee\u8fd8\u8981\u8bf4\u660e\u56fe\u6587\u5bf9\u662f\u5426\u5bf9\u9f50\u3001\u56fe\u7247\u8d28\u91cf\u3001OCR \u6587\u672c\u548c\u957f\u5bbd\u6bd4\u5206\u5e03\u3002<\/li>\n<li>\u6280\u672f\u51b3\u7b56\u3002 \u4e3a\u4ec0\u4e48\u9009\u62e9\u67d0\u4e2a\u57fa\u5ea7\u6a21\u578b\u3001\u89c6\u89c9\u7f16\u7801\u5668\u3001\u8fde\u63a5\u5668\u3001LoRA\/\u5168\u91cf\u5fae\u8c03\u3001DPO\/GRPO \u6216 RAG&#xff1b;\u66ff\u4ee3\u65b9\u6848\u662f\u4ec0\u4e48&#xff0c;\u53d6\u820d\u4f9d\u636e\u662f\u6548\u679c\u3001\u663e\u5b58\u3001\u5ef6\u8fdf\u3001\u6210\u672c\u8fd8\u662f\u5408\u89c4\u3002<\/li>\n<li>\u5de5\u7a0b\u95ed\u73af\u3002 \u8bad\u7ec3\u914d\u7f6e\u3001\u5e76\u884c\u65b9\u5f0f\u3001\u6df7\u5408\u7cbe\u5ea6\u3001checkpoint\u3001\u63a8\u7406\u670d\u52a1\u3001\u6279\u5904\u7406\u3001\u7f13\u5b58\u3001\u8d85\u65f6\u548c\u6545\u969c\u6062\u590d\u5982\u4f55\u8bbe\u8ba1\u3002<\/li>\n<li>\u6548\u679c\u8bc1\u636e\u3002 \u62a5\u544a\u57fa\u7ebf\u3001\u6570\u636e\u96c6\u3001\u6837\u672c\u91cf\u3001\u6307\u6807\u5b9a\u4e49\u3001\u6d88\u878d\u5b9e\u9a8c\u548c\u7ebf\u4e0a\u53e3\u5f84\u3002\u51c6\u786e\u7387\u3001\u4efb\u52a1\u6210\u529f\u7387\u3001P95 \u5ef6\u8fdf\u548c\u6210\u672c\u7b49\u6570\u5b57\u5fc5\u987b\u80fd\u8ffd\u6eaf\u5230\u5b9e\u9a8c\u6216\u65e5\u5fd7&#xff0c;\u4e0d\u80fd\u628a\u4f30\u8ba1\u503c\u5305\u88c5\u6210\u7ebf\u4e0a\u7ed3\u679c\u3002<\/li>\n<p>\u5982\u679c\u662f Agent \u6216\u591a\u6a21\u6001 Agent&#xff0c;\u5efa\u8bae\u628a\u4e00\u6b21\u4efb\u52a1\u63cf\u8ff0\u4e3a&#xff1a;<\/p>\n<p><span class=\"katex--display\"><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         Input<\/p>\n<p>         \u2192<\/p>\n<p>         Perception<\/p>\n<p>         \u2192<\/p>\n<p>         Plan<\/p>\n<p>         \u2192<\/p>\n<p>         Tool\/Model\u00a0Action<\/p>\n<p>         \u2192<\/p>\n<p>         Observation<\/p>\n<p>         \u2192<\/p>\n<p>         Verification<\/p>\n<p>         \u2192<\/p>\n<p>         Final\u00a0Result<\/p>\n<p>         \\\\text{Input}\\\\rightarrow\\\\text{Perception}\\\\rightarrow\\\\text{Plan} \\\\rightarrow\\\\text{Tool\/Model Action}\\\\rightarrow\\\\text{Observation} \\\\rightarrow\\\\text{Verification}\\\\rightarrow\\\\text{Final Result} <\/p>\n<p>     <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8778em;vertical-align: -0.1944em\"><\/span><span class=\"mord text\"><span class=\"mord\">Input<\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2192<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8778em;vertical-align: -0.1944em\"><\/span><span class=\"mord text\"><span class=\"mord\">Perception<\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2192<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.6944em\"><\/span><span class=\"mord text\"><span class=\"mord\">Plan<\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2192<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord text\"><span class=\"mord\">Tool\/Model\u00a0Action<\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2192<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.6944em\"><\/span><span class=\"mord text\"><span class=\"mord\">Observation<\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2192<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.6944em\"><\/span><span class=\"mord text\"><span class=\"mord\">Verification<\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2192<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.6944em\"><\/span><span class=\"mord text\"><span class=\"mord\">Final\u00a0Result<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n<p>\u91cd\u70b9\u8bb2\u6e05\u6a21\u578b\u8d1f\u8d23\u751f\u6210\u5019\u9009\u51b3\u7b56&#xff0c;\u4ee3\u7801\u8d1f\u8d23\u6743\u9650\u3001schema\u3001\u72b6\u6001\u3001\u9884\u7b97\u548c\u526f\u4f5c\u7528\u63a7\u5236\u3002\u9762\u8bd5\u5b98\u7ee7\u7eed\u8ffd\u95ee\u65f6&#xff0c;\u53ef\u4ee5\u5177\u4f53\u5c55\u5f00\u4e00\u4e2a\u6700\u96be\u7684 badcase&#xff1a;\u5b83\u53d1\u751f\u5728\u54ea\u4e00\u5c42&#xff0c;\u5982\u4f55\u5b9a\u4f4d&#xff0c;\u5c1d\u8bd5\u8fc7\u54ea\u4e9b\u65b9\u6848&#xff0c;\u6700\u7ec8\u7528\u4ec0\u4e48\u5bf9\u7167\u5b9e\u9a8c\u8bc1\u660e\u4fee\u590d\u6709\u6548\u3002\u8fd9\u6837\u9879\u76ee\u6df1\u6316\u56de\u7b54\u7684\u662f\u8bbe\u8ba1\u5224\u65ad\u548c\u5de5\u7a0b\u5f52\u56e0&#xff0c;\u800c\u4e0d\u662f\u6846\u67b6\u540d\u79f0\u3002<\/p>\n<h3>\u8bad\u7ec3\u76ee\u6807&#xff1a;\u7406\u89e3\u53cd\u9988\u4fe1\u53f7\u4e0e\u80fd\u529b\u66f4\u65b0<\/h3>\n<h4>2.ppo\u548cgrpo\u7684\u533a\u522b<\/h4>\n<p>\u56de\u7b54&#xff1a;<\/p>\n<p>PPO \u548c GRPO \u90fd\u5c5e\u4e8e\u57fa\u4e8e\u7b56\u7565\u4f18\u5316\u7684\u5f3a\u5316\u5b66\u4e60\u65b9\u6cd5&#xff0c;\u4f46\u5173\u952e\u5dee\u5f02\u5728\u4e8e\u4f18\u52bf\u4f30\u8ba1\u548c\u662f\u5426\u9700\u8981\u72ec\u7acb\u7684 Critic\/Value Model\u3002<\/p>\n<p>\u5728\u5e38\u89c1\u7684 LLM RLHF \u5b9e\u73b0\u4e2d&#xff0c;PPO \u8bad\u7ec3\u7cfb\u7edf\u901a\u5e38\u7ef4\u62a4\u5f53\u524d\u7b56\u7565 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         \u03c0<\/p>\n<p>         \u03b8<\/p>\n<p>       \\\\pi_\\\\theta<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.5806em;vertical-align: -0.15em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">\u03c0<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0278em\">\u03b8<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>\u3001\u51bb\u7ed3\u53c2\u8003\u7b56\u7565 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         \u03c0<\/p>\n<p>          r<\/p>\n<p>          e<\/p>\n<p>          f<\/p>\n<p>       \\\\pi_{ref}<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.7167em;vertical-align: -0.2861em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">\u03c0<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"mord mathnormal mtight\">e<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.1076em\">f<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>\u3001\u5956\u52b1\u6a21\u578b\u4ee5\u53ca\u4ef7\u503c\u6a21\u578b\u3002\u5bf9\u91c7\u6837\u8f68\u8ff9\u8ba1\u7b97\u56de\u62a5\u548c\u4f18\u52bf <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         A<\/p>\n<p>         t<\/p>\n<p>       A_t<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8333em;vertical-align: -0.15em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\">A<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2806em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">t<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>&#xff0c;\u7136\u540e\u7528\u88c1\u526a\u76ee\u6807\u9650\u5236\u7b56\u7565\u66f4\u65b0\u5e45\u5ea6&#xff1a;<\/p>\n<p><span class=\"katex--display\"><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>          L<\/p>\n<p>           C<\/p>\n<p>           L<\/p>\n<p>           I<\/p>\n<p>           P<\/p>\n<p>         (<\/p>\n<p>         \u03b8<\/p>\n<p>         )<\/p>\n<p>         &#061;<\/p>\n<p>          E<\/p>\n<p>          t<\/p>\n<p>          [<\/p>\n<p>          min<\/p>\n<p>          \u2061<\/p>\n<p>           (<\/p>\n<p>            r<\/p>\n<p>            t<\/p>\n<p>           (<\/p>\n<p>           \u03b8<\/p>\n<p>           )<\/p>\n<p>            A<\/p>\n<p>            t<\/p>\n<p>           ,<\/p>\n<p>           clip<\/p>\n<p>           \u2061<\/p>\n<p>           (<\/p>\n<p>            r<\/p>\n<p>            t<\/p>\n<p>           (<\/p>\n<p>           \u03b8<\/p>\n<p>           )<\/p>\n<p>           ,<\/p>\n<p>           1<\/p>\n<p>           \u2212<\/p>\n<p>           \u03f5<\/p>\n<p>           ,<\/p>\n<p>           1<\/p>\n<p>           &#043;<\/p>\n<p>           \u03f5<\/p>\n<p>           )<\/p>\n<p>            A<\/p>\n<p>            t<\/p>\n<p>           )<\/p>\n<p>          ]<\/p>\n<p>         L^{CLIP}(\\\\theta)&#061; \\\\mathbb{E}_t\\\\left[ \\\\min\\\\left(r_t(\\\\theta)A_t, \\\\operatorname{clip}(r_t(\\\\theta),1-\\\\epsilon,1&#043;\\\\epsilon)A_t\\\\right) \\\\right] <\/p>\n<p>     <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1.1413em;vertical-align: -0.25em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\">L<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.8913em\"><span class=\"\" style=\"top: -3.113em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0715em\">C<\/span><span class=\"mord mathnormal mtight\">L<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0785em\">I<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.1389em\">P<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">\u03b8<\/span><span class=\"mclose\">)<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord\"><span class=\"mord mathbb\">E<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2806em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">t<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top: 0em\">[<\/span><span class=\"mop\">min<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top: 0em\">(<\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2806em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0278em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">t<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">\u03b8<\/span><span class=\"mclose\">)<\/span><span class=\"mord\"><span class=\"mord mathnormal\">A<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2806em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">t<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mop\"><span class=\"mord mathrm\">clip<\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2806em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0278em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">t<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">\u03b8<\/span><span class=\"mclose\">)<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">1<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">\u2212<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mord mathnormal\">\u03f5<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">1<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">&#043;<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mord mathnormal\">\u03f5<\/span><span class=\"mclose\">)<\/span><span class=\"mord\"><span class=\"mord mathnormal\">A<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2806em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">t<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mclose delimcenter\" style=\"top: 0em\">)<\/span><\/span><span class=\"mclose delimcenter\" style=\"top: 0em\">]<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n<p>\u5176\u4e2d<\/p>\n<p><span class=\"katex--display\"><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>          r<\/p>\n<p>          t<\/p>\n<p>         (<\/p>\n<p>         \u03b8<\/p>\n<p>         )<\/p>\n<p>         &#061;<\/p>\n<p>            \u03c0<\/p>\n<p>            \u03b8<\/p>\n<p>           (<\/p>\n<p>            a<\/p>\n<p>            t<\/p>\n<p>           \u2223<\/p>\n<p>            s<\/p>\n<p>            t<\/p>\n<p>           )<\/p>\n<p>            \u03c0<\/p>\n<p>             o<\/p>\n<p>             l<\/p>\n<p>             d<\/p>\n<p>           (<\/p>\n<p>            a<\/p>\n<p>            t<\/p>\n<p>           \u2223<\/p>\n<p>            s<\/p>\n<p>            t<\/p>\n<p>           )<\/p>\n<p>         .<\/p>\n<p>         r_t(\\\\theta)&#061;\\\\frac{\\\\pi_\\\\theta(a_t|s_t)}{\\\\pi_{old}(a_t|s_t)}. <\/p>\n<p>     <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2806em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0278em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">t<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">\u03b8<\/span><span class=\"mclose\">)<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 2.363em;vertical-align: -0.936em\"><\/span><span class=\"mord\"><span class=\"mopen nulldelimiter\"><\/span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 1.427em\"><span class=\"\" style=\"top: -2.314em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">\u03c0<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">o<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0197em\">l<\/span><span class=\"mord mathnormal mtight\">d<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mord\"><span class=\"mord mathnormal\">a<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2806em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">t<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\">\u2223<\/span><span class=\"mord\"><span class=\"mord mathnormal\">s<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2806em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">t<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mclose\">)<\/span><\/span><\/span><span class=\"\" style=\"top: -3.23em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"frac-line\" style=\"border-bottom-width: 0.04em\"><\/span><\/span><span class=\"\" style=\"top: -3.677em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">\u03c0<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0278em\">\u03b8<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mord\"><span class=\"mord mathnormal\">a<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2806em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">t<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\">\u2223<\/span><span class=\"mord\"><span class=\"mord mathnormal\">s<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2806em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">t<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mclose\">)<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.936em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><span class=\"mclose nulldelimiter\"><\/span><\/span><span class=\"mord\">.<\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n<p>PPO \u7684\u4f18\u52bf\u662f\u4f18\u52bf\u4f30\u8ba1\u8f83\u7ec6&#xff0c;\u53ef\u4ee5\u5229\u7528 token \u7ea7\u6216\u65f6\u95f4\u6b65\u7ea7 value&#xff1b;\u4ee3\u4ef7\u662f\u9700\u8981\u8bad\u7ec3\u548c\u7ef4\u62a4 Critic&#xff0c;\u663e\u5b58\u3001\u901a\u4fe1\u548c\u8bad\u7ec3\u7a33\u5b9a\u6027\u6210\u672c\u8f83\u9ad8\u3002\u5bf9\u8bed\u8a00\u6a21\u578b&#xff0c;\u5e38\u89c1\u505a\u6cd5\u662f\u52a0\u5165\u76f8\u5bf9\u53c2\u8003\u6a21\u578b\u7684 KL \u7ea6\u675f&#xff0c;\u63a7\u5236\u7b56\u7565\u504f\u79fb&#xff1b;\u8fd9\u4e0d\u662f PPO \u7b97\u6cd5\u5b9a\u4e49\u4e2d\u7684\u5fc5\u9009\u7ec4\u4ef6\u3002\u5956\u52b1\u4e5f\u53ef\u4ee5\u6765\u81ea\u53ef\u9a8c\u8bc1\u89c4\u5219\u6216\u73af\u5883&#xff0c;\u4e0d\u4e00\u5b9a\u6765\u81ea\u5b66\u4e60\u5f97\u5230\u7684\u5956\u52b1\u6a21\u578b\u3002<\/p>\n<p>\u8fd9\u91cc\u8981\u533a\u5206\u4e24\u4e2a\u201c\u65e7\u6a21\u578b\u201d&#xff1a;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         \u03c0<\/p>\n<p>          o<\/p>\n<p>          l<\/p>\n<p>          d<\/p>\n<p>       \\\\pi_{old}<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.5806em;vertical-align: -0.15em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">\u03c0<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">o<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0197em\">l<\/span><span class=\"mord mathnormal mtight\">d<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span> \u662f\u751f\u6210\u5f53\u524d\u8bad\u7ec3\u6570\u636e\u7684\u884c\u4e3a\u7b56\u7565\u5feb\u7167&#xff0c;\u7528\u4e8e\u91cd\u8981\u6027\u6bd4\u7387&#xff1b;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         \u03c0<\/p>\n<p>          r<\/p>\n<p>          e<\/p>\n<p>          f<\/p>\n<p>       \\\\pi_{ref}<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.7167em;vertical-align: -0.2861em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">\u03c0<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"mord mathnormal mtight\">e<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.1076em\">f<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span> \u662f\u6b63\u5219\u5316\u53c2\u7167&#xff0c;\u901a\u5e38\u4fdd\u6301\u51bb\u7ed3\u3002\u5b83\u4eec\u7684\u7528\u9014\u4e0d\u540c&#xff0c;\u4e0d\u80fd\u5728\u5b9e\u73b0\u4e2d\u6df7\u7528\u3002PPO \u7684\u88c1\u526a\u662f\u4ee3\u7406\u76ee\u6807\u4e2d\u7684\u66f4\u65b0\u7ea6\u675f&#xff0c;\u4e5f\u4e0d\u7b49\u4e8e\u7ed9\u771f\u5b9e KL \u8bbe\u7f6e\u4e86\u4e25\u683c\u4e0a\u754c\u3002<\/p>\n<p>GRPO \u7684\u5178\u578b\u505a\u6cd5\u662f\u5bf9\u540c\u4e00\u4e2a prompt \u91c7\u6837\u4e00\u7ec4\u56de\u7b54&#xff0c;\u5f97\u5230\u7ec4\u5185\u5956\u52b1 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         r<\/p>\n<p>          i<\/p>\n<p>          ,<\/p>\n<p>          1<\/p>\n<p>        ,<\/p>\n<p>        \u2026<\/p>\n<p>        ,<\/p>\n<p>         r<\/p>\n<p>          i<\/p>\n<p>          ,<\/p>\n<p>          G<\/p>\n<p>       r_{i,1},\\\\ldots,r_{i,G}<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.7167em;vertical-align: -0.2861em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3117em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0278em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">i<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mtight\">1<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"minner\">\u2026<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3283em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0278em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">i<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mathnormal mtight\">G<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>&#xff0c;\u7528\u7ec4\u5185\u5747\u503c\u548c\u6807\u51c6\u5dee\u6784\u9020\u76f8\u5bf9\u4f18\u52bf&#xff1a;<\/p>\n<p><span class=\"katex--display\"><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>          A<\/p>\n<p>           i<\/p>\n<p>           ,<\/p>\n<p>           j<\/p>\n<p>         &#061;<\/p>\n<p>            r<\/p>\n<p>             i<\/p>\n<p>             ,<\/p>\n<p>             j<\/p>\n<p>           \u2212<\/p>\n<p>           mean<\/p>\n<p>           \u2061<\/p>\n<p>           (<\/p>\n<p>            r<\/p>\n<p>            i<\/p>\n<p>           )<\/p>\n<p>           std<\/p>\n<p>           \u2061<\/p>\n<p>           (<\/p>\n<p>            r<\/p>\n<p>            i<\/p>\n<p>           )<\/p>\n<p>           &#043;<\/p>\n<p>           \u03f5<\/p>\n<p>         .<\/p>\n<p>         A_{i,j}&#061;\\\\frac{r_{i,j}-\\\\operatorname{mean}(r_i)} {\\\\operatorname{std}(r_i)&#043;\\\\epsilon}. <\/p>\n<p>     <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.9694em;vertical-align: -0.2861em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\">A<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3117em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">i<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0572em\">j<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 2.363em;vertical-align: -0.936em\"><\/span><span class=\"mord\"><span class=\"mopen nulldelimiter\"><\/span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 1.427em\"><span class=\"\" style=\"top: -2.314em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"mord\"><span class=\"mop\"><span class=\"mord mathrm\">std<\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3117em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0278em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">i<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mclose\">)<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">&#043;<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mord mathnormal\">\u03f5<\/span><\/span><\/span><span class=\"\" style=\"top: -3.23em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"frac-line\" style=\"border-bottom-width: 0.04em\"><\/span><\/span><span class=\"\" style=\"top: -3.677em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3117em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0278em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">i<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0572em\">j<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">\u2212<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mop\"><span class=\"mord mathrm\">mean<\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3117em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0278em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">i<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mclose\">)<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.936em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><span class=\"mclose nulldelimiter\"><\/span><\/span><span class=\"mord\">.<\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n<p>\u5b83\u4e0d\u4f9d\u8d56\u5355\u72ec\u7684 Critic&#xff0c;\u800c\u662f\u7528\u540c\u4e00\u95ee\u9898\u7684\u7ec4\u5185\u76f8\u5bf9\u8868\u73b0\u8fd1\u4f3c\u4f18\u52bf&#xff0c;\u56e0\u6b64\u964d\u4f4e\u4e86 value model \u7684\u663e\u5b58\u4e0e\u62df\u5408\u6210\u672c&#xff0c;\u7279\u522b\u9002\u5408\u6570\u5b66\u3001\u4ee3\u7801\u3001\u7ed3\u6784\u5316\u5de5\u5177\u8c03\u7528\u7b49\u6709\u53ef\u9a8c\u8bc1 reward \u7684\u4efb\u52a1\u3002\u4ee3\u4ef7\u662f\u6bcf\u4e2a prompt \u9700\u8981\u751f\u6210\u591a\u4e2a response&#xff0c;Rollout \u6210\u672c\u9ad8&#xff1b;\u5982\u679c\u4e00\u7ec4\u56de\u7b54\u5956\u52b1\u51e0\u4e4e\u76f8\u540c&#xff0c;\u4f18\u52bf\u4fe1\u53f7\u63a5\u8fd1 0&#xff1b;\u5956\u52b1\u6a21\u578b\u6216\u89c4\u5219\u4e0d\u53ef\u9760\u65f6&#xff0c;\u7ec4\u5185\u6392\u5e8f\u4f1a\u628a\u9519\u8bef\u504f\u597d\u653e\u5927\u3002<\/p>\n<p>\u4e24\u8005\u90fd\u4e0d\u662f\u201c\u5929\u7136\u7a33\u5b9a\u201d\u6216\u201c\u53ea\u9002\u5408\u67d0\u79cd\u6a21\u578b\u201d\u3002\u5b9e\u9645\u9009\u62e9\u8981\u770b reward \u662f\u5426\u53ef\u9a8c\u8bc1\u3001Rollout \u541e\u5410\u3001Critic \u6210\u672c\u3001\u8f68\u8ff9\u957f\u5ea6\u548c\u4efb\u52a1\u65b9\u5dee\u3002\u5de5\u7a0b\u4e0a\u8fd8\u8981\u76d1\u63a7 KL\u3001clip fraction\u3001\u5956\u52b1\u5206\u5e03\u3001\u7ec4\u5185\u65b9\u5dee\u3001\u957f\u5ea6\u504f\u7f6e\u3001\u71b5\u3001\u4efb\u52a1\u6210\u529f\u7387\u548c\u901a\u7528\u80fd\u529b\u3002\u5bf9\u4e8e\u5de5\u5177\u8c03\u7528\u6216\u591a\u6a21\u6001\u4efb\u52a1&#xff0c;reward \u6700\u597d\u62c6\u6210\u683c\u5f0f\u5408\u6cd5\u3001\u5de5\u5177\u6b63\u786e\u3001\u4efb\u52a1\u5b8c\u6210\u3001\u4e8b\u5b9e\u4e00\u81f4\u548c\u5b89\u5168\u7b49\u4fe1\u53f7&#xff0c;\u4e0d\u80fd\u53ea\u7528\u4e00\u4e2a\u6a21\u7cca\u7684\u6a21\u578b\u8bc4\u5206\u3002<\/p>\n<p>\u7ec4\u5185\u4f18\u52bf\u662f\u4e00\u79cd\u76f8\u5bf9\u4fe1\u53f7\u3002\u4f8b\u5982\u540c\u9898\u56db\u4e2a\u56de\u7b54\u5956\u52b1\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        [<\/p>\n<p>        0<\/p>\n<p>        ,<\/p>\n<p>        0<\/p>\n<p>        ,<\/p>\n<p>        1<\/p>\n<p>        ,<\/p>\n<p>        1<\/p>\n<p>        ]<\/p>\n<p>       [0,0,1,1]<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mopen\">[<\/span><span class=\"mord\">0<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">0<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">1<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">1<\/span><span class=\"mclose\">]<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u91c7\u7528\u603b\u4f53\u6807\u51c6\u5dee\u5e76\u5ffd\u7565\u6570\u503c\u7a33\u5b9a\u9879\u65f6&#xff0c;\u4f18\u52bf\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        [<\/p>\n<p>        \u2212<\/p>\n<p>        1<\/p>\n<p>        ,<\/p>\n<p>        \u2212<\/p>\n<p>        1<\/p>\n<p>        ,<\/p>\n<p>        1<\/p>\n<p>        ,<\/p>\n<p>        1<\/p>\n<p>        ]<\/p>\n<p>       [-1,-1,1,1]<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mopen\">[<\/span><span class=\"mord\">\u2212<\/span><span class=\"mord\">1<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">\u2212<\/span><span class=\"mord\">1<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">1<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">1<\/span><span class=\"mclose\">]<\/span><\/span><\/span><\/span><\/span>&#xff1b;\u82e5\u5956\u52b1\u5168\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        1<\/p>\n<p>       1<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">1<\/span><\/span><\/span><\/span><\/span> \u6216\u5168\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        0<\/p>\n<p>       0<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">0<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u8be5\u7ec4\u7684\u5956\u52b1\u4f18\u52bf\u5747\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        0<\/p>\n<p>       0<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">0<\/span><\/span><\/span><\/span><\/span>\u3002\u8fd9\u65f6\u5956\u52b1\u9a71\u52a8\u7684\u7b56\u7565\u68af\u5ea6\u6d88\u5931&#xff0c;\u4f46\u82e5\u76ee\u6807\u542b KL \u9879&#xff0c;\u5176\u68af\u5ea6\u4ecd\u53ef\u80fd\u5b58\u5728\u3002\u201c\u5168\u7b54\u5bf9\u201d\u548c\u201c\u5168\u7b54\u9519\u201d\u90fd\u6ca1\u6709\u533a\u5206\u5ea6&#xff0c;\u80cc\u540e\u7684\u6570\u636e\u96be\u5ea6\u95ee\u9898\u5374\u5b8c\u5168\u4e0d\u540c\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260916051643-6aaa263b5974d.png\" alt=\"\u56fe1 PPO\u3001GRPO\u4e0eDPO\u7684\u8bad\u7ec3\u4fe1\u53f7\" \/><\/p>\n<p>\u56fe 1 \u6bd4\u8f83\u4e09\u79cd\u5178\u578b\u8bad\u7ec3\u8def\u7ebf\u3002GRPO \u5220\u9664\u72ec\u7acb\u4ef7\u503c\u6a21\u578b&#xff0c;\u5374\u589e\u52a0\u540c\u9898\u591a\u56de\u7b54\u91c7\u6837\u9700\u6c42&#xff1b;DPO \u4f7f\u7528\u5df2\u6709\u504f\u597d\u5bf9\u505a\u79bb\u7ebf\u4f18\u5316\u3002\u5e94\u6bd4\u8f83\u5b8c\u6574\u8bad\u7ec3\u95ed\u73af\u7684\u6210\u672c&#xff0c;\u4e0d\u80fd\u53ea\u6bd4\u8f83\u5e38\u9a7b\u6a21\u578b\u6570\u91cf\u3002<\/p>\n<h4>3.\u4e3a\u4ec0\u4e48\u8981\u505adpo<\/h4>\n<p>\u56de\u7b54&#xff1a;<\/p>\n<p>DPO \u7684\u52a8\u673a\u662f&#xff1a;\u5f88\u591a\u573a\u666f\u80fd\u591f\u6536\u96c6\u201c\u540c\u4e00\u4e2a prompt \u4e0b\u56de\u7b54 A \u6bd4\u56de\u7b54 B \u597d\u201d\u7684\u504f\u597d\u6570\u636e&#xff0c;\u4f46\u76f4\u63a5\u505a PPO \u9700\u8981\u5728\u7ebf rollout\u3001Reward Model\u3001Value Model \u548c\u590d\u6742\u7684\u7a33\u5b9a\u6027\u63a7\u5236\u3002DPO \u4ece KL \u6b63\u5219\u5316 RLHF \u7684\u6700\u4f18\u7b56\u7565\u5f62\u5f0f\u51fa\u53d1&#xff0c;\u6d88\u53bb\u663e\u5f0f\u5956\u52b1\u6a21\u578b&#xff0c;\u76f4\u63a5\u7528\u504f\u597d\u5bf9\u8bad\u7ec3\u7b56\u7565\u3002<\/p>\n<p>\u6570\u636e\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        (<\/p>\n<p>        x<\/p>\n<p>        ,<\/p>\n<p>         y<\/p>\n<p>         w<\/p>\n<p>        ,<\/p>\n<p>         y<\/p>\n<p>         l<\/p>\n<p>        )<\/p>\n<p>       (x,y_w,y_l)<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">x<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">y<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1514em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0269em\">w<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">y<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0197em\">l<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mclose\">)<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u5176\u4e2d <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         y<\/p>\n<p>         w<\/p>\n<p>       y_w<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.625em;vertical-align: -0.1944em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">y<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1514em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0269em\">w<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span> \u662f chosen&#xff0c;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         y<\/p>\n<p>         l<\/p>\n<p>       y_l<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.625em;vertical-align: -0.1944em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">y<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0197em\">l<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span> \u662f rejected\u3002DPO \u7684\u6838\u5fc3\u76ee\u6807\u662f&#xff1a;<\/p>\n<p><span class=\"katex--display\"><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>          L<\/p>\n<p>           D<\/p>\n<p>           P<\/p>\n<p>           O<\/p>\n<p>         (<\/p>\n<p>         \u03b8<\/p>\n<p>         )<\/p>\n<p>         &#061;<\/p>\n<p>         \u2212<\/p>\n<p>         log<\/p>\n<p>         \u2061<\/p>\n<p>         \u03c3<\/p>\n<p>          (<\/p>\n<p>          \u03b2<\/p>\n<p>           [<\/p>\n<p>           log<\/p>\n<p>           \u2061<\/p>\n<p>              \u03c0<\/p>\n<p>              \u03b8<\/p>\n<p>             (<\/p>\n<p>              y<\/p>\n<p>              w<\/p>\n<p>             \u2223<\/p>\n<p>             x<\/p>\n<p>             )<\/p>\n<p>              \u03c0<\/p>\n<p>               r<\/p>\n<p>               e<\/p>\n<p>               f<\/p>\n<p>             (<\/p>\n<p>              y<\/p>\n<p>              w<\/p>\n<p>             \u2223<\/p>\n<p>             x<\/p>\n<p>             )<\/p>\n<p>           \u2212<\/p>\n<p>           log<\/p>\n<p>           \u2061<\/p>\n<p>              \u03c0<\/p>\n<p>              \u03b8<\/p>\n<p>             (<\/p>\n<p>              y<\/p>\n<p>              l<\/p>\n<p>             \u2223<\/p>\n<p>             x<\/p>\n<p>             )<\/p>\n<p>              \u03c0<\/p>\n<p>               r<\/p>\n<p>               e<\/p>\n<p>               f<\/p>\n<p>             (<\/p>\n<p>              y<\/p>\n<p>              l<\/p>\n<p>             \u2223<\/p>\n<p>             x<\/p>\n<p>             )<\/p>\n<p>           ]<\/p>\n<p>          )<\/p>\n<p>         .<\/p>\n<p>         \\\\mathcal{L}_{DPO}(\\\\theta)&#061; -\\\\log\\\\sigma\\\\left(\\\\beta\\\\left[ \\\\log\\\\frac{\\\\pi_\\\\theta(y_w|x)}{\\\\pi_{ref}(y_w|x)} -\\\\log\\\\frac{\\\\pi_\\\\theta(y_l|x)}{\\\\pi_{ref}(y_l|x)} \\\\right]\\\\right). <\/p>\n<p>     <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord\"><span class=\"mord mathcal\">L<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3283em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0278em\">D<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.1389em\">P<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0278em\">O<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">\u03b8<\/span><span class=\"mclose\">)<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 2.4221em;vertical-align: -0.9721em\"><\/span><span class=\"mord\">\u2212<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mop\">lo<span style=\"margin-right: 0.0139em\">g<\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">\u03c3<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top: 0em\"><span class=\"delimsizing size3\">(<\/span><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0528em\">\u03b2<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top: 0em\"><span class=\"delimsizing size3\">[<\/span><\/span><span class=\"mop\">lo<span style=\"margin-right: 0.0139em\">g<\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\"><span class=\"mopen nulldelimiter\"><\/span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 1.427em\"><span class=\"\" style=\"top: -2.314em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">\u03c0<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"mord mathnormal mtight\">e<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.1076em\">f<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">y<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1514em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0269em\">w<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\">\u2223<\/span><span class=\"mord mathnormal\">x<\/span><span class=\"mclose\">)<\/span><\/span><\/span><span class=\"\" style=\"top: -3.23em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"frac-line\" style=\"border-bottom-width: 0.04em\"><\/span><\/span><span class=\"\" style=\"top: -3.677em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">\u03c0<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0278em\">\u03b8<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">y<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1514em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0269em\">w<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\">\u2223<\/span><span class=\"mord mathnormal\">x<\/span><span class=\"mclose\">)<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.9721em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><span class=\"mclose nulldelimiter\"><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">\u2212<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mop\">lo<span style=\"margin-right: 0.0139em\">g<\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\"><span class=\"mopen nulldelimiter\"><\/span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 1.427em\"><span class=\"\" style=\"top: -2.314em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">\u03c0<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"mord mathnormal mtight\">e<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.1076em\">f<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">y<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0197em\">l<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\">\u2223<\/span><span class=\"mord mathnormal\">x<\/span><span class=\"mclose\">)<\/span><\/span><\/span><span class=\"\" style=\"top: -3.23em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"frac-line\" style=\"border-bottom-width: 0.04em\"><\/span><\/span><span class=\"\" style=\"top: -3.677em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">\u03c0<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0278em\">\u03b8<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0359em\">y<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0359em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0197em\">l<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\">\u2223<\/span><span class=\"mord mathnormal\">x<\/span><span class=\"mclose\">)<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.9721em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><span class=\"mclose nulldelimiter\"><\/span><\/span><span class=\"mclose delimcenter\" style=\"top: 0em\"><span class=\"delimsizing size3\">]<\/span><\/span><\/span><span class=\"mclose delimcenter\" style=\"top: 0em\"><span class=\"delimsizing size3\">)<\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">.<\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n<p>\u8bad\u7ec3\u65f6\u4f7f\u7528\u7b56\u7565\u6a21\u578b\u548c\u51bb\u7ed3\u53c2\u8003\u6a21\u578b\u5bf9 chosen\/rejected \u505a teacher forcing&#xff0c;\u53ea\u7d2f\u8ba1 completion token \u7684\u5bf9\u6570\u6982\u7387&#xff0c;\u4e0d\u628a prompt\u3001padding \u6216\u9519\u8bef\u7684 mask \u7b97\u8fdb\u56de\u7b54\u6982\u7387\u3002DPO \u4f18\u5316\u7684\u662f chosen \u4e0e rejected \u76f8\u5bf9\u53c2\u8003\u6a21\u578b\u7684\u5bf9\u6570\u6982\u7387\u5dee\u8ddd&#xff1b;\u5b83\u4e0d\u4fdd\u8bc1\u6bcf\u4e00\u6b65 chosen \u7684\u7edd\u5bf9\u6982\u7387\u90fd\u4e0a\u5347\u3001rejected \u7684\u7edd\u5bf9\u6982\u7387\u90fd\u4e0b\u964d\u3002\u5728\u7406\u8bba\u63a8\u5bfc\u4e2d&#xff0c;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        \u03b2<\/p>\n<p>       \\\\beta<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8889em;vertical-align: -0.1944em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0528em\">\u03b2<\/span><\/span><\/span><\/span><\/span> \u5bf9\u5e94 KL \u6b63\u5219\u5f3a\u5ea6&#xff1b;\u5728\u6709\u9650\u6570\u636e\u8bad\u7ec3\u4e2d&#xff0c;\u5b83\u4e5f\u6539\u53d8 sigmoid \u7684\u5c3a\u5ea6\u548c\u68af\u5ea6&#xff0c;\u4e0d\u80fd\u8131\u79bb\u5b66\u4e60\u7387\u4e0e\u8bad\u7ec3\u65f6\u957f\u5355\u72ec\u89e3\u91ca\u3002<\/p>\n<p>\u505a DPO \u7684\u4e3b\u8981\u4ef7\u503c\u6709\u4e09\u70b9&#xff1a;<\/p>\n<li>\u4e0d\u9700\u8981\u663e\u5f0f\u8bad\u7ec3 Reward Model \u548c Critic&#xff0c;\u8bad\u7ec3\u94fe\u8def\u66f4\u77ed\u3001\u8c03\u53c2\u66f4\u76f4\u63a5&#xff1b;<\/li>\n<li>\u4e0d\u9700\u8981\u6bcf\u8f6e\u4e0e\u771f\u5b9e\u73af\u5883\u5728\u7ebf\u4ea4\u4e92&#xff0c;\u6210\u672c\u548c\u5de5\u7a0b\u590d\u6742\u5ea6\u8f83\u4f4e&#xff1b;<\/li>\n<li>\u5bf9\u98ce\u683c\u3001\u5e2e\u52a9\u6027\u3001\u683c\u5f0f\u3001\u62d2\u7b54\u548c\u504f\u597d\u6392\u5e8f\u7b49\u79bb\u7ebf\u504f\u597d\u4efb\u52a1\u6bd4\u8f83\u5b9e\u7528\u3002<\/li>\n<p>\u4f46 DPO \u4e0d\u662f\u514d\u8d39\u5348\u9910\u3002\u5b83\u53d7\u504f\u597d\u6570\u636e\u8986\u76d6\u3001\u6807\u6ce8\u4e00\u81f4\u6027\u3001chosen\/rejected \u8d28\u91cf\u548c\u53c2\u8003\u6a21\u578b\u80fd\u529b\u9650\u5236&#xff1b;\u5982\u679c\u6570\u636e\u5b58\u5728\u957f\u5ea6\u504f\u597d\u3001\u4f4d\u7f6e\u504f\u597d\u6216\u6807\u6ce8\u8005\u504f\u5dee&#xff0c;\u6a21\u578b\u4f1a\u5b66\u4e60\u8fd9\u4e9b\u4f2a\u76f8\u5173&#xff1b;\u5982\u679c\u4efb\u52a1\u9700\u8981\u591a\u6b65\u5de5\u5177\u4ea4\u4e92\u6216\u73af\u5883\u53cd\u9988&#xff0c;\u9759\u6001\u56de\u7b54\u504f\u597d\u672a\u5fc5\u80fd\u6559\u4f1a\u6b63\u786e\u7684\u884c\u52a8\u7b56\u7565\u3002\u5b9e\u8df5\u4e2d\u5e94\u540c\u65f6\u8bc4\u4f30\u504f\u597d\u51c6\u786e\u7387\u3001\u4e8b\u5b9e\u6027\u3001\u5b89\u5168\u6027\u3001\u957f\u5ea6\u5206\u5e03\u3001KL \u6f02\u79fb\u3001\u901a\u7528\u80fd\u529b\u548c\u771f\u5b9e\u4efb\u52a1\u6210\u529f\u7387&#xff0c;\u5e76\u6839\u636e\u95ee\u9898\u9009\u62e9 DPO\u3001IPO\u3001KTO\u3001ORPO \u6216\u5728\u7ebf RL&#xff0c;\u800c\u4e0d\u662f\u628a DPO \u5f53\u4f5c\u6240\u6709\u5bf9\u9f50\u95ee\u9898\u7684\u9ed8\u8ba4\u7b54\u6848\u3002<\/p>\n<h4>4.\u6301\u7eed\u5b66\u4e60\u65b9\u6cd5\u7684\u5206\u7c7b<\/h4>\n<p>\u56de\u7b54&#xff1a;<\/p>\n<p>\u6301\u7eed\u5b66\u4e60\u662f\u8ba9\u6a21\u578b\u5728\u6570\u636e\u5206\u5e03\u3001\u4efb\u52a1\u6216\u77e5\u8bc6\u4e0d\u65ad\u53d8\u5316\u65f6\u5438\u6536\u65b0\u4fe1\u606f&#xff0c;\u540c\u65f6\u5c3d\u91cf\u4e0d\u7834\u574f\u65e7\u80fd\u529b\u3002\u5b83\u4e0e\u7b80\u5355\u5730\u5468\u671f\u6027\u91cd\u65b0\u8bad\u7ec3\u4e0d\u540c&#xff0c;\u6838\u5fc3\u77db\u76fe\u662f\u201c\u9002\u5e94\u65b0\u5206\u5e03\u201d\u548c\u201c\u907f\u514d\u707e\u96be\u6027\u9057\u5fd8\u201d\u3002\u53ef\u4ee5\u6309\u8bb0\u5fc6\u3001\u53c2\u6570\u66f4\u65b0\u548c\u6a21\u578b\u7ed3\u6784\u5206\u4e3a\u51e0\u7c7b&#xff1a;<\/p>\n<li>\u57fa\u4e8e\u56de\u653e&#xff08;Replay-based&#xff09;\u3002 \u4fdd\u5b58\u5386\u53f2\u6837\u672c\u3001\u539f\u578b\u3001\u7279\u5f81\u6216\u751f\u6210\u5f0f\u65e7\u6837\u672c&#xff0c;\u5728\u8bad\u7ec3\u65b0\u6570\u636e\u65f6\u6df7\u5408\u56de\u653e\u3002\u4f18\u70b9\u662f\u76f4\u63a5\u7ea6\u675f\u65e7\u4efb\u52a1&#xff0c;\u7f3a\u70b9\u662f\u5b58\u50a8\u3001\u9690\u79c1\u3001\u91c7\u6837\u6bd4\u4f8b\u548c\u6570\u636e\u65f6\u6548\u9700\u8981\u7ba1\u7406\u3002\u4f01\u4e1a\u573a\u666f\u4e2d\u5e38\u7528\u8131\u654f replay buffer \u548c\u56f0\u96be\u6837\u672c\u4f18\u5148\u56de\u653e\u3002<\/li>\n<li>\u57fa\u4e8e\u6b63\u5219\u5316&#xff08;Regularization-based&#xff09;\u3002 \u7528\u53c2\u6570\u91cd\u8981\u6027\u7ea6\u675f\u65b0\u4efb\u52a1\u4e0d\u8981\u5927\u5e45\u6539\u53d8\u5bf9\u65e7\u4efb\u52a1\u91cd\u8981\u7684\u53c2\u6570&#xff0c;\u4f8b\u5982 EWC&#xff1b;\u4e5f\u53ef\u4ee5\u7528\u65e7\u6a21\u578b logits\u3001\u8868\u793a\u6216\u8f93\u51fa\u5206\u5e03\u505a\u84b8\u998f\u3002\u4f18\u70b9\u662f\u6a21\u578b\u7ed3\u6784\u4e0d\u53d8&#xff0c;\u7f3a\u70b9\u662f\u91cd\u8981\u6027\u4f30\u8ba1\u53ef\u80fd\u5931\u771f&#xff0c;\u4efb\u52a1\u5dee\u5f02\u5927\u65f6\u4f1a\u9650\u5236\u65b0\u80fd\u529b\u3002<\/li>\n<li>\u57fa\u4e8e\u53c2\u6570\u9694\u79bb\u6216\u9002\u914d\u5668\u3002 \u4e3a\u4e0d\u540c\u9886\u57df\u3001\u79df\u6237\u6216\u65f6\u95f4\u6bb5\u7ef4\u62a4 LoRA\/Adapter\u3001Prompt \u53c2\u6570\u6216\u4e13\u5bb6\u6a21\u5757&#xff0c;\u63a8\u7406\u65f6\u9009\u62e9\u6216\u878d\u5408\u5bf9\u5e94\u6a21\u5757\u3002\u5b83\u964d\u4f4e\u4e86\u65e7\u77e5\u8bc6\u88ab\u8986\u76d6\u7684\u98ce\u9669&#xff0c;\u4f46\u4f1a\u5e26\u6765\u9002\u914d\u5668\u7ba1\u7406\u3001\u8def\u7531\u3001\u7ec4\u5408\u51b2\u7a81\u548c\u90e8\u7f72\u5185\u5b58\u6210\u672c\u3002<\/li>\n<li>\u57fa\u4e8e\u67b6\u6784\u6269\u5c55\u3002 \u589e\u52a0\u65b0\u4e13\u5bb6\u3001\u65b0\u5934\u6216\u65b0\u6a21\u5757&#xff0c;\u628a\u65b0\u80fd\u529b\u653e\u5230\u72ec\u7acb\u53c2\u6570\u7a7a\u95f4\u3002\u5bb9\u91cf\u66f4\u7075\u6d3b&#xff0c;\u4f46\u9700\u8981\u89e3\u51b3\u8def\u7531\u3001\u8d1f\u8f7d\u5747\u8861\u3001\u7248\u672c\u6cbb\u7406\u548c\u6a21\u578b\u89c4\u6a21\u81a8\u80c0\u3002<\/li>\n<li>\u57fa\u4e8e\u68c0\u7d22\u4e0e\u5916\u90e8\u8bb0\u5fc6\u3002 \u4e0d\u7acb\u5373\u4fee\u6539\u6a21\u578b\u53c2\u6570&#xff0c;\u800c\u662f\u628a\u65b0\u77e5\u8bc6\u5199\u5165\u6587\u6863\u5e93\u3001\u5411\u91cf\u5e93\u3001\u6570\u636e\u5e93\u6216\u7ed3\u6784\u5316\u8bb0\u5fc6&#xff0c;\u901a\u8fc7 RAG\/\u5de5\u5177\u5728\u63a8\u7406\u65f6\u53d6\u56de\u3002\u5b83\u66f4\u65b0\u5feb\u3001\u53ef\u8ffd\u6eaf&#xff0c;\u9002\u5408\u65f6\u6548\u6027\u77e5\u8bc6&#xff1b;\u4f46\u4e0d\u80fd\u66ff\u4ee3\u6a21\u578b\u5bf9\u65b0\u884c\u4e3a\u6a21\u5f0f\u7684\u5b66\u4e60&#xff0c;\u4ecd\u8981\u5904\u7406\u53ec\u56de\u3001\u6743\u9650\u3001\u51b2\u7a81\u548c\u8fc7\u671f\u3002<\/li>\n<li>\u5468\u671f\u6027\u91cd\u8bad\u6216\u589e\u91cf\u9884\u8bad\u7ec3\u3002 \u5b9a\u671f\u5408\u5e76\u65b0\u65e7\u6570\u636e\u8fdb\u884c continued pretraining\u3001SFT \u6216\u504f\u597d\u4f18\u5316\u3002\u8d28\u91cf\u4e0a\u9650\u8f83\u9ad8&#xff0c;\u4f46\u8ba1\u7b97\u6210\u672c\u5927&#xff0c;\u6570\u636e\u6df7\u5408\u3001\u7248\u672c\u56de\u6eda\u548c\u9057\u5fd8\u8bc4\u4f30\u4e0d\u53ef\u7701\u7565\u3002<\/li>\n<p>\u4e25\u683c\u6765\u8bf4&#xff0c;\u56de\u653e\u3001\u6b63\u5219\u5316\u3001\u53c2\u6570\u9694\u79bb\u4e0e\u67b6\u6784\u6269\u5c55\u662f\u6301\u7eed\u5b66\u4e60\u7b97\u6cd5\u7684\u4e3b\u8981\u5206\u7c7b&#xff1b;\u68c0\u7d22\u662f\u7cfb\u7edf\u5c42\u9762\u7684\u77e5\u8bc6\u66f4\u65b0\u65b9\u6848&#xff0c;\u5468\u671f\u6027\u91cd\u8bad\u5219\u662f\u66f4\u65b0\u6d41\u7a0b\u3002\u5b83\u4eec\u53ef\u4ee5\u7ec4\u5408&#xff0c;\u4f46 RAG \u4e0d\u76f4\u63a5\u89e3\u51b3\u53c2\u6570\u66f4\u65b0\u9020\u6210\u7684\u707e\u96be\u6027\u9057\u5fd8\u3002\u8bc4\u4f30\u65f6\u8fd8\u9700\u8981\u8bf4\u660e\u4efb\u52a1\u8fb9\u754c\u662f\u5426\u53ef\u77e5\u3001\u5386\u53f2\u6570\u636e\u80fd\u5426\u4fdd\u7559&#xff0c;\u4ee5\u53ca\u6d4b\u8bd5\u65f6\u80fd\u5426\u83b7\u5f97\u4efb\u52a1 ID\u3002<\/p>\n<p>\u9009\u578b\u8981\u5148\u5224\u65ad\u53d8\u5316\u7684\u662f\u77e5\u8bc6\u3001\u884c\u4e3a\u3001\u4efb\u52a1\u8fd8\u662f\u8f93\u5165\u5206\u5e03&#xff1a;\u77e5\u8bc6\u66f4\u65b0\u4f18\u5148\u8003\u8651\u68c0\u7d22&#xff1b;\u683c\u5f0f\u548c\u884c\u4e3a\u53d8\u5316\u53ef\u4ee5\u8003\u8651 SFT\/Adapter\/DPO&#xff1b;\u9700\u8981\u5b66\u4e60\u53ef\u9a8c\u8bc1\u957f\u94fe\u8def\u7b56\u7565\u624d\u8003\u8651 RL&#xff1b;\u6570\u636e\u5206\u5e03\u53d8\u5316\u5219\u8981\u505a\u56de\u653e\u3001\u91cd\u52a0\u6743\u548c\u6f02\u79fb\u76d1\u63a7\u3002\u6bcf\u6b21\u66f4\u65b0\u90fd\u8981\u5728\u65b0\u57df\u3001\u65e7\u57df\u3001\u5bf9\u6297\u96c6\u548c\u5b89\u5168\u96c6\u4e0a\u505a\u56de\u5f52&#xff0c;\u4f7f\u7528\u65e7\u80fd\u529b\u4fdd\u7559\u7387\u3001\u589e\u91cf\u6536\u76ca\u3001\u9057\u5fd8\u91cf\u3001\u6210\u672c\u548c\u5ef6\u8fdf\u8054\u5408\u51b3\u7b56\u3002<\/p>\n<h3>\u8d44\u6e90\u9884\u7b97&#xff1a;\u628a\u591a\u6a21\u6001GRPO\u62c6\u6210\u53ef\u6d4b\u91cf\u7684\u9636\u6bb5<\/h3>\n<h4>5.\u573a\u666f\u9898&#xff1a;\u75288\u5f20a100\u7684\u673a\u5668\u505a7B vl\u6a21\u578b\u7684grpo\u8bad\u7ec3\u5982\u4f55\u8bad\u7ec3\u52a0\u901f&#xff0c;\u63a8\u7406\u52a0\u901f<\/h4>\n<p>\u56de\u7b54&#xff1a;<\/p>\n<p>\u8fd9\u9053\u9898\u5e94\u5148\u660e\u786e\u74f6\u9888\u3002GRPO \u5bf9\u6bcf\u4e2a prompt \u9700\u8981\u751f\u6210\u4e00\u7ec4\u56de\u7b54&#xff0c;\u518d\u8ba1\u7b97 reward\u3001\u4f18\u52bf\u548c\u7b56\u7565\u68af\u5ea6&#xff1b;\u5bf9 7B VL \u6a21\u578b&#xff0c;\u89c6\u89c9\u7f16\u7801\u3001\u957f\u56fe\u50cf token\u3001\u751f\u6210\u9636\u6bb5 KV Cache \u548c\u8bad\u7ec3\u9636\u6bb5\u663e\u5b58\/\u901a\u4fe1\u90fd\u53ef\u80fd\u6210\u4e3a\u74f6\u9888\u3002\u901a\u5e38\u5148\u7528 profiler \u6d4b\u91cf Rollout\u3001\u89c6\u89c9\u7f16\u7801\u3001\u8bad\u7ec3 forward\/backward\u3001reward\u3001All-Reduce\/All-to-All \u548c GPU \u7a7a\u95f2\u65f6\u95f4&#xff0c;\u518d\u51b3\u5b9a\u4f18\u5316\u987a\u5e8f\u3002<\/p>\n<h5>\u5148\u7ed98\u5361\u573a\u666f\u4e00\u4e2a\u53ef\u8ba1\u7b97\u7684\u57fa\u7ebf<\/h5>\n<p>\u5148\u95ee\u6e05 A100 \u662f 40 GB \u8fd8\u662f 80 GB&#xff0c;\u5361\u95f4\u662f NVLink\/NVSwitch \u8fd8\u662f\u4e3b\u8981\u7ecf\u8fc7 PCIe&#xff0c;7B \u662f\u5426\u5305\u542b\u89c6\u89c9\u5854&#xff0c;\u8bad\u7ec3\u662f\u5168\u53c2\u6570\u8fd8\u662f LoRA&#xff0c;\u89c6\u89c9\u5854\u662f\u5426\u51bb\u7ed3\u30028 \u5361\u603b\u663e\u5b58\u4e0d\u7b49\u4e8e\u4efb\u610f\u5355\u5361\u90fd\u80fd\u8bbf\u95ee\u7684\u7edf\u4e00\u663e\u5b58\u6c60&#xff0c;\u72b6\u6001\u80fd\u5426\u653e\u4e0b\u53d6\u51b3\u4e8e\u5177\u4f53\u5206\u7247\u65b9\u5f0f\u3002<\/p>\n<p>\u4ee5 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        P<\/p>\n<p>        &#061;<\/p>\n<p>        7<\/p>\n<p>        \u00d7<\/p>\n<p>         10<\/p>\n<p>         9<\/p>\n<p>       P&#061;7\\\\times10^9<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">P<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.7278em;vertical-align: -0.0833em\"><\/span><span class=\"mord\">7<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">\u00d7<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8141em\"><\/span><span class=\"mord\">1<\/span><span class=\"mord\"><span class=\"mord\">0<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.8141em\"><span class=\"\" style=\"top: -3.063em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">9<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span> \u4e2a\u53ef\u8bad\u7ec3\u53c2\u6570\u4e3a\u4f8b&#xff0c;\u82e5\u91c7\u7528 BF16 \u6743\u91cd\u4e0e\u68af\u5ea6\u3001FP32 \u4e3b\u6743\u91cd\u548c Adam \u4e24\u4e2a FP32 \u77e9\u72b6\u6001&#xff0c;\u6301\u4e45\u8bad\u7ec3\u72b6\u6001\u7ea6\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        16<\/p>\n<p>        P<\/p>\n<p>       16P<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord\">16<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">P<\/span><\/span><\/span><\/span><\/span> \u5b57\u8282&#xff0c;\u5373 112 GB&#xff08;\u5341\u8fdb\u5236&#xff09;\u3002\u8fd9\u53ea\u662f\u7279\u5b9a\u914d\u7f6e\u4e0b\u7684\u4f30\u7b97&#xff0c;\u672a\u8ba1\u6fc0\u6d3b\u3001\u901a\u4fe1\u7f13\u51b2\u3001\u53c2\u8003\u7b56\u7565\u3001rollout \u6743\u91cd\u53ca KV Cache&#xff1b;\u91c7\u7528 FP32 \u68af\u5ea6\u6216\u4e0d\u540c\u4f18\u5316\u5668\u65f6\u5fc5\u987b\u91cd\u65b0\u6838\u7b97\u3002<\/p>\n<p>\u540c\u6b65\u8bad\u7ec3\u7684\u4e00\u8f6e\u8017\u65f6\u53ef\u5148\u62c6\u6210&#xff1a;<\/p>\n<p><span class=\"katex--display\"><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>          T<\/p>\n<p>           s<\/p>\n<p>           t<\/p>\n<p>           e<\/p>\n<p>           p<\/p>\n<p>         &#061;<\/p>\n<p>          T<\/p>\n<p>           r<\/p>\n<p>           o<\/p>\n<p>           l<\/p>\n<p>           l<\/p>\n<p>           o<\/p>\n<p>           u<\/p>\n<p>           t<\/p>\n<p>         &#043;<\/p>\n<p>          T<\/p>\n<p>           r<\/p>\n<p>           e<\/p>\n<p>           w<\/p>\n<p>           a<\/p>\n<p>           r<\/p>\n<p>           d<\/p>\n<p>         &#043;<\/p>\n<p>          T<\/p>\n<p>           l<\/p>\n<p>           o<\/p>\n<p>           g<\/p>\n<p>           p<\/p>\n<p>           r<\/p>\n<p>           o<\/p>\n<p>           b<\/p>\n<p>         &#043;<\/p>\n<p>          T<\/p>\n<p>           u<\/p>\n<p>           p<\/p>\n<p>           d<\/p>\n<p>           a<\/p>\n<p>           t<\/p>\n<p>           e<\/p>\n<p>         &#043;<\/p>\n<p>          T<\/p>\n<p>           s<\/p>\n<p>           y<\/p>\n<p>           n<\/p>\n<p>           c<\/p>\n<p>         &#043;<\/p>\n<p>          T<\/p>\n<p>           o<\/p>\n<p>           t<\/p>\n<p>           h<\/p>\n<p>           e<\/p>\n<p>           r<\/p>\n<p>         .<\/p>\n<p>         T_{step}&#061;T_{rollout}&#043;T_{reward}&#043;T_{logprob}&#043;T_{update}&#043;T_{sync}&#043;T_{other}. <\/p>\n<p>     <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.9694em;vertical-align: -0.2861em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">T<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2806em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.1389em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">s<\/span><span class=\"mord mathnormal mtight\">t<\/span><span class=\"mord mathnormal mtight\">e<\/span><span class=\"mord mathnormal mtight\">p<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8333em;vertical-align: -0.15em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">T<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.1389em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"mord mathnormal mtight\">o<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0197em\">l<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0197em\">l<\/span><span class=\"mord mathnormal mtight\">o<\/span><span class=\"mord mathnormal mtight\">u<\/span><span class=\"mord mathnormal mtight\">t<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">&#043;<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8333em;vertical-align: -0.15em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">T<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.1389em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"mord mathnormal mtight\">e<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0269em\">w<\/span><span class=\"mord mathnormal mtight\">a<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"mord mathnormal mtight\">d<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">&#043;<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.9694em;vertical-align: -0.2861em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">T<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.1389em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0197em\">l<\/span><span class=\"mord mathnormal mtight\">o<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">g<\/span><span class=\"mord mathnormal mtight\">p<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0278em\">r<\/span><span class=\"mord mathnormal mtight\">o<\/span><span class=\"mord mathnormal mtight\">b<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">&#043;<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.9694em;vertical-align: -0.2861em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">T<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.1389em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">u<\/span><span class=\"mord mathnormal mtight\">p<\/span><span class=\"mord mathnormal mtight\">d<\/span><span class=\"mord mathnormal mtight\">a<\/span><span class=\"mord mathnormal mtight\">t<\/span><span class=\"mord mathnormal mtight\">e<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">&#043;<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.9694em;vertical-align: -0.2861em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">T<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1514em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.1389em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">sy<\/span><span class=\"mord mathnormal mtight\">n<\/span><span class=\"mord mathnormal mtight\">c<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">&#043;<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8333em;vertical-align: -0.15em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">T<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.1389em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">o<\/span><span class=\"mord mathnormal mtight\">t<\/span><span class=\"mord mathnormal mtight\">h<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0278em\">er<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\">.<\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n<p>\u82e5\u6d4b\u5f97 rollout \u5360\u6bd4\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        f<\/p>\n<p>       f<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8889em;vertical-align: -0.1944em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1076em\">f<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u53ea\u5c06\u5b83\u52a0\u901f <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        k<\/p>\n<p>       k<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6944em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0315em\">k<\/span><\/span><\/span><\/span><\/span> \u500d&#xff0c;\u7406\u60f3\u603b\u52a0\u901f\u6bd4\u81f3\u591a\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        1<\/p>\n<p>        \/<\/p>\n<p>        (<\/p>\n<p>        (<\/p>\n<p>        1<\/p>\n<p>        \u2212<\/p>\n<p>        f<\/p>\n<p>        )<\/p>\n<p>        &#043;<\/p>\n<p>        f<\/p>\n<p>        \/<\/p>\n<p>        k<\/p>\n<p>        )<\/p>\n<p>       1\/((1-f)&#043;f\/k)<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord\">1\/<\/span><span class=\"mopen\">((<\/span><span class=\"mord\">1<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">\u2212<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1076em\">f<\/span><span class=\"mclose\">)<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">&#043;<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1076em\">f<\/span><span class=\"mord\">\/<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0315em\">k<\/span><span class=\"mclose\">)<\/span><\/span><\/span><\/span><\/span>\u3002\u4f8b\u5982 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        f<\/p>\n<p>        &#061;<\/p>\n<p>        0.7<\/p>\n<p>        ,<\/p>\n<p>        k<\/p>\n<p>        &#061;<\/p>\n<p>        2<\/p>\n<p>       f&#061;0.7,k&#061;2<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8889em;vertical-align: -0.1944em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1076em\">f<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8889em;vertical-align: -0.1944em\"><\/span><span class=\"mord\">0.7<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0315em\">k<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">2<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u603b\u52a0\u901f\u6bd4\u7ea6\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        1.54<\/p>\n<p>       1.54<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">1.54<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u800c\u4e0d\u662f <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        2<\/p>\n<p>       2<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">2<\/span><\/span><\/span><\/span><\/span>\u3002\u8fd9\u662f\u6210\u672c\u6a21\u578b\u7684\u793a\u4f8b\u8ba1\u7b97&#xff0c;\u4e0d\u662f\u786c\u4ef6\u5b9e\u6d4b\u3002\u5f02\u6b65\u7cfb\u7edf\u6709\u9636\u6bb5\u91cd\u53e0&#xff0c;\u5e94\u8fdb\u4e00\u6b65\u5206\u6790\u5173\u952e\u8def\u5f84\u4e0e\u961f\u5217\u79ef\u538b&#xff0c;\u4e0d\u80fd\u76f4\u63a5\u628a\u5404\u9636\u6bb5\u65f6\u957f\u76f8\u52a0\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260916051643-6aaa263bf4164.png\" alt=\"\u56fe2 \u591a\u6a21\u6001GRPO\u7684\u8d44\u6e90\u4e0e\u6570\u636e\u6d41\" \/><\/p>\n<p>\u56fe 2 \u4e2d&#xff0c;\u540c\u4e00\u4e2a prompt \u751f\u6210 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        G<\/p>\n<p>       G<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\">G<\/span><\/span><\/span><\/span><\/span> \u6761\u56de\u7b54&#xff0c;\u5956\u52b1\u901a\u8fc7\u7ec4\u5185\u6bd4\u8f83\u8f6c\u5316\u4e3a\u4f18\u52bf&#xff0c;\u518d\u9a71\u52a8\u8bad\u7ec3\u66f4\u65b0\u3002\u89c6\u89c9\u7f13\u5b58\u3001KV Cache\u3001\u884c\u4e3a\u7b56\u7565\u7248\u672c\u548c\u6743\u91cd\u540c\u6b65\u5c5e\u4e8e\u4e0d\u540c\u72b6\u6001&#xff0c;\u5404\u81ea\u90fd\u9700\u8981\u660e\u786e\u751f\u547d\u5468\u671f\u3002<\/p>\n<p>\u521d\u59cb\u65b9\u6848\u53ef\u4ee5\u5728 8 \u5361\u4e0a\u91c7\u7528\u8bad\u7ec3\u4e0e rollout \u5206\u65f6\u590d\u7528&#xff1a;\u8bad\u7ec3\u7528 FSDP \u6216 ZeRO&#xff0c;\u751f\u6210\u9636\u6bb5\u9009\u62e9\u80fd\u5bb9\u7eb3\u6743\u91cd\u548c\u76ee\u6807 KV \u5bb9\u91cf\u7684\u6700\u5c0f\u53ef\u884c TP&#xff0c;\u518d\u5229\u7528\u5269\u4f59\u5361\u505a\u526f\u672c\u5e76\u884c\u3002\u968f\u540e\u7528\u5b9e\u6d4b\u541e\u5410\u51b3\u5b9a\u662f\u5426\u62c6\u5206\u8d44\u6e90\u6c60&#xff1b;\u201c4 \u5361\u751f\u6210\u30014 \u5361\u8bad\u7ec3\u201d\u53ea\u662f\u5f85\u6d4b\u5019\u9009&#xff0c;\u4e0d\u80fd\u5728\u672a\u6d4b\u74f6\u9888\u524d\u5f53\u6210\u6700\u4f18\u914d\u7f6e\u3002<\/p>\n<h5>\u63a8\u7406\u4e0e Rollout \u52a0\u901f<\/h5>\n<li>\u4f7f\u7528\u652f\u6301\u6279\u5904\u7406\u548c KV Cache \u7ba1\u7406\u7684\u63a8\u7406\u5f15\u64ce&#xff0c;\u4f8b\u5982 vLLM \u6216 SGLang&#xff1b;PagedAttention \u4e3b\u8981\u89e3\u51b3 KV Cache \u7684\u5206\u9875\u7ba1\u7406\u548c\u788e\u7247\u95ee\u9898&#xff0c;Continuous Batching \u8ba9\u4e0d\u540c\u8bf7\u6c42\u52a8\u6001\u52a0\u5165\/\u9000\u51fa&#xff0c;\u63d0\u9ad8 GPU \u5229\u7528\u7387\u3002<\/li>\n<li>\u6839\u636e\u6a21\u578b\u7ed3\u6784\u9009\u62e9 Tensor Parallel \u6216\u5176\u4ed6\u5e76\u884c\u7b56\u7565&#xff0c;\u786e\u4fdd\u89c6\u89c9\u7f16\u7801\u5668\u3001\u8bed\u8a00\u6a21\u578b\u548c\u751f\u6210\u670d\u52a1\u7684\u5207\u5206\u65b9\u5f0f\u4e0e A100 \u7684\u663e\u5b58\u548c\u4e92\u8054\u62d3\u6251\u5339\u914d\u3002\u4e0d\u80fd\u53ea\u5199\u201c\u4e0a TP\u201d&#xff0c;\u8fd8\u8981\u89c2\u5bdf\u901a\u4fe1\u6bd4\u4f8b\u548c\u5c0f batch \u4e0b\u7684\u6536\u76ca\u3002<\/li>\n<li>\u9650\u5236\u65e0\u6548\u751f\u6210&#xff1a;\u8bbe\u7f6e\u5408\u7406\u7684 max_new_tokens\u3001\u505c\u6b62\u6761\u4ef6\u3001\u7ed3\u6784\u5316\u8f93\u51fa\u7ea6\u675f\u548c\u957f\u5ea6\u9884\u7b97&#xff1b;\u5bf9\u660e\u663e\u91cd\u590d\u6216\u683c\u5f0f\u975e\u6cd5\u7684\u8f68\u8ff9\u5c3d\u65e9\u7ec8\u6b62\u3002\u51cf\u5c11 group size \u53ef\u4ee5\u964d\u4f4e Rollout \u91cf&#xff0c;\u4f46\u4f1a\u6539\u53d8\u7ec4\u5185\u4f18\u52bf\u4f30\u8ba1\u7684\u65b9\u5dee&#xff0c;\u5fc5\u987b\u7528\u4efb\u52a1\u6210\u529f\u7387\u548c\u8bad\u7ec3\u7a33\u5b9a\u6027\u9a8c\u8bc1&#xff0c;\u4e0d\u80fd\u53ea\u8ffd\u6c42\u541e\u5410\u3002<\/li>\n<li>\u590d\u7528\u540c\u4e00 prompt \u7684\u89c6\u89c9\u7279\u5f81\u548c\u524d\u7f00 KV Cache&#xff0c;\u907f\u514d\u6bcf\u4e2a group response \u91cd\u590d\u8ba1\u7b97\u5b8c\u5168\u76f8\u540c\u7684\u56fe\u50cf\u7f16\u7801\u4e0e prompt \u524d\u7f00\u3002\u7f13\u5b58\u5fc5\u987b\u6309\u6a21\u578b\u7248\u672c\u3001\u56fe\u50cf\u5904\u7406\u914d\u7f6e\u3001\u79df\u6237\u548c\u8f93\u5165\u54c8\u5e0c\u9694\u79bb\u3002\u82e5\u89c6\u89c9\u5854\u6216\u8fde\u63a5\u5668\u53c2\u4e0e\u8bad\u7ec3&#xff0c;\u66f4\u65b0\u540e\u65e7\u89c6\u89c9\u7279\u5f81\u53ef\u80fd\u5931\u6548&#xff1b;\u524d\u7f00 KV \u4f9d\u8d56\u8bed\u8a00\u6a21\u578b\u6743\u91cd&#xff0c;\u4e5f\u4e0d\u80fd\u8de8\u6743\u91cd\u66f4\u65b0\u76f4\u63a5\u590d\u7528\u3002GRPO \u5bf9\u591a\u4e2a\u56de\u7b54\u590d\u7528\u524d\u7f00&#xff0c;\u901a\u5e38\u9650\u4e8e\u540c\u4e00\u7b56\u7565\u5feb\u7167\u4e0e\u5b8c\u5168\u4e00\u81f4\u7684\u524d\u7f00\u3002<\/li>\n<li>\u91c7\u7528 BF16 \u63a8\u7406\u3001FlashAttention\/FlashInfer \u7b49 fused kernel&#xff0c;\u5728 A100 \u4e0a\u7ed3\u5408 CUDA Graph\u3001\u7b97\u5b50\u878d\u5408\u548c\u5408\u9002\u7684 batch size&#xff1b;\u5bf9\u957f\u56fe\u50cf\u53ef\u4ee5\u4f7f\u7528\u52a8\u6001\u5206\u8fa8\u7387\u3001patch merge \u6216\u89c6\u89c9 token \u538b\u7f29&#xff0c;\u4f46\u8981\u9a8c\u8bc1\u89c6\u89c9\u7406\u89e3\u8d28\u91cf\u3002<\/li>\n<li>\u5c06 rollout\u3001reward \u8ba1\u7b97\u548c\u8bad\u7ec3\u89e3\u8026\u6216\u6d41\u6c34\u5316\u3002\u53ef\u91c7\u7528\u90e8\u5206 GPU \u505a Rollout\u3001\u90e8\u5206 GPU \u505a\u8bad\u7ec3&#xff0c;\u4e5f\u53ef\u5728\u540c\u4e00\u7ec4 GPU \u4e0a\u505a\u65f6\u95f4\u7247\u590d\u7528&#xff1b;\u5173\u952e\u662f\u51cf\u5c11\u201c\u8bad\u7ec3\u7b49 rollout\u3001rollout \u7b49\u8bad\u7ec3\u201d\u7684\u7a7a\u8f6c\u3002\u5f02\u6b65\u7b56\u7565\u5fc5\u987b\u5904\u7406\u7b56\u7565\u7248\u672c\u3001\u8fc7\u671f\u6837\u672c\u548c off-policy \u7a0b\u5ea6&#xff0c;\u4e0d\u80fd\u65e0\u6761\u4ef6\u6df7\u7528\u65e7\u7b56\u7565\u751f\u6210\u7684\u6837\u672c\u3002<\/li>\n<h5>\u8bad\u7ec3\u52a0\u901f<\/h5>\n<li>\u4f7f\u7528 BF16\u3001FlashAttention\u3001fused optimizer \u548c\u901a\u4fe1\u8ba1\u7b97 overlap&#xff1b;TF32 \u4e3b\u8981\u5f71\u54cd FP32 \u77e9\u9635\u4e58\u6cd5\u8def\u5f84&#xff0c;\u4e0d\u80fd\u628a\u5b83\u5f53\u4f5c BF16 \u7684\u66ff\u4ee3\u54c1\u3002<\/li>\n<li>\u7528 FSDP \u6216 DeepSpeed ZeRO \u5206\u7247\u53c2\u6570\u3001\u68af\u5ea6\u548c\u4f18\u5316\u5668\u72b6\u6001&#xff0c;\u7ed3\u5408 gradient accumulation \u83b7\u5f97\u8db3\u591f\u7684\u6709\u6548 batch\u3002Gradient Checkpointing \u7528\u989d\u5916\u91cd\u8ba1\u7b97\u6362\u663e\u5b58&#xff0c;\u9002\u5408\u957f\u5e8f\u5217&#xff0c;\u4f46\u4f1a\u589e\u52a0\u8ba1\u7b97\u65f6\u95f4&#xff0c;\u5e94\u901a\u8fc7 profiler \u5224\u65ad\u6536\u76ca\u3002<\/li>\n<li>\u505a sequence packing \u6216\u957f\u5ea6\u5206\u6876&#xff0c;\u51cf\u5c11 padding&#xff1b;packing \u5fc5\u987b\u6b63\u786e\u9694\u79bb\u6837\u672c\u95f4\u7684 attention&#xff0c;\u5904\u7406\u4f4d\u7f6e\u7f16\u7801\u91cd\u7f6e\u3001\u56de\u7b54 loss mask \u548c\u591a\u6a21\u6001\u5360\u4f4d\u7b26&#xff0c;\u4e0d\u80fd\u7b80\u5355\u628a\u72ec\u7acb\u6837\u672c\u62fc\u6210\u4e00\u6761\u4e92\u76f8\u53ef\u89c1\u7684\u957f\u5e8f\u5217&#xff1b;\u591a\u6a21\u6001 batch \u8fd8\u9700\u6309\u56fe\u7247 token \u6570\u3001\u6587\u672c\u957f\u5ea6\u548c\u751f\u6210\u957f\u5ea6\u5206\u6876&#xff0c;\u5426\u5219\u4e00\u4e2a\u8d85\u957f\u6837\u672c\u4f1a\u62d6\u6162\u6574\u6279\u3002<\/li>\n<li>\u63a7\u5236\u5168\u5c40 batch\u3001mini-batch\u3001group size\u3001\u751f\u6210\u957f\u5ea6\u548c reward \u8ba1\u7b97\u9891\u7387&#xff0c;\u907f\u514d\u4e3a\u4e86\u589e\u5927 batch \u9020\u6210\u663e\u5b58\u6ea2\u51fa\u6216\u901a\u4fe1\u9971\u548c\u3002GRPO \u7684\u6709\u6548\u6837\u672c\u91cf\u4e0d\u80fd\u53ea\u770b prompt \u6570&#xff0c;\u8fd8\u8981\u770b\u6bcf\u4e2a prompt \u7684 response \u6570\u548c\u6709\u6548 token \u6570\u3002<\/li>\n<li>\u7528 NCCL \u62d3\u6251\u3001\u68af\u5ea6\u6876\u5927\u5c0f\u3001\u901a\u4fe1 overlap\u3001\u6301\u4e45\u5316 worker \u548c\u9884\u5206\u914d\u663e\u5b58\u964d\u4f4e\u540c\u6b65\u5f00\u9500&#xff1b;\u4fdd\u5b58 checkpoint \u65f6\u5f02\u6b65\u5199\u76d8&#xff0c;\u907f\u514d\u8bad\u7ec3\u7ebf\u7a0b\u957f\u65f6\u95f4\u963b\u585e\u3002<\/li>\n<h5>\u9a8c\u6536\u65b9\u5f0f<\/h5>\n<p>\u4f18\u5316\u524d\u540e\u81f3\u5c11\u8bb0\u5f55&#xff1a;tokens\/s\u3001\u6709\u6548 response\/s\u3001\u7aef\u5230\u7aef step time\u3001GPU \u5229\u7528\u7387\u3001\u663e\u5b58\u5cf0\u503c\u3001\u901a\u4fe1\u5360\u6bd4\u3001reward \u8ba1\u7b97\u65f6\u95f4\u3001\u8bad\u7ec3\u541e\u5410\u3001\u4efb\u52a1\u6210\u529f\u7387\u3001KL\u3001\u7ec4\u5185 reward \u65b9\u5dee\u548c\u5355\u6837\u672c\u6210\u672c\u3002\u5bf9\u4e8e 8 \u5f20 A100&#xff0c;\u6ca1\u6709\u5b8c\u6574\u6a21\u578b\u914d\u7f6e\u3001\u56fe\u50cf\u5c3a\u5bf8\u3001\u5e8f\u5217\u957f\u5ea6\u3001\u5e76\u884c\u7b56\u7565\u548c group size \u65f6&#xff0c;\u4e0d\u80fd\u76f4\u63a5\u627f\u8bfa\u67d0\u4e2a\u56fa\u5b9a\u52a0\u901f\u500d\u6570\u3002\u6b63\u786e\u7684\u56de\u7b54\u662f\u5148\u5b9a\u4f4d\u74f6\u9888&#xff0c;\u518d\u505a\u5355\u53d8\u91cf\u6d88\u878d&#xff0c;\u786e\u8ba4\u541e\u5410\u63d0\u5347\u6ca1\u6709\u4ee5\u89c6\u89c9\u8d28\u91cf\u3001\u8bad\u7ec3\u7a33\u5b9a\u6027\u6216\u7b56\u7565\u65b0\u9c9c\u5ea6\u4e3a\u4ee3\u4ef7\u3002<\/p>\n<h4>6.\u6a21\u578b\u8bad\u7ec3\u52a0\u901f\u6709\u4ec0\u4e48\u65b9\u6cd5<\/h4>\n<p>\u56de\u7b54&#xff1a;<\/p>\n<p>\u8bad\u7ec3\u52a0\u901f\u53ef\u4ee5\u6309\u201c\u51cf\u5c11\u8ba1\u7b97\u91cf\u3001\u51cf\u5c11\u663e\u5b58\u3001\u51cf\u5c11\u901a\u4fe1\u3001\u63d0\u9ad8\u6d41\u6c34\u7ebf\u5229\u7528\u7387\u3001\u51cf\u5c11\u65e0\u6548\u6570\u636e\u201d\u4e94\u4e2a\u65b9\u5411\u7ec4\u7ec7\u3002<\/p>\n<li>\u7cbe\u5ea6\u4e0e\u7b97\u5b50\u3002 \u4f7f\u7528 BF16\/FP16 \u6df7\u5408\u7cbe\u5ea6\u3001TF32 \u7684\u9002\u7528\u8def\u5f84\u3001FlashAttention\u3001fused activation\u3001fused optimizer\u3001CUDA Graph \u548c kernel fusion\u3002FP16 \u5e38\u9700\u52a8\u6001 loss scaling&#xff1b;BF16 \u901a\u5e38\u4e0d\u9700\u8981 loss scaling&#xff0c;\u4f46\u4ecd\u8981\u91c7\u7528\u6846\u67b6\u7684\u6570\u503c\u7a33\u5b9a\u7b56\u7565&#xff0c;\u5e76\u76d1\u63a7\u6ea2\u51fa\u3001\u68af\u5ea6\u8303\u6570\u548c loss \u662f\u5426\u5f02\u5e38\u3002<\/li>\n<li>\u663e\u5b58\u4f18\u5316\u3002 Gradient Checkpointing\u3001Activation Offload\u3001\u53c2\u6570\/\u68af\u5ea6\/\u4f18\u5316\u5668\u5206\u7247\u3001KV \u6216\u4e2d\u95f4\u6fc0\u6d3b\u91cd\u7528\u3002Checkpointing \u4e0d\u662f\u65e0\u6210\u672c\u52a0\u901f&#xff0c;\u5b83\u901a\u8fc7\u91cd\u7b97\u964d\u4f4e\u663e\u5b58&#xff0c;\u901a\u5e38\u662f\u7528\u663e\u5b58\u6362\u7b97\u529b\u3002<\/li>\n<li>\u5e76\u884c\u8bad\u7ec3\u3002 Data Parallel \u590d\u5236\u6a21\u578b\u5904\u7406\u4e0d\u540c batch&#xff1b;Tensor Parallel \u5207\u5206\u5c42\u5185\u77e9\u9635&#xff1b;Pipeline Parallel \u6309\u5c42\u5207\u5206\u5e76\u7528 micro-batch \u586b\u5145\u6d41\u6c34\u7ebf&#xff1b;Sequence Parallel \u51cf\u5c11\u957f\u5e8f\u5217\u6fc0\u6d3b\u538b\u529b&#xff1b;MoE \u8fd8\u9700\u8981 Expert Parallel \u548c All-to-All\u3002\u6df7\u5408\u5e76\u884c\u8981\u7ed3\u5408\u6a21\u578b\u5c3a\u5bf8\u3001\u5e8f\u5217\u957f\u5ea6\u3001GPU \u4e92\u8054\u548c batch \u5f62\u6001\u9009\u62e9\u3002<\/li>\n<li>\u901a\u4fe1\u4f18\u5316\u3002 \u68af\u5ea6\u6876\u5316\u3001\u901a\u4fe1\u8ba1\u7b97\u91cd\u53e0\u3001\u68af\u5ea6\u7d2f\u79ef\u51cf\u5c11\u540c\u6b65\u9891\u7387\u3001\u5408\u7406\u8bbe\u7f6e NCCL\u3001\u62d3\u6251\u611f\u77e5\u7684\u8bbe\u5907\u6620\u5c04\u548c\u5206\u5c42\u901a\u4fe1\u3002\u591a\u5361\u52a0\u901f\u4e0d\u7b49\u4e8e\u7ebf\u6027\u52a0\u901f&#xff0c;\u901a\u4fe1\u65f6\u95f4\u3001\u8d1f\u8f7d\u4e0d\u5747\u8861\u548c pipeline bubble \u90fd\u8981\u7eb3\u5165\u5206\u6790\u3002<\/li>\n<li>\u6570\u636e\u4e0e\u5e8f\u5217\u3002 \u6e05\u6d17\u91cd\u590d\u548c\u65e0\u6548\u6837\u672c\u3001packing\u3001\u957f\u5ea6\u5206\u6876\u3001\u52a8\u6001 batch\u3001\u5f02\u6b65\u9884\u53d6\u3001\u7f13\u5b58 tokenizer\/\u89c6\u89c9\u7279\u5f81\u3001\u51cf\u5c11 padding\u3002\u6570\u636e\u8bfb\u53d6\u548c CPU \u9884\u5904\u7406\u8ddf\u4e0d\u4e0a\u65f6&#xff0c;GPU \u518d\u5feb\u4e5f\u4f1a\u7a7a\u8f6c\u3002<\/li>\n<li>\u8bad\u7ec3\u7b56\u7565\u3002 \u9009\u62e9\u5408\u9002\u7684 global batch\u3001\u5b66\u4e60\u7387\u8c03\u5ea6\u3001\u68af\u5ea6\u7d2f\u79ef\u3001\u53c2\u6570\u9ad8\u6548\u5fae\u8c03\u3001\u51bb\u7ed3\u90e8\u5206\u6a21\u5757\u548c curriculum\u3002\u82e5\u53ea\u9700\u9886\u57df\u9002\u914d&#xff0c;LoRA\/QLoRA \u53ef\u80fd\u6bd4\u5168\u91cf\u8bad\u7ec3\u66f4\u7ecf\u6d4e&#xff1b;\u4f46\u5b83\u4e0d\u662f\u666e\u9002\u7684\u901f\u5ea6\u63d0\u5347&#xff0c;\u76ee\u6807\u6a21\u5757\u3001\u91cf\u5316\u53cd\u91cf\u5316\u548c\u5c0f batch kernel \u6548\u7387\u90fd\u8981\u5b9e\u6d4b\u3002<\/li>\n<li>\u7cfb\u7edf\u4e0e\u5de5\u7a0b\u3002 \u4f7f\u7528\u9ad8\u6548 checkpoint\u3001\u65ad\u70b9\u7eed\u8bad\u3001\u5f02\u6b65\u65e5\u5fd7\u3001\u6301\u4e45\u5316\u8fdb\u7a0b\u3001\u9884\u5206\u914d\u5185\u5b58\u548c profiler&#xff1b;\u901a\u8fc7 Nsight Systems\u3001PyTorch Profiler\u3001\u8bad\u7ec3\u6846\u67b6 trace \u5206\u8fa8\u8ba1\u7b97\u3001\u5185\u5b58\u3001\u901a\u4fe1\u3001I\/O \u548c\u540c\u6b65\u74f6\u9888\u3002<\/li>\n<p>\u4e00\u4e2a\u6709\u8bf4\u670d\u529b\u7684\u4f18\u5316\u95ed\u73af\u662f&#xff1a;\u5148\u5efa\u7acb\u56fa\u5b9a batch \u548c\u6570\u636e\u7248\u672c\u7684\u57fa\u7ebf&#xff0c;\u8bb0\u5f55 step time \u5206\u89e3&#xff1b;\u6bcf\u6b21\u53ea\u6539\u4e00\u4e2a\u53d8\u91cf&#xff1b;\u540c\u65f6\u62a5\u544a\u541e\u5410\u3001\u5cf0\u503c\u663e\u5b58\u3001\u6570\u503c\u7a33\u5b9a\u6027\u548c\u9a8c\u8bc1\u96c6\u6548\u679c&#xff1b;\u6700\u540e\u5728\u76ee\u6807\u786c\u4ef6\u548c\u771f\u5b9e\u6570\u636e\u5206\u5e03\u4e0a\u590d\u6d4b\u3002\u4e0d\u80fd\u53ea\u62a5\u5355\u5361 FLOPS \u6216 GPU \u5229\u7528\u7387&#xff0c;\u56e0\u4e3a\u65e0\u6548 token \u589e\u591a\u65f6 GPU \u5229\u7528\u7387\u53ef\u80fd\u4e0a\u5347&#xff0c;\u4efb\u52a1\u8d28\u91cf\u5374\u4e0b\u964d\u3002<\/p>\n<h4>7.deepspeed\u7684\u4e09\u4e2a\u9636\u6bb5<\/h4>\n<p>\u56de\u7b54&#xff1a;<\/p>\n<p>\u8fd9\u91cc\u901a\u5e38\u6307 DeepSpeed ZeRO \u7684\u4e09\u4e2a\u9636\u6bb5\u3002\u5b83\u4eec\u90fd\u5229\u7528\u6570\u636e\u5e76\u884c&#xff0c;\u4f46\u9010\u6b65\u51cf\u5c11\u6bcf\u5f20 GPU \u5fc5\u987b\u5b8c\u6574\u4fdd\u5b58\u7684\u8bad\u7ec3\u72b6\u6001&#xff1a;<\/p>\n<table>\n<tr>\u9636\u6bb5\u5206\u7247\u5bf9\u8c61\u6bcf\u5f20 GPU \u4ecd\u4fdd\u7559<\/tr>\n<tbody>\n<tr>\n<td>ZeRO-1<\/td>\n<td>\u4f18\u5316\u5668\u72b6\u6001<\/td>\n<td>\u5b8c\u6574\u6a21\u578b\u53c2\u6570\u4e0e\u5b8c\u6574\u68af\u5ea6<\/td>\n<\/tr>\n<tr>\n<td>ZeRO-2<\/td>\n<td>\u4f18\u5316\u5668\u72b6\u6001\u3001\u68af\u5ea6<\/td>\n<td>\u5b8c\u6574\u6a21\u578b\u53c2\u6570<\/td>\n<\/tr>\n<tr>\n<td>ZeRO-3<\/td>\n<td>\u4f18\u5316\u5668\u72b6\u6001\u3001\u68af\u5ea6\u3001\u6a21\u578b\u53c2\u6570<\/td>\n<td>\u5f53\u524d\u8ba1\u7b97\u6240\u9700\u7684\u53c2\u6570\u5206\u7247\u6216\u4e34\u65f6\u805a\u5408<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u8bbe\u53c2\u6570\u91cf\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        P<\/p>\n<p>       P<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">P<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u6df7\u5408\u7cbe\u5ea6\u8bad\u7ec3\u8fd8\u9700\u4fdd\u5b58\u53c2\u6570\u3001\u68af\u5ea6\u548c\u4f18\u5316\u5668\u72b6\u6001&#xff0c;\u6734\u7d20\u6570\u636e\u5e76\u884c\u4e2d\u6bcf\u5361\u90fd\u590d\u5236\u8fd9\u4e9b\u5185\u5bb9&#xff1b;ZeRO \u901a\u8fc7\u5728 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        D<\/p>\n<p>       D<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">D<\/span><\/span><\/span><\/span><\/span> \u5f20\u5361\u4e4b\u95f4\u5206\u7247&#xff0c;\u4f7f\u7406\u60f3\u72b6\u6001\u4e0b\u6bcf\u5361\u7684\u6301\u4e45\u5316\u72b6\u6001\u89c4\u6a21\u8fd1\u4f3c\u6309 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        1<\/p>\n<p>        \/<\/p>\n<p>        D<\/p>\n<p>       1\/D<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord\">1\/<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">D<\/span><\/span><\/span><\/span><\/span> \u7f29\u51cf&#xff0c;\u4f46\u5b9e\u9645\u8fd8\u4f1a\u6709\u901a\u4fe1 buffer\u3001\u4e34\u65f6 all-gather\u3001\u6fc0\u6d3b\u548c\u6846\u67b6\u5f00\u9500\u3002<\/p>\n<p>ZeRO-1 \u901a\u4fe1\u548c\u5b9e\u73b0\u98ce\u9669\u8f83\u4f4e&#xff0c;\u9002\u5408\u4f18\u5316\u5668\u72b6\u6001\u5360\u6bd4\u5f88\u5927\u7684\u8bad\u7ec3&#xff1b;ZeRO-2 \u8fdb\u4e00\u6b65\u8282\u7701\u68af\u5ea6\u663e\u5b58&#xff1b;ZeRO-3 \u6700\u7701\u663e\u5b58&#xff0c;\u53ef\u8bad\u7ec3\u66f4\u5927\u7684\u6a21\u578b&#xff0c;\u4f46\u53c2\u6570\u5728\u5c42\u8ba1\u7b97\u524d\u540e\u9700\u8981\u805a\u5408\u548c\u91ca\u653e&#xff0c;\u901a\u4fe1\u3001\u914d\u7f6e\u590d\u6742\u5ea6\u548c\u5c0f batch \u6027\u80fd\u4ee3\u4ef7\u66f4\u9ad8\u3002ZeRO-Infinity \u8fd8\u53ef\u4ee5\u628a\u90e8\u5206\u72b6\u6001\u5378\u8f7d\u5230 CPU\/NVMe&#xff0c;\u4f46\u4f1a\u53d7 PCIe\u3001\u5185\u5b58\u5e26\u5bbd\u548c I\/O \u5f71\u54cd\u3002<\/p>\n<p>\u9700\u8981\u533a\u5206 ZeRO \u4e0e Tensor Parallel\u3001Pipeline Parallel&#xff1a;ZeRO \u4e3b\u8981\u5206\u7247\u6570\u636e\u5e76\u884c\u4e2d\u7684\u8bad\u7ec3\u72b6\u6001&#xff0c;TP\/PP \u4e3b\u8981\u5207\u5206\u6a21\u578b\u8ba1\u7b97\u548c\u5c42&#xff1b;\u5b83\u4eec\u53ef\u4ee5\u7ec4\u5408\u3002\u9009\u62e9\u65f6\u8981\u7efc\u5408\u6a21\u578b\u5927\u5c0f\u3001\u5e8f\u5217\u957f\u5ea6\u3001GPU \u6570\u91cf\u3001\u4e92\u8054\u5e26\u5bbd\u3001checkpoint \u9700\u6c42\u548c\u541e\u5410\u76ee\u6807&#xff0c;\u800c\u4e0d\u662f\u9ed8\u8ba4 ZeRO-3 \u4e00\u5b9a\u6700\u597d\u3002<\/p>\n<p>\u5728\u4e0a\u8ff0 16 \u5b57\u8282\/\u53c2\u6570\u7684\u5047\u8bbe\u4e0b&#xff0c;\u6570\u636e\u5e76\u884c\u5ea6\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        D<\/p>\n<p>       D<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">D<\/span><\/span><\/span><\/span><\/span> \u65f6&#xff0c;\u53ef\u4ee5\u5199\u51fa\u66f4\u7cbe\u786e\u7684\u9759\u6001\u72b6\u6001\u8fd1\u4f3c&#xff1a;<\/p>\n<table>\n<tr>\u914d\u7f6e\u6bcf\u5361\u6301\u4e45\u72b6\u6001&#xff0c;\u5b57\u8282<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>           P<\/p>\n<p>           &#061;<\/p>\n<p>           7<\/p>\n<p>           B<\/p>\n<p>           ,<\/p>\n<p>           D<\/p>\n<p>           &#061;<\/p>\n<p>           8<\/p>\n<p>          P&#061;7B,D&#061;8<\/p>\n<p>       <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">P<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8778em;vertical-align: -0.1944em\"><\/span><span class=\"mord\">7<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0502em\">B<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">D<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">8<\/span><\/span><\/span><\/span><\/span> \u7684\u793a\u4f8b<\/tr>\n<tbody>\n<tr>\n<td>\u666e\u901a\u6570\u636e\u5e76\u884c<\/td>\n<td><span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>           16<\/p>\n<p>           P<\/p>\n<p>          16P<\/p>\n<p>       <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord\">16<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">P<\/span><\/span><\/span><\/span><\/span><\/td>\n<td>112 GB<\/td>\n<\/tr>\n<tr>\n<td>ZeRO-1<\/td>\n<td><span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>           4<\/p>\n<p>           P<\/p>\n<p>           &#043;<\/p>\n<p>           12<\/p>\n<p>           P<\/p>\n<p>           \/<\/p>\n<p>           D<\/p>\n<p>          4P&#043;12P\/D<\/p>\n<p>       <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.7667em;vertical-align: -0.0833em\"><\/span><span class=\"mord\">4<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">P<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">&#043;<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord\">12<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">P<\/span><span class=\"mord\">\/<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">D<\/span><\/span><\/span><\/span><\/span><\/td>\n<td>38.5 GB<\/td>\n<\/tr>\n<tr>\n<td>ZeRO-2<\/td>\n<td><span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>           2<\/p>\n<p>           P<\/p>\n<p>           &#043;<\/p>\n<p>           14<\/p>\n<p>           P<\/p>\n<p>           \/<\/p>\n<p>           D<\/p>\n<p>          2P&#043;14P\/D<\/p>\n<p>       <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.7667em;vertical-align: -0.0833em\"><\/span><span class=\"mord\">2<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">P<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">&#043;<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord\">14<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">P<\/span><span class=\"mord\">\/<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">D<\/span><\/span><\/span><\/span><\/span><\/td>\n<td>26.25 GB<\/td>\n<\/tr>\n<tr>\n<td>ZeRO-3<\/td>\n<td><span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>           16<\/p>\n<p>           P<\/p>\n<p>           \/<\/p>\n<p>           D<\/p>\n<p>          16P\/D<\/p>\n<p>       <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord\">16<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">P<\/span><span class=\"mord\">\/<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">D<\/span><\/span><\/span><\/span><\/span><\/td>\n<td>14 GB<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u56e0\u6b64&#xff0c;\u53ea\u6709 ZeRO-3 \u5bf9\u8fd9\u4e09\u7c7b\u72b6\u6001\u90fd\u5b9e\u73b0\u4e86\u7406\u60f3\u5206\u7247&#xff1b;ZeRO-1\/2 \u6bcf\u5361\u4ecd\u6709\u4e0d\u968f\u5361\u6570\u7f29\u5c0f\u7684\u590d\u5236\u9879\u3002\u8fd9\u5f20\u8868\u662f\u5bb9\u91cf\u9884\u7b97&#xff0c;\u4e0d\u662f\u8fd0\u884c\u5cf0\u503c&#xff1b;\u4e0d\u80fd\u636e\u6b64\u5224\u65ad ZeRO-1 \u5728 40 GB A100 \u4e0a\u4e00\u5b9a\u80fd\u8dd1&#xff0c;\u56e0\u4e3a\u5269\u4f59\u7a7a\u95f4\u8fd8\u8981\u627f\u62c5\u6fc0\u6d3b\u548c\u5176\u4ed6\u5f00\u9500\u3002<\/p>\n<h3>\u6ce8\u610f\u529b\u4e0e\u6846\u67b6&#xff1a;\u7406\u89e3\u7f13\u5b58\u3001\u8c03\u5ea6\u4e0e\u8ba1\u7b97\u7684\u5206\u5de5<\/h3>\n<h4>8.\u591a\u5934\u6ce8\u610f\u529b\u7684\u53d8\u4f53\u6709\u4ec0\u4e48<\/h4>\n<p>\u56de\u7b54&#xff1a;<\/p>\n<p>\u6807\u51c6 Multi-Head Attention&#xff08;MHA&#xff09;\u4e3a\u6bcf\u4e2a Query \u5934\u914d\u7f6e\u72ec\u7acb\u7684 Key\/Value \u5934\u3002\u8bbe Query \u5934\u6570\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         H<\/p>\n<p>         q<\/p>\n<p>       H_q<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.9694em;vertical-align: -0.2861em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0813em\">H<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1514em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0813em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">q<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>&#xff0c;Key\/Value \u5934\u6570\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         H<\/p>\n<p>          k<\/p>\n<p>          v<\/p>\n<p>       H_{kv}<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8333em;vertical-align: -0.15em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0813em\">H<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0813em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0315em\">k<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">v<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>&#xff1a;<\/p>\n<ul>\n<li>MHA&#xff1a; <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\">\n<p>          H<\/p>\n<p>          q<\/p>\n<p>         &#061;<\/p>\n<p>          H<\/p>\n<p>           k<\/p>\n<p>           v<\/p>\n<p>        H_q&#061;H_{kv}<\/p>\n<p>     <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.9694em;vertical-align: -0.2861em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0813em\">H<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1514em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0813em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">q<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8333em;vertical-align: -0.15em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0813em\">H<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0813em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0315em\">k<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">v<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>\u3002\u8868\u8fbe\u80fd\u529b\u5b8c\u6574&#xff0c;\u4f46\u81ea\u56de\u5f52\u63a8\u7406\u9700\u8981\u7f13\u5b58\u6700\u591a\u7684 K\/V&#xff0c;\u663e\u5b58\u548c\u5e26\u5bbd\u5f00\u9500\u5927\u3002<\/li>\n<li>MQA&#xff1a; <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\">\n<p>          H<\/p>\n<p>           k<\/p>\n<p>           v<\/p>\n<p>         &#061;<\/p>\n<p>         1<\/p>\n<p>        H_{kv}&#061;1<\/p>\n<p>     <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8333em;vertical-align: -0.15em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0813em\">H<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0813em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0315em\">k<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">v<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">1<\/span><\/span><\/span><\/span><\/span>\u3002\u6240\u6709 Query \u5934\u5171\u4eab\u4e00\u7ec4 K\/V&#xff0c;KV Cache \u663e\u8457\u7f29\u5c0f&#xff0c;\u89e3\u7801\u66f4\u5feb&#xff0c;\u4f46\u8fc7\u5ea6\u5171\u4eab\u53ef\u80fd\u635f\u5931\u8d28\u91cf\u3002<\/li>\n<li>GQA&#xff1a; <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\">\n<p>         1<\/p>\n<p>         &lt;<\/p>\n<p>          H<\/p>\n<p>           k<\/p>\n<p>           v<\/p>\n<p>         &lt;<\/p>\n<p>          H<\/p>\n<p>          q<\/p>\n<p>        1&lt;H_{kv}&lt;H_q<\/p>\n<p>     <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6835em;vertical-align: -0.0391em\"><\/span><span class=\"mord\">1<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&lt;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8333em;vertical-align: -0.15em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0813em\">H<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0813em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0315em\">k<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">v<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&lt;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.9694em;vertical-align: -0.2861em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0813em\">H<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1514em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0813em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">q<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>\u3002\u591a\u4e2a Query \u5934\u5206\u7ec4\u5171\u4eab\u4e00\u4e2a K\/V \u5934&#xff0c;\u662f\u8d28\u91cf\u3001\u7f13\u5b58\u548c\u5e26\u5bbd\u4e4b\u95f4\u5e38\u89c1\u7684\u6298\u4e2d\u3002\u6bcf\u4e2a KV \u5934\u5bf9\u5e94 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>          H<\/p>\n<p>          q<\/p>\n<p>         \/<\/p>\n<p>          H<\/p>\n<p>           k<\/p>\n<p>           v<\/p>\n<p>        H_q\/H_{kv}<\/p>\n<p>     <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1.0361em;vertical-align: -0.2861em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0813em\">H<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1514em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0813em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">q<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\">\/<\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0813em\">H<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0813em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0315em\">k<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">v<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span> \u4e2a Query \u5934\u3002<\/li>\n<li>MQA\/GQA \u7684 KV \u5934\u6269\u5c55&#xff1a; \u8ba1\u7b97\u65f6\u628a\u8f83\u5c11\u7684 K\/V \u5934\u6309\u7ec4\u5e7f\u64ad\u7ed9 Query \u5934&#xff0c;\u6570\u5b66\u4e0a\u4ecd\u662f\u7f29\u653e\u70b9\u79ef\u6ce8\u610f\u529b&#xff0c;\u4e3b\u8981\u53d8\u5316\u5728\u53c2\u6570\u7ec4\u7ec7\u548c\u7f13\u5b58\u5e03\u5c40\u3002<\/li>\n<li>MLA&#xff08;Multi-head Latent Attention&#xff09;&#xff1a; \u4e0d\u76f4\u63a5\u7f13\u5b58\u5b8c\u6574\u7684\u6bcf\u5934 K\/V&#xff0c;\u800c\u662f\u7f13\u5b58\u4f4e\u7ef4 latent \u8868\u793a&#xff0c;\u5e76\u5728\u9700\u8981\u65f6\u7ed3\u5408 Query \u6295\u5f71\u91cd\u5efa\u6ce8\u610f\u529b\u6240\u9700\u4fe1\u606f&#xff0c;\u4ece\u800c\u5728\u957f\u4e0a\u4e0b\u6587\u548c\u9ad8\u5e76\u53d1\u4e0b\u8fdb\u4e00\u6b65\u964d\u4f4e KV Cache \u538b\u529b\u3002\u5b83\u4e0d\u662f\u7b80\u5355\u628a GQA \u7684 KV \u5934\u6570\u8bbe\u4e3a\u66f4\u5c0f&#xff0c;\u5177\u4f53\u7ed3\u6784\u8fd8\u6d89\u53ca\u4f4e\u79e9\u6295\u5f71\u548c\u4f4d\u7f6e\u7f16\u7801\u8bbe\u8ba1\u3002<\/li>\n<li>\u5c40\u90e8\/\u6ed1\u52a8\u7a97\u53e3\u6ce8\u610f\u529b&#xff1a; \u6bcf\u4e2a token \u53ea\u5173\u6ce8\u5c40\u90e8\u7a97\u53e3&#xff0c;\u964d\u4f4e\u957f\u5e8f\u5217\u8ba1\u7b97\u91cf&#xff0c;\u4f46\u4f1a\u727a\u7272\u8fdc\u8ddd\u79bb\u76f4\u63a5\u4ea4\u4e92&#xff0c;\u9700\u8981\u5168\u5c40 token\u3001\u7a00\u758f\u8fde\u63a5\u6216\u5c42\u95f4\u4f20\u64ad\u8865\u8db3\u3002<\/li>\n<li>\u7a00\u758f\u3001\u5757\u7a00\u758f\u548c\u7ebf\u6027\u6ce8\u610f\u529b&#xff1a; \u901a\u8fc7\u9650\u5236\u8fde\u63a5\u6a21\u5f0f\u6216\u6539\u53d8\u8ba1\u7b97\u5f62\u5f0f\u51cf\u5c11 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\">\n<p>         O<\/p>\n<p>         (<\/p>\n<p>          S<\/p>\n<p>          2<\/p>\n<p>         )<\/p>\n<p>        O(S^2)<\/p>\n<p>     <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1.0641em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">O<\/span><span class=\"mopen\">(<\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0576em\">S<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.8141em\"><span class=\"\" style=\"top: -3.063em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mclose\">)<\/span><\/span><\/span><\/span><\/span> \u6210\u672c&#xff0c;\u9002\u5408\u7279\u5b9a\u957f\u5ea6\u548c\u4efb\u52a1\u5206\u5e03&#xff0c;\u4f46\u9700\u8981\u786c\u4ef6 kernel\u3001\u8d28\u91cf\u548c\u8bad\u7ec3\u7a33\u5b9a\u6027\u5171\u540c\u9a8c\u8bc1\u3002<\/li>\n<\/ul>\n<p>\u6ce8\u610f\u529b\u53d8\u4f53\u7684\u672c\u8d28\u662f\u540c\u65f6\u6539\u53d8\u4e09\u4ef6\u4e8b&#xff1a;\u8868\u793a\u80fd\u529b\u3001\u6bcf token \u7684 KV \u72b6\u6001\u5927\u5c0f\u548c\u77e9\u9635\u4e58\u6cd5\/\u8bbf\u5b58\u6a21\u5f0f\u3002\u81ea\u56de\u5f52\u89e3\u7801\u7684\u4e3b\u8981\u74f6\u9888\u5f80\u5f80\u4e0d\u662f QKV \u6295\u5f71\u672c\u8eab&#xff0c;\u800c\u662f\u6bcf\u4e00\u6b65\u8bfb\u53d6\u5386\u53f2 K\/V \u7684\u663e\u5b58\u5e26\u5bbd&#xff0c;\u56e0\u6b64\u964d\u4f4e KV Cache \u53ef\u4ee5\u5e26\u6765\u660e\u663e\u6536\u76ca&#xff1b;\u4f46\u5728\u77ed\u5e8f\u5217\u3001\u5927 batch \u6216 prefill \u9636\u6bb5&#xff0c;\u8ba1\u7b97\u548c\u5e76\u884c\u5ea6\u7684\u6743\u8861\u53ef\u80fd\u4e0d\u540c\u3002\u56de\u7b54\u65f6\u8981\u533a\u5206 prefill \u4e0e decode&#xff0c;\u4e0d\u80fd\u7b3c\u7edf\u8bf4\u201c\u6240\u6709\u573a\u666f GQA \u90fd\u66f4\u5feb\u201d\u3002<\/p>\n<p>\u5bf9\u6807\u51c6 MHA\/GQA\/MQA&#xff0c;\u81ea\u56de\u5f52 KV Cache \u53ef\u8fd1\u4f3c\u5199\u6210&#xff1a;<\/p>\n<p><span class=\"katex--display\"><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>          M<\/p>\n<p>           K<\/p>\n<p>           V<\/p>\n<p>         &#061;<\/p>\n<p>         2<\/p>\n<p>         B<\/p>\n<p>         L<\/p>\n<p>         S<\/p>\n<p>          H<\/p>\n<p>           k<\/p>\n<p>           v<\/p>\n<p>          D<\/p>\n<p>          h<\/p>\n<p>         b<\/p>\n<p>         ,<\/p>\n<p>         M_{KV}&#061;2BLSH_{kv}D_hb, <\/p>\n<p>     <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8333em;vertical-align: -0.15em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.109em\">M<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3283em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.109em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0715em\">K<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.2222em\">V<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8889em;vertical-align: -0.1944em\"><\/span><span class=\"mord\">2<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0502em\">B<\/span><span class=\"mord mathnormal\">L<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0576em\">S<\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0813em\">H<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0813em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0315em\">k<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">v<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">D<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0278em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">h<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord mathnormal\">b<\/span><span class=\"mpunct\">,<\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n<p>\u5176\u4e2d <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        B<\/p>\n<p>       B<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0502em\">B<\/span><\/span><\/span><\/span><\/span> \u662f\u5e76\u53d1\u5e8f\u5217\u6570&#xff0c;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        L<\/p>\n<p>       L<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\">L<\/span><\/span><\/span><\/span><\/span> \u662f\u6ce8\u610f\u529b\u5c42\u6570&#xff0c;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        S<\/p>\n<p>       S<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0576em\">S<\/span><\/span><\/span><\/span><\/span> \u662f\u5df2\u7f13\u5b58\u957f\u5ea6&#xff0c;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        b<\/p>\n<p>       b<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6944em\"><\/span><span class=\"mord mathnormal\">b<\/span><\/span><\/span><\/span><\/span> \u662f\u6bcf\u4e2a\u5143\u7d20\u7684\u5b57\u8282\u6570&#xff0c;\u7cfb\u6570 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        2<\/p>\n<p>       2<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">2<\/span><\/span><\/span><\/span><\/span> \u8868\u793a K \u548c V\u3002\u5b83\u672a\u8ba1\u5206\u9875\u7a7a\u6d1e\u3001\u5143\u6570\u636e\u548c\u7279\u5b9a\u591a\u6a21\u6001\u67b6\u6784\u7684\u989d\u5916\u7f13\u5b58\u3002\u540c\u6837\u7684 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         H<\/p>\n<p>         q<\/p>\n<p>        &#061;<\/p>\n<p>        32<\/p>\n<p>       H_q&#061;32<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.9694em;vertical-align: -0.2861em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0813em\">H<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1514em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0813em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">q<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">32<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u82e5\u5c06 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         H<\/p>\n<p>          k<\/p>\n<p>          v<\/p>\n<p>       H_{kv}<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8333em;vertical-align: -0.15em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0813em\">H<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0813em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0315em\">k<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">v<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span> \u4ece 32 \u964d\u5230 8&#xff0c;\u7406\u60f3 KV \u5bb9\u91cf\u964d\u4e3a\u56db\u5206\u4e4b\u4e00&#xff1b;\u8fd9\u4e0d\u7b49\u4e8e\u603b\u63a8\u7406\u5ef6\u8fdf\u4e5f\u964d\u4e3a\u56db\u5206\u4e4b\u4e00\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260916051644-6aaa263c961cd.png\" alt=\"\u56fe3 MHA\u3001GQA\u3001MQA\u7684KV\u5171\u4eab\u65b9\u5f0f\" \/><\/p>\n<p>\u56fe 3 \u56fa\u5b9a\u56db\u4e2a Query \u5934&#xff0c;\u53ea\u6539\u53d8 K\/V \u5934\u7684\u5171\u4eab\u5173\u7cfb\u3002FlashAttention \u5219\u901a\u8fc7\u5206\u5757\u4e0e\u5728\u7ebf softmax \u51cf\u5c11\u6ce8\u610f\u529b\u4e2d\u95f4\u7ed3\u679c\u7684\u663e\u5b58\u8bfb\u5199&#xff0c;\u901a\u5e38\u4fdd\u7559\u7cbe\u786e\u7a20\u5bc6\u6ce8\u610f\u529b\u8ba1\u7b97&#xff1b;\u5b83\u4e0e\u6539\u53d8\u5934\u5171\u4eab\u5173\u7cfb\u7684 GQA\u3001\u7ba1\u7406\u7f13\u5b58\u5206\u9875\u7684 PagedAttention \u53ef\u4ee5\u534f\u540c\u4f7f\u7528&#xff0c;\u4e0d\u80fd\u4e92\u76f8\u66ff\u4ee3\u3002GQA \u7684\u5934\u5e7f\u64ad\u4e5f\u4e0d\u610f\u5473\u7740\u5fc5\u987b\u7269\u7406\u590d\u5236 K\/V \u7f13\u5b58\u3002<\/p>\n<h4>9.verl\u7b49\u6846\u67b6\u90fd\u5982\u4f55\u8fdb\u884c\u52a0\u901f\u7684<\/h4>\n<p>\u56de\u7b54&#xff1a;<\/p>\n<p>\u4ee5 verl \u8fd9\u7c7b LLM\/Agent \u5f3a\u5316\u5b66\u4e60\u6846\u67b6\u4e3a\u4f8b&#xff0c;\u52a0\u901f\u91cd\u70b9\u4e0d\u662f\u4e00\u4e2a\u795e\u5947\u7b97\u5b50&#xff0c;\u800c\u662f\u628a Rollout\u3001Reward\u3001\u8bad\u7ec3\u66f4\u65b0\u548c\u6570\u636e\u8c03\u5ea6\u7ec4\u7ec7\u6210\u9ad8\u541e\u5410\u7cfb\u7edf\u3002\u4e0d\u540c\u7248\u672c\u548c\u914d\u7f6e\u7684\u5b9e\u73b0\u4f1a\u53d8\u5316&#xff0c;\u56e0\u6b64\u5e94\u6309\u516c\u5f00\u80fd\u529b\u548c\u5b9e\u9645\u914d\u7f6e\u8bf4\u660e&#xff0c;\u4e0d\u5e94\u968f\u610f\u627f\u8bfa\u56fa\u5b9a\u7248\u672c\u6216\u500d\u6570\u3002<\/p>\n<p>\u4e3b\u8981\u673a\u5236\u5305\u62ec&#xff1a;<\/p>\n<li>Hybrid Engine\u3002 \u5728\u8bad\u7ec3\u4e0e\u751f\u6210\u4e4b\u95f4\u590d\u7528\u6216\u5207\u6362\u6a21\u578b\u6743\u91cd&#xff0c;\u51cf\u5c11\u91cd\u590d\u52a0\u8f7d\u548c GPU \u7a7a\u95f2\u3002\u53ef\u4ee5\u91c7\u7528 colocated \u65b9\u5f0f\u5728\u540c\u4e00\u6279 GPU \u4e0a\u8c03\u5ea6&#xff0c;\u4e5f\u53ef\u4ee5\u628a Rollout \u4e0e Trainer \u5206\u79bb\u5230\u4e0d\u540c GPU \u8d44\u6e90\u6c60&#xff1b;\u524d\u8005\u8282\u7701\u8d44\u6e90&#xff0c;\u540e\u8005\u66f4\u5bb9\u6613\u9694\u79bb\u541e\u5410&#xff0c;\u4f46\u9700\u8981\u5904\u7406\u6743\u91cd\u540c\u6b65\u548c\u8d44\u6e90\u5229\u7528\u7387\u3002<\/li>\n<li>\u9ad8\u6548 Rollout\u3002 \u5bf9\u63a5 vLLM\u3001SGLang \u7b49\u63a8\u7406\u540e\u7aef&#xff0c;\u5229\u7528 Continuous Batching\u3001Paged KV Cache\u3001prefix caching\u3001\u5f20\u91cf\u5e76\u884c\u548c\u9ad8\u6548\u91c7\u6837&#xff1b;\u5bf9 GRPO \u901a\u8fc7\u6279\u91cf\u751f\u6210\u540c\u4e00 prompt \u7684\u591a\u6761 response&#xff0c;\u63d0\u9ad8\u751f\u6210\u9636\u6bb5\u7684 GPU \u5229\u7528\u7387\u3002<\/li>\n<li>\u8bad\u7ec3\u540e\u7aef\u4f18\u5316\u3002 \u5bf9\u63a5 FSDP\u3001Megatron \u6216\u5176\u4ed6\u5206\u5e03\u5f0f\u8bad\u7ec3\u540e\u7aef&#xff0c;\u4f7f\u7528\u53c2\u6570\/\u68af\u5ea6\/\u4f18\u5316\u5668\u5206\u7247\u3001\u6df7\u5408\u7cbe\u5ea6\u3001\u68af\u5ea6\u7d2f\u79ef\u3001sequence packing\u3001\u6fc0\u6d3b\u91cd\u8ba1\u7b97\u548c\u901a\u4fe1\u8ba1\u7b97 overlap\u3002<\/li>\n<li>\u5f02\u6b65\u4e0e\u6d41\u6c34\u5316\u3002 Rollout\u3001Reward\u3001\u6570\u636e\u4f20\u8f93\u548c\u8bad\u7ec3\u53ef\u4ee5\u6d41\u6c34\u5e76\u884c&#xff0c;\u51cf\u5c11\u9636\u6bb5\u95f4\u4e92\u76f8\u7b49\u5f85\u3002\u5f02\u6b65\u8bad\u7ec3\u8981\u8bb0\u5f55 policy version&#xff0c;\u63a7\u5236\u6837\u672c\u9648\u65e7\u5ea6&#xff0c;\u5fc5\u8981\u65f6\u4e22\u5f03\u8fc7\u65e7\u8f68\u8ff9&#xff0c;\u907f\u514d\u541e\u5410\u63d0\u5347\u5374\u7834\u574f\u8bad\u7ec3\u76ee\u6807\u3002<\/li>\n<li>\u6570\u636e\u4e0e\u957f\u5ea6\u7ba1\u7406\u3002 \u6309 prompt \u957f\u5ea6\u3001response \u957f\u5ea6\u3001\u56fe\u7247 token \u6570\u5206\u6876&#xff0c;\u52a8\u6001 batch&#xff0c;\u51cf\u5c11 padding&#xff1b;\u8bbe\u7f6e\u6700\u5927\u751f\u6210\u957f\u5ea6\u548c\u505c\u6b62\u6761\u4ef6&#xff0c;\u907f\u514d\u628a\u5927\u91cf\u8ba1\u7b97\u6d6a\u8d39\u5728\u65e0\u6548\u8f68\u8ff9\u4e0a\u3002<\/li>\n<li>\u901a\u4fe1\u548c\u5185\u5b58\u3002 \u9884\u5206\u914d buffer\u3001\u51cf\u5c11 CPU-GPU \u62f7\u8d1d\u3001\u4f7f\u7528 pinned memory\u3001\u4f18\u5316 NCCL \u62d3\u6251\u548c\u901a\u4fe1 bucket&#xff1b;\u6a21\u578b\u6743\u91cd\u3001KV Cache\u3001\u5956\u52b1\u7ed3\u679c\u548c\u8bad\u7ec3 batch \u7684\u751f\u547d\u5468\u671f\u8981\u660e\u786e&#xff0c;\u907f\u514d\u663e\u5b58\u788e\u7247\u3002<\/li>\n<li>\u53ef\u89c2\u6d4b\u6027\u3002 \u5206\u522b\u7edf\u8ba1\u751f\u6210 tokens\/s\u3001\u8bad\u7ec3 tokens\/s\u3001reward \u5ef6\u8fdf\u3001\u6743\u91cd\u540c\u6b65\u65f6\u95f4\u3001GPU \u7a7a\u95f2\u6bd4\u4f8b\u3001\u901a\u4fe1\u5360\u6bd4\u3001\u6837\u672c\u9648\u65e7\u5ea6\u3001\u6709\u6548 batch \u548c\u7aef\u5230\u7aef step time\u3002\u53ea\u6709\u627e\u5230\u5177\u4f53\u74f6\u9888&#xff0c;\u624d\u80fd\u5224\u65ad\u67d0\u9879\u4f18\u5316\u662f\u5426\u771f\u6b63\u6709\u6548\u3002<\/li>\n<p>\u5bf9 8 \u5f20 A100 \u7684\u5c0f\u89c4\u6a21\u96c6\u7fa4&#xff0c;\u5e38\u89c1\u4f18\u5148\u7ea7\u662f\u5148\u786e\u8ba4 rollout \u662f\u5426\u4e3b\u5bfc\u8017\u65f6&#xff0c;\u518d\u9009\u62e9 colocate \u6216 disaggregate&#xff1b;\u968f\u540e\u6309\u6a21\u578b\u5927\u5c0f\u548c\u5e8f\u5217\u957f\u5ea6\u9009\u62e9 FSDP\/Megatron\u3001TP\/DP \u548c checkpoint&#xff1b;\u6700\u540e\u4f18\u5316 kernel\u3001packing \u548c\u901a\u4fe1\u3002\u4efb\u4f55\u201c\u51cf\u5c11 group size\u201d\u201c\u8bad\u7ec3\u63a8\u7406\u89e3\u8026\u201d\u90fd\u9700\u8981\u4e0e reward \u65b9\u5dee\u3001\u6837\u672c\u65b0\u9c9c\u5ea6\u3001\u6700\u7ec8\u4efb\u52a1\u8d28\u91cf\u4e00\u8d77\u9a8c\u8bc1\u3002<\/p>\n<h3>\u624b\u6495\u9898<\/h3>\n<h4>\u624b\u6495&#xff1a;MHA<\/h4>\n<p>\u56de\u7b54&#xff1a;<\/p>\n<p>\u8bbe\u8f93\u5165 query\u3001key\u3001value \u7684\u5f62\u72b6\u5206\u522b\u4e3a [B, Lq, D]\u3001[B, Lk, D]\u3001[B, Lv, D]&#xff0c;\u5728\u6807\u51c6\u6ce8\u610f\u529b\u4e2d\u8981\u6c42 Lk &#061;&#061; Lv\u3002\u5934\u6570\u4e3a H&#xff0c;\u6bcf\u5934\u7ef4\u5ea6\u4e3a Dh &#061; D \/ H\u3002\u8ba1\u7b97\u8fc7\u7a0b\u4e3a&#xff1a;<\/p>\n<p><span class=\"katex--display\"><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         Q<\/p>\n<p>         &#061;<\/p>\n<p>          X<\/p>\n<p>          q<\/p>\n<p>          W<\/p>\n<p>          Q<\/p>\n<p>         ,<\/p>\n<p>         K<\/p>\n<p>         &#061;<\/p>\n<p>          X<\/p>\n<p>          k<\/p>\n<p>          W<\/p>\n<p>          K<\/p>\n<p>         ,<\/p>\n<p>         V<\/p>\n<p>         &#061;<\/p>\n<p>          X<\/p>\n<p>          v<\/p>\n<p>          W<\/p>\n<p>          V<\/p>\n<p>         .<\/p>\n<p>         Q&#061;X_qW_Q,\\\\quad K&#061;X_kW_K,\\\\quad V&#061;X_vW_V. <\/p>\n<p>     <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8778em;vertical-align: -0.1944em\"><\/span><span class=\"mord mathnormal\">Q<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.9694em;vertical-align: -0.2861em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0785em\">X<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1514em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0785em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">q<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">W<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3283em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.1389em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">Q<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 1em\"><\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0715em\">K<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8778em;vertical-align: -0.1944em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0785em\">X<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0785em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0315em\">k<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">W<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3283em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.1389em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0715em\">K<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 1em\"><\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.2222em\">V<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8333em;vertical-align: -0.15em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0785em\">X<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1514em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0785em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">v<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">W<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3283em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.1389em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.2222em\">V<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\">.<\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n<p><span class=\"katex--display\"><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         Attention<\/p>\n<p>         \u2061<\/p>\n<p>         (<\/p>\n<p>         Q<\/p>\n<p>         ,<\/p>\n<p>         K<\/p>\n<p>         ,<\/p>\n<p>         V<\/p>\n<p>         )<\/p>\n<p>         &#061;<\/p>\n<p>         softmax<\/p>\n<p>         \u2061<\/p>\n<p>          (<\/p>\n<p>            Q<\/p>\n<p>             K<\/p>\n<p>             T<\/p>\n<p>             D<\/p>\n<p>             h<\/p>\n<p>          &#043;<\/p>\n<p>          M<\/p>\n<p>          )<\/p>\n<p>         V<\/p>\n<p>         .<\/p>\n<p>         \\\\operatorname{Attention}(Q,K,V)&#061; \\\\operatorname{softmax}\\\\left(\\\\frac{QK^{\\\\mathsf T}}{\\\\sqrt{D_h}}&#043;M\\\\right)V. <\/p>\n<p>     <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mop\"><span class=\"mord mathrm\">Attention<\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">Q<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0715em\">K<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.2222em\">V<\/span><span class=\"mclose\">)<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 2.4761em;vertical-align: -0.95em\"><\/span><span class=\"mop\"><span class=\"mord mathrm\">softmax<\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top: 0em\"><span class=\"delimsizing size3\">(<\/span><\/span><span class=\"mord\"><span class=\"mopen nulldelimiter\"><\/span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 1.5261em\"><span class=\"\" style=\"top: -2.2583em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.8517em\"><span class=\"svg-align\" style=\"top: -3em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"mord\" style=\"padding-left: 0.833em\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">D<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0278em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">h<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"\" style=\"top: -2.8117em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"hide-tail\" style=\"min-width: 0.853em;height: 1.08em\"><\/p>\n<p>                    <\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1883em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"\" style=\"top: -3.23em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"frac-line\" style=\"border-bottom-width: 0.04em\"><\/span><\/span><span class=\"\" style=\"top: -3.677em\"><span class=\"pstrut\" style=\"height: 3em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\">Q<\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0715em\">K<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.8491em\"><span class=\"\" style=\"top: -3.063em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathsf mtight\">T<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.93em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><span class=\"mclose nulldelimiter\"><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">&#043;<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.109em\">M<\/span><span class=\"mclose delimcenter\" style=\"top: 0em\"><span class=\"delimsizing size3\">)<\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.2222em\">V<\/span><span class=\"mord\">.<\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n<p>\u4e0b\u9762\u5b9e\u73b0\u652f\u6301 Self-Attention \u548c Cross-Attention&#xff0c;mask&#061;True \u8868\u793a\u5141\u8bb8\u5173\u6ce8&#xff0c;\u53ea\u63a5\u6536\u5e03\u5c14 mask\u3002\u4e8c\u7ef4 [Lq,Lk] mask \u53ef\u76f4\u63a5\u5e7f\u64ad&#xff1b;\u6bcf\u4e2a\u6837\u672c\u7684 padding mask \u5e94\u6269\u5c55\u4e3a [B,1,1,Lk]&#xff0c;\u6bcf\u4e2a\u6837\u672c\u7684\u5b8c\u6574 mask \u5e94\u6269\u5c55\u4e3a [B,1,Lq,Lk]\u3002causal&#061;True \u4ec5\u7528\u4e8e query\/key \u4f7f\u7528\u76f8\u540c\u4f4d\u7f6e\u8d77\u70b9\u7684\u7b49\u957f\u81ea\u6ce8\u610f\u529b&#xff0c;\u4e0d\u652f\u6301\u5e26\u7f13\u5b58\u504f\u79fb\u7684\u589e\u91cf\u89e3\u7801\u3002\u5168\u5c4f\u853d query \u7684\u6ce8\u610f\u529b\u805a\u5408\u5b9a\u4e49\u4e3a\u96f6&#xff0c;\u6700\u7ec8\u8f93\u51fa\u53ef\u80fd\u4ecd\u542b\u8f93\u51fa\u5c42 bias\u3002<\/p>\n<p><span class=\"token keyword\">import<\/span> math<br \/>\n<span class=\"token keyword\">from<\/span> typing <span class=\"token keyword\">import<\/span> Optional<\/p>\n<p><span class=\"token keyword\">import<\/span> torch<br \/>\n<span class=\"token keyword\">from<\/span> torch <span class=\"token keyword\">import<\/span> Tensor<span class=\"token punctuation\">,<\/span> nn<\/p>\n<p><span class=\"token keyword\">class<\/span> <span class=\"token class-name\">MultiHeadAttention<\/span><span class=\"token punctuation\">(<\/span>nn<span class=\"token punctuation\">.<\/span>Module<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    <span class=\"token keyword\">def<\/span> <span class=\"token function\">__init__<\/span><span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">,<\/span> d_model<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> num_heads<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> dropout<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">float<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0.0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        <span class=\"token builtin\">super<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>__init__<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> num_heads <span class=\"token operator\">&lt;&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token keyword\">or<\/span> d_model <span class=\"token operator\">&lt;&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token keyword\">or<\/span> d_model <span class=\"token operator\">%<\/span> num_heads <span class=\"token operator\">!&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">:<\/span><br \/>\n            <span class=\"token keyword\">raise<\/span> ValueError<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;d_model must be divisible by num_heads&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        self<span class=\"token punctuation\">.<\/span>d_model <span class=\"token operator\">&#061;<\/span> d_model<br \/>\n        self<span class=\"token punctuation\">.<\/span>num_heads <span class=\"token operator\">&#061;<\/span> num_heads<br \/>\n        self<span class=\"token punctuation\">.<\/span>head_dim <span class=\"token operator\">&#061;<\/span> d_model <span class=\"token operator\">\/\/<\/span> num_heads<br \/>\n        self<span class=\"token punctuation\">.<\/span>q_proj <span class=\"token operator\">&#061;<\/span> nn<span class=\"token punctuation\">.<\/span>Linear<span class=\"token punctuation\">(<\/span>d_model<span class=\"token punctuation\">,<\/span> d_model<span class=\"token punctuation\">)<\/span><br \/>\n        self<span class=\"token punctuation\">.<\/span>k_proj <span class=\"token operator\">&#061;<\/span> nn<span class=\"token punctuation\">.<\/span>Linear<span class=\"token punctuation\">(<\/span>d_model<span class=\"token punctuation\">,<\/span> d_model<span class=\"token punctuation\">)<\/span><br \/>\n        self<span class=\"token punctuation\">.<\/span>v_proj <span class=\"token operator\">&#061;<\/span> nn<span class=\"token punctuation\">.<\/span>Linear<span class=\"token punctuation\">(<\/span>d_model<span class=\"token punctuation\">,<\/span> d_model<span class=\"token punctuation\">)<\/span><br \/>\n        self<span class=\"token punctuation\">.<\/span>out_proj <span class=\"token operator\">&#061;<\/span> nn<span class=\"token punctuation\">.<\/span>Linear<span class=\"token punctuation\">(<\/span>d_model<span class=\"token punctuation\">,<\/span> d_model<span class=\"token punctuation\">)<\/span><br \/>\n        self<span class=\"token punctuation\">.<\/span>dropout <span class=\"token operator\">&#061;<\/span> nn<span class=\"token punctuation\">.<\/span>Dropout<span class=\"token punctuation\">(<\/span>dropout<span class=\"token punctuation\">)<\/span><\/p>\n<p>    <span class=\"token keyword\">def<\/span> <span class=\"token function\">forward<\/span><span class=\"token punctuation\">(<\/span><br \/>\n        self<span class=\"token punctuation\">,<\/span><br \/>\n        query<span class=\"token punctuation\">:<\/span> Tensor<span class=\"token punctuation\">,<\/span><br \/>\n        key<span class=\"token punctuation\">:<\/span> Tensor<span class=\"token punctuation\">,<\/span><br \/>\n        value<span class=\"token punctuation\">:<\/span> Tensor<span class=\"token punctuation\">,<\/span><br \/>\n        mask<span class=\"token punctuation\">:<\/span> Optional<span class=\"token punctuation\">[<\/span>Tensor<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token boolean\">None<\/span><span class=\"token punctuation\">,<\/span><br \/>\n        causal<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">bool<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token boolean\">False<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span> Tensor<span class=\"token punctuation\">:<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> <span class=\"token builtin\">any<\/span><span class=\"token punctuation\">(<\/span>x<span class=\"token punctuation\">.<\/span>ndim <span class=\"token operator\">!&#061;<\/span> <span class=\"token number\">3<\/span> <span class=\"token keyword\">or<\/span> x<span class=\"token punctuation\">.<\/span>shape<span class=\"token punctuation\">[<\/span><span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">!&#061;<\/span> self<span class=\"token punctuation\">.<\/span>d_model<br \/>\n               <span class=\"token keyword\">for<\/span> x <span class=\"token keyword\">in<\/span> <span class=\"token punctuation\">(<\/span>query<span class=\"token punctuation\">,<\/span> key<span class=\"token punctuation\">,<\/span> value<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n            <span class=\"token keyword\">raise<\/span> ValueError<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;inputs must have shape [B, L, d_model]&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> key<span class=\"token punctuation\">.<\/span>shape<span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">!&#061;<\/span> query<span class=\"token punctuation\">.<\/span>shape<span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token keyword\">or<\/span> value<span class=\"token punctuation\">.<\/span>shape<span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">!&#061;<\/span> query<span class=\"token punctuation\">.<\/span>shape<span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">:<\/span><br \/>\n            <span class=\"token keyword\">raise<\/span> ValueError<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;query, key and value batch sizes must match&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> key<span class=\"token punctuation\">.<\/span>shape<span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">:<\/span><br \/>\n            <span class=\"token keyword\">raise<\/span> ValueError<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;key sequence must be non-empty&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        batch<span class=\"token punctuation\">,<\/span> query_len<span class=\"token punctuation\">,<\/span> _ <span class=\"token operator\">&#061;<\/span> query<span class=\"token punctuation\">.<\/span>shape<br \/>\n        _<span class=\"token punctuation\">,<\/span> key_len<span class=\"token punctuation\">,<\/span> _ <span class=\"token operator\">&#061;<\/span> key<span class=\"token punctuation\">.<\/span>shape<br \/>\n        <span class=\"token keyword\">if<\/span> value<span class=\"token punctuation\">.<\/span>shape<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">:<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">!&#061;<\/span> <span class=\"token punctuation\">(<\/span>batch<span class=\"token punctuation\">,<\/span> key_len<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n            <span class=\"token keyword\">raise<\/span> ValueError<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;key and value must have the same batch and length&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>        q <span class=\"token operator\">&#061;<\/span> self<span class=\"token punctuation\">.<\/span>q_proj<span class=\"token punctuation\">(<\/span>query<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>view<span class=\"token punctuation\">(<\/span>batch<span class=\"token punctuation\">,<\/span> query_len<span class=\"token punctuation\">,<\/span> self<span class=\"token punctuation\">.<\/span>num_heads<span class=\"token punctuation\">,<\/span> self<span class=\"token punctuation\">.<\/span>head_dim<span class=\"token punctuation\">)<\/span><br \/>\n        k <span class=\"token operator\">&#061;<\/span> self<span class=\"token punctuation\">.<\/span>k_proj<span class=\"token punctuation\">(<\/span>key<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>view<span class=\"token punctuation\">(<\/span>batch<span class=\"token punctuation\">,<\/span> key_len<span class=\"token punctuation\">,<\/span> self<span class=\"token punctuation\">.<\/span>num_heads<span class=\"token punctuation\">,<\/span> self<span class=\"token punctuation\">.<\/span>head_dim<span class=\"token punctuation\">)<\/span><br \/>\n        v <span class=\"token operator\">&#061;<\/span> self<span class=\"token punctuation\">.<\/span>v_proj<span class=\"token punctuation\">(<\/span>value<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>view<span class=\"token punctuation\">(<\/span>batch<span class=\"token punctuation\">,<\/span> key_len<span class=\"token punctuation\">,<\/span> self<span class=\"token punctuation\">.<\/span>num_heads<span class=\"token punctuation\">,<\/span> self<span class=\"token punctuation\">.<\/span>head_dim<span class=\"token punctuation\">)<\/span><br \/>\n        q <span class=\"token operator\">&#061;<\/span> q<span class=\"token punctuation\">.<\/span>transpose<span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span>  <span class=\"token comment\"># [B, H, Lq, Dh]<\/span><br \/>\n        k <span class=\"token operator\">&#061;<\/span> k<span class=\"token punctuation\">.<\/span>transpose<span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span>  <span class=\"token comment\"># [B, H, Lk, Dh]<\/span><br \/>\n        v <span class=\"token operator\">&#061;<\/span> v<span class=\"token punctuation\">.<\/span>transpose<span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span>  <span class=\"token comment\"># [B, H, Lk, Dh]<\/span><\/p>\n<p>        <span class=\"token comment\"># Accumulate low-precision score products in FP32 for this teaching version.<\/span><br \/>\n        calc_dtype <span class=\"token operator\">&#061;<\/span> torch<span class=\"token punctuation\">.<\/span>float32 <span class=\"token keyword\">if<\/span> q<span class=\"token punctuation\">.<\/span>dtype <span class=\"token keyword\">in<\/span> <span class=\"token punctuation\">(<\/span>torch<span class=\"token punctuation\">.<\/span>float16<span class=\"token punctuation\">,<\/span> torch<span class=\"token punctuation\">.<\/span>bfloat16<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">else<\/span> q<span class=\"token punctuation\">.<\/span>dtype<br \/>\n        scores <span class=\"token operator\">&#061;<\/span> torch<span class=\"token punctuation\">.<\/span>matmul<span class=\"token punctuation\">(<\/span>q<span class=\"token punctuation\">.<\/span>to<span class=\"token punctuation\">(<\/span>calc_dtype<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> k<span class=\"token punctuation\">.<\/span>to<span class=\"token punctuation\">(<\/span>calc_dtype<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>transpose<span class=\"token punctuation\">(<\/span><span class=\"token operator\">&#8211;<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        scores <span class=\"token operator\">&#061;<\/span> scores <span class=\"token operator\">\/<\/span> math<span class=\"token punctuation\">.<\/span>sqrt<span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">.<\/span>head_dim<span class=\"token punctuation\">)<\/span><br \/>\n        allowed <span class=\"token operator\">&#061;<\/span> torch<span class=\"token punctuation\">.<\/span>ones_like<span class=\"token punctuation\">(<\/span>scores<span class=\"token punctuation\">,<\/span> dtype<span class=\"token operator\">&#061;<\/span>torch<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">bool<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> causal<span class=\"token punctuation\">:<\/span><br \/>\n            <span class=\"token keyword\">if<\/span> query_len <span class=\"token operator\">!&#061;<\/span> key_len<span class=\"token punctuation\">:<\/span><br \/>\n                <span class=\"token keyword\">raise<\/span> ValueError<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;causal&#061;True requires aligned equal-length sequences&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n            allowed <span class=\"token operator\">&#061;<\/span> allowed <span class=\"token operator\">&amp;<\/span> torch<span class=\"token punctuation\">.<\/span>ones<span class=\"token punctuation\">(<\/span><br \/>\n                query_len<span class=\"token punctuation\">,<\/span> key_len<span class=\"token punctuation\">,<\/span> dtype<span class=\"token operator\">&#061;<\/span>torch<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">bool<\/span><span class=\"token punctuation\">,<\/span> device<span class=\"token operator\">&#061;<\/span>query<span class=\"token punctuation\">.<\/span>device<br \/>\n            <span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>tril<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> mask <span class=\"token keyword\">is<\/span> <span class=\"token keyword\">not<\/span> <span class=\"token boolean\">None<\/span><span class=\"token punctuation\">:<\/span><br \/>\n            <span class=\"token keyword\">if<\/span> mask<span class=\"token punctuation\">.<\/span>dtype <span class=\"token operator\">!&#061;<\/span> torch<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">bool<\/span><span class=\"token punctuation\">:<\/span><br \/>\n                <span class=\"token keyword\">raise<\/span> ValueError<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;mask must be boolean, True means allowed&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n            allowed <span class=\"token operator\">&#061;<\/span> allowed <span class=\"token operator\">&amp;<\/span> torch<span class=\"token punctuation\">.<\/span>broadcast_to<span class=\"token punctuation\">(<\/span>mask<span class=\"token punctuation\">.<\/span>to<span class=\"token punctuation\">(<\/span>query<span class=\"token punctuation\">.<\/span>device<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> scores<span class=\"token punctuation\">.<\/span>shape<span class=\"token punctuation\">)<\/span><\/p>\n<p>        has_key <span class=\"token operator\">&#061;<\/span> allowed<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">any<\/span><span class=\"token punctuation\">(<\/span>dim<span class=\"token operator\">&#061;<\/span><span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> keepdim<span class=\"token operator\">&#061;<\/span><span class=\"token boolean\">True<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        scores <span class=\"token operator\">&#061;<\/span> scores<span class=\"token punctuation\">.<\/span>masked_fill<span class=\"token punctuation\">(<\/span><span class=\"token operator\">~<\/span>allowed<span class=\"token punctuation\">,<\/span> <span class=\"token builtin\">float<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;-inf&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        <span class=\"token comment\"># Avoid softmax(-inf, &#8230;, -inf), which produces NaN.<\/span><br \/>\n        scores <span class=\"token operator\">&#061;<\/span> torch<span class=\"token punctuation\">.<\/span>where<span class=\"token punctuation\">(<\/span>has_key<span class=\"token punctuation\">,<\/span> scores<span class=\"token punctuation\">,<\/span> torch<span class=\"token punctuation\">.<\/span>zeros_like<span class=\"token punctuation\">(<\/span>scores<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        weights <span class=\"token operator\">&#061;<\/span> torch<span class=\"token punctuation\">.<\/span>softmax<span class=\"token punctuation\">(<\/span>scores<span class=\"token punctuation\">,<\/span> dim<span class=\"token operator\">&#061;<\/span><span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>masked_fill<span class=\"token punctuation\">(<\/span><span class=\"token operator\">~<\/span>allowed<span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>to<span class=\"token punctuation\">(<\/span>v<span class=\"token punctuation\">.<\/span>dtype<span class=\"token punctuation\">)<\/span><br \/>\n        weights <span class=\"token operator\">&#061;<\/span> self<span class=\"token punctuation\">.<\/span>dropout<span class=\"token punctuation\">(<\/span>weights<span class=\"token punctuation\">)<\/span><br \/>\n        output <span class=\"token operator\">&#061;<\/span> torch<span class=\"token punctuation\">.<\/span>matmul<span class=\"token punctuation\">(<\/span>weights<span class=\"token punctuation\">,<\/span> v<span class=\"token punctuation\">)<\/span><br \/>\n        output <span class=\"token operator\">&#061;<\/span> output<span class=\"token punctuation\">.<\/span>transpose<span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>contiguous<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>view<span class=\"token punctuation\">(<\/span>batch<span class=\"token punctuation\">,<\/span> query_len<span class=\"token punctuation\">,<\/span> self<span class=\"token punctuation\">.<\/span>d_model<span class=\"token punctuation\">)<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> self<span class=\"token punctuation\">.<\/span>out_proj<span class=\"token punctuation\">(<\/span>output<span class=\"token punctuation\">)<\/span><\/p>\n<p>\u590d\u6742\u5ea6\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        O<\/p>\n<p>        (<\/p>\n<p>        B<\/p>\n<p>        H<\/p>\n<p>         L<\/p>\n<p>         q<\/p>\n<p>         L<\/p>\n<p>         k<\/p>\n<p>         D<\/p>\n<p>         h<\/p>\n<p>        )<\/p>\n<p>       O(BHL_qL_kD_h)<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1.0361em;vertical-align: -0.2861em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">O<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0502em\">B<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0813em\">H<\/span><span class=\"mord\"><span class=\"mord mathnormal\">L<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1514em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">q<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\">L<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0315em\">k<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">D<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.0278em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">h<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mclose\">)<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u5373 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        O<\/p>\n<p>        (<\/p>\n<p>        B<\/p>\n<p>         L<\/p>\n<p>         q<\/p>\n<p>         L<\/p>\n<p>         k<\/p>\n<p>        D<\/p>\n<p>        )<\/p>\n<p>       O(BL_qL_kD)<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1.0361em;vertical-align: -0.2861em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">O<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0502em\">B<\/span><span class=\"mord\"><span class=\"mord mathnormal\">L<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1514em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">q<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\">L<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0315em\">k<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">D<\/span><span class=\"mclose\">)<\/span><\/span><\/span><\/span><\/span> \u7684\u6ce8\u610f\u529b\u77e9\u9635\u8ba1\u7b97&#xff0c;\u6ce8\u610f\u529b\u6743\u91cd\u989d\u5916\u5360\u7528 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        O<\/p>\n<p>        (<\/p>\n<p>        B<\/p>\n<p>        H<\/p>\n<p>         L<\/p>\n<p>         q<\/p>\n<p>         L<\/p>\n<p>         k<\/p>\n<p>        )<\/p>\n<p>       O(BHL_qL_k)<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1.0361em;vertical-align: -0.2861em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">O<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0502em\">B<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0813em\">H<\/span><span class=\"mord\"><span class=\"mord mathnormal\">L<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.1514em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0359em\">q<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.2861em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\">L<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3361em\"><span class=\"\" style=\"top: -2.55em;margin-left: 0em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.0315em\">k<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mclose\">)<\/span><\/span><\/span><\/span><\/span> \u7a7a\u95f4\u3002\u9762\u8bd5\u4e2d\u8fd8\u8981\u4e3b\u52a8\u6307\u51fa&#xff1a;\u7f29\u653e\u56e0\u5b50\u5e94\u4f7f\u7528 sqrt(head_dim) \u800c\u4e0d\u662f sqrt(d_model)&#xff1b;\u8f6c\u7f6e\u540e\u5408\u5e76\u7ef4\u5ea6\u524d\u8981 contiguous()&#xff1b;mask \u7684\u8bed\u4e49\u3001dtype \u548c\u5e7f\u64ad\u5f62\u72b6\u8981\u660e\u786e&#xff1b;\u73b0\u4ee3\u5b9e\u73b0\u53ef\u7528 torch.nn.functional.scaled_dot_product_attention \u6216 FlashAttention&#xff0c;\u4f46\u4e0d\u80fd\u56e0\u6b64\u7701\u7565\u6570\u5b66\u548c\u5f20\u91cf\u5f62\u72b6\u3002<\/p>\n<p>\u5b9e\u73b0\u8fb9\u754c\u4e5f\u5c5e\u4e8e\u6b63\u786e\u6027&#xff1a;\u5982\u679c\u7528\u6700\u5c0f\u6709\u9650\u6570\u5c4f\u853d\u6574\u884c&#xff0c;softmax \u4f1a\u8f93\u51fa\u5747\u5300\u6982\u7387&#xff0c;\u9519\u8bef\u805a\u5408\u672c\u5e94\u5168\u90e8\u5c4f\u853d\u7684 Value&#xff1b;\u82e5\u6574\u884c\u76f4\u63a5\u586b\u8d1f\u65e0\u7a77&#xff0c;softmax \u5219\u53ef\u80fd\u4ea7\u751f NaN\u3002\u4e0a\u9762\u7684\u5b9e\u73b0\u5148\u8bc6\u522b\u5168\u5c4f\u853d\u884c&#xff0c;\u518d\u5c06\u5176\u6ce8\u610f\u529b\u6743\u91cd\u663e\u5f0f\u5f52\u96f6&#xff0c;\u4fdd\u7559\u6709\u9650\u7684\u524d\u5411\u503c\u548c\u68af\u5ea6\u3002\u8fd9\u91cc\u91c7\u7528 FP32 \u8ba1\u7b97\u4f4e\u7cbe\u5ea6\u7684\u5206\u6570\u77e9\u9635\u662f\u6559\u5b66\u4e0a\u7684\u7a33\u5b9a\u6027\u9009\u62e9&#xff0c;\u4f1a\u589e\u52a0\u4e34\u65f6\u663e\u5b58&#xff1b;\u751f\u4ea7\u4e2d\u5e94\u4f18\u5148\u8bc4\u4f30\u878d\u5408 SDPA \u5185\u6838\u3002<\/p>\n<h4>\u67e5\u627e\u4e24\u4e2a\u6b63\u5e8f\u6570\u7ec4\u7684\u4e2d\u4f4d\u6570<\/h4>\n<p>\u56de\u7b54&#xff1a;<\/p>\n<p>\u8bbe\u4e24\u4e2a\u6b63\u5e8f\u6570\u7ec4\u5206\u522b\u4e3a A \u548c B&#xff0c;\u957f\u5ea6\u4e3a m\u3001n\u3002\u76ee\u6807\u662f\u5728\u4e0d\u771f\u6b63\u5408\u5e76\u6570\u7ec4\u7684\u60c5\u51b5\u4e0b\u627e\u5230\u7b2c (m&#043;n&#043;1)\/\/2 \u5c0f\u548c\u7b2c (m&#043;n&#043;2)\/\/2 \u5c0f\u7684\u5143\u7d20&#xff08;\u6309 1 \u5f00\u59cb\u8ba1\u6570&#xff09;\u3002\u6700\u4f18\u65b9\u6cd5\u662f\u5728\u8f83\u77ed\u6570\u7ec4\u4e0a\u4e8c\u5206\u5207\u5206\u4f4d\u7f6e\u3002<\/p>\n<p>\u9009\u62e9\u5207\u5206 i \u4e2a\u5143\u7d20\u6765\u81ea A&#xff0c;\u5219\u9700\u8981 j &#061; half &#8211; i \u4e2a\u5143\u7d20\u6765\u81ea B\u3002\u5408\u6cd5\u5207\u5206\u8981\u6c42&#xff1a;<\/p>\n<p><span class=\"katex--display\"><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         A<\/p>\n<p>         [<\/p>\n<p>         i<\/p>\n<p>         \u2212<\/p>\n<p>         1<\/p>\n<p>         ]<\/p>\n<p>         \u2264<\/p>\n<p>         B<\/p>\n<p>         [<\/p>\n<p>         j<\/p>\n<p>         ]<\/p>\n<p>         \u4e14<\/p>\n<p>         B<\/p>\n<p>         [<\/p>\n<p>         j<\/p>\n<p>         \u2212<\/p>\n<p>         1<\/p>\n<p>         ]<\/p>\n<p>         \u2264<\/p>\n<p>         A<\/p>\n<p>         [<\/p>\n<p>         i<\/p>\n<p>         ]<\/p>\n<p>         .<\/p>\n<p>         A[i-1]\\\\le B[j]\\\\quad\\\\text{\u4e14}\\\\quad B[j-1]\\\\le A[i]. <\/p>\n<p>     <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\">A<\/span><span class=\"mopen\">[<\/span><span class=\"mord mathnormal\">i<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">\u2212<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord\">1<\/span><span class=\"mclose\">]<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2264<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0502em\">B<\/span><span class=\"mopen\">[<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0572em\">j<\/span><span class=\"mclose\">]<\/span><span class=\"mspace\" style=\"margin-right: 1em\"><\/span><span class=\"mord text\"><span class=\"mord cjk_fallback\">\u4e14<\/span><\/span><span class=\"mspace\" style=\"margin-right: 1em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0502em\">B<\/span><span class=\"mopen\">[<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0572em\">j<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">\u2212<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord\">1<\/span><span class=\"mclose\">]<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2264<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\">A<\/span><span class=\"mopen\">[<\/span><span class=\"mord mathnormal\">i<\/span><span class=\"mclose\">]<\/span><span class=\"mord\">.<\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n<p>\u5176\u4e2d\u8d8a\u754c\u5de6\u503c\u89c6\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        \u2212<\/p>\n<p>        \u221e<\/p>\n<p>       -\\\\infty<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6667em;vertical-align: -0.0833em\"><\/span><span class=\"mord\">\u2212<\/span><span class=\"mord\">\u221e<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u8d8a\u754c\u53f3\u503c\u89c6\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        &#043;<\/p>\n<p>        \u221e<\/p>\n<p>       &#043;\\\\infty<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6667em;vertical-align: -0.0833em\"><\/span><span class=\"mord\">&#043;<\/span><span class=\"mord\">\u221e<\/span><\/span><\/span><\/span><\/span>\u3002\u627e\u5230\u5408\u6cd5\u5207\u5206\u540e&#xff0c;\u5de6\u534a\u90e8\u5206\u6700\u5927\u503c\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        max<\/p>\n<p>        \u2061<\/p>\n<p>        (<\/p>\n<p>        A<\/p>\n<p>        [<\/p>\n<p>        i<\/p>\n<p>        \u2212<\/p>\n<p>        1<\/p>\n<p>        ]<\/p>\n<p>        ,<\/p>\n<p>        B<\/p>\n<p>        [<\/p>\n<p>        j<\/p>\n<p>        \u2212<\/p>\n<p>        1<\/p>\n<p>        ]<\/p>\n<p>        )<\/p>\n<p>       \\\\max(A[i-1],B[j-1])<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mop\">max<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">A<\/span><span class=\"mopen\">[<\/span><span class=\"mord mathnormal\">i<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">\u2212<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord\">1<\/span><span class=\"mclose\">]<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0502em\">B<\/span><span class=\"mopen\">[<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0572em\">j<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">\u2212<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord\">1<\/span><span class=\"mclose\">])<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u53f3\u534a\u90e8\u5206\u6700\u5c0f\u503c\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        min<\/p>\n<p>        \u2061<\/p>\n<p>        (<\/p>\n<p>        A<\/p>\n<p>        [<\/p>\n<p>        i<\/p>\n<p>        ]<\/p>\n<p>        ,<\/p>\n<p>        B<\/p>\n<p>        [<\/p>\n<p>        j<\/p>\n<p>        ]<\/p>\n<p>        )<\/p>\n<p>       \\\\min(A[i],B[j])<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mop\">min<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">A<\/span><span class=\"mopen\">[<\/span><span class=\"mord mathnormal\">i<\/span><span class=\"mclose\">]<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0502em\">B<\/span><span class=\"mopen\">[<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0572em\">j<\/span><span class=\"mclose\">])<\/span><\/span><\/span><\/span><\/span>\u3002\u603b\u957f\u5ea6\u4e3a\u5947\u6570\u65f6\u53d6\u5de6\u6700\u5927\u503c&#xff0c;\u4e3a\u5076\u6570\u65f6\u53d6\u5de6\u53f3\u5e73\u5747\u503c\u3002<\/p>\n<p><span class=\"token keyword\">from<\/span> typing <span class=\"token keyword\">import<\/span> List<\/p>\n<p><span class=\"token keyword\">def<\/span> <span class=\"token function\">find_median_sorted_arrays<\/span><span class=\"token punctuation\">(<\/span>a<span class=\"token punctuation\">:<\/span> List<span class=\"token punctuation\">[<\/span><span class=\"token builtin\">int<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> b<span class=\"token punctuation\">:<\/span> List<span class=\"token punctuation\">[<\/span><span class=\"token builtin\">int<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token builtin\">float<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token builtin\">len<\/span><span class=\"token punctuation\">(<\/span>a<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&gt;<\/span> <span class=\"token builtin\">len<\/span><span class=\"token punctuation\">(<\/span>b<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        a<span class=\"token punctuation\">,<\/span> b <span class=\"token operator\">&#061;<\/span> b<span class=\"token punctuation\">,<\/span> a<br \/>\n    m<span class=\"token punctuation\">,<\/span> n <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">len<\/span><span class=\"token punctuation\">(<\/span>a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token builtin\">len<\/span><span class=\"token punctuation\">(<\/span>b<span class=\"token punctuation\">)<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> m <span class=\"token operator\">&#043;<\/span> n <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        <span class=\"token keyword\">raise<\/span> ValueError<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;both arrays cannot be empty&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>    left<span class=\"token punctuation\">,<\/span> right <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> m<br \/>\n    half <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>m <span class=\"token operator\">&#043;<\/span> n <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/\/<\/span> <span class=\"token number\">2<\/span><br \/>\n    neg_inf <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">float<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;-inf&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n    pos_inf <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">float<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;inf&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>    <span class=\"token keyword\">while<\/span> left <span class=\"token operator\">&lt;&#061;<\/span> right<span class=\"token punctuation\">:<\/span><br \/>\n        i <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>left <span class=\"token operator\">&#043;<\/span> right<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/\/<\/span> <span class=\"token number\">2<\/span><br \/>\n        j <span class=\"token operator\">&#061;<\/span> half <span class=\"token operator\">&#8211;<\/span> i<br \/>\n        a_left <span class=\"token operator\">&#061;<\/span> neg_inf <span class=\"token keyword\">if<\/span> i <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token keyword\">else<\/span> a<span class=\"token punctuation\">[<\/span>i <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><br \/>\n        a_right <span class=\"token operator\">&#061;<\/span> pos_inf <span class=\"token keyword\">if<\/span> i <span class=\"token operator\">&#061;&#061;<\/span> m <span class=\"token keyword\">else<\/span> a<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><br \/>\n        b_left <span class=\"token operator\">&#061;<\/span> neg_inf <span class=\"token keyword\">if<\/span> j <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token keyword\">else<\/span> b<span class=\"token punctuation\">[<\/span>j <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><br \/>\n        b_right <span class=\"token operator\">&#061;<\/span> pos_inf <span class=\"token keyword\">if<\/span> j <span class=\"token operator\">&#061;&#061;<\/span> n <span class=\"token keyword\">else<\/span> b<span class=\"token punctuation\">[<\/span>j<span class=\"token punctuation\">]<\/span><\/p>\n<p>        <span class=\"token keyword\">if<\/span> a_left <span class=\"token operator\">&gt;<\/span> b_right<span class=\"token punctuation\">:<\/span><br \/>\n            right <span class=\"token operator\">&#061;<\/span> i <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><br \/>\n        <span class=\"token keyword\">elif<\/span> b_left <span class=\"token operator\">&gt;<\/span> a_right<span class=\"token punctuation\">:<\/span><br \/>\n            left <span class=\"token operator\">&#061;<\/span> i <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><br \/>\n        <span class=\"token keyword\">else<\/span><span class=\"token punctuation\">:<\/span><br \/>\n            left_max <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">max<\/span><span class=\"token punctuation\">(<\/span>a_left<span class=\"token punctuation\">,<\/span> b_left<span class=\"token punctuation\">)<\/span><br \/>\n            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>m <span class=\"token operator\">&#043;<\/span> n<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">%<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">:<\/span><br \/>\n                <span class=\"token keyword\">return<\/span> <span class=\"token builtin\">float<\/span><span class=\"token punctuation\">(<\/span>left_max<span class=\"token punctuation\">)<\/span><br \/>\n            right_min <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">min<\/span><span class=\"token punctuation\">(<\/span>a_right<span class=\"token punctuation\">,<\/span> b_right<span class=\"token punctuation\">)<\/span><br \/>\n            <span class=\"token keyword\">return<\/span> <span class=\"token punctuation\">(<\/span>left_max <span class=\"token operator\">&#043;<\/span> right_min<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">2.0<\/span><\/p>\n<p>    <span class=\"token keyword\">raise<\/span> ValueError<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;no valid partition; check input preconditions&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>\u4e8c\u5206\u53d1\u751f\u5728\u8f83\u77ed\u6570\u7ec4\u4e0a&#xff0c;\u56e0\u6b64\u65f6\u95f4\u590d\u6742\u5ea6\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        O<\/p>\n<p>        (<\/p>\n<p>        log<\/p>\n<p>        \u2061<\/p>\n<p>        (<\/p>\n<p>        min<\/p>\n<p>        \u2061<\/p>\n<p>        (<\/p>\n<p>        m<\/p>\n<p>        ,<\/p>\n<p>        n<\/p>\n<p>        )<\/p>\n<p>        &#043;<\/p>\n<p>        1<\/p>\n<p>        )<\/p>\n<p>        )<\/p>\n<p>       O(\\\\log(\\\\min(m,n)&#043;1))<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">O<\/span><span class=\"mopen\">(<\/span><span class=\"mop\">lo<span style=\"margin-right: 0.0139em\">g<\/span><\/span><span class=\"mopen\">(<\/span><span class=\"mop\">min<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">m<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord mathnormal\">n<\/span><span class=\"mclose\">)<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">&#043;<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord\">1<\/span><span class=\"mclose\">))<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u989d\u5916\u7a7a\u95f4\u590d\u6742\u5ea6\u4e3a <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        O<\/p>\n<p>        (<\/p>\n<p>        1<\/p>\n<p>        )<\/p>\n<p>       O(1)<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">O<\/span><span class=\"mopen\">(<\/span><span class=\"mord\">1<\/span><span class=\"mclose\">)<\/span><\/span><\/span><\/span><\/span>\u3002\u8fb9\u754c\u5305\u62ec\u4e00\u4e2a\u6570\u7ec4\u4e3a\u7a7a\u3001\u4e24\u4e2a\u6570\u7ec4\u90fd\u4e3a\u7a7a\u3001\u91cd\u590d\u5143\u7d20\u3001\u8d1f\u6570\u548c\u603b\u957f\u5ea6\u4e3a\u5076\u6570\u3002\u4e0d\u80fd\u53ea\u7528\u53cc\u6307\u9488\u5408\u5e76\u5230\u4e2d\u70b9\u540e\u5ba3\u79f0\u6700\u4f18&#xff0c;\u90a3\u6837\u65f6\u95f4\u590d\u6742\u5ea6\u662f <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        O<\/p>\n<p>        (<\/p>\n<p>        m<\/p>\n<p>        &#043;<\/p>\n<p>        n<\/p>\n<p>        )<\/p>\n<p>       O(m&#043;n)<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">O<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">m<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">&#043;<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\">n<\/span><span class=\"mclose\">)<\/span><\/span><\/span><\/span><\/span>&#xff1b;\u5982\u679c\u9762\u8bd5\u5b98\u53ea\u8981\u6c42\u666e\u901a\u5b9e\u73b0&#xff0c;\u53cc\u6307\u9488\u53ef\u63a5\u53d7&#xff0c;\u4f46\u5e94\u8bf4\u660e\u8fd9\u662f\u7ebf\u6027\u65b9\u6848\u3002<\/p>\n<p>\u8fd9\u91cc\u201c\u6b63\u5e8f\u201d\u7406\u89e3\u4e3a\u975e\u9012\u51cf\u6709\u5e8f\u3002\u51fd\u6570\u4ee5\u8f93\u5165\u6709\u5e8f\u4e3a\u524d\u63d0&#xff0c;\u672b\u5c3e\u5f02\u5e38\u4e0d\u6784\u6210\u5b8c\u6574\u6392\u5e8f\u6821\u9a8c&#xff1b;\u6709\u4e9b\u65e0\u5e8f\u8f93\u5165\u4e5f\u4f1a\u78b0\u5de7\u627e\u5230\u4e00\u4e2a\u5c40\u90e8\u5408\u6cd5\u5207\u5206\u3002\u82e5\u8981\u68c0\u6d4b\u6240\u6709\u65e0\u5e8f\u60c5\u51b5&#xff0c;\u9700\u8981\u989d\u5916 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        O<\/p>\n<p>        (<\/p>\n<p>        m<\/p>\n<p>        &#043;<\/p>\n<p>        n<\/p>\n<p>        )<\/p>\n<p>       O(m&#043;n)<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0278em\">O<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">m<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">&#043;<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\">n<\/span><span class=\"mclose\">)<\/span><\/span><\/span><\/span><\/span> \u626b\u63cf\u3002\u5bf9\u6781\u5927 Python \u6574\u6570&#xff0c;\u8fd4\u56de float \u8fd8\u53ef\u80fd\u4e22\u5931\u7cbe\u5ea6&#xff0c;\u7cbe\u786e\u6570\u503c\u4e1a\u52a1\u5e94\u6539\u7528\u6574\u6570\u6216\u6709\u7406\u6570\u8fd4\u56de\u7ea6\u5b9a\u3002<\/p>\n<p>\u4e8c\u5206\u4e3a\u4ec0\u4e48\u5b89\u5168&#xff1f;\u5f53 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        A<\/p>\n<p>        [<\/p>\n<p>        i<\/p>\n<p>        \u2212<\/p>\n<p>        1<\/p>\n<p>        ]<\/p>\n<p>        &gt;<\/p>\n<p>        B<\/p>\n<p>        [<\/p>\n<p>        j<\/p>\n<p>        ]<\/p>\n<p>       A[i-1]&gt;B[j]<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\">A<\/span><span class=\"mopen\">[<\/span><span class=\"mord mathnormal\">i<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">\u2212<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord\">1<\/span><span class=\"mclose\">]<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&gt;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0502em\">B<\/span><span class=\"mopen\">[<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0572em\">j<\/span><span class=\"mclose\">]<\/span><\/span><\/span><\/span><\/span> \u65f6&#xff0c;\u4ece A \u53d6\u5165\u5de6\u534a\u8fb9\u7684\u5143\u7d20\u592a\u591a&#xff0c;\u5e94\u5de6\u79fb&#xff1b;\u5f53 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        B<\/p>\n<p>        [<\/p>\n<p>        j<\/p>\n<p>        \u2212<\/p>\n<p>        1<\/p>\n<p>        ]<\/p>\n<p>        &gt;<\/p>\n<p>        A<\/p>\n<p>        [<\/p>\n<p>        i<\/p>\n<p>        ]<\/p>\n<p>       B[j-1]&gt;A[i]<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0502em\">B<\/span><span class=\"mopen\">[<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0572em\">j<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">\u2212<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord\">1<\/span><span class=\"mclose\">]<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&gt;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1em;vertical-align: -0.25em\"><\/span><span class=\"mord mathnormal\">A<\/span><span class=\"mopen\">[<\/span><span class=\"mord mathnormal\">i<\/span><span class=\"mclose\">]<\/span><\/span><\/span><\/span><\/span> \u65f6&#xff0c;\u4ece A \u53d6\u5165\u7684\u5143\u7d20\u592a\u5c11&#xff0c;\u5e94\u53f3\u79fb\u3002\u7531\u4e8e\u603b\u5728\u8f83\u77ed\u6570\u7ec4\u4e0a\u641c\u7d22&#xff0c;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        j<\/p>\n<p>        &#061;<\/p>\n<p>        h<\/p>\n<p>        a<\/p>\n<p>        l<\/p>\n<p>        f<\/p>\n<p>        \u2212<\/p>\n<p>        i<\/p>\n<p>       j&#061;half-i<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.854em;vertical-align: -0.1944em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0572em\">j<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">&#061;<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8889em;vertical-align: -0.1944em\"><\/span><span class=\"mord mathnormal\">ha<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0197em\">l<\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1076em\">f<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">\u2212<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.6595em\"><\/span><span class=\"mord mathnormal\">i<\/span><\/span><\/span><\/span><\/span> \u59cb\u7ec8\u843d\u5728 B \u7684\u5408\u6cd5\u5207\u5206\u533a\u95f4\u3002\u7b97\u6cd5\u662f\u5728\u7ef4\u62a4\u5de6\u53f3\u534a\u8fb9\u7684\u6709\u5e8f\u4e0d\u53d8\u91cf&#xff0c;\u800c\u4e0d\u662f\u5bf9\u4e2d\u4f4d\u6570\u6570\u503c\u672c\u8eab\u505a\u731c\u6d4b\u3002<\/p>\n<h3>\u590d\u4e60\u6536\u675f&#xff1a;\u8ba9\u6bcf\u4e2a\u7ed3\u8bba\u90fd\u80fd\u63a5\u53d7\u8ffd\u95ee<\/h3>\n<p>\u8fd9\u7ec4\u95ee\u9898\u6700\u7ec8\u68c0\u9a8c\u7684\u662f\u4e09\u4e2a\u80fd\u529b&#xff1a;\u80fd\u5426\u89e3\u91ca\u4f18\u5316\u76ee\u6807\u5982\u4f55\u5f97\u5230\u5b66\u4e60\u4fe1\u53f7&#xff0c;\u80fd\u5426\u8bf4\u660e\u8ba1\u7b97\u548c\u6a21\u578b\u72b6\u6001\u5982\u4f55\u5360\u7528\u786c\u4ef6&#xff0c;\u80fd\u5426\u5728\u5b9e\u73b0\u4e2d\u7ef4\u62a4\u6570\u5b66\u5b9a\u4e49\u4e0e\u8fb9\u754c\u6761\u4ef6\u3002PPO\u3001GRPO \u4e0e DPO \u89e3\u51b3\u4e0d\u540c\u7684\u53cd\u9988\u7ec4\u7ec7\u95ee\u9898&#xff1b;ZeRO\u3001GQA\u3001FlashAttention \u4e0e\u63a8\u7406\u8c03\u5ea6\u5206\u522b\u4f5c\u7528\u4e8e\u4e0d\u540c\u7684\u8d44\u6e90\u5f00\u9500\u3002\u628a\u5b83\u4eec\u653e\u56de\u540c\u4e00\u4e2a\u591a\u6a21\u6001\u8bad\u7ec3\u95ed\u73af&#xff0c;\u624d\u80fd\u89e3\u91ca\u4e3a\u4ec0\u4e48\u67d0\u4e2a\u914d\u7f6e\u9002\u7528\u3001\u5728\u54ea\u4e2a\u9636\u6bb5\u6709\u6548&#xff0c;\u4ee5\u53ca\u4ec0\u4e48\u8bc1\u636e\u4f1a\u63a8\u7ffb\u5f53\u524d\u9009\u62e9\u3002<\/p>\n<p>\u9762\u8bd5\u51c6\u5907\u53ef\u4ee5\u4ece\u4e00\u4efd\u5c0f\u800c\u53ef\u590d\u73b0\u7684\u5b9e\u9a8c\u8bb0\u5f55\u5f00\u59cb&#xff1a;\u56fa\u5b9a\u6570\u636e\u548c\u6a21\u578b\u7248\u672c&#xff0c;\u6d4b\u91cf rollout\u3001reward\u3001log-prob \u4e0e update \u7684\u8017\u65f6&#xff0c;\u518d\u505a\u4e00\u6b21\u5355\u53d8\u91cf\u4f18\u5316&#xff0c;\u540c\u65f6\u62a5\u544a\u4efb\u52a1\u6210\u529f\u7387\u3001KL\u3001\u663e\u5b58\u5cf0\u503c\u548c\u603b\u8017\u65f6\u3002\u5bf9\u624b\u6495\u9898&#xff0c;\u9664\u4e86\u6b63\u5e38\u4f8b\u5b50&#xff0c;\u8fd8\u8981\u4e3b\u52a8\u9a8c\u8bc1\u5168\u5c4f\u853d\u6ce8\u610f\u529b\u3001\u4e0d\u540c Q\/K \u957f\u5ea6\u3001\u7a7a\u6570\u7ec4\u4e0e\u91cd\u590d\u5143\u7d20\u3002\u80fd\u591f\u7ed9\u51fa\u53cd\u4f8b\u3001\u9002\u7528\u6761\u4ef6\u548c\u9a8c\u6536\u6807\u51c6&#xff0c;\u6bd4\u80cc\u51fa\u66f4\u591a\u6846\u67b6\u540d\u79f0\u66f4\u6709\u8bf4\u670d\u529b\u3002<\/p>\n<h2>\u63a8\u8350\u9605\u8bfb<\/h2>\n<p>Rocky\u4e00\u76f4\u5728\u8fd0\u8425\u6280\u672f\u4ea4\u6d41\u7fa4&#xff08;WeThinkIn-\u6280\u672f\u4ea4\u6d41\u7fa4&#xff09;&#xff0c;\u8fd9\u4e2a\u7fa4\u7684\u521d\u5fc3\u4e3b\u8981\u805a\u7126\u4e8e\u6280\u672f\u8bdd\u9898\u7684\u8ba8\u8bba\u4e0e\u5b66\u4e60&#xff0c;\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u7b97\u6cd5\u3001\u5f00\u53d1\u3001\u7ade\u8d5b\u3001\u79d1\u7814\u4ee5\u53ca\u5de5\u4f5c\u6c42\u804c\u7b49\u3002\u7fa4\u91cc\u6709\u5f88\u591a\u4eba\u5de5\u667a\u80fd\u884c\u4e1a\u7684\u5927\u725b&#xff0c;\u6b22\u8fce\u5927\u5bb6\u5165\u7fa4\u4e00\u8d77\u5b66\u4e60\u4ea4\u6d41&#xff5e;&#xff08;\u8bf7\u6dfb\u52a0\u5c0f\u52a9\u624b\u5fae\u4fe1Jarvis8866&#xff0c;\u62c9\u4f60\u8fdb\u7fa4&#xff5e;&#xff09;<\/p>\n<h4>1. \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790AI Agent&#xff08;AI\u667a\u80fd\u4f53&#xff09;\u7684\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/h4>\n<p>2025\u5e74\u53ef\u4ee5\u8bf4\u662fAI Agent\u5168\u9762\u843d\u5730\u5e94\u7528\u7684\u5143\u5e74&#xff0c;\u56e0\u6b64Rocky\u5728\u6301\u7eed\u64b0\u5199\u5bf9AI Agent\u7684\u5168\u7ef4\u5ea6\u89e3\u6790\u6587\u7ae0&#xff1a;<\/p>\n<p>\u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790AI Agent&#xff08;AI\u667a\u80fd\u4f53&#xff09;\u7684\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/p>\n<h4>2. \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790\u6269\u6563\u6a21\u578bDDPM\u3001DDIM\u3001Score-Based\u3001SDE\u3001LDM\u3001Classifier\/Classifier-Free Guidance\u3001Rectified Flow\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/h4>\n<p>Rocky\u5bf9\u6269\u6563\u6a21\u578b\u7684\u672c\u8d28\u539f\u7406\u4e0e\u548c\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6\u8fdb\u884c\u4e86\u5168\u9762\u7cfb\u7edf\u7684\u6df1\u5165\u6d45\u51fa\u5206\u6790\u8bb2\u89e3&#xff0c;\u540c\u65f6\u4e0d\u65ad\u8ddf\u8fdb\u8865\u5145\u6269\u6563\u6a21\u578b\u7684\u6700\u65b0\u6280\u672f\u53d1\u5c55&#xff0c;\u5e0c\u671b\u80fd\u7ed9\u5927\u5bb6\u5e26\u6765\u5e2e\u52a9&#xff1a;<\/p>\n<p>\u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790\u6269\u6563\u6a21\u578bDDPM\u3001DDIM\u3001Score-Based\u3001SDE\u3001LDM\u3001Classifier\/Classifier-Free Guidance\u3001Rectified Flow\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/p>\n<h4>3. \u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790FLUX.2\u3001Seedream&#xff08;\u5373\u68a6&#xff09;\u3001Z-image\u3001GLM-Image\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/h4>\n<p>Rocky\u5bf9AIGC\u65f6\u4ee3\u201c\u4e2d\u573a\u65f6\u523b\u201d\u4e4b\u540e\u7684\u4e3b\u6d41AIGC\u521b\u4f5c\u5927\u6a21\u578b\u7684\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6\u8fdb\u884c\u4e86\u5168\u9762\u7cfb\u7edf\u7684\u6df1\u5165\u6d45\u51fa\u5206\u6790\u8bb2\u89e3&#xff0c;\u529b\u6c42\u8ba9\u5927\u5bb6\u901a\u4fd7\u6613\u61c2\u7406\u89e3AIGC\u65f6\u4ee3\u7684\u6280\u672f\u6d6a\u6f6e\u7684\u672c\u8d28\u4ef7\u503c&#xff1a;<\/p>\n<p>\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790FLUX.2\u3001Seedream&#xff08;\u5373\u68a6&#xff09;\u3001Z-image\u3001GLM-Image\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/p>\n<h4>4. \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790FLUX.1 Kontext\u548cFLUX.1 Krea\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/h4>\n<p>Rocky\u5bf9FLUX.1 Kontext\u548cFLUX.1 Krea\u7684\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6\u4f5c\u4e86\u5168\u9762\u7cfb\u7edf\u7684\u68b3\u7406\u4e0e\u89e3\u6790&#xff1a;<\/p>\n<p>\u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790FLUX.1 Kontext\u548cFLUX.1 Krea\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/p>\n<h4>5. \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790DeepSeek\u7cfb\u5217\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/h4>\n<p>Rocky\u5bf9DeepSeek\u7cfb\u5217\u6a21\u578b\u7684\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6\u4f5c\u4e86\u5168\u9762\u7cfb\u7edf\u7684\u68b3\u7406\u4e0e\u89e3\u6790&#xff1a;<\/p>\n<p>\u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790DeepSeek\u7cfb\u5217\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/p>\n<h4>6. \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790Stable Diffusion 3&#xff08;SD 3&#xff09;\u548cFLUX.1\u7cfb\u5217\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/h4>\n<p>Rocky\u5bf9Stable Diffusion 3\u548cFLUX.1\u7684\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6\u4f5c\u4e86\u5168\u9762\u7cfb\u7edf\u7684\u68b3\u7406\u4e0e\u89e3\u6790&#xff1a;<\/p>\n<p>\u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790Stable Diffusion 3&#xff08;SD 3&#xff09;\u548cFLUX.1\u7cfb\u5217\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/p>\n<h4>7. \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790Stable Diffusion XL&#xff08;SDXL&#xff09;\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/h4>\n<p>Rocky\u5bf9Stable Diffusion XL\u7684\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6\u4f5c\u4e86\u5168\u9762\u7cfb\u7edf\u7684\u68b3\u7406\u4e0e\u89e3\u6790&#xff1a;<\/p>\n<p>\u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790Stable Diffusion XL&#xff08;SDXL&#xff09;\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/p>\n<h4>8. \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790Stable Diffusion&#xff08;SD&#xff09;\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/h4>\n<p>Rocky\u5bf9Stable Diffusion 1.x-2.x\u7cfb\u5217\u6a21\u578b\u7684\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6\u505a\u4e86\u5168\u9762\u7cfb\u7edf\u7684\u68b3\u7406\u4e0e\u89e3\u6790&#xff1a;<\/p>\n<p>\u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790Stable Diffusion&#xff08;SD&#xff09;\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/p>\n<h4>9. \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790Stable Diffusion\u4e2dU-Net\u7684\u524d\u4e16\u4eca\u751f\u4e0e\u6838\u5fc3\u77e5\u8bc6<\/h4>\n<p>Rocky\u5bf9Stable Diffusion\u4e2d\u6700\u4e3a\u5173\u952e\u7684U-Net\u7ed3\u6784\u8fdb\u884c\u4e86\u6df1\u5165\u6d45\u51fa\u7684\u5168\u9762\u89e3\u6790&#xff0c;\u5305\u62ec\u5176\u5728\u4f20\u7edf\u6df1\u5ea6\u5b66\u4e60\u4e2d\u7684\u4ef7\u503c\u548c\u5728AIGC\u4e2d\u7684\u4ef7\u503c&#xff1a;<\/p>\n<p>\u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790Stable Diffusion\u4e2dU-Net\u7684\u524d\u4e16\u4eca\u751f\u4e0e\u6838\u5fc3\u77e5\u8bc6<\/p>\n<h4>10. \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790LoRA&#xff08;Low-Rank Adaptation&#xff09;\u6a21\u578b\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/h4>\n<p>\u5bf9\u4e8eAIGC\u65f6\u4ee3\u4e2d\u7684\u201cResNet\u201d\u2014\u2014LoRA\u6a21\u578b&#xff0c;Rocky\u8fdb\u884c\u4e86\u6df1\u5165\u6d45\u51fa\u7684\u5168\u9762\u8bb2\u89e3&#xff1a;<\/p>\n<p>\u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790LoRA&#xff08;Low-Rank Adaptation&#xff09;\u6a21\u578b\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/p>\n<h4>11. \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790ControlNet\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/h4>\n<p>AIGC\u56fe\u50cf\u521b\u4f5c\u5f00\u6e90\u793e\u533a\u5df2\u7ecf\u5f62\u6210\u4ee5Stable Difffusion\/FLUX\u4e3a\u6838\u5fc3&#xff0c;ConrtolNet\u548cLoRA\u4f5c\u4e3a\u9996\u8981AI\u8f85\u52a9\u5de5\u5177\u7684\u53d8\u5316\u4e07\u5343\u7684AIGC\u56fe\u50cf\u521b\u4f5c\u5de5\u4f5c\u6d41\u3002<\/p>\n<p>ControlNet\u6b63\u662f\u8ba9AI\u56fe\u50cf\u521b\u4f5c\u793e\u533a\u65e0\u6bd4\u7e41\u8363\u7684\u5173\u952e\u4e00\u73af&#xff0c;\u5b83\u8ba9AIGC\u56fe\u50cf\u521b\u4f5c\u8fc7\u7a0b\u66f4\u52a0\u7684\u53ef\u63a7&#xff0c;\u66f4\u6709\u52a9\u4e8e\u5e7f\u6cdb\u5730\u5c06AIGC\u7b97\u6cd5\u89e3\u51b3\u65b9\u6848\u5e94\u7528\u5230\u5404\u884c\u5404\u4e1a\u4e2d&#xff1a;<\/p>\n<p>\u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790ControlNet\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/p>\n<h4>12. \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790Sora\u3001Seedance\u3001keling\u7b49AI\u89c6\u9891\u5927\u6a21\u578b\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/h4>\n<p>AI\u7ed8\u753b\u548cAI\u89c6\u9891\u662f\u4e24\u4e2a\u4e92\u76f8\u4fc3\u8fdb\u3001\u76f8\u4e92\u4ea4\u878d\u7684\u9886\u57df&#xff0c;2024\u5e74\u65e0\u7591\u662fAI\u89c6\u9891\u9886\u57df\u7684\u7206\u53d1\u4e4b\u5e74&#xff0c;Rocky\u5bf9AI\u89c6\u9891\u9886\u57df\u6838\u5fc3\u7684Sora\u3001Seedance\u3001Keling\u7b49\u5927\u6a21\u578b\u8fdb\u884c\u4e86\u5168\u9762\u7cfb\u7edf\u7684\u68b3\u7406\u4e0e\u89e3\u6790&#xff1a;<\/p>\n<p>\u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790Sora\u3001Seedance\u3001keling\u7b49AI\u89c6\u9891\u5927\u6a21\u578b\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/p>\n<h4>13. \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790AIGC\u65f6\u4ee3Transformer\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/h4>\n<p>\u5728AIGC\u65f6\u4ee3\u4e2d&#xff0c;Transformer\u4e3aAI\u884c\u4e1a\u5e26\u6765\u4e86\u6df1\u523b\u7684\u53d8\u9769\u3002Transformer\u67b6\u6784\u6b63\u5728\u4e00\u6b65\u4e00\u6b65\u91cd\u6784\u6240\u6709\u7684AI\u6280\u672f\u65b9\u5411&#xff0c;\u6210\u4e3aAI\u6280\u672f\u67b6\u6784\u5927\u4e00\u7edf\u4e0e\u591a\u6a21\u6001\u6574\u5408\u7684\u5173\u952e\u6838\u5fc3\u57fa\u5ea7&#xff0c;\u5927\u6709\u4e00\u7edf\u201cAI\u6c5f\u6e56\u201d\u4e4b\u52bf\u3002Rocky\u4e5f\u5bf9Transformer\u6a21\u578b\u8fdb\u884c\u6301\u7eed\u7684\u6df1\u5165\u6d45\u51fa\u68b3\u7406\u4e0e\u89e3\u6790&#xff1a;<\/p>\n<p>\u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790AIGC\u65f6\u4ee3Transformer\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/p>\n<h4>14. \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790ComfyUI\u3001Diffusers\u3001Stable Diffusion WebUI\u7b49\u4e3b\u6d41AIGC\u521b\u4f5c\u6846\u67b6\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/h4>\n<p>AIGC\u521b\u4f5c\u6846\u67b6\u6b63\u662fAIGC\u7b97\u6cd5\u5de5\u4f5c\u6d41\u7684\u8fd0\u884c\u8f7d\u4f53&#xff0c;\u76ee\u524d\u4e3b\u6d41\u7684AIGC\u521b\u4f5c\u6846\u67b6\u6709ComfyUI\u3001Diffusers\u3001Stable Diffusion WebUI\u7b49\u3002\u5728\u4f20\u7edf\u6df1\u5ea6\u5b66\u4e60\u65f6\u4ee3&#xff0c;PyTorch\u3001TensorFlow\u4ee5\u53caCaffe\u662f\u4f20\u7edf\u6df1\u5ea6\u5b66\u4e60\u6a21\u578b\u7684\u57fa\u7840\u8fd0\u884c\u6846\u67b6&#xff0c;\u5230\u4e86AIGC\u65f6\u4ee3&#xff0c;Rocky\u76f8\u4fe1ComfyUI\u5c31\u662fAIGC\u65f6\u4ee3\u7684\u201cPyTorch\u201d\u3001Stable Diffusion WebUI\u5c31\u662fAIGC\u65f6\u4ee3\u7684\u201cTensorFlow\u201d\u3001Diffusers\u5c31\u662fAIGC\u65f6\u4ee3\u7684\u201cCaffe\u201d&#xff1a;<\/p>\n<p>\u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790ComfyUI\u3001Diffusers\u3001Stable Diffusion WebUI\u7b49\u4e3b\u6d41AIGC\u521b\u4f5c\u6846\u67b6\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/p>\n<h4>15. \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790ComfyUI\u3001Diffusers\u3001Stable Diffusion WebUI\u7b49\u4e3b\u6d41AIGC\u521b\u4f5c\u6846\u67b6\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/h4>\n<p>\u5728AIGC\u65f6\u4ee3\u4e2d&#xff0c;\u5982\u4f55\u5feb\u901f\u8f6c\u8eab&#xff0c;\u5165\u5c40AIGC\u4ea7\u4e1a&#xff1f;\u5982\u4f55\u6210\u4e3aAIGC\/LLM\/AI Agent\u7b97\u6cd5\/\u5f00\u53d1\u5de5\u7a0b\u5e08&#xff1f;\u5982\u4f55\u5728\u5b66\u6821\u4e2d\u7cfb\u7edf\u6027\u5b66\u4e60AIGC\/LLM\/AI Agent\u77e5\u8bc6&#xff0c;\u65a9\u83b7\u5fc3\u4eea\u7684AIGC\/LLM\/AI Agent\u7b97\u6cd5\/\u5f00\u53d1offer&#xff1f;<\/p>\n<p>Don\u2018t worry&#xff0c;Rocky\u4e3a\u5927\u5bb6\u603b\u7ed3\u6574\u7406\u4e86\u5168\u9762\u7684AIGC\/LLM\/AI Agent\u7b97\u6cd5\/\u5f00\u53d1\u5de5\u7a0b\u5e08\u6210\u957f\u79d8\u7c4d&#xff0c;\u4e3a\u5927\u5bb6\u7b54\u7591\u89e3\u60d1&#xff0c;\u5e0c\u671b\u80fd\u7ed9\u5927\u5bb6\u5e26\u6765\u5e2e\u52a9&#xff1a;<\/p>\n<p>\u624b\u628a\u624b\u6559\u4f60\u6210\u4e3aAIGC\/LLM\/AI Agent\u7b97\u6cd5\/\u5f00\u53d1\u5de5\u7a0b\u5e08&#xff0c;\u65a9\u83b7AIGC\/LLM\/AI Agent\u7b97\u6cd5\/\u5f00\u53d1offer&#xff01;<\/p>\n<h4>16. AIGC\u4ea7\u4e1a\u7684\u6df1\u5ea6\u601d\u8003\u4e0e\u5206\u6790<\/h4>\n<p>2023\u5e743\u670821\u65e5&#xff0c;\u5fae\u8f6f\u521b\u59cb\u4eba\u6bd4\u5c14\u00b7\u76d6\u8328\u5728\u5176\u535a\u5ba2\u6587\u7ae0\u300aThe Age of AI has begun\u300b\u4e2d\u8868\u793a&#xff0c;\u81ea\u4ece1980\u5e74\u9996\u6b21\u770b\u5230\u56fe\u5f62\u7528\u6237\u754c\u9762&#xff08;graphical user interface&#xff09;\u4ee5\u6765&#xff0c;\u4ee5OpenAI\u4e3a\u4ee3\u8868\u7684\u79d1\u6280\u516c\u53f8\u53d1\u5e03\u7684AIGC\u6a21\u578b\u662f\u4ed6\u6240\u89c1\u8fc7\u7684\u6700\u5177\u9769\u547d\u6027\u7684\u6280\u672f\u8fdb\u6b65\u3002<\/p>\n<p>Rocky\u4e5f\u8ba4\u4e3a&#xff0c;AIGC\u53ca\u5176\u751f\u6001&#xff0c;\u4f1a\u6210\u4e3aAI\u884c\u4e1a\u91cd\u5927\u53d8\u9769\u7684\u4e3b\u5bfc\u529b\u91cf\u3002AIGC\u4f1a\u5e26\u6765\u4e00\u4e2a\u5168\u65b0\u7684\u7ea2\u5229\u671f&#xff0c;\u672a\u6765\u968f\u7740AIGC\u7684\u5168\u9762\u843d\u5730\u548c\u6df1\u5ea6\u5546\u7528&#xff0c;\u4f1a\u6df1\u523b\u6539\u53d8\u6211\u4eec\u7684\u5de5\u4f5c\u3001\u751f\u6d3b\u3001\u5b66\u4e60\u4ee5\u53ca\u4ea4\u6d41\u65b9\u5f0f&#xff0c;\u5404\u884c\u5404\u4e1a\u90fd\u5c06\u88ab\u91cd\u65b0\u5b9a\u4e49&#xff0c;\u8fc7\u7a0b\u4f1a\u975e\u5e38\u6709\u8da3\u3002<\/p>\n<p>\u90a3\u4e48&#xff0c;\u5728\u6b64\u57fa\u7840\u4e0a&#xff0c;\u6211\u4eec\u8be5\u5982\u4f55\u66f4\u597d\u7684\u5ba1\u89c6AIGC\u7684\u672a\u6765&#xff1f;\u6211\u4eec\u8be5\u5982\u4f55\u66f4\u597d\u5730\u62e5\u62b1AIGC\u5f15\u9886\u7684\u9769\u65b0&#xff1f;Rocky\u51c6\u5907\u4ece\u6280\u672f\u3001\u4ea7\u54c1\u3001\u5546\u4e1a\u6a21\u5f0f\u3001\u957f\u671f\u4e3b\u4e49\u7b49\u7ef4\u5ea6\u6301\u7eed\u5206\u4eab\u4e00\u4e9b\u4e2a\u4eba\u7684\u6838\u5fc3\u601d\u8003\u4e0e\u89c2\u70b9&#xff0c;\u5e0c\u671b\u80fd\u5e2e\u52a9\u5404\u4f4d\u8bfb\u8005\u5bf9AIGC\u6709\u4e00\u4e2a\u5168\u9762\u7684\u4e86\u89e3&#xff1a;<\/p>\n<p>\u6df1\u5165\u6d45\u51fa\u5168\u9762\u89e3\u6790AIGC\u65f6\u4ee3\u6838\u5fc3\u4ef7\u503c\u4e0e\u53d1\u5c55\u8d8b\u52bf&#xff08;2025\u5e74\u7248&#xff09;<\/p>\n<h4>17. AI\u7b97\u6cd5\u5de5\u7a0b\u5e08\u7684\u72ec\u5b64\u4e5d\u5251\u79d8\u7c4d<\/h4>\n<p>\u4e3a\u4e86\u65b9\u4fbf\u5927\u5bb6\u5b9e\u4e60\u3001\u6821\u62db\u4ee5\u53ca\u793e\u62db\u7684\u9762\u8bd5\u51c6\u5907&#xff0c;\u540c\u65f6\u5e2e\u52a9\u5927\u5bb6\u63d0\u5347\u6269\u5c55\u6280\u672f\u57fa\u672c\u9762&#xff0c;Rocky\u5c06\u7b26\u5408\u5927\u5382\u548cAI\u72ec\u89d2\u517d\u4ef7\u503c\u7684\u7b97\u6cd5\u9ad8\u9891\u9762\u8bd5\u77e5\u8bc6\u70b9\u64b0\u5199\u603b\u7ed3\u6210\u300a\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u300b\u4e4b\u72ec\u5b64\u4e5d\u5251\u79d8\u7c4d:<\/p>\n<p>\u3010\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u3011AIGC\u65f6\u4ee3\u7684\u7b97\u6cd5\u5de5\u7a0b\u5e08\u7684\u6c42\u804c\u9762\u8bd5\u79d8\u7c4d&#xff08;\u6301\u7eed\u66f4\u65b0\u4e2d&#xff09;<\/p>\n<h4>18. \u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790AIGC\u65f6\u4ee3\u4e2dGAN&#xff08;Generative Adversarial Network&#xff09;\u7cfb\u5217\u6a21\u578b\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/h4>\n<p>GAN\u7cfb\u5217\u6a21\u578b\u4f5c\u4e3a\u4f20\u7edf\u6df1\u5ea6\u5b66\u4e60\u65f6\u4ee3\u7684\u6700\u70ed\u95e8\u751f\u6210\u5f0fAl\u6a21\u578b&#xff0c;\u5728AIGC\u65f6\u4ee3\u7ee7\u7eed\u7e41\u8363&#xff0c;\u4f5c\u4e3aStable Diffusion\/FLUX\u7cfb\u5217\u5927\u6a21\u578b\u7684\u201c\u5f97\u529b\u52a9\u624b\u201d&#xff0c;\u5e7f\u6cdb\u6d3b\u8dc3\u4e8eAlGC\u56fe\u50cf\u521b\u4f5c\u7684\u4ea7\u54c1\u4e0e\u5de5\u4f5c\u6d41\u4e2d&#xff1a;<\/p>\n<p>\u6df1\u5165\u6d45\u51fa\u5b8c\u6574\u89e3\u6790AIGC\u65f6\u4ee3\u4e2dGAN&#xff08;Generative Adversarial Network&#xff09;\u7cfb\u5217\u6a21\u578b\u6838\u5fc3\u57fa\u7840\u77e5\u8bc6<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5199\u5728\u524d\u9762 \u6b22\u8fce\u5927\u5bb6\u5173\u6ce8Rocky\u7684\u516c\u4f17\u53f7&#xff1a;WeThinkIn \u6b22\u8fce\u5927\u5bb6\u5173\u6ce8Rocky\u7684\u77e5\u4e4e&#xff1a;Rocky Ding \u300a\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u300bAIGC\/LLM\/AI Agent\u7b97\u6cd5\u5de5\u7a0b\u5e08\/\u5f00\u53d1\u5de5\u7a0b\u5e08\u6c42\u804c\u9762\u8bd5\u79d8\u7c4d\u72ec\u5bb6\u8d44\u6e90&#xff1a;\u3010\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u3011WeThinkIn\/AIGC-Interview-Book&#xff0c;\u6b22\u8fce\u5927\u5bb6Star&#xff5e; Rocky\u6700\u65b0\u64b0\u5199\u768410\u4e07\u5b57AI Agent&#xff08;AI\u667a\u80fd\u4f53&#xff09;\u6df1\u5165\u6d45\u51fa\u5168\u7ef4<\/p>\n","protected":false},"author":2,"featured_media":105953,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[52,50,207,86,3546],"topic":[],"class_list":["post-105957","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-aigc","tag-50","tag-207","tag-86","tag-3546"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u3010\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u30112026-09-10 \u767e\u5ea6\u591a\u6a21\u6001\u5927\u6a21\u578b\u4e00\u9762\uff1a9\u9053\u6280\u672f\u95ee\u7b54\u4e0e2\u9053\u624b\u6495\u9898\u8be6\u89e3 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/105957.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u3010\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u30112026-09-10 \u767e\u5ea6\u591a\u6a21\u6001\u5927\u6a21\u578b\u4e00\u9762\uff1a9\u9053\u6280\u672f\u95ee\u7b54\u4e0e2\u9053\u624b\u6495\u9898\u8be6\u89e3 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u5199\u5728\u524d\u9762 \u6b22\u8fce\u5927\u5bb6\u5173\u6ce8Rocky\u7684\u516c\u4f17\u53f7&#xff1a;WeThinkIn \u6b22\u8fce\u5927\u5bb6\u5173\u6ce8Rocky\u7684\u77e5\u4e4e&#xff1a;Rocky Ding \u300a\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u300bAIGC\/LLM\/AI Agent\u7b97\u6cd5\u5de5\u7a0b\u5e08\/\u5f00\u53d1\u5de5\u7a0b\u5e08\u6c42\u804c\u9762\u8bd5\u79d8\u7c4d\u72ec\u5bb6\u8d44\u6e90&#xff1a;\u3010\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u3011WeThinkIn\/AIGC-Interview-Book&#xff0c;\u6b22\u8fce\u5927\u5bb6Star&#xff5e; Rocky\u6700\u65b0\u64b0\u5199\u768410\u4e07\u5b57AI Agent&#xff08;AI\u667a\u80fd\u4f53&#xff09;\u6df1\u5165\u6d45\u51fa\u5168\u7ef4\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/105957.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-16T05:16:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260916051643-6aaa263b43cdb.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/105957.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/105957.html\",\"name\":\"\u3010\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u30112026-09-10 \u767e\u5ea6\u591a\u6a21\u6001\u5927\u6a21\u578b\u4e00\u9762\uff1a9\u9053\u6280\u672f\u95ee\u7b54\u4e0e2\u9053\u624b\u6495\u9898\u8be6\u89e3 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-09-16T05:16:46+00:00\",\"dateModified\":\"2026-09-16T05:16:46+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/105957.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/105957.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/105957.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u3010\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u30112026-09-10 \u767e\u5ea6\u591a\u6a21\u6001\u5927\u6a21\u578b\u4e00\u9762\uff1a9\u9053\u6280\u672f\u95ee\u7b54\u4e0e2\u9053\u624b\u6495\u9898\u8be6\u89e3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u3010\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u30112026-09-10 \u767e\u5ea6\u591a\u6a21\u6001\u5927\u6a21\u578b\u4e00\u9762\uff1a9\u9053\u6280\u672f\u95ee\u7b54\u4e0e2\u9053\u624b\u6495\u9898\u8be6\u89e3 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/105957.html","og_locale":"zh_CN","og_type":"article","og_title":"\u3010\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u30112026-09-10 \u767e\u5ea6\u591a\u6a21\u6001\u5927\u6a21\u578b\u4e00\u9762\uff1a9\u9053\u6280\u672f\u95ee\u7b54\u4e0e2\u9053\u624b\u6495\u9898\u8be6\u89e3 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u5199\u5728\u524d\u9762 \u6b22\u8fce\u5927\u5bb6\u5173\u6ce8Rocky\u7684\u516c\u4f17\u53f7&#xff1a;WeThinkIn \u6b22\u8fce\u5927\u5bb6\u5173\u6ce8Rocky\u7684\u77e5\u4e4e&#xff1a;Rocky Ding \u300a\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u300bAIGC\/LLM\/AI Agent\u7b97\u6cd5\u5de5\u7a0b\u5e08\/\u5f00\u53d1\u5de5\u7a0b\u5e08\u6c42\u804c\u9762\u8bd5\u79d8\u7c4d\u72ec\u5bb6\u8d44\u6e90&#xff1a;\u3010\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u3011WeThinkIn\/AIGC-Interview-Book&#xff0c;\u6b22\u8fce\u5927\u5bb6Star&#xff5e; Rocky\u6700\u65b0\u64b0\u5199\u768410\u4e07\u5b57AI Agent&#xff08;AI\u667a\u80fd\u4f53&#xff09;\u6df1\u5165\u6d45\u51fa\u5168\u7ef4","og_url":"https:\/\/www.wsisp.com\/helps\/105957.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-09-16T05:16:46+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260916051643-6aaa263b43cdb.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"17 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/105957.html","url":"https:\/\/www.wsisp.com\/helps\/105957.html","name":"\u3010\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u30112026-09-10 \u767e\u5ea6\u591a\u6a21\u6001\u5927\u6a21\u578b\u4e00\u9762\uff1a9\u9053\u6280\u672f\u95ee\u7b54\u4e0e2\u9053\u624b\u6495\u9898\u8be6\u89e3 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-09-16T05:16:46+00:00","dateModified":"2026-09-16T05:16:46+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/105957.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/105957.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/105957.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u3010\u4e09\u5e74\u9762\u8bd5\u4e94\u5e74\u6a21\u62df\u30112026-09-10 \u767e\u5ea6\u591a\u6a21\u6001\u5927\u6a21\u578b\u4e00\u9762\uff1a9\u9053\u6280\u672f\u95ee\u7b54\u4e0e2\u9053\u624b\u6495\u9898\u8be6\u89e3"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/105957","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=105957"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/105957\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/105953"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=105957"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=105957"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=105957"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=105957"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}