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

构建视频转文本模型时LED解码器缺失logits属性错误求助

问题解决:VisionEncoderDecoderModel使用LED解码器无logits输出

问题原因

你仅提取了LED模型的decoder核心编码模块,这个模块只负责生成隐藏状态,没有附带用于输出文本概率的语言建模头(LM Head)。而VisionEncoderDecoderModel默认需要解码器具备LM Head才能生成logits,因此前向传播后返回的对象只有隐藏状态,没有logits属性,触发报错。

解决方案

有两种可行的修复方式:

方法1:直接加载完整LED模型作为解码器

使用AutoModelForSeq2SeqLM加载完整的LED模型,它包含解码器主体和对应的LM Head,VisionEncoderDecoderModel会自动识别并使用这个头生成logits:

from transformers import AutoModel, AutoModelForSeq2SeqLM, VisionEncoderDecoderModel

enc = "MCG-NJU/videomae-base"
dec = "allenai/led-base-16384"

encoder = AutoModel.from_pretrained(enc)
# 加载完整的LED seq2seq模型
decoder = AutoModelForSeq2SeqLM.from_pretrained(dec)
model = VisionEncoderDecoderModel(encoder=encoder, decoder=decoder)

方法2:手动为提取的解码器添加LM Head

如果必须单独使用LED的解码器主体,需要手动挂载对应的LM Head,并配置必要的模型参数:

from transformers import AutoModel, LEDForConditionalGeneration, VisionEncoderDecoderModel

enc = "MCG-NJU/videomae-base"
dec = "allenai/led-base-16384"

encoder = AutoModel.from_pretrained(enc)
# 加载完整LED模型以获取LM Head
led_full_model = LEDForConditionalGeneration.from_pretrained(dec)
# 提取解码器主体
decoder = led_full_model.decoder
# 挂载LED的LM Head到解码器
decoder.lm_head = led_full_model.lm_head
# 同步解码器配置
decoder.config = led_full_model.config

# 构建模型并配置生成相关参数
model = VisionEncoderDecoderModel(encoder=encoder, decoder=decoder)
model.config.decoder_start_token_id = led_full_model.config.decoder_start_token_id
model.config.pad_token_id = led_full_model.config.pad_token_id
model.config.vocab_size = led_full_model.config.vocab_size

验证

修改后运行你的推理代码,output对象会包含logits属性,可通过print(output.logits.shape)查看输出形状。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:22:23