LoRA微调Bloom-7b1模型时遭遇"Got unexpected arguments: {'num_items_in_batch': 8192}"错误求助
LoRA微调Bloom-7b1模型时遭遇"Got unexpected arguments: {'num_items_in_batch': 8192}"错误求助
我正在尝试用LoRA微调一个模型,用来处理和分析PDF文件,这样我就能基于文件内容提问了。具体流程是上传PDF后,程序会把文件切分成块,“学习”这些内容(因为我在做一个Streamlit应用,希望不用重复上传文件,模型能记住文件上下文),然后生成向量存储用于查询。
我的LoRA微调代码如下:
def fine_tune_model_lora_with_suggestions(train_data): st.write("Starting high-performance fine-tuning with LoRA...") try: import torch from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments, Trainer from peft import LoraConfig, get_peft_model from datasets import Dataset # Define model name model_name = "bigscience/bloom-7b1" # Load tokenizer tokenizer = AutoTokenizer.from_pretrained(model_name) # Load model normally if CUDA is available, otherwise use CPU if torch.cuda.is_available(): model = AutoModelForCausalLM.from_pretrained( model_name, load_in_8bit=True, # Enable 8-bit quantization device_map="auto", # Automatically map layers between GPU and CPU llm_int8_enable_fp32_cpu_offload=True, # Offload some layers to CPU in FP32 torch_dtype=torch.float16, # Use FP16 for GPU-loaded layers ) else: model = AutoModelForCausalLM.from_pretrained(model_name) # Apply LoRA configuration lora_config = LoraConfig( r=16, lora_alpha=32, lora_dropout=0.05, bias="none", task_type="CAUSAL_LM", target_modules=["query_key_value"], # Specify target modules for LoRA ) model = get_peft_model(model, lora_config) # Prepare dataset dataset = Dataset.from_list(train_data) def tokenize_function(examples): tokens = tokenizer( examples["text"], padding="max_length", truncation=True, max_length=512, ) tokens["labels"] = tokens["input_ids"].copy() return tokens tokenized_dataset = dataset.map(tokenize_function, batched=True) # Training arguments training_args = TrainingArguments( per_device_train_batch_size=4, gradient_accumulation_steps=4, max_steps=200, learning_rate=2e-4, fp16=torch.cuda.is_available(), # Enable FP16 only if CUDA is available logging_steps=10, output_dir="./outputs", save_steps=10, save_total_limit=2, report_to="none", ) # Initialize Trainer trainer = Trainer( model=model, args=training_args, train_dataset=tokenized_dataset, ) # Train model trainer.train() # Save fine-tuned model model.save_pretrained("./fine_tuned_bloom_lora") tokenizer.save_pretrained("./fine_tuned_bloom_lora") st.write("Fine-tuning completed successfully.") except ImportError as e: st.error(f"Import Error: {e}") except Exception as e: st.error(f"Error during LoRA fine-tuning: {e}")
我是在Google Colab里运行这段代码的。
当我完整运行代码时,会触发这个错误:
Error during LoRA fine-tuning: Got unexpected arguments: {'num_items_in_batch': 8192}.
以下是我安装的依赖库命令:
!pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 !pip install transformers datasets PyPDF2 langchain langchain_community streamlit faiss-cpu python-dotenv google-generativeai pyngrok wandb !pip install -U transformers !pip install -U bitsandbytes !pip install transformers==4.26.0 peft==0.2.0 datasets==2.7.1 !pip install bitsandbytes --extra-index-url https://huggingface.github.io/bitsandbytes/ # !pip install bitsandbytes !pip install einops==0.6.1 !pip install git+https://github.com/huggingface/accelerate.git !pip install jedi !sudo apt-get install -y libcairo2-dev libjpeg-dev libpng-dev libfreetype6-dev !pip install pycairo !pip install fsspec[http]==2024.9.0 !pip install --upgrade peft accelerate !pip install accelerate appdirs bitsandbytes datasets fire git+https://github.com/huggingface/peft.git git+https://github.com/huggingface/transformers.git torch sentencepiece tensorboardX gradio !pip install -i https://test.pypi.org/simple/ bitsandbytes !!pip install -U peft transformers
我一开始觉得这个错误是因为用了旧版本的库,或者某些函数被弃用了,但现在不太确定具体原因,希望能得到大家的帮助!谢谢!
备注:内容来源于stack exchange,提问作者Anika Sharma
相关产品推荐
相关产品推荐

