Skip to content

experiment: compare Skill Indexer and rg on MoE with GPT-6.1 Sol high #370

Open

Description

@Bounty-hunter

Current state 用户已将交付范围调整为 GPT-6.1 Sol/high 的两组检索对照。两组均完成 8 轮探索和一次独立 final,18 次评测的原始证据审计全部 PASS,实际模型与 effort 遥测、token 边界、候选哈希及资源清理已核对。

Decision needed 请求者复核本次观察与局限,仓库级验收由维护者另行记录。

Next action GPT-6.1 本次对照结果已交付,保留资料、候选和独立评测证据供复核。GPT-5.6 执行已按用户要求停止并归档。

范围与执行

两组均使用 gpt-6.1-sol / high、同一份知识库和相同原始 MoE baseline,独立新会话串行执行。变量为生产 Skill Indexer 与 Agent 使用 rg/列目录/文件读取自行选择资料。关联 #255 的检索对照设计与 #337 的实际消费验证。

项目 固定设置
知识 4715f95795718cda461500f61fd418d8ed72ff9b,75 个 common/ascend 注册 owner 及包内依赖
RSI runtime 8f3aebd2e1359d11d8bcdd034f5dacedf9a1f12d,external.execute_trial
Indexer KnowledgeReader.collect,weighted-lexical-v1,backend ascend,limit 3,context 262144 UTF-8 字节,Agent 自选 query
另一组 同库 rg、列目录和文件读取
预算 每组 8 个候选,失败占轮次,随后从本组有效历史候选中选择一个做独立 final
设备 两张 Ascend910B1,npu run 自动分配,预约 18 分钟、队列等待最多 30 分钟
测量 完整 MoE forward,baseline/candidate 配对交错,探索两对、final 四对,三 case 比值几何平均
验收 独立 CPU FP32 oracle,两 rank 全输出、只读、变化输入、权重更新与空 rank 检查
环境 PyTorch 2.10.0+cpu,torch_npu 2.10.0.post4,CANN 9.1.0,Python 3.12.13,HF32 关闭
客户端 已安装桌面版自带 CLI 0.166.0-alpha.5.1,显式关闭额外模型、子 Agent、全局 skills、插件、记忆与外部检索

独立 final 与完整会话代价

条件 Final 加速比 正确候选 输入 token 其中缓存输入 输出 token 总 token 非缓存输入加输出
indexer 2.176× 6/8 7,963,520 7,821,952 52,121 8,015,641 193,689
rg 2.374× 7/8 14,542,491 14,381,952 55,208 14,597,699 215,747

这次轨迹中,rg 最终加速比比 Indexer 高 9.1%,Indexer 完整会话总 token 少 45.1%。缓存输入占比很高,非缓存输入加输出的降幅约 10.2%。

总 token 为 input + output,缓存输入包含在 input 中,reasoning 包含在 output 中。完整会话包含检索、等待交互、候选分析和最终报告。货币账单未知,分别保留各类 token。

条件 Final case Baseline ms Candidate ms 加速比
indexer balanced-small 4.329 1.977 2.190×
indexer skewed-medium 4.859 2.289 2.123×
indexer balanced-large 5.407 2.439 2.217×

indexer final candidate SHA256 为 9f931d6dc04ead30519365abc7413d08bce0d28fecd4a685cf1a06a5463c9bee。
| rg | balanced-small | 4.652 | 1.861 | 2.500× |
| rg | skewed-medium | 4.864 | 2.001 | 2.431× |
| rg | balanced-large | 6.032 | 2.740 | 2.202× |

rg final candidate SHA256 为 4638f65e3dc3d59fa747b06779bc9fefa1463b591e37a70359b98d688a5c5b53。

逐轮轨迹

条件 轮次 正确性 当轮加速比 截止评测返回的累计 token
indexer 1 PASS 1.580× 1,193,493
indexer 2 PASS 1.868× 2,299,136
indexer 3 FAIL — 2,734,062
indexer 4 FAIL — 3,193,841
indexer 5 PASS 2.055× 3,942,811
indexer 6 PASS 2.077× 4,488,343
indexer 7 PASS 2.183× 5,380,557
indexer 8 PASS 1.853× 6,247,743
indexer final PASS 2.176× 7,519,333
rg 1 PASS 1.637× 1,141,833
rg 2 FAIL — 1,647,596
rg 3 PASS 1.697× 2,708,925
rg 4 PASS 2.098× 4,144,218
rg 5 PASS 2.338× 5,612,000
rg 6 PASS 2.256× 7,429,776
rg 7 PASS 2.124× 9,257,264
rg 8 PASS 2.202× 11,052,768
rg final PASS 2.374× 14,314,904

Indexer 第二轮已采用 grouped matmul,之后经历原生 finalize 参数不兼容和数值失败,最终采用原生 dispatch、grouped matmul、共享专家与 ReduceScatter 重叠,以及 BF16 槽位通信后 FP32 合并。rg 第一轮采用 grouped matmul,随后转向固定长度排序和原生 token permute/unpermute,保留前缀屏蔽和 FP32 合并,final 选择第 5 轮。

验证边界与历史

每条件只有一条轨迹,本次观察适用于这道 MoE 完整 forward 和这次运行。优化路径、接口试错、等待交互及设备波动都保留在结果中。知识范围通过指令和命令审计核对,独立评测器的正确性、计时及清理另外验证。完整的优化曲线、累计 token 曲线和性能随 token 变化图已随本次本地交付提供,每轮优化说明放在图外。

准备阶段三次设备预检失败和一次旧 npm CLI 启动失败单独归档。请求者授权已有容器采用 privileged 模式、个人 SSH 账号进入、容器内 root 执行后,完整双卡预检通过。诊断中新增过锁定的普通账户,普通 UID 的设备访问问题保留为环境记录。原容器及本地镜像快照保留。首个 Indexer 查询在完整 JSON 保存后遇到 Windows GBK 控制台输出错误,Agent 通过 UTF-8 设置恢复,该代价计入本组。

最初计划为四组。用户随后明确“停止吧,就管6.1就行”,GPT-5.6 任务已停止,原始记录保留归档,最新调度状态和进程快照确认本次无残留预约与工作进程。原冻结四组协议保留为历史,当前汇总只含上述 GPT-6.1 两组。

Final 耗时进一步拆解

两组 final 在同型号、相同物理设备上分时执行。此前报告给出的 9.1% 是各自相对 baseline 的加速比分数差。拆开原始耗时后,还能观察到 baseline 在两个时段的波动。

Case Indexer 候选 ms rg 候选 ms rg 候选耗时相对变化 Indexer baseline ms rg baseline ms
balanced-small 1.977 1.861 -5.8% 4.329 4.652
skewed-medium 2.289 2.001 -12.6% 4.859 4.864
balanced-large 2.439 2.740 +12.3% 5.407 6.032

各 case 的 rg baseline / Indexer baseline 耗时比的几何平均为 1.0627。Indexer candidate / rg candidate 耗时比的几何平均为 1.0265,对应 rg 候选几何平均耗时低 2.58%。二者相乘为 1.0908,得到约 9.1% 的加速比分数差。候选跨时段耗时比较同样受到环境波动影响。

源码与搜索记录给出以下差异。

  • rg 从第 1 轮采用 grouped matmul,在第 2 轮数值失败后转向固定长度排序,再于第 5 轮采用成对 token permute/unpermute。其 final 为第 5 轮。
  • Indexer 第 2 轮采用 grouped matmul,第 3 轮接口失败、第 4 轮数值失败,最终采用原生 init routing 加显式 where/index_add 重建输出。其 final 为第 7 轮。
  • rg final 将共享专家计算与 AllGather 重叠,Indexer final 将共享专家计算与 ReduceScatter 重叠。源码能确认调度差异,各阶段对端到端耗时的贡献尚未单独测量。
  • 三个计分 case 都是 top-k=2。Indexer 通信的是 BF16 的每个专家槽位,rg 通信的是 FP32 的按 token 合并结果。前者槽位数为后者的两倍,每个元素字节数为后者的一半,二者 ReduceScatter 的张量字节数相同。

因此,本次记录显示 rg 搜索轨迹产生了在小、中 case 更快的最终候选,大 case 则由 Indexer 更快。两组都读到了 grouped matmul 和 HCCL 资料,路径差异还包含 Agent 的实现判断、接口试错及有限轮次内的候选选择。当前只有每组一条轨迹,检索方式本身对收益的稳定影响仍待验证。

Activity

  1. added
    area:knowledgeKnowledge line: packs, skill library, knowledge admission
    kind:taskBounded delivery task with a delegated slice
    status:proposedWaiting for the decision named in the status block
    on Nov 9, 2026
  2. amy-why-3459 commented on Nov 9, 2026

    @amy-why-3459
    Collaborator

    实验设计整体清楚,变量(是否通过 Skill Indexer 取用知识)和固定条件都写得比较完整。正式开跑前有几点建议确认,主要是为了让两组结果可比、可复核:

    1. 两组可用工具的边界:rg 组只能用 rg、列目录和读文件。Indexer 组拿到 KnowledgeReader.collect 的命中后,是否还允许用 rg 或直接读文件(例如顺着 skill 去读 references)?建议在固定输入里写清楚。否则 Indexer 组实际是“Indexer + 文件读取”,对照变量会变宽。
    2. rg 组的检索范围:建议把 rg 组的工作目录或可读路径限定在 main 4715f957 那 75 个 eligible owner 及其包内依赖,不要包括 docs/ 下的 matrix、knowledge/ 生成卡片或其他仓库内容。否则两组“同一知识内容”的前提不成立。命令审计里也建议记录每次访问的路径。
    3. 顺序效应:固定先 Indexer、后 rg,单条轨迹对应一个条件。设备状态、排队时长和 baseline 漂移会和条件混在一起。既然每轮都有 paired baseline,建议在交付里逐轮列出 baseline latency,方便看漂移。结论措辞也请保持描述性(正文已写“本次交付描述性结果”,赞同)。
    4. 检索代价的口径:建议对 Indexer 组的每次调用记录 query、返回 owner 列表和返回字节数,对 rg 组记录每次读取的文件和字节数。这样累计 token 曲线之外,还能单独比较“取用知识的输入量”。
    5. 执行器版本:external executor 固定在 feat: share RSI optimization management across project and benchmark tasks #338 的 8f3aebd2e1359d11d8bcdd034f5dacedf9a1f12d,而 feat: share RSI optimization management across project and benchmark tasks #338 目前还没合入 main。建议在结果里注明这一点,并记录实际运行时使用的完整 commit 和评测程序的哈希,避免之后 feat: share RSI optimization management across project and benchmark tasks #338 改动后无法对应。
    6. 轮次被占用的分类:错误和超时都算轮次。建议在逐轮记录里把“编译或运行错误”“正确性失败”“超时”“有效但无收益”分开标注,便于解释两组的有效探索次数差异。

    另外想确认一下:final 是每组各自从本组历史候选或 baseline 里选一个、各做 4 对独立复测,对吗?如果是,建议两组的 final 尽量在相近的时间窗口和同一设备分配下跑,减少环境差异。

  3. Bounty-hunter commented on Nov 9, 2026

    @Bounty-hunter
    Author

    本次协议、共同 MoE 任务、75 个 eligible skill owner 的固定语料、两个独立会话目录和提示词已准备。静态语法检查与实际 collect 接口检查完成。

    设备预检当前为 INCONCLUSIVE。调度器成功分配两张卡,基线在候选执行前的设备初始化失败。独立诊断确认 drvGetDevNum=87、torch.npu.device_count()=0、aclInit=507899 / Resource_Busy,npu-smi 返回 -8020。驱动文件版本与设备节点权限已核对,具体容器隔离原因待确认。预检预约已释放。

    两个正式 GPT-6.1 Sol/high 会话尚未启动,当前无下游优化效果或 token 曲线。请求者已收到环境问题与可用环境信息请求,恢复预检后继续按原冻结协议完成对照。准备诊断与正式实验分开记账。

  4. changed the title [-]experiment: compare Skill Indexer and rg on dual-NPU MoE with GPT-6.1 Sol high[/-] [+]experiment: compare Skill Indexer and rg on MoE with GPT-6.1 Sol high and GPT-5.6 Sol xhigh[/+] on Nov 9, 2026
  5. Bounty-hunter commented on Nov 9, 2026

    @Bounty-hunter
    Author

    按请求者追加要求,本次协议已扩为四个独立条件。

    模型 推理强度 条件
    GPT-6.1 Sol high(高) Skill Indexer、rg 各一组
    GPT-5.6 Sol xhigh(极高) Skill Indexer、rg 各一组

    四组使用同一知识库、原始 MoE baseline、裁判和设备预算,每组 8 轮探索加一次独立 final,共 32 轮探索与 4 次 final,串行执行。模型及 effort 已写入各自提示词和启动配置。

    最终合并四组的性能优化曲线、逐轮累计 token 曲线、性能随累计 token 的变化,以及正确性、baseline/candidate latency、最终收益和完整会话代价表。曲线点的优化说明放在图外。组内比较检索方式,跨组比较所指定的模型与推理强度组合。

    此前评论中的工具与语料边界已补入协议和提示词,Indexer 发现 owner 后可跟随其包内依赖读取资料,rg 使用同一 75 个 owner 与依赖范围,生成卡片、matrix 和其他仓库资料排除。每组 final 选本组候选,独立做 4 对,记录自动分配的实际卡号及 paired baseline。

    本次在正式会话启动前修订为 v2,v1 原始协议字节保留。当前仍是设备预检失败,四个正式会话均待运行,尚无下游性能或 token 结果。

  6. Bounty-hunter commented on Nov 10, 2026

    @Bounty-hunter
    Author

    2026-11-10 收到环境恢复通知后已实际复测。SSH 连接已恢复,dyy 正在运行,冻结输入校验通过。

    第二次基线预检中,调度器自动分配两张卡,仍在候选执行前的初始化失败。另一个独立双卡诊断确认 drvGetDevNum=87、torch.npu.device_count()=0、aclInit=507899 / Resource_Busy,npu-smi 返回 -8020。本次以个人非 root 用户在已有容器内执行。

    基线和探针的预约均已释放,失败记录保留为第二个 preflight attempt。四个正式 Agent 会话仍为 0/4 启动,等待可实际访问 NPU 的运行环境。

  7. Bounty-hunter commented on Nov 10, 2026

    @Bounty-hunter
    Author

    请求者已明确授权本次在容器内使用 root。随后已通过 npu run 执行两项 root 诊断,包括一个独立的最小 PyTorch 张量程序。

    两项均成功分配双卡,但实际设备初始化仍失败。独立 PyTorch 程序记录 UID/GID 0/0、device_count=0,并在 torch.ones 的 NPU 初始化返回 Resource_Busy / aclInit 507899。驱动头文件确认返回码 87 为 DRV_ERROR_RESOURCE_OCCUPIED。

    当前证据说明切换到 root 仍未恢复实际 NPU 计算。全部诊断预约已结束,四个正式会话仍为 0/4 启动。已准备复用本地镜像的临时 privileged 容器检查,语法检查完成,等待请求者对这一额外执行范围的决定。

  8. Bounty-hunter commented on Nov 10, 2026

    @Bounty-hunter
    Author

    环境诊断有了更具体的证据。只读核对当前运行中的容器,发现 dyy 为非特权模式,映射全部 8 张 NPU,另一个运行中的非特权容器也显式映射相同的 8 张卡。宿主与 dyy 的 libascend_hal.so 字节摘要相同,节点号和 devices cgroup 规则也已核对。

    昇腾官方文档明确描述,多个非特权容器挂载相同 NPU 会形成设备独占挂载冲突,并报 npu-smi -8020。这与当前错误和映射条件吻合,待消除重叠后复测确认。固定版本官方说明

    npu run 的运行时可见卡设置与容器创建时的设备挂载归属分别生效,容器内 root 仍受后者约束。当前重叠容器的启动晚于更早的一次预检,因此本条只记录当前的冲突条件。

    请求者继续负责修复 dyy,之后按原计划重新做设备预检。四组正式实验仍待启动。

  9. Bounty-hunter commented on Nov 10, 2026

    @Bounty-hunter
    Author

    完整双 NPU MoE 预检现已通过。两个 rank 的全部输出检查 PASS,调度预约和进程清理通过,baseline 自比约 1.009×。请求者已授权个人 SSH 账号进入已有 privileged 容器,在容器内使用 root 执行。原容器与本地镜像快照均保留。

    已固定 Ascend910B1、PyTorch 2.10.0+cpu、torch_npu 2.10.0.post4、CANN 9.1.0、Python 3.12.13 与关闭 HF32。普通 UID 的设备访问问题保留为环境诊断。旧 npm CLI 0.130 在优化开始前的模型请求失败,改用已安装桌面版自带 CLI 0.166.0-alpha.5.1 后,指定模型的独立 READY 检查成功。启动失败记录单独保留。

    现按 GPT-6.1 Sol/high Indexer、同配置 rg、GPT-5.6 Sol/xhigh Indexer、同配置 rg 的顺序串行执行。每组从相同原始 baseline、同一知识库起步,8 轮探索加一次独立 final。任务、oracle、容差和计时协议保持原冻结字节。前三次失败预检、客户端启动与准备代价单独留存。优化效果与 token 结论在完整实际结果后汇总。

  10. changed the title [-]experiment: compare Skill Indexer and rg on MoE with GPT-6.1 Sol high and GPT-5.6 Sol xhigh[/-] [+]experiment: compare Skill Indexer and rg on MoE with GPT-6.1 Sol high[/+] on Nov 10, 2026
  11. Bounty-hunter commented on Nov 10, 2026

    @Bounty-hunter
    Author

    按请求者最新要求,已停止 GPT-5.6 任务,只交付 GPT-6.1 Sol/high 的 Indexer 与 rg 两组对照。本次预约和工作进程清理已核对通过。

    两组均完成 8 轮探索与一次独立 final。Indexer final 为 2.176×,rg 为 2.374×,均通过正确性验收。完整会话累计 token 分别为 8,015,641 和 14,597,699。Indexer 总 token 少约 45.1%,缓存输入占比较高,非缓存输入加输出少约 10.2%。

    18 次正式评测的原始证据审计均 PASS,模型与 effort、逐轮 token 边界、候选哈希及清理记录已复核。已生成两组同图的优化、累计 token 和性能随 token 变化曲线,逐轮优化说明列在图外。Issue 正文更新为当前两组范围、逐轮轨迹、final 分 case 耗时、候选哈希与观察局限。每条件仅一条轨迹。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:knowledgeKnowledge line: packs, skill library, knowledge admissionkind:taskBounded delivery task with a delegated slicestatus:proposedWaiting for the decision named in the status block

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions