zer*_*ero 5 python pytorch alpaca
代码基于https://github.com/tloen/alpaca-lora/blob/main/finetune.py
\n我这次训练的目标是利用无监督训练数据集让模型理解我的领域中单词的书写方式(基本上是屏蔽语言建模)。我不使用传统教学微调的原因是因为没有足够数量的数据集可供我使用。
\n我所做的 2 个主要更改如下
\nfrom peft import (\n # LoraConfig,\n PeftModel,\n get_peft_model,\n get_peft_model_state_dict,\n prepare_model_for_int8_training,\n set_peft_model_state_dict,\n)\n
Run Code Online (Sandbox Code Playgroud)\n也
\n# config = LoraConfig(\n # r=lora_r,\n # lora_alpha=lora_alpha,\n # target_modules=lora_target_modules,\n # lora_dropout=lora_dropout,\n # bias="none",\n # task_type="CAUSAL_LM",\n # )\n # model = get_peft_model(model, config)\n\n # replace with this to load directly from alpaca\n LORA_WEIGHTS = "tloen/alpaca-lora-7b"\n model = PeftModel.from_pretrained(\n model,\n LORA_WEIGHTS,\n torch_dtype=torch.float16,\n )\n
Run Code Online (Sandbox Code Playgroud)\ndef chunk_text(data):\n concantenated_text = \'\'\n all_result = []\n for i in range(data[\'train\'].num_rows):\n concantenated_text += data[\'train\'][\'combined\'][i]\n tokenized_concantenated_text = tokenizer.encode(concantenated_text)[1:]\n tokenized_prompt = tokenizer.encode("### Text: ")[1:]\n full_length = len(tokenized_concantenated_text)\n for i in range(0, full_length, chunk_size):\n text = tokenized_concantenated_text[i: i+chunk_size+overlap_size] \n text = tokenized_prompt + text\n text = tokenizer.decode(text)\n \n result = tokenizer(text, padding=False)\n if result["input_ids"][-1] != tokenizer.eos_token_id:\n result["input_ids"].append(tokenizer.eos_token_id)\n result["attention_mask"].append(1)\n\n result["labels"] = result["input_ids"].copy()\n\n all_result.append(result)\n return all_result\n
Run Code Online (Sandbox Code Playgroud)\n但是,无论我如何调整代码,我都会遇到以下错误。非常感谢提供的任何帮助!
\n\xe2\x95\xad\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 Traceback (most recent call last) \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x95\xae\n\xe2\x94\x82 in <cell line: 2>:2 \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 /usr/local/lib/python3.9/dist-packages/transformers/trainer.py:1662 in train \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 1659 \xe2\x94\x82 \xe2\x94\x82 inner_training_loop = find_executable_batch_size( \xe2\x94\x82\n\xe2\x94\x82 1660 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 self._inner_training_loop, self._train_batch_size, args.auto_find_batch_size \xe2\x94\x82\n\xe2\x94\x82 1661 \xe2\x94\x82 \xe2\x94\x82 ) \xe2\x94\x82\n\xe2\x94\x82 \xe2\x9d\xb1 1662 \xe2\x94\x82 \xe2\x94\x82 return inner_training_loop( \xe2\x94\x82\n\xe2\x94\x82 1663 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 args=args, \xe2\x94\x82\n\xe2\x94\x82 1664 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 resume_from_checkpoint=resume_from_checkpoint, \xe2\x94\x82\n\xe2\x94\x82 1665 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 trial=trial, \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 /usr/local/lib/python3.9/dist-packages/transformers/trainer.py:1991 in _inner_training_loop \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 1988 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 xm.optimizer_step(self.optimizer) \xe2\x94\x82\n\xe2\x94\x82 1989 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 elif self.do_grad_scaling: \xe2\x94\x82\n\xe2\x94\x82 1990 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 scale_before = self.scaler.get_scale() \xe2\x94\x82\n\xe2\x94\x82 \xe2\x9d\xb1 1991 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 self.scaler.step(self.optimizer) \xe2\x94\x82\n\xe2\x94\x82 1992 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 self.scaler.update() \xe2\x94\x82\n\xe2\x94\x82 1993 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 scale_after = self.scaler.get_scale() \xe2\x94\x82\n\xe2\x94\x82 1994 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 optimizer_was_run = scale_before <= scale_after \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 /usr/local/lib/python3.9/dist-packages/torch/cuda/amp/grad_scaler.py:368 in step \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 365 \xe2\x94\x82 \xe2\x94\x82 if optimizer_state["stage"] is OptState.READY: \xe2\x94\x82\n\xe2\x94\x82 366 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 self.unscale_(optimizer) \xe2\x94\x82\n\xe2\x94\x82 367 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 \xe2\x9d\xb1 368 \xe2\x94\x82 \xe2\x94\x82 assert len(optimizer_state["found_inf_per_device"]) > 0, "No inf checks were rec \xe2\x94\x82\n\xe2\x94\x82 369 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 370 \xe2\x94\x82 \xe2\x94\x82 retval = self._maybe_opt_step(optimizer, optimizer_state, *args, **kwargs) \xe2\x94\x82\n\xe2\x94\x82 371 \xe2\x94\x82\n\xe2\x95\xb0\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x95\xaf\nAssertionError: No inf checks were recorded for this optimizer.\n
Run Code Online (Sandbox Code Playgroud)\n环境:\nPython: 3.9\ncuda: 11.8
\n小智 0
你不应该评论配置,并初始化model = get_peft_model(model, config)
之后model = PeftModel.from_pretrained(model, LORA_WEIGHTS, torch_dtype=torch.float16)
归档时间: |
|
查看次数: |
4971 次 |
最近记录: |