训练T5/BART将一个字符串转换成多个字符串



是否有可能训练像T5或BART这样的seq2seq模型来将字符串转换为字符串列表?在我第一次尝试时,标记器抱怨我的2D标签列表不是正确的数据类型:

File "/home/matt/miniconda3/envs/nlp/lib/python3.10/site-packages/transformers/tokenization_utils_fast.py", line 429, in _batch_encode_plus
encodings = self._tokenizer.encode_batch(
TypeError: TextEncodeInput must be Union[TextInputSequence, Tuple[InputSequence, InputSequence]]

我想我可以在我的每个训练示例中连接多个字符串,但是然后我必须使用一个可能容易出错的拆分器来再次拆分它们。也许使用一个特殊字符作为分隔符就是答案?

这不是特别相关,但这是我如何调用标记器。此外,我正在使用torch.utils.data.Dataset的子类:

tokenizer = AutoTokenizer.from_pretrained(args.model_name)
encodings = tokenizer(texts, truncation=True, padding=True, return_tensors='pt')
decodings = tokenizer(labels, truncation=True, padding=True, return_tensors='pt')
dataset_tokenized = Dataset(encodings, decodings)

相关的是我的texts变量是一个字符串列表,而我的labels变量是一个字符串的2D列表,这显然是不允许的。

使用特殊分隔符效果很好!我选择了管道字符。

pairs = [(source, ' | '.join(target)) for source, target in pairs]

相关内容

  • 没有找到相关文章

最新更新