fix config saving compatibility issue for transformers 4.45+

#7

config = AutoConfig.from_pretrained("OpenGVLab/InternVL2-1B", trust_remote_code=True)
config.save_pretrained("internvl2-1b")

raises error:

if llm_config['architectures'][0] == 'LlamaForCausalLM':
KeyError: 'architectures'

the root cause that transformers added validation of non-default parameters for generation during config saving it requires initialize configuration class without parameters and as the result llm_config comes as None (and according to code above it become {} at llm config class init stage)

OpenGVLab org

Try to downgrade to transformers==4.44.2

@Yeshenglong unfortunatly, I can not to do that, my project requires to use transformers 4.45. Can you please thinking about small fix for issue? I provided workaround that works for me (from logical point of view, it is really bug in code, you allow to provide empty dictionary as llm_config but after that does not care that it can be provided, so some default values should be filled.)

@Yeshenglong . The cause is that llm_config is a None object, initialized with an empty dictionary. For InternVL2-8B-MPO, I just handle that with this code:

       self.vision_config = InternVisionConfig(**vision_config)
        # Check architecture to initialize config
        llm_config_architectures = llm_config.get("architectures", ["InternLM2ForCausalLM"])[0]
        if llm_config_architectures == "LlamaForCausalLM":
            self.llm_config = LlamaConfig(**llm_config)
        elif llm_config_architectures == "InternLM2ForCausalLM":
            self.llm_config = InternLM2Config(**llm_config)
        elif llm_config_architectures == "Phi3ForCausalLM":
            self.llm_config = Phi3Config(**llm_config)
        elif llm_config_architectures == "Qwen2ForCausalLM":
            self.llm_config = Qwen2Config(**llm_config)
        else:
            raise ValueError("Unsupported architecture: {}".format(llm_config_architectures))

I set the default value and executed the code with transformers==4.46.*. @katuni4ka you can refer to this solution if you wanna upgrade your transformers version

czczup changed pull request status to merged

Sign up or log in to comment