You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Lightning-Transformers问答示例代码触发AssertionError求助

解决Lightning-Transformers问答任务示例中的AssertionError问题

运行Lightning-Transformers官方文档提供的SQuAD问答任务示例代码时,触发如下断言错误:

AssertionError: Got 2 predictions and 10784 features.

解决方案

方法一:禁用验证步骤

错误触发于训练后验证阶段的预测后处理逻辑,直接在训练器中禁用验证即可绕过该问题,适合仅验证训练流程的场景:

trainer = pl.Trainer(
    accelerator="auto", 
    devices="auto", 
    max_epochs=1,
    limit_val_batches=0  # 关闭验证步骤
)

方法二:移除冗余的数据集配置参数

示例中设置的dataset_config_name="plain_text"是不必要的,SQuAD数据集的默认配置已适配Lightning-Transformers的处理逻辑,移除该参数后可正常完成训练和验证:

dm = SquadDataModule(
    batch_size=1,
    max_length=384,
    version_2_with_negative=False,
    null_score_diff_threshold=0.0,
    doc_stride=128,
    n_best_size=20,
    max_answer_length=30,
    tokenizer=tokenizer,
)

错误原因

该错误源于验证阶段的预测后处理步骤:模型输出的预测样本数量与数据集生成的特征数量不匹配。plain_text配置会改变SQuAD数据集的加载和预处理方式,导致特征生成逻辑与模型预测输出的处理流程不兼容;而禁用验证则直接跳过了触发错误的后处理环节。

内容的提问来源于stack exchange,提问作者thistleknot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 09:55:15