Closed IKIUJK closed 1 year ago
感谢您对我们工作的关注~ 会报错嘛?之前没遇到过 注意下Transformer的版本,尽可能使用我在README中指明的版本。 您可以给我截下图,我看下您这个问题出现的位置。
------------------ 原始邮件 ------------------ 发件人: "LeMei/UniMSE" @.>; 发送时间: 2023年3月1日(星期三) 晚上7:41 @.>; @.***>; 主题: [LeMei/UniMSE] 是否需要将 modules/generation_utils.p覆盖掉transformers/generation_utils.py? (Issue #11)
在modules/modeling_t5.py modeling_t5_prefix.py等文件里,您重写了_prepare_encoder_decoder_kwargs_for_generation函数(使用self._prepare_encoder_decoder_kwargs_for_generation调用),但代码input_ids = self._prepare_decoder_input_ids_for_generation(input_ids, decoder_start_token_id=decoder_start_token_id, bos_token_id=bos_token_id) 仍会调用transformers/generation_utils.py里的_prepare_decoder_input_ids_for_generation【备注:其中第一个参数应为int型的batchsize】。我看到您在modules/generation_utils.py里将该函数的第一个参数改为了longtensor型【备注:符合input_ids的类型】,但modules/modeling_t5.py文件并没有使用modules/generation_utils.py而是使用了默认的transformers/generation_utils.py。 也就是运行代码时,会因为调用的函数参数类型不一致报错,请问我该如何修改使之适配呢? 非常感谢!
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>
@LeMei 感谢回复!应该是transformers版本问题。 1)使用4.18.0会报错,报错原因是默认使用了transformers/generate_utils.py而非您代码中modules/generate_utils.py,我将使用到的相关代码从modules/generate_utils.py中手动移到modeling_t5.py,可以解决这个报错。 2)将transformers改为4.12.5版本后,则默认使用modules/generate_utils.py,不需手动移动代码,不会报错。
向您确认一下,代码的本意是默认使用modules/generate_utils.py的函数 对吧? 再次十分感谢您的回复~
completed
在modules/modeling_t5.py modeling_t5_prefix.py等文件里,您重写了_prepare_encoder_decoder_kwargs_for_generation函数(使用self._prepare_encoder_decoder_kwargs_for_generation调用),但代码input_ids = self._prepare_decoder_input_ids_for_generation(input_ids, decoder_start_token_id=decoder_start_token_id, bos_token_id=bos_token_id) 仍会调用transformers/generation_utils.py里的_prepare_decoder_input_ids_for_generation【备注:其中第一个参数应为int型的batchsize】。我看到您在modules/generation_utils.py里将该函数的第一个参数改为了longtensor型【备注:符合input_ids的类型】,但modules/modeling_t5.py文件并没有使用modules/generation_utils.py而是使用了默认的transformers/generation_utils.py。 也就是运行代码时,会因为调用的函数参数类型不一致报错,请问我该如何修改使之适配呢? 非常感谢!