news 2026/9/29 1:49:01

生成式大模型与世界模型:从序列续写到物理推演的本质分野

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
生成式大模型与世界模型:从序列续写到物理推演的本质分野

1. 本质差异:一个在学“话术”,一个在学“物理”

先说结论:生成式大模型和世界模型,最本质的区别不在于“谁参数更多”“谁算力更强”,而在于它们内部建模的对象根本不同。一个建模的是“文本序列的统计规律”,一个建模的是“物理世界的状态演化规律”。

我用一个很直白的类比来解释。生成式大模型就像一个非常擅长接话的聊天高手,你跟它说“今天下雨了”,它能接出“记得带伞”“路面会湿滑”“适合在家睡觉”这些后续内容。它靠的是从海量对话文本里学会了“下雨”这个语境之后,人类通常会说哪些话。它不需要真正理解雨是怎么形成的、水滴落下来之后会往哪里流,它只需要把“下雨”这个符号关联到一组高概率的后续符号上。

世界模型不一样。它更像一个在脑子里建立了“物理沙盘”的推演者。你给它一个场景,它要做的不是预测“接下来会说什么”,而是预测“接下来这个世界会变成什么样”。比如给它一帧画面“一个杯子在桌边悬空”,它会推演出“杯子掉落”“杯子碎裂”“桌面有残渣”这个连续的状态序列。这个过程不依赖“语料里别人怎么描述杯子掉落”,而是依赖它对重力、碰撞、物体形状这些物理规律的内在建模。

所以一句话总结:

生成式大模型的核心能力是“语义空间里的续写”,世界模型的核心能力是“物理空间里的推演”。

这篇文章会围绕这个核心差异,拆解两者的底层机制、建模对象、推理方式,以及在实际项目里怎么选型。无论你是做AI应用的开发者,还是关注大模型技术选型的产品经理,或者只是对AGI方向感兴趣的技术爱好者,这篇文章都会给你一个清晰的判断框架。

1.1 先厘清一个概念:很多人把“多模态大模型”误当成“世界模型”

在深入对比之前,必须先拆掉一个非常普遍的误解。现在很多大模型能看图、能听声音、能生成视频,这让很多从业者误以为“支持多模态输入输出的模型就是世界模型”。这个认知偏差很致命。

多模态大模型,比如GPT-4V、Gemini这类,本质上是把文字、图片、音频统一编码成Token序列,然后在一个超大的Transformer里做序列建模。图片被切成Patch序列,音频被量化成离散Token,它们的底层逻辑依然是“序列预测”。模型看到了画面里有一个杯子,实际上是看到了杯子对应的视觉Token序列;它能描述杯子的状态,是因为训练语料里存在大量“杯子+描述”的配对文本。

世界模型构建的是抽象的状态表征。它内部维护的不是Token,而是状态变量:物体的位置、速度、形状、遮挡关系、场景的几何结构、光照条件。它预测的是这些状态变量如何随时间更新。虽然它可能用神经网络来拟合状态转移函数,但它的推理回路跟语言模型完全不同。

举个例子,你给一个多模态大模型看一段“球滚下斜坡”的视频,它可以描述出“球在加速”“坡面很陡”。但如果你让它回答“如果斜坡角度变成45度,球会在第几帧落地”,它就很难给出准确答案,因为它没有显式的物理模拟能力,它只是在语言和视觉的关联里做推理。

世界模型在面对这个问题时,会在内部状态空间里更新“球的坐标”“速度矢量”“摩擦系数”,然后推演出一条轨迹。它回答的不只是一个文字答案,而是一段可验证的物理推演过程。

2. 底层机制的分水岭:相关性拟合与因果性建模

要理解两者的本质区别,必须下探到它们的数学内核和训练范式。这一层看懂了,很多表层现象就都解释得通了。

2.1 生成式大模型:条件概率的极致拟合

生成式大模型的数学本质,是在拟合一个条件概率分布。用公式表达就是:

P(x_{t+1} | x_1, x_2, ..., x_t)

给定前文,预测下一个Token的概率。Transformer通过自注意力机制,把序列里每个位置的Token跟所有其他位置建立关联权重,然后通过多层非线性变换,拟合出一个极其复杂的条件概率分布。这个分布之所以能产生“智能感”,是因为训练语料足够大、模型容量足够大,它把人类在文本中留下的思维痕迹、知识结构、表达模式都以概率参数的形式固化了下来。

但它做的是相关性拟合,不是因果推断。举个例子,模型学到“下雨”和“带伞”之间存在强关联,但它不知道“因为下雨,所以需要带伞”。它只是观察到在大量语料中,这两个词有很高的共现概率。这种相关性在很多场景下足以产生有用的输出,但在需要精确推理、物理一致性、反事实推演的场景里,就会露出马脚。

最典型的表现就是大模型的“幻觉”问题。当模型遇到一个它没有见过充分相关证据的组合时,它不会像人类一样说“我不知道”,而是会基于相关性的概率平滑,生成一个听起来合理但完全虚构的答案。因为它内部根本没有一个“世界状态”可以核对。

2.2 世界模型:状态空间里的时间演化

世界模型的数学本质不一样。它建模的对象是:

S_{t+1} = F(S_t, A_t)

其中 S 是环境状态,A 是智能体(或者环境自身)施加的动作或干扰,F 是状态转移函数。W 要在内部维护一个对环境的动态估计,然后预测这个状态在动作作用下的下一时刻形态。

这个形式你一看就知道,它跟控制论、强化学习、机器人学里的系统建模是一脉相承的。区别在于,传统方法里 F 可能是人为设定或者用简单函数拟合的,而世界模型用神经网络(尤其是大规模网络)来拟合这个状态转移函数,让模型能够处理高维的视觉输入、复杂的物理交互。

因为它在建模“状态如何随时间变化”,所以它在训练目标上和语言模型完全不一样。语言模型的目标是“最大化下一个Token的似然”,世界模型的目标是“最小化预测状态与真实状态之间的误差”。这个误差不是语义层面的,而是数值层面的:

Loss = || Ŝ_{t+1} - S_{t+1} ||²

它要求的是预测出的下一帧画面、下一个物理状态,跟真实结果在数值上对齐。这就让模型必须抓住真正的因果机制,而不是表面语义关联。

2.3 为什么这个差异决定了能力的边界

理解了数学内核,你就能解释很多实际现象。

  • 为什么大模型做不了精确的时空推理?因为它没有显式的时间轴和物理坐标。它只能在文本层面处理“前一帧/后一帧”这种语义关系,一旦需要精确计算“3秒后物体在哪”,它就无能为力。
  • 为什么世界模型做不了开放式的语义创作?因为它没有强大到能生成任意人类语言的语义空间。它的输出是结构化的状态预测,而不是自然语言文本。
  • 为什么大模型偶尔会给出物理上荒谬的答案?因为它内部没有物理约束。它可以描述“一个苹果向上掉落”而完全不自知,因为在它的语言统计里,这句话的措辞是合理的。
  • 为什么世界模型的输出天然具有“一致性”?因为它的预测结果会被比较、被纠错。如果预测的物体轨迹不符合真实物理规律,训练损失就会变大,模型就会被推着去修正内部参数。

这就是本质区别。一个是“学语言的语言模型”,一个是“学物理的物理模型”。两者的优化目标决定了它们的天花板和适用边界。

3. 世界模型推理公式:从统计关联到物理一致性的关键一跃

最近“世界模型推理公式”这个词讨论度很高。这里我结合业内主流观点和我的项目实践,把这个公式讲透。它实际上是说你如何从静态输入出发,在模型内部形成对世界的动态认知过程。

3.1 世界模型推理公式的一个标准化形式

我在这里给你一个可落地理解的版本:

世界模型推理 = 感知编码 + 状态预测 + 动作决策 + 反事实推演

拆开说:

感知编码。多模态输入(图像、点云、语音、文本描述)先被编码成状态表征。这个表征要具备“物理一致性”——两个看上去不同但物理状态相同的场景(比如同一房间不同光照),应该映射到相近的状态向量。

状态预测。基于当前状态和候选动作,预测下一时刻状态分布。这里的预测不是单帧的,而是多步的:预测 t+1, t+2, ..., t+k 的状态。这就引出了另一个热词“轨迹推演”。

动作决策。在预测出的多条轨迹中选择一条最优的(或者说符合目标的)轨迹对应的动作序列。这是把世界模型接入控制决策的关键一步。

反事实推演。这是世界模型与普通仿真器的最大区别。模型要能回答“如果我不这么做,世界会怎样”的假设性问题。反事实能力来自对状态转移函数内部的因果结构建模。

这个公式不仅是学术概念,它是可落地的工程架构。我见过很多团队做自动驾驶决策时,实际上就是在走这个流程:感知模块输出BEV(鸟瞰视角)状态,预测模块给出周围车辆的未来轨迹,规划模块在轨迹空间里搜索最优策略,然后不断做“如果猛打方向盘会怎样”的推演。

3.2 为什么大模型套不进这个公式

如果你尝试把GPT-4这类生成式大模型硬套进上面的流程,你会立刻发现断层。

感知编码这步,大模型勉强能做——它可以把图像转成Token。但状态预测这步就出问题了:它没有一个显式的“状态变量”概念。它在预测下一帧Token的时候,并不存在一个内部的状态向量在连续更新。它只是根据前文语义,直接跳到了下一段输出。

举一个我在实际项目里踩过的坑:当时我们想让LLM做一个小型决策系统,输入是传感器数据流,输出是设备控制信号。思路是让LLM“读懂”数据,然后“决定”下一步动作。结果发现,LLM看数据序列的前10步,能给出不错判断;看到第50步之后,它就开始“失忆”——因为它的注意力窗口被历史数据塞满了,它无法像世界模型那样,把过去的观测压缩成一个“状态摘要”,然后在这个状态摘要上持续更新。

世界模型在每一步都会把观测折叠进状态向量 S_t,当下一帧观测进来时,模型只要基于这个状态向量做增量更新。样本效率、推理稳定性、长期记忆能力,都拉开了好几个档次。

所以,这个推理公式恰恰是两者的分水岭:大模型没有状态折叠机制,直接做序列映射;世界模型有状态折叠机制,做状态-状态映射。

3.3 一个动手验证的极简案例:用像素预测对比两种推理模式

为了让你直观感受差异,我建议你亲手做一个微型实验。不需要多强的机器,我在一台普通的MacBook Pro上就能跑通。

用Python里的小型神经网络框架(PyTorch或者JAX),取一个简单的物理模拟数据源——比如一个简谐运动(弹簧振子)的位置序列。用两种方式建模:

方式A(生成式大模型的思路):把位置序列量化成离散Token(按位置分桶),然后训练一个序列模型(比如小型Transformer),让它做“预测下一个Token”的任务。

方式B(世界模型的思路):把位置和速度作为连续状态变量,训练一个状态转移网络,输入 (当前位置, 当前速度, 时间步长),输出 (下一位置, 下一速度)。

训练完成后做测试:从初始位置起步,让模型自回归地预测未来50步。你会发现几个现象:

  • 方式A在短期预测(5步内)表现尚可,但误差会迅速累积,预测到20步以后轨迹已经严重失真——因为分桶带来的量化误差在每一步叠加,而且模型学到的Token转移概率并没有显式的速度概念,它只是在“猜下一个分箱”。
  • 方式B可以精确预测几十步,因为它的内部状态变量就是物理量本身,误差不会积累到失控——只要状态转移网络足够准确。

误差随推演步数增长的速度,就是两者推理模式差异最直观的证据。

4. 能力边界对比:什么活该谁干

本质区别讲清楚了,接下来要落到实操层面——在真实项目里,你该用生成式大模型,还是该上世界模型?我建议用一张能力边界对照表来锚定,再逐个说明。

能力维度生成式大模型世界模型
语义理解与生成极强弱,只能输出结构化状态
开放式对话极强基本不具备
物理规律推理弱,常产生物理不一致输出强,天然满足物理约束
长时序预测弱,误差快速累积强,状态更新稳定
反事实推演弱,只能基于语言联想强,可以模拟假设场景
低资源适配强,API即用弱,需要定制训练
决策控制弱,输出控制指令需后处理强,直接输出状态-动作序列

这张表基本能覆盖绝大多数选型场景。总结一下规律:

文本密集、语义密集、需要常识推理的任务,选生成式大模型。比如客服问答、知识库检索增强、文案生成、代码辅助生成。这些任务的核心是“理解语言”和“生成语言”,世界模型在这里毫无优势。

高维时序、物理交互、需要闭环控制的任务,选世界模型或融合方案。比如自动驾驶轨迹预测、机器人操作策略、游戏NPC行为生成、工业设备控制。这些任务的核心是“理解状态”和“预测状态”,语言模型在这里就是花瓶。

一个很容易犯的错误是:用生成式大模型硬扛物理预测任务,然后寄希望于“提示词工程”解决所有问题。我见过不少团队试图让LLM输出机器人的关节角度序列,结果模型给出的角度序列在物理上根本不可行——关节位置超出极限、加速度超过电机能力。这不是提示词的问题,是模型底层没有物理约束。

4.1 融合方案:当前业界最务实的路线

现实情况是,纯粹的世界模型在语义理解上还很薄弱,纯粹的生成式大模型在物理推演上完全不靠谱。业界现在的主流做法是“融合”,而理解这个融合方式,对你之后审视各类产品方案会非常有帮助。

融合方案大致分两层:

第一层:感知和语义用大模型,决策和预测用世界模型。让大模型负责把人的意图转成结构化任务,比如用户说“把桌上的杯子拿过来”,大模型理解语义并输出“目标物体:杯子、位置:桌面、动作类别:抓取”。然后世界模型负责在内部推演,机械臂怎么移动、抓取角度多少、路径如何避障。

第二层:世界模型的输出重新喂给大模型做校验。世界模型推演出物理轨迹之后,由大模型生成人类可理解的报告,说明“因为这个杯子表面光滑,摩擦力较小,所以采用了较慢的抓取速度”。这种做法利用了世界模型保证“做对”,利用大模型保证“说清”。两分钟就能说清楚的分工逻辑,实际工程价值极大。

现在很多机器人公司老板跟我说,他们内部同时在训“具身智能大模型”和“物理仿真器”,就是这个思路的实践。前者负责语义理解,后者负责物理验证。

4.2 实操选型清单:我在项目里的判断标准

分享一下我自己做项目时参考的五个判断原则,遇到具体任务时可以对着套:

  1. 看输出形态:如果最终交付物是文本、代码、结构化语义标签,选生成式大模型。如果最终交付物是轨迹、位姿、控制信号、未来帧预测,选世界模型。
  2. 看任务闭环:如果任务是一问一答、没有连续交互,选大模型。如果任务需要在多个时间步里持续决策,必须选世界模型或强化学习框架。
  3. 看误差容忍度:如果错误输出可以被“再问一次”修正,选大模型。如果错误输出会导致物理系统损坏或安全事故,必须上世界模型做物理约束。
  4. 看数据形态:如果训练数据以文本为主,大模型占据绝对优势。如果训练数据里包含大量仿真器采样、真实传感器数据,那这些数据对世界模型来说才是真正的燃料。
  5. 看推理效率:如果对延迟要求极高(毫秒级响应),世界模型的流式状态更新通常比大模型的全文上下文重算更有优势——因为它在每一步只做增量推理,不重新读一遍所有历史。

5. 未来演化:两类模型的融合会重塑哪些赛道

站在从业者角度看,我判断未来三年有两条主线会快速推进,这两条线都基于两类模型各自的优势,而不是谁取代谁。

主线一:Diffusion架构驱动的世界模型爆发。目前Sora、Genie这类模型已经展示了视频生成模型在“观察-理解场景-预测后续”上的潜力。当这类模型从“生成好看视频”转向“生成物理准确的视频”,它们就是原始形态的世界模型。我关注的方向是,它们能不能在生成视频的同时,输出逐帧的语义/状态标注(比如每帧里的物体位置、速度、遮挡关系)。一旦能做到,这类模型将直接变成自动驾驶和机器人的仿真数据生成器,在成本上碾压传统3D仿真引擎。

主线二:大模型与世界模型的交叉训练。目前已经有团队在尝试用世界模型生成合成轨迹数据,喂给语言模型学习;同时用语言模型为世界模型提供抽象的高层指导信号。比如,世界模型在推演物理过程时,如果语言模型在旁边提示“这个场景里有个玻璃杯,玻璃易碎”,世界模型就能在内部构建的物体属性表里补充“易碎”这个物理属性标签。这种交叉训练如果跑通,能让世界模型的泛化能力上一个台阶。

这两条线最终会收敛到一个方向:AGI级的世界模拟器——一个既能理解人类语义指令,又能在内部建立物理推演模型,还能把推演结果用人类可理解的方式输出的统一系统。目前还看不到谁能率先做出来,但每一步进展都会推出巨大的产业应用。

5.1 对应用层的三个趋势预判

结合我看过的项目实践,给各位应用层开发者打个前站。

第一个趋势:决策类应用的架构会出现“双引擎”标配。过去你做一个智能客服,一个LLM就够了。未来做智能工厂调度、机器人控制、自动驾驶辅助这一类决策应用,架构图会从“单模型”变成“LLM + 世界模型”的双引擎。LLM负责面向人的理解与表达,世界模型负责面向环境的感知与决策。这个架构会沉淀成类似今天“前端+后端”的常规分工。

第二个趋势:世界模型的应用将通过“数据工厂”模式爆发。高质量物理仿真数据生产,可能会成为比模型本身更重要的基础设施。谁能低成本产出规模化的清洁轨迹数据,谁就能在世界模型赛道上占据先机。

第三个趋势:评测体系会分化。现在评测大模型主要靠“通过率”“语义相似度”“人工打分”,这些指标对世界模型毫无意义。世界模型需要一套新的评测体系:预测误差、物理一致性、反事实准确性、长期推演稳定性。这些指标更接近传统“仿真器精度”的评测逻辑。如果你准备入局评测赛道,这是一个空白市场。

6. 常见误区与实战避坑指南

最后把我在实际交流中反复遇到的高频误区集中梳理一下,尤其适合团队负责人和产品经理对照自查。

6.1 误区一:认为“视频生成模型已经等于世界模型”

Sora刚发布时,“世界模型”这个概念被炒得很火,但其实视频生成模型和完整的世界模型之间还是有显著差距。纯粹的像素预测不等于状态预测。

视频生成模型输出的还是“画面”,不是“状态空间”。它可以让一段“石头落水”的视频看起来极其真实,但如果追问“第27帧水花溅起的精确角度是多少”,它无法给出可量化的答案,因为它的中间表征是像素级特征,不是物理参数序列。世界模型要求在内部维护可查询、可操作的状态表——物体的坐标、材料属性、受力情况。这两者在工程上是完全不同的构建路径。

所以我在团队评审时经常强调一句话:不要被画面逼真度蒙蔽,要看中间表征是不是可解释的物理状态。

6.2 误区二:认为“大模型加个仿真器外壳就是世界模型”

这也是很常见的拼装思路。有人觉得,用GPT-4做决策,把输出塞给MuJoCo这种物理引擎,引擎算完再反馈给GPT-4,这不就是世界模型吗?

不是。这本质上是一个“LLM + 外部仿真器”的组合系统,LLM本身并不具备世界模型能力,它只是个“调度员”。真正的世界模型要求模型自身内化了状态转移函数,能够独立完成推演,而不依赖外部物理引擎的每步校准。从这个角度看,“LLM+仿真器”是一种工程可行但天花板明显受限的方案——每次推演都要启动外部计算,效率低,且无法学习到超越仿真器规则的物理行为。

6.3 误区三:忽视训练数据来源的决定性差异

生成式大模型的训练数据来自人类已有的文本——书籍、网页、对话记录,理论上取之不尽。世界模型的训练数据必须来自“物理交互的轨迹”——仿真器采样、机器人真实操作记录、自动驾驶路测数据。这就要求团队必须有仿真环境或物理实体的数据采集能力。

很多想转型做世界模型的团队,卡住的地方不是算法,而是数据。仿真环境没搭好、传感器数据没有同步标注、轨迹数据没有统一格式,模型训练第一周就发现数据质量根本撑不起来。

我的建议是:在准备训练之前,至少花一半时间构建数据管道。先把仿真器搭起来,把随机环境生成器、动作采样策略、状态记录器串成一条流水线,确保每一帧数据都带着完整的状态标签。这一步做扎实了,模型训练只是顺水推舟的事。

6.4 误区四:用训练LLM的思路训练世界模型

这是很多AI团队最容易犯的路线级错误。他们把训练LLM的那套范式——海量数据、下一个Token预测、超大规模参数——原封不动搬到世界模型上,结果发现效果奇差。

世界模型的训练逻辑不一样。它的核心是“对比预测和真实”,训练目标函数要设计成“状态误差最小化”,数据采集中必须保证“动作-状态”对的覆盖性。它更像传统机器人学里的“系统辨识”问题,而不是NLP里的“语言建模”问题。

如果你是从LLM方向转过来做世界模型的,我建议你先放下熟悉的“预训练-微调”流程,认真对待“环境采样-数据效率-分布偏移”这三个在仿真领域的老问题。这三座山,翻过去才算入门。

6.5 实操中最容易被忽略的三个细节

经验告诉我,三个问题最容易被忽视,却又最致命。

第一个是“状态表征的归一化”。传感器数据尺度差异巨大,位置是厘米级、速度是米每秒、角度是弧度。冷启动的团队往往直接把这些原始数据喂给模型,结果训练起来极不稳定。我通常的做法是:对每个状态维度做统计分析,设定合理的归一化区间,同时保留物理单位的可解释性,让模型在归一化空间里学习,在实际推理时再映射回物理单位。

第二个是“多步预测误差的追踪”。很多初学团队只看单步预测的准确率,一旦发现单步误差很低,就觉得模型已经训好了。但世界模型真正难的是“多步展开”时的误差控制和长期稳定性。我建议训练时不仅要看验证集单步误差,还要做“长轨迹自回归测试”——让模型自己生成100步轨迹,计算整条轨迹与真值轨迹的形状相似度。这个指标有最直接的评价意义。

第三个是“反事实验证集的构建”。普通训练集只能验证“给定状态,预测下一个状态”,但世界模型独有的价值是“如果状态被改变,预测会如何变化”。你需要专门构造一类数据:同一场景,施加不同的初始扰动,记录不同的结果轨迹。然后测试模型在输入被篡改的情况下能否做出合理推断。如果模型在反事实测试中表现不佳,说明它只是在“记住轨迹”,而没有真正学会“理解物理过程”。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 1:46:58

Android开发是做什么:岗位、技术栈与入门实战全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 1:46:04

C语言实战:手写控制台扫雷游戏,掌握数组与递归核心技巧

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 1:41:49

Java游泳馆管理系统实战:从环境搭建到二次开发避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 1:40:13

STM32CubeMX 6.14 安装与固件包下载全攻略:从零搭建嵌入式开发环境

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 1:40:07

n球入m盒建模六问:从可辨性到工程落地的计数本质

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华