当前位置:首页>学习笔记>LLM 学习笔记-Deepspeed-MoE 论文

LLM 学习笔记-Deepspeed-MoE 论文

  • 2026-03-08 09:36:05
LLM 学习笔记-Deepspeed-MoE 论文

论文 DeepSpeed-MoE: Advancing Mixture-of-Experts Inference and Training to Power Next-Generation AI Scale

1. Introduction

现有的 MoE 方法在正式使用场景中存在的挑战:

  1. 场景局限:大都是 encoder-decoder 模型或者 sequence-to-sequence 任务;
  2. 训练时的内存需求巨大:
  3. 推理性能还不太行:通常单个 GPU 放不下 MoE 做推理。另一方面多 GPU 的 MoE 推理方法还欠缺研究。MoE 推理还受到内存带宽的影响。

Deepspeed-MoE针对上述挑战做了下面的改进:

  1. 把 MoE 的任务扩展到了各种自回归的 NLG 任务
  2. 提出 PR-MoE 来减少 MoE 参数
  3. 设计了 Deepspeed-MoE 推理系统,减少 7.3 倍推理延时和开销。

2. Related work

  • 先讲了 large-scale 的 dense model
  • 然后引出 moe
  • 最后介绍了一下现有的 MoE 训练和推理优化系统
    • 各种并行策略:dp, pp, zero, ep
    • MoE 优化框架:fastmoe, tutel

3. 将 MoE 扩展到其他下游任务

MoE 模型是基于 dense 模型设计的,即在 dense 模型的基础上把单个 MLP 替换成 多个 MLP,再加上 gate 等模块。例如 1.3B+MoE-128 就是基于参数量为 1.3B 的dense模型,每一层 MLP 替换成 128 个 expert 组成的模块。

扩展的任务包括:

  • completion prediction task (LAMBADA [16])
  • common sense reasoning task (PIQA [35])
  • 2 个 reading comprehension tasks (BoolQ [18], RACEh [36])
  • 2 个 question answering tasks (TriviaQA [21], WebQs [20])

实验结果不赘述了,反正MoE赢过dense,而且开销更小就完事了。

4. PR-MoE & MoS:减少模型大小,提高parameter efficiency

PR-MoE (Pyramid Residual MoE)结构如下

PR-MoE

PR-MoE 是基于两个现象设计的:

  1. 现有的 MoE 每一层专家模块的 expert 数量都是一样,所以做了个对比试验:实验 A 指在模型前半部分添加专家模块,实验 B 则只在后半部分添加专家模块。实验结果显示 B 表现更高,所以说明模型深层(即后半部分)更需要专家模块;所以最终 PR-MoE 后半部分的专家数量会设置的更多一些。

  2. 要提高 MoE 的泛化能力,有两种方法:

    上面提到的 expert capacity 可以理解成每次选 top-k 个 expert 参与计算,K 越大,expert capacity 就越大,通常认为这样模型泛化能力越强。这是因为我们会认为不同 expert 彼此之间会做一个纠正,不至于预测结果偏差太大。所以一种思路是固定一个 expert,然后再动态选择一个 expert,这样就可以既减少了通信量(因为只有一个 expert 需要选择),又保证了 capacity。

    1. 增加 expert 数量,固定 expert capacity:这个的问题在于会增加内存开销
    2. 固定 expert 数量,增加 expert capacity:这个的问题在于会增加通信量

MoE 训练加速的方法是专家并行,最简单和最高效的办法是每个 GPU 上均等平分 expert。例如总共有 64 个 expert,然后这个时候使用 64 个 GPU 的话,那就只需要 给每个 GPU 分配一个 expert就可以了。如果只有 32 个 GPU,那就每个 GPU 分配 2 个 expert。

但是现在PR-MoE 的训练的难点在于不同层 expert 的数量不一样了。其实,如果 GPU 数量少于最少的专家数量的话,还挺好划分的,简单平均分就好了。但是这种情况呢?假设有三层,每层专家数量分别是 {32, 64, 128},GPU 数量是 128。按照原论文的说法,deepspeed-moe 支持这样的并行方式:

“a PR-MoE model running on 128 GPUs, with 32, 64, and 128 experts at different MoE layers, can be trained with 128-way data parallelism for the non-expert parallelism, and {32, 64, 128} expert parallelism plus {4, 2, 1} data parallelism for MoE parameters.”

简单来说,就是非 expert 模块采用 128 路的数据并行;但是对于专家模块,这才用专家并行和数据并行相结合的策略。例如第一层只有 32 个专家,那么我们就把第一层复制 4 遍,即对第一层做 4 路数据并行,每一路内部会做 32 路的专家并行。其他同理。

为进一步降低参数量,论文还用知识蒸馏得到更小的 MoE 模型,称作 Mixture of Students (MoS)。

5. 推理优化

我们首先对于 1.3B+MoE-128 模型(总参数量是接近 52B)考虑两种推理的极端情况:

  1. 只有一个输入的 token 数据做推理,那这个时候其实只会激活一条路径,所以只需要使用 1.3B 对应的内存开销
  2. 当输入一个大 batch 的数据时,很可能每个 expert 都被激活了,那这个时候需要的是 52B 对应的内存开销

换言之,模型推理的开销介于 1.3~52B 之间。

Deepspeed-MoE 的优化思路是下面 3 条:

  1. 支持各种并行策略混合,而且把路径相同的 token 打包一起做推理,这样每次就只需要激活一个路径了,即单个 dense 模型的开销。
  2. 优化通信scheduling
  3. 优化 transformer和 MoE 相关的 kernel

上面 3 条优化思路详细介绍如下:

5.1 灵活组合多种并行策略:TP,EP,DP

简单理解就多种并行方式混合使用。下图是以单个 MoE 层为例解释了如何使用混合并行策略,假设总共有16 个 GPU,专家数量为 8 个,可以看到并行模式是针对专家和非专家模块分别设计的,具体如下:

  • 对于非 expert 参数模块:
    • 使用4 路数据并行,也就是说该部分参数复制了 4 遍
    • 每一路数据并行的内部采用 4 路的tensor 并行
  • 对于 expert 参数模块:
    • 使用 8 路专家并行
    • 每个专家通过 2 路的 tensor 并行进行参数拆分
Mixture parallel

5.2 优化通信

我们知道专家并行需要把专家分配到不同的 GPU 上,因此计算是时需要用到 all-to-all 通信来互相交换 token。论文作者发现使用基于 NCCL 的 torch.distributed 接口会有很大的 overhead,尤其是当规模上去的时候。于是他们改用了微软的 SCCL,实验结果显示比 NCCL 更好。作者还设计了两个新的通信优化策略:

5.2.1 Hierachical all-to-all

简单来说,分层 AlltoAll 设计的工作原理如下:

  1. 首先,每个 GPU 将其数据进行本地转换。这可以是任何类型的转换,例如将数据排序或压缩。
  2. 然后,每个 GPU 将其转换后的数据与同一节点上的其他 GPU 进行交换。这可以理解成是局部 AlltoAll
  3. 最后,每个节点将其转换后的数据与其他节点进行交换。这可以理解成全局 AlltoAll

假设总共有  个 GPU,每个节点包含  个GPU,所以总共有  个节点。复杂度对比:

  • 原本是直接在所有 GPU 之间做 all-to-all 的复杂度是
  • 现在分层 all-to-all 的复杂度 包括两部分:
    • 局部通信复杂度:因为不同节点之间可以同时做通信,所以复杂度是
    • 全局通信复杂度:其实就是节点之间做通信,所以复杂度是
Hierarchical All2All

5.2.2 Tensor 和 expert 协同并行的通信优化

在插入 MoE 模块后的 transformer layer 通常长这样:inputs → MLP1 → MoE layer

为了加速我们可以对 MLP 层分别使用 tensor 并行,对 MoE layer做专家并行,这是前提。

  • 我们先考虑在 MLP1 上执行 tensor 并行:我们知道 tensor 并行的特点是参与计算的 GPU 的输入数据是相同的,输出数据也是相同的(column parallel 需要用到 all-gather, row parallel 需要用到 all-reduce)。
  • 接着在 MoE 上做专家并行:正如前面提到的,MLP1 最后在不同设备上的输出结果会保持一致,那么也就是说对于后面的 MoE layer 而言,同一个 tensor parallel group 的进程之间因为他们的输入数据是一样的了,所以就不需要再做all-to-all 通信了,也就是说 GPU0 和 GPU1 没必要再浪费时间做 all-to-all 了,同理 GPU2 和 GPU3 也不需要了。那换言之,为了节省通信开销,我们可以先在 GPU0 和 GPU2 之间做 all-to-all 通信,结束之后, 同一个tensor parallel group内部的 GPU 再做 all-gather即可,即 GPU0 把数据同步给 GPU1。

小结:这样一来,原本 all-to-all 的通信开销就从 降到了 ,其中 p 表示总共的 GPU 数量, L 表示tensor parallelism degree。对应到下面图中 p=4,L=2。当总的 GPU 数量增大的时候,这种方式的通行效率才能体现出来

协同并行通信优化

5.3 MoE-related Kernel优化

基于前面的介绍我们知道 MoE 的核心主要是

  • gate 模块
  • 各种 data layout transformation,例如:
    • 稀疏张量 one-hot vector,用来指示每个 token 分配给了哪个 expert
    • Sparse-Dense Einsum Operations,比如是根据上面onehot vector 和 inputs tokens 进行矩阵乘法,实现 token 的 masked 计算
    • 数据的重新排序和重排(Reordering and Rearranging of Data):MoE 模型中的最终 einsum 运算会对 tokens 进行缩放和重新排序,以使其回到原始的顺序。这个过程可能会涉及对数据进行重新排列和重组。

gate 模块包含了很多算子,例如生成 token 的 mask,top-k 操作,scatter token 到对应 expert等等,这些算子都需要启动 kernel call,而每一次都需要开销。所以论文 的优化思路是两点:

  • 使用 dense representation代替稀疏张量表示,简单理解就是弄了一个 mapping table,记录每个 token和 expert 的对应关系
  • 把 gate 模块内的所有算子融合成了单个 kernel 算子

实验结果显示优化后的 MoE kernel 能够降低 6 倍的延迟。

疑问

整篇文章主要是第 5 章读起来费劲,读完还是有些问题没有搞明白,希望和大家讨论一下:

  • 图 8 和图 9 中的小方格分别表示什么含义,是模型参数还是 input token?
  • all-to-all 具体是指下面的哪一种,因为看到了不同的说法:
    1. 参与通信的 GPU 把自身所有数据都同步给其他 GPU,然后每个 GPU 通过 mask 执行计算
    2. 参与通信的 GPU 根据 gate 的结果只传输需要的 token 给对应的 GPU
  • 为什么图 8 和图 9 的 local transform 都是把 GPU 0 的 B 和 C 做交换,可以把 A 和 C 交换吗?
  • 每个 GPU 都只传输了 3/4 的数据给其他 GPU,这是为什么?另外我理解的是不同的 expert 处理的数据量应该是不一样的

参考:

  • https://zhuanlan.zhihu.com/p/466363675
  • https://www.cnblogs.com/marsggbo/p/16871789.html

微信公众号:AutoML机器学习
MARSGGBO原创如有意合作或学术讨论欢迎私戳联系~邮箱:marsggbo@foxmail.com

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-08 17:00:44 HTTP/2.0 GET : https://67808.cn/a/471700.html
  2. 运行时间 : 0.228363s [ 吞吐率:4.38req/s ] 内存消耗:4,715.35kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=07a07b07b6ea6339d6ed9a69b37b8b70
  1. /yingpanguazai/ssd/ssd1/www/no.67808.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/no.67808.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/no.67808.cn/runtime/temp/6df755f970a38e704c5414acbc6e8bcd.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001046s ] mysql:host=127.0.0.1;port=3306;dbname=no_67808;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001564s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000702s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000685s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001273s ]
  6. SELECT * FROM `set` [ RunTime:0.001704s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001622s ]
  8. SELECT * FROM `article` WHERE `id` = 471700 LIMIT 1 [ RunTime:0.003109s ]
  9. UPDATE `article` SET `lasttime` = 1772960445 WHERE `id` = 471700 [ RunTime:0.001491s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000668s ]
  11. SELECT * FROM `article` WHERE `id` < 471700 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001921s ]
  12. SELECT * FROM `article` WHERE `id` > 471700 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.006897s ]
  13. SELECT * FROM `article` WHERE `id` < 471700 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.007662s ]
  14. SELECT * FROM `article` WHERE `id` < 471700 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003607s ]
  15. SELECT * FROM `article` WHERE `id` < 471700 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.005920s ]
0.234361s