问题
这里,记录一下在使用LoRa进行微调时遇到的错误。
设备不一致的问题
ValueError: Caught ValueError in replica 0 on device 0.
这个问题时有由于多块GPU不在一个设备上引起的。解决方法很简单。使用当个GPU,最直接的操作就是CUDA_VISIBLE_DEVICES=0 python xxx.py
。制定GPU的序号就可以解决这个问题。
任务类型不正确的问题
ValueError: If no `decoder_input_ids` or `decoder_inputs_embeds` are passed, `input_ids` cannot be `None`. Please pass either `input_ids` or `decoder_input_ids` or `decoder_inputs_embeds`.
这个问题是由于没有指定任务类型,或者任务类型指定错误。例如分类任务是TaskType.SEQ_CLS
,生成任务是TaskType.SEQ_2_SEQ_LM
.默认是None,不指定就会出现未知的错误。Lora
的类型
- "SEQ_CLS": PeftModelForSequenceClassification,
- "SEQ_2_SEQ_LM": PeftModelForSeq2SeqLM,
- "CAUSAL_LM": PeftModelForCausalLM,
- "TOKEN_CLS": PeftModelForTokenClassification,
- "QUESTION_ANS": PeftModelForQuestionAnswering,
- "FEATURE_EXTRACTION": PeftModelForFeatureExtraction,