• 使用transformers过程中出现的bug


    1. The following model_kwargs are not used by the model: ['encoder_hidden_states', 'encoder_attention_mask'] (note: typos in the generate arguments will also show up in this list)

    使用text_decoder就出现上述错误,这是由于transformers版本不兼容导致的

    1. from transformers import AutoModel, AutoConfig, BertGenerationDecoder
    2. decoder_config = AutoConfig.from_pretrained(args['text_checkpoint'])
    3. text_decoder = BertGenerationDecoder(config=decoder_config)
    4. output = self.text_decoder.generate(input_ids=cls_input_ids,
    5. encoder_hidden_states=encoder_hidden_states,
    6. encoder_attention_mask=encoder_attention_mask,
    7. max_length=self.args['max_seq_length'],
    8. do_sample=True,
    9. num_beams=self.args['beam_size'],
    10. length_penalty=1.0, use_cache=True,
    11. )

    解决办法:将transformer的版本换到以下范围, 4.15.0<=transformers<4.22.0,transformers>=4.25.0

    比如:pip install transformers==4.25.1 or pip install transformers==4.20.1

    2. No module named 'transformers.generation_beam_constraints' (其中transformers==4.28.1)

    (1)解决办法

    将:from transformers import generation_beam_constraints

    改为:from transformers.generation import beam_constraints

    (2)其他例子

    有问题的代码:

    1. # 可以在transformers == 4.23.1版本上面运行
    2. from transformers.generation_beam_constraints import Constraint
    3. from transformers.generation_beam_search import BeamScorer, BeamSearchScorer
    4. from transformers.generation_logits_process import (
    5. EncoderNoRepeatNGramLogitsProcessor,
    6. ForcedBOSTokenLogitsProcessor,
    7. ForcedEOSTokenLogitsProcessor,
    8. HammingDiversityLogitsProcessor,
    9. InfNanRemoveLogitsProcessor,
    10. LogitsProcessorList,
    11. MinLengthLogitsProcessor,
    12. NoBadWordsLogitsProcessor,
    13. NoRepeatNGramLogitsProcessor,
    14. PrefixConstrainedLogitsProcessor,
    15. RepetitionPenaltyLogitsProcessor,
    16. TemperatureLogitsWarper,
    17. TopKLogitsWarper,
    18. TopPLogitsWarper,
    19. )
    20. from transformers.generation_stopping_criteria import (
    21. MaxLengthCriteria,
    22. MaxTimeCriteria,
    23. StoppingCriteria,
    24. StoppingCriteriaList,
    25. validate_stopping_criteria,
    26. )

    修正后的代码:

    1. # 可以在transformers == 4.28.1版本上面运行
    2. from transformers.generation.beam_constraints import Constraint
    3. from transformers.generation.beam_search import BeamScorer, BeamSearchScorer
    4. from transformers.generation.logits_process import (
    5. EncoderNoRepeatNGramLogitsProcessor,
    6. ForcedBOSTokenLogitsProcessor,
    7. ForcedEOSTokenLogitsProcessor,
    8. HammingDiversityLogitsProcessor,
    9. InfNanRemoveLogitsProcessor,
    10. LogitsProcessorList,
    11. MinLengthLogitsProcessor,
    12. NoBadWordsLogitsProcessor,
    13. NoRepeatNGramLogitsProcessor,
    14. PrefixConstrainedLogitsProcessor,
    15. RepetitionPenaltyLogitsProcessor,
    16. TemperatureLogitsWarper,
    17. TopKLogitsWarper,
    18. TopPLogitsWarper,
    19. )
    20. from transformers.generation.stopping_criteria import (
    21. MaxLengthCriteria,
    22. MaxTimeCriteria,
    23. StoppingCriteria,
    24. StoppingCriteriaList,
    25. validate_stopping_criteria,
    26. )

  • 相关阅读:
    读An All-in-One Network for Dehazing and Beyond
    SAP 物料分类账配置详解Part 1( 基于SAP S/4HANA1909 版本)
    Ubuntu将图标放置于任务栏
    【C语言】你真的懂常量吗?二进制的条条框框你还记得吗?(每日小细节002)
    java计算机毕业设计基于springboo+vue的个人家庭理财记账管理系统
    Linux进程睡眠状态 disk sleep (kill -9 杀不掉D状态进程)
    容器内的Linux诊断工具0x.tools
    Linux网络编程11——简单的web服务器
    leetcode:968. 监控二叉树【树状dp,维护每个节点子树的三个状态,非常难想权当学习,类比打家劫舍3】
    Gitee 实战配置
  • 原文地址:https://blog.csdn.net/qq_34950042/article/details/133851978