Prhub

#24730 [Cookbook]: add Laguna-XS.2 (Poolside)

原始 PR 作者 Jiminator 合并时间 2026-05-12 23:06 文件变更 4 提交数 17 评论 6 代码增减 +563 / -30

执行摘要

添加 Laguna-XS.2 模型部署文档与交互式配置生成器

Laguna-XS.2 是 Poolside 开源的 33.4B 混合滑动窗口注意力 MoE 模型,专为 agentic coding 设计。原模型仅能通过 --trust-remote-code 加载,无法利用 SGLang 的 RadixAttention、FusedMoE 等优化。PR #24204 已加入原生支持,本 cookbook 为用户提供清晰的部署指导,降低使用门槛。

值得快速浏览 cookbook 页面和交互式组件代码,了解 SGLang 文档中部署指南的编写模式,特别是如何将 React 交互组件嵌入 Markdown 文档。对于维护者,需关注安装指南中的版本号随 SGLang 发布周期更新。

讨论亮点

Review 中提出两个关键问题:

  • JustinTong0323 指出 --chat-template-kwargs 不是服务器启动参数,仅能在 API 请求中使用。作者 Jiminator 回复已修复并对所有提及的启动参数做了全面检查。
  • JustinTong0323 指出 Poolside 官方博客链接应该是 .io 而非 .ai。作者确认 .ai 虽会自动跳转,但仍按建议修正为 .io
    两个问题均已解决,PR 获得批准。

实现拆解

  1. 新增交互式部署配置生成器 (docs_new/src/snippets/autoregressive/laguna-xs2-deployment.jsx):使用 React 组件 LagunaXS2Deployment,提供硬件(H200/B200)、量化(BF16/FP8/NVFP4)、推理解析器、工具调用解析器和 DP Attention 的选项选择,生成对应的 sglang serve 启动命令。组件通过 useState 管理状态,MutationObserver 监听暗色模式切换以适配文档主题。

  2. 新增 cookbook 页面 (docs_new/cookbook/autoregressive/Poolside/Laguna-XS.2.mdx):包含模型简介、可用量化版本表、SGLang 安装说明(pip nightly wheel 和 Docker 镜像两种方式)、启动命令示例(支持 TP=8 和可选 DP Attention 模式),以及推理与工具调用解析器的使用说明。安装部分引用了交互式生成器组件。

  3. 更新文档侧边栏 (docs_new/docs.json):在 "Autoregressive Models" 分组下新增 "Poolside" 组,指向新 cookbook 页面。

  4. 更新首页博客卡片 (docs_new/index.mdx):将首页的 LMSYS 博客卡片链接从 DeepSeek-V4 和 HiSparse 更新为最新的 P2P weight transfer 和 DeepSeek-V4 文章,保持首页新闻时效性。

配套调整:没有新增测试,但 PR 经过多次 commit 迭代(17 次),包括修正错误的 --chat-template-kwargs 启动参数和修复 Poolside 域名(.ai → .io),体现了对文档准确性的打磨。

文件 模块 状态 重要度
docs_new/src/snippets/autoregressive/laguna-xs2-deployment.jsx 文档片段 added 8.41
docs_new/cookbook/autoregressive/Poolside/Laguna-XS.2.mdx 文档页面 added 5.22
docs_new/docs.json 文档配置 modified 2.97
docs_new/index.mdx 首页 modified 3.35

关键符号

LagunaXS2Deployment resolveItems getInitialState checkDarkMode handleRadioChange generateCommand

关键源码片段

docs_new/src/snippets/autoregressive/laguna-xs2-deployment.jsx core-logic

核心交互式部署配置生成器,通过选项选择实时生成启动命令,是 cookbook 页面的核心交互部分。

export const LagunaXS2Deployment = () => {
  // 选项配置:硬件、量化、推理解析器等
  const options = {
    hardware: {
      name: 'hardware',
      title: 'Hardware Platform',
      items: [
        { id: 'h200', label: 'H200', default: true },
        { id: 'b200', label: 'B200/GB200', default: false }
      ]
    },
    quantization: {
      name: 'quantization',
      title: 'Quantization',
      items: [
        { id: 'bf16', label: 'BF16', default: true },
        { id: 'fp8', label: 'FP8', default: false },
        { id: 'nvfp4', label: 'NVFP4', default: false } // Blackwell-only
      ]
    },
    // reasoning, toolcall, dpAttention 等 ...
  };  // 量化到模型 ID 的映射
  const modelByQuant = {
    bf16: 'poolside/Laguna-XS.2',
    fp8: 'poolside/Laguna-XS.2-FP8',
    nvfp4: 'poolside/Laguna-XS.2-NVFP4'
  };  // 生成最终启动命令的核心逻辑
  const generateCommand = () => {
    const { hardware, quantization, reasoning, toolcall, dpAttention } = values;    // 检查非法组合:NVFP4 仅支持 B200
    if (hardware === 'h200' && quantization === 'nvfp4') {
      return '# Error: NVFP4 is Blackwell-only. Select B200, or pick BF16/FP8 for H200.';
    }    const modelId = modelByQuant[quantization];
    if (!modelId) return `# Error: Unknown quantization: ${quantization}`;    const tp = 8; // 固定 TP=8
    const lines = [
      'sglang serve \\',
      `  --model-path ${modelId} \\`,
      `  --tp ${tp}`
    ];    if (dpAttention === 'enabled') {
      lines[lines.length - 1] += ' \\';
      lines.push(`  --dp ${tp} \\`);
      lines.push('  --enable-dp-attention');
    }    if (reasoning === 'enabled') {
      lines[lines.length - 1] += ' \\';
      lines.push('  --reasoning-parser poolside_v1');
    }    if (toolcall === 'enabled') {
      lines[lines.length - 1] += ' \\';
      lines.push('  --tool-call-parser poolside_v1');
    }    lines.push('  --host 0.0.0.0');
    return lines.join('\n');
  };
  // ... 其余组件逻辑(状态管理、暗色模式监听等)

评论区精华

--chat-template-kwargs 不是服务器参数 正确性

JustinTong0323 指出文档中使用了 `--chat-template-kwargs`,但该参数仅支持 API 请求,不支持作为服务器启动参数。

结论:作者已删除该错误参数,并对所有启动参数进行了全面检查。 · 已解决

Poolside 博客链接域名错误 正确性

JustinTong0323 指出 Poolside 博客链接应为 .io 而非 .ai。作者确认 .ai 虽会自动跳转,但已按建议修正。

结论:已将链接中的 .ai 改为 .io。 · 已解决

风险与影响

本次变更为纯文档添加和首页链接更新,不涉及核心推理代码或配置,风险极低。主要风险点:

  • 交互式生成器 generateCommand 中生成的启动命令需与 SGLang 实际 CLI 参数保持一致,但目前仅在作者的 H200 环境验证,不同 GPU 型号或驱动版本可能出现兼容性问题。
  • 安装指南中的 nightly wheel 和 Docker 标签需随版本演进更新,否则可能滞后导致用户安装失败。
  • index.mdx 的博客卡片链接更新不具备原子性,若后续有其他 PR 修改同一区域可能产生冲突。

对用户:为希望部署 Laguna-XS.2 的用户提供了一站式指导,降低了配置复杂度;交互式生成器可减少命令行参数记忆负担。
对系统:无运行时影响,仅增加文档静态页面。
对团队:新增一个 cookbook 范例,可作为后续类似模型部署文档的模板(交互式组件 + 安装说明 + 启动示例的结构)。

文档准确性依赖未发布版本 交互组件仅在部分环境验证

关联 Issue

#24204 [Model] Laguna-XS.2 Model Support

完整报告

参与讨论