InternLM / InternLM/xtuner

LLaVA-Phi3 invalid JSON file.

Open
#826 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
5.2k
Forks
448
Avg merge
3d 15h
Merged PRs (30d)
26

Description

hi, can I knew the exact syntax, mine is still error:

```python
model = dict(
freeze_llm=True,
freeze_visual_encoder=True,
llm=dict(
attn_implementation='eager',
pretrained_model_name_or_path='/home/oem/xtuner/pretrained/phi-3/',
type='transformers.AutoModelForCausalLM.from_pretrained',
trust_remote_code=True),
pretrained_pth='/home/oem/xtuner/pretrained/phi-3/',
type='xtuner.model.LLaVAModel',
visual_encoder=dict(
type=CLIPVisionModel.from_pretrained,
pretrained_model_name_or_path=visual_encoder_name_or_path))
```

it said I have no config.json

```bash
Traceback (most recent call last):
File "/home/oem/xtuner/xtuner/tools/train.py", line 360, in
main()
File "/home/oem/xtuner/xtuner/tools/train.py", line 356, in main
runner.train()
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/mmengine/runner/_flexible_runner.py", line 1182, in train
self.strategy.prepare(
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/mmengine/_strategy/deepspeed.py", line 381, in prepare
model = self.build_model(model)
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/mmengine/_strategy/base.py", line 306, in build_model
model = MODELS.build(model)
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/mmengine/registry/registry.py", line 570, in build
return self.build_func(cfg, *args, **kwargs, registry=self)
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/mmengine/registry/build_functions.py", line 232, in build_model_from_cfg
return build_from_cfg(cfg, registry, default_args)
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/mmengine/registry/build_functions.py", line 121, in build_from_cfg
obj = obj_cls(**args) # type: ignore
File "/home/oem/xtuner/xtuner/model/llava.py", line 61, in __init__
llm = self._dispatch_lm_model_cfg(llm, max_position_embeddings)
File "/home/oem/xtuner/xtuner/model/llava.py", line 269, in _dispatch_lm_model_cfg
llm_cfg = AutoConfig.from_pretrained(
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/transformers/models/auto/configuration_auto.py", line 965, in from_pretrained
config_dict, unused_kwargs = PretrainedConfig.get_config_dict(pretrained_model_name_or_path, **kwargs)
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/transformers/configuration_utils.py", line 632, in get_config_dict
config_dict, kwargs = cls._get_config_dict(pretrained_model_name_or_path, **kwargs)
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/transformers/configuration_utils.py", line 689, in _get_config_dict
resolved_config_file = cached_file(
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/transformers/utils/hub.py", line 373, in cached_file
raise EnvironmentError(
OSError: /home/oem/xtuner/pretrained/phi-3/ does not appear to have a file named config.json. Checkout 'https://huggingface.co//home/oem/xtuner/pretrained/phi-3//tree/None' for available files.
```
even when I specified the .pth it still give me error:

```python
model = dict(
freeze_llm=True,
freeze_visual_encoder=True,
llm=dict(
attn_implementation='eager',
pretrained_model_name_or_path='/home/oem/xtuner/pretrained/phi-3/model.pth',
type='transformers.AutoModelForCausalLM.from_pretrained',
trust_remote_code=True),
pretrained_pth='/home/oem/xtuner/pretrained/phi-3/model.pth',
type='xtuner.model.LLaVAModel',
visual_encoder=dict(
type=CLIPVisionModel.from_pretrained,
pretrained_model_name_or_path=visual_encoder_name_or_path))
```

```bash
Traceback (most recent call last):
File "/home/oem/xtuner/xtuner/tools/train.py", line 360, in
main()
File "/home/oem/xtuner/xtuner/tools/train.py", line 356, in main
runner.train()
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/mmengine/runner/_flexible_runner.py", line 1182, in train
self.strategy.prepare(
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/mmengine/_strategy/deepspeed.py", line 381, in prepare
model = self.build_model(model)
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/mmengine/_strategy/base.py", line 306, in build_model
model = MODELS.build(model)
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/mmengine/registry/registry.py", line 570, in build
return self.build_func(cfg, *args, **kwargs, registry=self)
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/mmengine/registry/build_functions.py", line 232, in build_model_from_cfg
return build_from_cfg(cfg, registry, default_args)
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/mmengine/registry/build_functions.py", line 121, in build_from_cfg
obj = obj_cls(**args) # type: ignore
File "/home/oem/xtuner/xtuner/model/llava.py", line 61, in __init__
llm = self._dispatch_lm_model_cfg(llm, max_position_embeddings)
File "/home/oem/xtuner/xtuner/model/llava.py", line 269, in _dispatch_lm_model_cfg
llm_cfg = AutoConfig.from_pretrained(
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/transformers/models/auto/configuration_auto.py", line 965, in from_pretrained
config_dict, unused_kwargs = PretrainedConfig.get_config_dict(pretrained_model_name_or_path, **kwargs)
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/transformers/configuration_utils.py", line 632, in get_config_dict
config_dict, kwargs = cls._get_config_dict(pretrained_model_name_or_path, **kwargs)
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/transformers/configuration_utils.py", line 726, in _get_config_dict
raise EnvironmentError(
OSError: It looks like the config file at '/home/oem/xtuner/pretrained/phi-3/model.pth' is not a valid JSON file.
Traceback (most recent call last):
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/transformers/configuration_utils.py", line 722, in _get_config_dict
config_dict = cls._dict_from_json_file(resolved_config_file)
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/site-packages/transformers/configuration_utils.py", line 825, in _dict_from_json_file
text = reader.read()
File "/home/oem/anaconda3/envs/xtuner-env/lib/python3.10/codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 64: invalid start byte

```

Contributor guide

Open the contributing guide

Research direction

Read xtuner/model/llava.py at _dispatch_lm_model_cfg and the training entry point in xtuner/tools/train.py, then compare the supplied paths with the model files expected by Transformers. Reproduce the configuration failure and establish whether the issue requires documentation or a code change so a valid LLaVA-Phi3 model setup no longer produces the reported errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.