Der Name „EncoderDecoderCache“ kann nicht aus „Transformers“ importiert werden.Python

Python-Programme
Guest
 Der Name „EncoderDecoderCache“ kann nicht aus „Transformers“ importiert werden.

Post by Guest »

Als ich die Datei train-4stage.sh im Repo von LLaVolta ausführte, stellte ich fest, dass sie den Fehler „Name „EncoderDecoderCache“ kann nicht aus „Transformers“ importiert werden“ meldet.
Der Traceback sieht wie folgt aus:

Code: Select all

Traceback (most recent call last):
File "/home/data/shika/miniconda3/envs/llavolta/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1364, in _get_module
return importlib.import_module("."  + module_name, self.__name__)
File "/home/data/shika/miniconda3/envs/llavolta/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "/home/data/shika/miniconda3/envs/llavolta/lib/python3.10/site-packages/transformers/trainer.py", line 190, in 
from peft import PeftModel
File "/home/data/shika/miniconda3/envs/llavolta/lib/python3.10/site-packages/peft/__init__.py", line 22, in 
from .auto import (
File "/home/data/shika/miniconda3/envs/llavolta/lib/python3.10/site-packages/peft/auto.py", line 32, in 
from .mapping import MODEL_TYPE_TO_PEFT_MODEL_MAPPING
File "/home/data/shika/miniconda3/envs/llavolta/lib/python3.10/site-packages/peft/mapping.py", line 25, in 
from .mixed_model import PeftMixedModel
File "/home/data/shika/miniconda3/envs/llavolta/lib/python3.10/site-packages/peft/mixed_model.py", line 29, in 
from .peft_model import PeftModel
File "/home/data/shika/miniconda3/envs/llavolta/lib/python3.10/site-packages/peft/peft_model.py", line 37, in 
from transformers import Cache, DynamicCache, EncoderDecoderCache, PreTrainedModel
ImportError: cannot import name 'EncoderDecoderCache' from 'transformers' (/home/data/shika/miniconda3/envs/llavolta/lib/python3.10/site-packages/transformers/__init__.py)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/data/shika/LLaVolta/llava/train/train_mem.py", line 1, in 
from train import train
File "/home/data/shika/LLaVolta/llava/train/train.py", line 32, in 
from llava.train.llava_trainer import LLaVATrainer
File "/home/data/shika/LLaVolta/llava/train/llava_trainer.py", line 7, in 
from transformers import Trainer
File "", line 1075, in _handle_fromlist
File "/home/data/shika/miniconda3/envs/llavolta/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1354, in __getattr__
module = self._get_module(self._class_to_module[name])
File "/home/data/shika/miniconda3/envs/llavolta/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1366, in _get_module
raise RuntimeError(
RuntimeError: Failed to import transformers.trainer because of the following error (look up to see its traceback):
cannot import name 'EncoderDecoderCache' from 'transformers' (/home/data/shika/miniconda3/envs/llavolta/lib/python3.10/site-packages/transformers/__init__.py)
Hier ist die .sh-Datei, die ich ausführe (ursprünglich aus LLaVoltas Repo):

Code: Select all

# export WANDB_API_KEY=''
# export WANDB_PROJECT=''
# export WANDB_ENTITY=''

ROOT_DATA='/home/data/shika/LLaVA/playground/data'
ROOT_WEIGHT='/home/data/shika/LLaVolta/checkpoint'
ROOT_LOG='/home/data/shika/LLaVolta/log'

LAYERS=2,2,16,0
STRIDES=8,2,2,1
PIVOTS=1300,2600,3900
GROUPING=avgpool1d
PROGRESSIVE=True
NAME=4stage

# pretrain
/home/data/shika/miniconda3/envs/llavolta/bin/deepspeed llava/train/train_mem.py \
--deepspeed ./scripts/zero2.json \
--model_name_or_path lmsys/vicuna-7b-v1.5 \
--version plain \
--data_path $ROOT_DATA/LLaVA-Pretrain/blip_laion_cc_sbu_558k.json \
--image_folder $ROOT_DATA/LLaVA-Pretrain/images \
--vision_tower openai/clip-vit-large-patch14-336 \
--mm_projector_type mlp2x_gelu \
--tune_mm_mlp_adapter True \
--mm_vision_select_layer -2 \
--mm_use_im_start_end False \
--mm_use_im_patch_token False \
--bf16 True \
--output_dir $ROOT_WEIGHT/llava-v1.5-7b-pretrain-$NAME \
--num_train_epochs 1 \
--per_device_train_batch_size 1 \
--per_device_eval_batch_size 1 \
--gradient_accumulation_steps 1 \
--evaluation_strategy "no" \
--save_strategy "steps"  \
--save_steps 24000 \
--save_total_limit 1 \
--learning_rate 1e-3 \
--weight_decay 0. \
--warmup_ratio 0.03 \
--lr_scheduler_type "cosine" \
--logging_steps 1 \
--tf32 True \
--model_max_length 2048 \
--gradient_checkpointing True \
--dataloader_num_workers 4 \
--lazy_preprocess True \
--report_to wandb \
--run_name $NAME-pretrain \
# > $ROOT_LOG/llava-v1.5-7b-pretrain.out 2>$ROOT_LOG/llava-v1.5-7b-pretrain.err

# finetune
/home/data/shika/miniconda3/envs/llavolta/bin/deepspeed llava/train/train_mem.py \
--deepspeed ./scripts/zero3.json \
--model_name_or_path lmsys/vicuna-7b-v1.5 \
--version v1 \
--data_path $ROOT_DATA/LLaVA-Tuning/llava_v1_5_mix665k.json \
--image_folder $ROOT_DATA/LLaVA-Tuning \
--vision_tower openai/clip-vit-large-patch14-336 \
--pretrain_mm_mlp_adapter $ROOT_WEIGHT/llava-v1.5-7b-pretrain-$NAME/mm_projector.bin \
--mm_projector_type mlp2x_gelu \
--mm_vision_select_layer -2 \
--mm_use_im_start_end False \
--mm_use_im_patch_token False \
--image_aspect_ratio pad \
--group_by_modality_length True \
--bf16 True \
--output_dir  $ROOT_WEIGHT/llava-v1.5-7b-$NAME \
--num_train_epochs 1 \
--per_device_train_batch_size 1 \
--per_device_eval_batch_size 1 \
--gradient_accumulation_steps 1 \
--evaluation_strategy "no" \
--save_strategy "steps" \
--save_steps 50000 \
--save_total_limit 1 \
--learning_rate 2e-5 \
--weight_decay 0. \
--warmup_ratio 0.03 \
--lr_scheduler_type "cosine" \
--logging_steps 1 \
--tf32 True \
--model_max_length 2048 \
--gradient_checkpointing True \
--dataloader_num_workers 4 \
--lazy_preprocess True \
--report_to wandb \
--run_name $NAME \
--strides $STRIDES \
--layers $LAYERS \
--pivots $PIVOTS \
--grouping $GROUPING \
--progressive $PROGRESSIVE \
# > $ROOT_LOG/$NAME.out 2>$ROOT_LOG/$NAME.err
Ich versuche, die Transformers-Version zu ändern, aber das Projekt erfordert transfromers==4.37.2. Und ich versuche, die Peft-Version auf 0.14.0, 0.11.0, 0.4.0 zu ändern, was nicht funktioniert hat.
Was kann ich als nächstes versuchen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post