HKUDS / GraphGPT

[SIGIR'2024] "GraphGPT: Graph Instruction Tuning for Large Language Models"
https://arxiv.org/abs/2310.13023
Apache License 2.0
493 stars 36 forks source link

Extract the Trained Projector #37

Closed bamboo-boy closed 4 months ago

bamboo-boy commented 6 months ago

请问pytorch_model.bin.index.json是一阶段训练后的output中所应该包含的结果吗,在进行Extract the Trained Projector时,extract_projector.sh文件运行出现了错误No such file or directory: './checkpoints/stage_1/pytorch_model.bin.index.json'。 我的一阶段训练output为: image

bamboo-boy commented 6 months ago

请问pytorch_model.bin.index.json是一阶段训练后的output中所应该包含的结果吗,在进行Extract the Trained Projector时,extract_projector.sh文件运行出现了错误No such file or directory: './checkpoints/stage_1/pytorch_model.bin.index.json'。 我的一阶段训练output为: image

这个问题我通过将pytorch_model.bin.index.json改为model.safetensors.index.json解决了,但是在这行代码 ckpt = torch.load(os.path.join(args.model_name_or_path, ckpt_name), map_location='cpu') 时出现了 File "./scripts/extract_graph_projector.py", line 39, in ckpt = torch.load(os.path.join(args.model_name_or_path, ckpt_name), map_location='cpu') File "/home/.conda/envs/graphgpt/lib/python3.8/site-packages/torch/serialization.py", line 795, in load return _legacy_load(opened_file, map_location, pickle_module, pickle_load_args) File "/home/.conda/envs/graphgpt/lib/python3.8/site-packages/torch/serialization.py", line 1002, in _legacy_load magic_number = pickle_module.load(f, pickle_load_args) _pickle.UnpicklingError: invalid load key, 'x'. 错误,请问应该如何解决呢?

tjb-tech commented 6 months ago

请问pytorch_model.bin.index.json是一阶段训练后的output中所应该包含的结果吗,在进行Extract the Trained Projector时,extract_projector.sh文件运行出现了错误No such file or directory: './checkpoints/stage_1/pytorch_model.bin.index.json'。 我的一阶段训练output为: image

这个问题我通过将pytorch_model.bin.index.json改为model.safetensors.index.json解决了,但是在这行代码 ckpt = torch.load(os.path.join(args.model_name_or_path, ckpt_name), map_location='cpu') 时出现了 File "./scripts/extract_graph_projector.py", line 39, in ckpt = torch.load(os.path.join(args.model_name_or_path, ckpt_name), map_location='cpu') File "/home/.conda/envs/graphgpt/lib/python3.8/site-packages/torch/serialization.py", line 795, in load return _legacy_load(opened_file, map_location, pickle_module, pickle_load_args) File "/home/.conda/envs/graphgpt/lib/python3.8/site-packages/torch/serialization.py", line 1002, in _legacy_load magic_number = pickle_module.load(f, pickle_load_args) _pickle.UnpicklingError: invalid load key, 'x'. 错误,请问应该如何解决呢?

您好,这边建议是保持原有的模型保存目录文件和extract_projector的逻辑,根据您最初的报错,是否是模型指向目录出错了。

bamboo-boy commented 6 months ago

请问pytorch_model.bin.index.json是一阶段训练后的output中所应该包含的结果吗,在进行Extract the Trained Projector时,extract_projector.sh文件运行出现了错误No such file or directory: './checkpoints/stage_1/pytorch_model.bin.index.json'。 我的一阶段训练output为: image

这个问题我通过将pytorch_model.bin.index.json改为model.safetensors.index.json解决了,但是在这行代码 ckpt = torch.load(os.path.join(args.model_name_or_path, ckpt_name), map_location='cpu') 时出现了 File "./scripts/extract_graph_projector.py", line 39, in ckpt = torch.load(os.path.join(args.model_name_or_path, ckpt_name), map_location='cpu') File "/home/.conda/envs/graphgpt/lib/python3.8/site-packages/torch/serialization.py", line 795, in load return _legacy_load(opened_file, map_location, pickle_module, pickle_load_args) File "/home/.conda/envs/graphgpt/lib/python3.8/site-packages/torch/serialization.py", line 1002, in _legacy_load magic_number = pickle_module.load(f, pickle_load_args) _pickle.UnpicklingError: invalid load key, 'x'. 错误,请问应该如何解决呢?

您好,这边建议是保持原有的模型保存目录文件和extract_projector的逻辑,根据您最初的报错,是否是模型指向目录出错了。

对最初的报错而言,其提示没有找到pytorch_model.bin.index.json,请问该文件是一阶段训练后的output结果中的一部分吗,我在一阶段训练后的output并没有找到该文件

tjb-tech commented 6 months ago

请问pytorch_model.bin.index.json是一阶段训练后的output中所应该包含的结果吗,在进行Extract the Trained Projector时,extract_projector.sh文件运行出现了错误No such file or directory: './checkpoints/stage_1/pytorch_model.bin.index.json'。 我的一阶段训练output为: image

这个问题我通过将pytorch_model.bin.index.json改为model.safetensors.index.json解决了,但是在这行代码 ckpt = torch.load(os.path.join(args.model_name_or_path, ckpt_name), map_location='cpu') 时出现了 File "./scripts/extract_graph_projector.py", line 39, in ckpt = torch.load(os.path.join(args.model_name_or_path, ckpt_name), map_location='cpu') File "/home/.conda/envs/graphgpt/lib/python3.8/site-packages/torch/serialization.py", line 795, in load return _legacy_load(opened_file, map_location, pickle_module, pickle_load_args) File "/home/.conda/envs/graphgpt/lib/python3.8/site-packages/torch/serialization.py", line 1002, in _legacy_load magic_number = pickle_module.load(f, pickle_load_args) _pickle.UnpicklingError: invalid load key, 'x'. 错误,请问应该如何解决呢?

您好,这边建议是保持原有的模型保存目录文件和extract_projector的逻辑,根据您最初的报错,是否是模型指向目录出错了。

对最初的报错而言,其提示没有找到pytorch_model.bin.index.json,请问该文件是一阶段训练后的output结果中的一部分吗,我在一阶段训练后的output并没有找到该文件

pytorch_model.bin.index.json是output的一部分,是索引保存的不同的模型所用的。原版代码是可以正常运行的,您可以通过缩小数据和减少epoch的方式快速重新测试stage1流程,然后看下是否output中有pytorch_model.bin.index.json。有可能是之前训练的时候偶发性没有保存错误。

bamboo-boy commented 6 months ago

请问pytorch_model.bin.index.json是一阶段训练后的output中所应该包含的结果吗,在进行Extract the Trained Projector时,extract_projector.sh文件运行出现了错误No such file or directory: './checkpoints/stage_1/pytorch_model.bin.index.json'。 我的一阶段训练output为: image

这个问题我通过将pytorch_model.bin.index.json改为model.safetensors.index.json解决了,但是在这行代码 ckpt = torch.load(os.path.join(args.model_name_or_path, ckpt_name), map_location='cpu') 时出现了 File "./scripts/extract_graph_projector.py", line 39, in ckpt = torch.load(os.path.join(args.model_name_or_path, ckpt_name), map_location='cpu') File "/home/.conda/envs/graphgpt/lib/python3.8/site-packages/torch/serialization.py", line 795, in load return _legacy_load(opened_file, map_location, pickle_module, pickle_load_args) File "/home/.conda/envs/graphgpt/lib/python3.8/site-packages/torch/serialization.py", line 1002, in _legacy_load magic_number = pickle_module.load(f, pickle_load_args) _pickle.UnpicklingError: invalid load key, 'x'. 错误,请问应该如何解决呢?

您好,这边建议是保持原有的模型保存目录文件和extract_projector的逻辑,根据您最初的报错,是否是模型指向目录出错了。

对最初的报错而言,其提示没有找到pytorch_model.bin.index.json,请问该文件是一阶段训练后的output结果中的一部分吗,我在一阶段训练后的output并没有找到该文件

pytorch_model.bin.index.json是output的一部分,是索引保存的不同的模型所用的。原版代码是可以正常运行的,您可以通过缩小数据和减少epoch的方式快速重新测试stage1流程,然后看下是否output中有pytorch_model.bin.index.json。有可能是之前训练的时候偶发性没有保存错误。

这是我一阶段所产生的output, image ,请问其他内容与您这边是否保持一致呢,或者能否提供给我一份在您这边的原始代码上一阶段产生的output中的文件目录呢

tjb-tech commented 6 months ago

代码

您好,GraphGPT在huggingface的模型仓库就是标准的模型输出:

image

可以看到是有pytorch_model.bin.index.json文件的。

GoldyMoon commented 2 months ago

你好,我想问一下最后解决了嘛