最近学习如何使用peft包进行Prompt Tuning, 然后遇到了一个奇怪的报错。
RuntimeError: The expanded size of the tensor (31) must match the existing size (39) at non-singleton dimension 2。
对比后发现输入总是差了一个num_virtual_tokens的大小。
以下为部分代码。
peft_config = PromptTuningConfig(
task_type=TaskType.CAUSAL_LM,
prompt_tuning_init=PromptTuningInit.TEXT,
num_virtual_tokens=8,
prompt_tuning_init_text="Classify if the tweet is a complaint or not:",
tokenizer_name_or_path=tokenizer_name_or_path,
)
model = AutoModelForCausalLM.from_pretrained(model_name_or_path)
peft_model = PeftModel.from_pretrained(model=model, model_id="output/checkpoint-90/")
ipt = tokenizer("Tweet text : @denny the grocery price is soaring, even milk is becoming unaffordable, could you do something?\nLabel: ",return_tensors='pt')
print(tokenizer.decode(peft_model.generate(**ipt, max_length=128, do_sample=True)[0], skip_special_tokens=True))
请问该如何解决该问题,有人遇到同样问题吗,有人帮忙指点一下吗?
万分感谢。