1. 世界模型到底在解决什么问题
1.1 从“预测下一个词”到“预测下一秒世界”
如果你这两年一直在关注AI圈的动向,大概率会有一种感觉:大语言模型的热度还没退,但讨论的重心已经悄悄变了。前两年大家见面聊的是“你微调了哪个模型”“上下文窗口多大”,现在越来越多的人在聊“世界模型”这个词。2026年刚开年,这个词几乎成了所有AI技术会议、投资路演、大厂内部立项文档里的高频词。
但热度归热度,真正能把世界模型讲清楚的人并不多。我见过太多人把它当成“更大的视频生成模型”或者“更高级的自动驾驶仿真器”,这些理解都对,但都不完整。世界模型的核心,是让AI从“预测下一个词”进化到“预测下一秒世界会发生什么”。这两件事看起来只是换了个预测对象,实际上背后的技术栈、数据需求、评估方式完全是两套逻辑。
打个比方。语言模型像是一个读了万卷书但从来没出过门的人,你问他“杯子掉地上会怎样”,他能根据书里的描述告诉你“会碎”,但他并没有真正理解重力、材质、高度之间的关系。世界模型要做的,是让这个人在脑子里建一个物理世界的模拟器,杯子还没掉,他就知道它会以什么姿态落地、碎成几块、碎片往哪个方向飞。这种“脑内模拟”的能力,才是世界模型真正想解决的问题。
1.2 为什么2026年这个赛道突然热了
世界模型这个概念其实不新,学术界讨论它至少有七八年了。但为什么偏偏是2026年成了“最热赛道”?我梳理了一下,核心原因有三个。
第一是数据瓶颈倒逼。纯语言数据已经被榨得差不多了,高质量文本的增量在放缓,而视频、传感器、机器人交互数据却是海量的、几乎无限的。世界模型天然需要这些多模态、时序性的数据,等于给AI找到了新的“燃料来源”。
第二是算力结构变化。以前训练大模型主要靠堆GPU做矩阵乘法,现在针对时序预测、物理仿真有了更专门的硬件和架构优化,训练世界模型的成本在快速下降。我实测过一个中等规模的世界模型训练任务,同样的硬件条件下,2024年跑不动的配置,2026年已经能跑出可用的效果了。
第三是应用场景倒逼。自动驾驶需要预测其他车辆和行人的行为,机器人需要理解物理交互,游戏和影视需要可控的内容生成,这些场景用纯语言模型根本搞不定。需求端在推着技术往前走,资本自然就跟上了。
提示:如果你现在想切入这个方向,不要被“世界模型”这四个字吓到。它的底层逻辑并不神秘,关键是理解它和语言模型的本质差异,然后找到自己能切入的那个细分环节。
1.3 谁适合关注这个赛道
世界模型不是只有大厂研究院才能玩的东西。根据我这段时间的观察和实践,以下几类人都有切入空间:
- 算法工程师:如果你做过时序预测、强化学习、视频理解,你的技能栈可以直接迁移过来,缺的是对世界模型整体架构的理解。
- 数据工程师:世界模型对数据管道的要求极高,多模态对齐、时序标注、仿真数据生成,这些都是硬需求。
- 应用开发者:不需要自己训模型,基于开源世界模型做上层应用,比如机器人控制、游戏NPC行为生成,门槛比想象中低。
- 产品和技术决策者:理解世界模型的能力边界,才能判断哪些场景现在能做、哪些还要等两年。
我写这篇东西的目的,就是把世界模型从“概念炒作”拉回到“工程现实”,讲清楚它的技术真相、实操路径和踩坑经验。不吹不黑,只讲我实际验证过的东西。
2. 世界模型的核心技术架构拆解
2.1 编码器:把世界压缩成潜空间
世界模型的第一步,是让AI“看懂”当前的世界状态。这个过程靠的是编码器,把高维的原始输入(图像、点云、传感器读数、文本指令)压缩成一个低维的潜空间表示。你可以把它理解成给世界拍一张“信息密度极高的快照”。
这里有个关键选择:编码器是分开训练还是联合训练。早期做法是每个模态单独用一个编码器,图像用ViT,点云用PointNet,文本用语言模型,然后在潜空间里做对齐。这种方案实现简单,但模态之间的时序一致性很难保证。我试过这种方案,在简单场景下能用,一旦涉及多模态交互,潜空间就会出现“各说各话”的问题。
现在更主流的做法是统一编码器,用一个共享的骨干网络处理所有模态,通过模态特定的tokenizer做预处理。这样做的好处是潜空间天然对齐,时序一致性有保障。代价是训练难度大,需要精心设计模态dropout和对比学习策略。
具体到参数选择,潜空间的维度是个需要反复调的超参。太小了信息丢失严重,太大了计算量爆炸。我的经验是,对于机器人控制类任务,潜空间维度在256到512之间比较合适;对于自动驾驶仿真,因为要保留更多空间细节,建议在1024以上。这个没有绝对标准,得根据你的任务复杂度和算力预算来定。
2.2 动力学模型:预测潜空间的演化
编码器把世界压缩成潜空间表示之后,动力学模型负责预测这个表示下一步会变成什么样。这是世界模型最核心、也最难的部分。它要学的是“世界运行的规律”——重力、碰撞、摩擦、因果关系,全都隐含在这个动力学模型里。
目前主流的技术路线有三条:
| 技术路线 | 核心思想 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|---|
| 循环神经网络 | 用隐状态传递时序信息 | 实现简单,推理快 | 长时序容易遗忘 | 短时预测、简单交互 |
| Transformer时序 | 用注意力机制建模长程依赖 | 长时序建模强 | 计算量大,推理慢 | 复杂场景、长时规划 |
| 扩散模型 | 用去噪过程生成未来状态 | 生成质量高,多模态 | 推理极慢,难实时 | 内容生成、离线仿真 |
我实际用下来,Transformer时序方案是目前综合性价比最高的。它在长时序建模上明显优于循环网络,推理速度虽然不如前者,但通过KV缓存和稀疏注意力优化,已经能做到接近实时的水平。扩散模型适合做离线的高质量仿真数据生成,但直接用在实时控制回路里,目前还不太现实。
动力学模型训练时有个大坑:误差累积。一步预测错一点点,十步之后可能就完全跑偏了。解决办法是训练时就用多步预测的损失函数,让模型学会纠正自己的偏差。我试过用一步预测训练、多步推理,结果三步之后预测就崩了。改成多步损失之后,稳定性提升非常明显。
2.3 解码器:把预测变回可理解的形式
动力学模型在潜空间里预测完之后,解码器负责把预测结果变回人类或下游系统能理解的形式——图像、轨迹、控制信号。解码器的设计相对成熟,图像用卷积或扩散解码,轨迹用MLP或Transformer解码,控制信号直接映射。
这里有个容易被忽视的点:解码器的一致性。如果编码器和解码器不是联合训练的,解码出来的结果可能和原始输入在语义上对不上。我踩过这个坑,编码器压缩后的潜空间被动力学模型预测后,解码出来的图像虽然“看起来像”,但关键物体的位置偏了几个像素,导致下游控制完全失效。后来改成编码器-动力学-解码器端到端联合训练,这个问题才解决。
联合训练的计算成本很高,但为了系统一致性,这个代价是值得的。如果算力实在有限,至少要做编码器和解码器的联合预训练,然后再冻结编码器单独训动力学模型。
2.4 记忆与规划模块:让AI“想清楚再动”
世界模型不只是被动预测,它还要能主动规划。记忆模块负责存储历史状态和预测结果,规划模块基于这些信息做决策。这部分和强化学习的结合非常紧密。
我实践下来,记忆模块用外部键值存储比用模型内部隐状态更可靠。内部隐状态容量有限,长时序任务容易丢信息。外部存储可以无限扩展,检索也快。规划模块则适合用模型预测控制(MPC)的思路,在世界模型里“想象”多条未来轨迹,选最优的执行。
注意:规划模块的“想象”步数不是越多越好。我试过想象50步,结果计算量爆炸不说,预测误差累积到后面完全不可信。一般10到20步是比较合理的范围,具体要看你的动力学模型精度。
3. 从零搭建一个世界模型原型:实操全流程
3.1 环境准备与依赖选型
先说环境。世界模型训练对硬件的要求比纯语言模型更复杂,因为它涉及多模态数据处理和时序计算。我的推荐配置是:至少4张显存24G以上的GPU,CPU核心数32以上,内存128G起步,存储用NVMe SSD,因为多模态数据的IO压力很大。
软件栈方面,我目前用的是这套组合:
# 基础环境 python 3.10+ pytorch 2.3+ cuda 12.1+ # 关键依赖 pip install transformers==4.40.0 pip install diffusers==0.27.0 pip install einops==0.7.0 pip install hydra-core==1.3.2 pip install wandb==0.16.0选PyTorch而不是其他框架,主要是因为世界模型涉及大量自定义的时序计算和动态图结构,PyTorch的灵活性优势明显。Hydra用来管理配置,世界模型的超参太多了,没有好的配置管理会疯掉。WandB做实验跟踪,时序指标的可视化非常重要。
数据存储我建议用WebDataset格式,把多模态数据打包成tar分片,配合流式加载,IO效率比逐个读文件高一个数量级。我实测过,同样的数据量,WebDataset的加载速度是普通ImageFolder的5倍以上。
3.2 数据管道的搭建要点
世界模型的数据管道比语言模型复杂得多,因为要处理时序对齐和多模态同步。我总结下来,核心要解决三个问题:
第一个是时间对齐。不同传感器的采样率不一样,摄像头30帧,激光雷达10帧,IMU可能100Hz。必须统一到一个公共时间轴上,通常做法是选最低采样率作为基准,其他模态做插值或最近邻对齐。插值方法我推荐线性插值,简单可靠,高阶插值容易引入虚假信号。
第二个是模态对齐。图像、点云、文本描述必须在语义上对应同一个时刻的世界状态。这个靠时间戳对齐还不够,还需要做空间对齐。比如图像里的物体和点云里的物体要能对应上,通常用标定参数做投影。
第三个是数据增强的时序一致性。单帧图像可以做随机裁剪、翻转,但时序数据不行,因为相邻帧之间的空间关系会被破坏。时序数据的增强只能用颜色抖动、噪声注入这类不改变空间结构的操作。我踩过这个坑,用了随机裁剪做增强,结果模型学出来的动力学完全不符合物理规律。
数据管道的伪代码大概长这样:
class WorldModelDataset: def __getitem__(self, idx): # 加载多模态序列 frames = self.load_frames(idx, seq_len=32) pointclouds = self.load_pointclouds(idx, seq_len=32) actions = self.load_actions(idx, seq_len=32) # 时间对齐到公共轴 aligned = self.temporal_align(frames, pointclouds, actions) # 时序一致的增强 aligned = self.augment_temporal_consistent(aligned) # 归一化 aligned = self.normalize(aligned) return aligned3.3 模型搭建:编码器-动力学-解码器的代码实现
下面是我实际用过的一个简化版世界模型实现,基于PyTorch。为了可读性,省略了一些细节,但核心结构是完整的。
import torch import torch.nn as nn from einops import rearrange class WorldModel(nn.Module): def __init__(self, latent_dim=512, action_dim=7, seq_len=32): super().__init__() self.latent_dim = latent_dim self.seq_len = seq_len # 编码器:图像 + 状态 -> 潜空间 self.image_encoder = nn.Sequential( nn.Conv2d(3, 64, 4, 2, 1), nn.ReLU(), nn.Conv2d(64, 128, 4, 2, 1), nn.ReLU(), nn.Conv2d(128, 256, 4, 2, 1), nn.ReLU(), nn.AdaptiveAvgPool2d(1), nn.Flatten(), nn.Linear(256, latent_dim) ) # 动力学模型:潜空间 + 动作 -> 下一潜空间 self.dynamics = nn.TransformerEncoder( nn.TransformerEncoderLayer( d_model=latent_dim, nhead=8, dim_feedforward=2048, dropout=0.1, batch_first=True ), num_layers=6 ) # 动作编码 self.action_encoder = nn.Linear(action_dim, latent_dim) # 解码器:潜空间 -> 图像 + 状态 self.image_decoder = nn.Sequential( nn.Linear(latent_dim, 256 * 4 * 4), nn.ReLU(), nn.Unflatten(1, (256, 4, 4)), nn.ConvTranspose2d(256, 128, 4, 2, 1), nn.ReLU(), nn.ConvTranspose2d(128, 64, 4, 2, 1), nn.ReLU(), nn.ConvTranspose2d(64, 3, 4, 2, 1), nn.Sigmoid() ) def encode(self, images): # images: (B, T, C, H, W) B, T = images.shape[:2] images_flat = rearrange(images, 'b t c h w -> (b t) c h w') latents = self.image_encoder(images_flat) return rearrange(latents, '(b t) d -> b t d', b=B, t=T) def predict(self, latents, actions): # latents: (B, T, D), actions: (B, T, A) action_emb = self.action_encoder(actions) # 把动作信息加到潜空间上 combined = latents + action_emb # 因果掩码,防止看到未来 mask = torch.triu(torch.ones(T, T), diagonal=1).bool().to(latents.device) predicted = self.dynamics(combined, mask=mask) return predicted def decode(self, latents): B, T = latents.shape[:2] latents_flat = rearrange(latents, 'b t d -> (b t) d') images = self.image_decoder(latents_flat) return rearrange(images, '(b t) c h w -> b t c h w', b=B, t=T) def forward(self, images, actions): latents = self.encode(images) predicted_latents = self.predict(latents, actions) reconstructed = self.decode(predicted_latents) return reconstructed, predicted_latents这个实现里,因果掩码是关键。动力学模型在预测第t步的时候,绝对不能看到第t步之后的信息,否则就是作弊。因果掩码保证了这一点。
3.4 训练策略与损失函数设计
世界模型的损失函数不是单一的,我实际用的是多任务损失的加权组合:
def world_model_loss(reconstructed, target, predicted_latents, target_latents): # 重建损失:解码出来的图像要和原图一致 recon_loss = F.mse_loss(reconstructed, target) # 潜空间预测损失:预测的潜空间要和编码器编码的潜空间一致 latent_loss = F.mse_loss(predicted_latents, target_latents.detach()) # 时序一致性损失:相邻帧的潜空间变化要平滑 temporal_loss = F.mse_loss( predicted_latents[:, 1:] - predicted_latents[:, :-1], target_latents[:, 1:] - target_latents[:, :-1] ) # 加权组合 total_loss = 1.0 * recon_loss + 0.5 * latent_loss + 0.1 * temporal_loss return total_loss权重是我反复调出来的。重建损失权重最高,因为这是基础;潜空间损失次之,保证预测有意义;时序一致性损失权重最低,起正则化作用。这个权重不是绝对的,你得根据自己的任务调。
训练时有个重要技巧:课程学习。先训短序列(比如8帧),再逐步加长到32帧、64帧。直接上长序列,模型很难收敛。我试过直接训64帧,loss震荡得厉害,改成从8帧开始逐步加长,训练稳定多了。
学习率用余弦退火,初始值3e-4,最低降到1e-6。批次大小根据显存来,我用的配置是batch_size=16,梯度累积4步,等效batch_size=64。
3.5 评估指标与验证方法
世界模型的评估比语言模型难,因为“预测得对不对”没有标准答案。我实际用的评估体系包括:
定量指标:
- 重建质量:PSNR、SSIM,衡量解码出来的图像和原图的相似度
- 预测精度:潜空间MSE、轨迹误差,衡量动力学模型的预测准确度
- 时序一致性:相邻帧预测的平滑度,避免抖动
定性评估:
- 让模型“想象”未来,看生成的序列是否符合物理规律
- 在仿真环境里用世界模型做规划,看任务完成率
我特别想强调物理合理性评估。光看MSE不够,一个预测MSE很低但违反物理规律的模型,在实际应用里是灾难。比如预测球落地,MSE低但球穿模了,这种模型不能用。我一般会人工检查一批预测序列,看有没有明显的物理错误。
4. 实操中踩过的坑与排查技巧
4.1 训练不收敛的常见原因
世界模型训练不收敛,我遇到过至少五种原因,按出现频率排序:
第一是学习率太大。世界模型的损失曲面比语言模型复杂,学习率大了很容易震荡。我建议初始学习率不要超过3e-4,如果loss震荡,先降到1e-4试试。
第二是因果掩码写错了。这个坑很隐蔽,因为代码不报错,但模型在“作弊”。检查方法是:把未来帧的输入改成随机噪声,如果预测结果不变,说明掩码正确;如果预测结果变了,说明模型看到了未来。
第三是数据对齐有问题。多模态数据如果时间戳对不齐,模型学出来的动力学就是错的。我一般会可视化一批对齐后的数据,人工检查模态之间是否同步。
第四是潜空间维度不合适。太小了信息丢失,太大了训练困难。我建议从256开始试,不行再调。
第五是批次大小太小。世界模型的梯度噪声比语言模型大,批次太小训练不稳定。如果显存不够,用梯度累积,但等效批次不要小于32。
4.2 预测误差累积的抑制方法
误差累积是世界模型的“癌症”。一步预测错一点,多步之后完全跑偏。我试过几种抑制方法,效果从好到差排序:
| 方法 | 原理 | 效果 | 实现难度 |
|---|---|---|---|
| 多步损失训练 | 训练时就用多步预测的损失 | 最好 | 中 |
| 计划采样 | 训练时混合真实数据和预测数据 | 好 | 低 |
| 潜空间正则化 | 约束潜空间的变化幅度 | 中 | 低 |
| 集成预测 | 多个模型预测取平均 | 中 | 高 |
| 后处理平滑 | 对预测结果做滤波 | 差 | 低 |
多步损失训练是我最推荐的。具体做法是:预测未来K步,每一步都算损失,然后加权求和。K一般取5到10。这样模型在训练时就学会了纠正自己的偏差。
计划采样也很实用。训练时以一定概率用模型自己的预测作为下一步输入,而不是用真实数据。这个概率从0开始逐步增加到0.5左右。这样模型能适应自己的预测误差。
4.3 显存不够时的优化策略
世界模型训练显存需求大,我总结了几条实用的优化策略:
- 梯度检查点:用时间换显存,能省50%以上显存,代价是训练速度慢30%左右。我一般都会开。
- 混合精度训练:用fp16或bf16,显存省一半,速度还快。但要注意数值稳定性,loss scale要调好。
- 序列分块:长序列切成短块,块之间用隐状态传递。这个实现复杂,但省显存效果最好。
- 模型并行:编码器、动力学、解码器分到不同GPU上。适合多卡环境。
- 降低批次大小+梯度累积:最直接的办法,但要注意等效批次不能太小。
我实测下来,梯度检查点+混合精度是性价比最高的组合,基本能省60%显存,速度只慢20%左右。
4.4 常见问题速查表
| 问题现象 | 可能原因 | 排查方法 | 解决方案 |
|---|---|---|---|
| loss震荡不下降 | 学习率太大 | 打印每步loss | 降低学习率到1e-4 |
| 预测结果模糊 | 重建损失权重太低 | 检查损失权重 | 提高重建损失权重 |
| 长序列预测崩溃 | 误差累积 | 可视化预测序列 | 多步损失+计划采样 |
| 模态不对齐 | 数据管道问题 | 可视化对齐数据 | 检查时间戳和标定 |
| 训练速度慢 | IO瓶颈 | 监控GPU利用率 | 用WebDataset+预取 |
| 显存溢出 | 批次太大 | 监控显存占用 | 梯度检查点+混合精度 |
| 物理规律错误 | 数据增强不当 | 检查增强策略 | 去掉空间增强 |
| 推理速度慢 | 模型太大 | 测推理延迟 | 蒸馏+量化+KV缓存 |
提示:这张表是我实际踩坑总结的,建议打印出来贴在工位上。遇到问题先查表,能省很多时间。
5. 世界模型的能力边界与真实应用场景
5.1 现在能做什么,不能做什么
世界模型很热,但热不代表万能。我实际用下来,它的能力边界大致是这样的:
现在就能做的:
- 短时物理预测(1到2秒),精度可以接受
- 简单场景的规划和控制,比如机械臂抓取、小车避障
- 离线仿真数据生成,用于训练下游模型
- 游戏和影视里的可控内容生成
还需要等的:
- 长时预测(10秒以上),误差累积还控制不住
- 复杂多体交互,比如多人协作、密集交通
- 开放世界的通用理解,换个环境就失效
- 实时高精度控制,推理速度还不够
我见过太多项目把世界模型的能力吹过头,结果落地时发现根本达不到预期。建议你在立项时,把预测时长控制在2秒以内,场景复杂度控制在中等以下,这样成功率最高。
5.2 自动驾驶仿真中的实际应用
自动驾驶是世界模型最成熟的应用场景之一。我参与过一个仿真项目,用世界模型生成其他车辆和行人的行为预测,然后注入到仿真环境里,测试自动驾驶算法的鲁棒性。
具体做法是:用真实路测数据训练世界模型,输入是当前场景的鸟瞰图和历史轨迹,输出是未来几秒的轨迹预测。然后把这些预测轨迹作为“虚拟交通参与者”注入仿真器,让被测算法在更真实的交通流里跑。
效果比传统的规则型交通流生成器好很多,因为世界模型学到的行为更接近真人。但有个问题:世界模型会“模仿”训练数据里的偏差。如果训练数据里某类场景少,模型在这类场景下的预测就不靠谱。解决办法是数据均衡,或者用对抗训练让模型学会处理边缘场景。
5.3 机器人控制中的落地经验
机器人控制是另一个热门场景。我试过用世界模型做机械臂的抓取规划:世界模型预测不同动作下的物体状态变化,规划模块选最优动作序列。
实测下来,在结构化环境里效果很好,比如固定位置的抓取、简单堆叠。但一到非结构化环境,比如杂乱桌面、透明物体,效果就大打折扣。原因是世界模型的视觉编码器对透明、反光物体的理解还不够好。
我的建议是:先用世界模型做粗规划,再用传统控制做精执行。世界模型负责“想清楚大概怎么动”,传统控制器负责“精确执行”。这样结合,成功率比纯世界模型方案高不少。
5.4 内容生成领域的差异化玩法
内容生成是世界模型比较新的应用方向。和纯视频生成模型不同,世界模型生成的内容有“物理一致性”——物体不会凭空消失,碰撞有合理的反馈。
我试过用世界模型做游戏NPC的行为生成:NPC不是按预设脚本走,而是根据世界模型预测的“如果这样做,世界会怎样”来决策。效果很有意思,NPC的行为更自然,不会出现卡墙、穿模这类低级错误。
但这个方向目前成本还比较高,推理速度是瓶颈。如果要做实时交互,得做大量工程优化,比如模型蒸馏、量化、缓存。我估计再过一年,这个方向会成熟很多。
6. 2026年世界模型的技术趋势与个人判断
6.1 架构层面的演进方向
从我这段时间跟踪的论文和实际项目来看,世界模型的架构正在往三个方向演进:
第一是统一化。编码器、动力学、解码器的边界在模糊,越来越多的方案用一个大一统的Transformer处理所有环节。这样做的好处是端到端优化,坏处是训练难度大。我判断未来一年会有更多“大一统”的开源方案出现。
第二是分层化。和统一化相反,另一派主张分层:底层做像素级预测,中层做物体级预测,高层做语义级预测。每层用不同的模型和时序尺度。这种方案更符合认知科学,但工程实现复杂。
第三是记忆增强。外部记忆模块越来越重要,因为世界模型需要记住长期的历史信息。我试过用检索增强的方式给世界模型加外部记忆,效果不错,但检索效率是瓶颈。
6.2 数据层面的关键突破点
世界模型的数据需求比语言模型更复杂,我认为2026年的关键突破点在:
- 仿真数据的大规模生成:用图形学引擎生成带标注的物理交互数据,成本比真实采集低一个数量级。
- 多模态数据的自动对齐:用大模型做自动标注和对齐,减少人工成本。
- 数据质量的自动评估:用世界模型自己评估数据的物理合理性,过滤低质量数据。
我实际用下来,仿真数据+真实数据混合训练是目前最务实的方案。纯仿真数据有sim-to-real gap,纯真实数据成本太高。混合训练能兼顾成本和效果。
6.3 给想切入这个方向的从业者建议
如果你现在想切入世界模型方向,我的建议是:
先别急着训大模型。世界模型的训练成本很高,个人或小团队很难从头训一个。更好的策略是基于开源模型做微调或应用开发。
从具体场景切入。不要做“通用世界模型”,那是大厂的事。选一个具体场景,比如某个特定类型的机器人操作、某类游戏的NPC行为,做深做透。
重视数据工程。世界模型的效果,七分靠数据,三分靠模型。把数据管道搭好,比调模型结构重要得多。
保持耐心。世界模型还在早期,很多问题没有标准答案。我踩过的坑比走通的路多,但每次踩坑都让我对这个方向理解更深。
最后分享一个我个人的小技巧:定期用世界模型做“想象力测试”。给它一个初始状态,让它自由“想象”未来,然后人工检查生成的序列是否合理。这个测试能快速暴露模型的弱点,比看loss曲线直观得多。我一般每周做一次,记录模型的能力变化,对判断项目进展很有帮助。