ms-swift icon indicating copy to clipboard operation
ms-swift copied to clipboard

能否使用自己的测试集对微调后的模型进行批量推理?

Open a2382625920 opened this issue 1 year ago • 18 comments

我希望可以有一个脚本,将自己的数据集放入模型,对微调的模型进行批量预测

a2382625920 avatar Feb 22 '24 02:02 a2382625920

使用vllm, https://github.com/modelscope/swift/blob/main/docs/source/LLM/VLLM%E6%8E%A8%E7%90%86%E5%8A%A0%E9%80%9F%E4%B8%8E%E9%83%A8%E7%BD%B2.md.

Jintao-Huang avatar Feb 22 '24 02:02 Jintao-Huang

inference_vllm中的request_list把所有数据集的内容传入. List[Dict[str, str]]

Jintao-Huang avatar Feb 22 '24 02:02 Jintao-Huang

我是对qwen-vl-chat进行的微调,使用了我自己的图文对进行训练,vllm可以也可以使用我的图文对测试集进行批量推理么?

a2382625920 avatar Feb 22 '24 02:02 a2382625920

哦 不行的... 现在不支持批量推理

Jintao-Huang avatar Feb 22 '24 12:02 Jintao-Huang

那好吧,yi-vl-6B也是不支持的吗?而且训练yi-vl-6B的时候直接在sft.sh中添加--custom_train_dataset_path进行训练报错了 Traceback (most recent call last): File "/root/siton-glusterfs-eaxtsxdfs/hzt/projects/swift/swift/cli/sft.py", line 5, in sft_main() File "/root/siton-glusterfs-eaxtsxdfs/hzt/projects/swift/swift/utils/run_utils.py", line 31, in x_main result = llm_x(args, **kwargs) File "/root/siton-glusterfs-eaxtsxdfs/hzt/projects/swift/swift/llm/sft.py", line 144, in llm_sft td0, tkwargs0 = template.encode(train_dataset[0]) File "/root/siton-glusterfs-eaxtsxdfs/hzt/projects/swift/swift/llm/utils/template.py", line 521, in encode images_path = example['images'] KeyError: 'images'

我也看到你们关于对yi-vl-6B重新对数据集做了一个新的模板,但是直接使用--custom_train_dataset_path进行拓展的话是不是要定义一下拓展数据集的模板,我现在就是希望--custom_train_dataset_path可以直接加载作为yi-vl-6B的数据集。

a2382625920 avatar Feb 23 '24 00:02 a2382625920

我看到你们在dataset.py中有一个针对于yi-vl系列的数据集格式的模板但是那是针对官方的coco-mini-en数据集的,但是自定义数据的快速拓展针对yi-vl系列并没有很好的兼容。

a2382625920 avatar Feb 23 '24 01:02 a2382625920

截屏2024-02-23 13 55 51

https://github.com/modelscope/swift/blob/main/docs/source/LLM/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%8E%E6%8B%93%E5%B1%95.md#-%E6%8E%A8%E8%8D%90%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0%E7%9A%84%E5%BD%A2%E5%BC%8F

Jintao-Huang avatar Feb 23 '24 05:02 Jintao-Huang

好的,感谢,忘记这部分了,我去尝试一下

a2382625920 avatar Feb 23 '24 06:02 a2382625920

我是对qwen-vl-chat进行的微调,使用了我自己的图文对进行训练,vllm可以也可以使用我的图文对测试集进行批量推理么?

vllm推理lora微调的qwen-vl-chat?

xs818818 avatar Feb 24 '24 10:02 xs818818

我所知的是lora合并后是无法使用vllm推理的,目前为跑通的是qwen-vl下的代码能跑lora合并的微调模型

xs818818 avatar Feb 24 '24 10:02 xs818818

多模态模型目前没法使用vllm加速.

Jintao-Huang avatar Feb 25 '24 07:02 Jintao-Huang

yi-vl模型貌似可以用--custom_val_dataset_path数据集批量推理,但推理不全,swift infer命令设置--custom_val_dataset_path参数,只会输出10个推理结果

Sui-Xing avatar Mar 05 '24 01:03 Sui-Xing

只会输出10个推理结果 这个原因是需要设置一下 val_dataset_sample 参数 设置为-1

Jintao-Huang avatar Mar 19 '24 08:03 Jintao-Huang

yi-vl模型貌似可以用--custom_val_dataset_path数据集批量推理,但推理不全,swift infer命令设置--custom_val_dataset_path参数,只会输出10个推理结果

是的,只会输出10个结果

a2382625920 avatar Mar 19 '24 08:03 a2382625920

只会输出10个推理结果 这个原因是需要设置一下 val_dataset_sample 参数 设置为-1

val_dataset_sample参数好像并没有找到可以修改的地方

a2382625920 avatar Mar 19 '24 08:03 a2382625920

inference_vllm中的request_list把所有数据集的内容传入. List[Dict[str, str]]

请问自己的训练数据集应该如何传入呢?这个脚本好像只是传入推理数据集的脚本。

zzisbeauty avatar Apr 01 '24 03:04 zzisbeauty

只会输出10个推理结果 这个原因是需要设置一下 val_dataset_sample 参数 设置为-1

val_dataset_sample参数好像并没有找到可以修改的地方

我使用的命令是 CUDA_VISIBLE_DEVICES=1 swift infer --ckpt_dir checkpoint-XXX --val_dataset_sample -1 --custom_val_dataset_path XXX 可以单独输入测试集进行推理。

不过有一个问题是val_dataset_sample这个参数设置为-1时,我在进行测试推理的条目数量从实际的1500条变为了3000条,每一条推理两次正好翻倍,不清楚这是什么问题。现在我直接指定数量为1500条,就没重复推理的情况

Ash-one avatar Apr 10 '24 03:04 Ash-one

只会输出10个推理结果 这个原因是需要设置一下 val_dataset_sample 参数 设置为-1

val_dataset_sample参数好像并没有找到可以修改的地方

我使用的命令是 CUDA_VISIBLE_DEVICES=1 swift infer --ckpt_dir checkpoint-XXX --val_dataset_sample -1 --custom_val_dataset_path XXX 可以单独输入测试集进行推理。

不过有一个问题是val_dataset_sample这个参数设置为-1时,我在进行测试推理的条目数量从实际的1500条变为了3000条,每一条推理两次正好翻倍,不清楚这是什么问题。现在我直接指定数量为1500条,就没重复推理的情况

你好想请问一下用自己数据集是否会将推理结果自动存储下来的呢

LKAMING97 avatar Apr 24 '24 11:04 LKAMING97

只会输出10个推理结果 这个原因是需要设置一下 val_dataset_sample 参数 设置为-1

val_dataset_sample参数好像并没有找到可以修改的地方

我使用的命令是 CUDA_VISIBLE_DEVICES=1 swift infer --ckpt_dir checkpoint-XXX --val_dataset_sample -1 --custom_val_dataset_path XXX 可以单独输入测试集进行推理。

不过有一个问题是val_dataset_sample这个参数设置为-1时,我在进行测试推理的条目数量从实际的1500条变为了3000条,每一条推理两次正好翻倍,不清楚这是什么问题。现在我直接指定数量为1500条,就没重复推理的情况

该问题是之前版本的bug, 应该在之后不久已经修复. 请使用最新版本的ms-swift以使用更多功能

Jintao-Huang avatar Jul 13 '24 13:07 Jintao-Huang

只会输出10个推理结果 这个原因是需要设置一下 val_dataset_sample 参数 设置为-1

val_dataset_sample参数好像并没有找到可以修改的地方

我使用的命令是 CUDA_VISIBLE_DEVICES=1 swift infer --ckpt_dir checkpoint-XXX --val_dataset_sample -1 --custom_val_dataset_path XXX 可以单独输入测试集进行推理。 不过有一个问题是val_dataset_sample这个参数设置为-1时,我在进行测试推理的条目数量从实际的1500条变为了3000条,每一条推理两次正好翻倍,不清楚这是什么问题。现在我直接指定数量为1500条,就没重复推理的情况

你好想请问一下用自己数据集是否会将推理结果自动存储下来的呢

是的,会进行保存。在模型checkpoint的文件夹下。具体路径位置会在命令行中进行打印

Jintao-Huang avatar Jul 13 '24 13:07 Jintao-Huang