Transformers解决机器翻译任务

hello hello 打扰了 就是我使用这个语句with tokenizer.as_target_tokenizer(): labels = tokenizer( batch_targets, padding=True, max_length=max_target_length, truncation=True, return_tensors="pt" )报错显示as_target_tokenizer已经弃用了可以使用text_target这个argument替换 为什么我这个回报错呢 跟我的transformers或者其他什么包的版本有关吗 我已经找了好多方法都不行 请问你知道怎么解决这个问题吗

你好!根据你提供的信息,出现这个报错的原因可能是你使用的 transformers 版本过新,其中的 as_target_tokenizer 已被弃用,应该使用 text2text_generate 或 text2text_tokenizer 这两个参数中的一个来替代。

你可以尝试使用以下代码来替换你之前的代码段:labels = tokenizer.batch_encode_plus(batch_targets, padding=True, max_length=max_target_length, truncation=True, return_tensors="pt", text2text_generate=True)
这里使用了 text2text_generate=True 来表示使用文本生成任务的 tokenizer。

如果你的 transformers 版本比较老,可能不支持这个参数,你可以升级 transformers 包的版本来解决这个问题。

希望这个回答能对你有所帮助!

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    根据问题描述,as_target_tokenizer 已经被弃用,建议使用 text_target 这个 argument 替代。可以尝试修改代码,将 as_target_tokenizer 改为 text_target,如下所示:

    labels = tokenizer(batch_targets, padding=True, max_length=max_target_length, truncation=True, return_tensors="pt", text_target=True)

    如果仍然出现错误,可以检查 Transformers 和 Tokenizer 的版本是否正确,或者尝试更新版本。 同时,建议仔细阅读 Transformers 和 Tokenizer 的官方文档,了解相关API的使用方法和问题解决方案。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^