You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 17:28:01