本文将为您介绍如何在 Ubuntu 环境下使用 Docker 拉取 ModelScope 镜像并进行模型推理和微调miniCPM2.6。以下是详细步骤。
首先,确保您的环境已经安装了 Docker。然后,拉取指定的 ModelScope 镜像:
bashdocker pull modelscope-registry.cn-beijing.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.1.0-py310-torch2.3.0-tf2.16.1-1.16.0
接下来,启动 Docker 容器并克隆 SWIFT 仓库:
bashgit clone https://github.com/modelscope/swift.git
docker run -it --gpus device=1 -v /root/xiedong/swift:/root/xiedong/swift modelscope-registry.cn-beijing.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.1.0-py310-torch2.3.0-tf2.16.1-1.16.0 bash
cd /root/xiedong/swift
pip install -e .[llm]
使用 pip 命令安装不同版本的 SWIFT:
bash# 全量能力
pip install 'ms-swift[all]' -U
# 仅使用 LLM
pip install 'ms-swift[llm]' -U
# 仅使用 AIGC
pip install 'ms-swift[aigc]' -U
# 仅使用 Adapters
pip install ms-swift -U
在准备好环境之后,您可以使用以下命令进行模型推理:
bashCUDA_VISIBLE_DEVICES=0 swift infer \ --model_type minicpm-v-v2_6-chat \ --model_id_or_path /root/xiedong/swift/MiniCPM-V-2_6
以下是一些推理示例:
bash<<< 你好 你好!今天我能为您提供什么帮助?
bash<<< <image>描述这张图片
Input an image path or URL <<< http://modelscope-open.oss-cn-hangzhou.aliyuncs.com/images/cat.png
我们可以使用 coco-en-mini
数据集对模型进行微调,该数据集的任务是对图片内容进行描述。
使用多张 GPU 卡:
bashCUDA_VISIBLE_DEVICES=0,1,2,3 NPROC_PER_NODE=4 swift sft \
--model_type minicpm-v-v2_6-chat \
--model_id_or_path OpenBMB/MiniCPM-V-2_6 \
--sft_type lora \
--dataset coco-en-mini#20000 \
--deepspeed default-zero2
使用单张 GPU 卡:
bashCUDA_VISIBLE_DEVICES=0 NPROC_PER_NODE=1 swift sft \
--model_type minicpm-v-v2_6-chat \
--model_id_or_path /root/xiedong/swift/MiniCPM-V-2_6 \
--sft_type lora \
--dataset coco-en-mini#20000 \
--deepspeed default-zero2
如果要使用自定义数据集,只需按以下方式进行指定:
bash--dataset train.jsonl \ --val_dataset val.jsonl \
自定义数据集支持 JSON 和 JSONL 样式,以下是自定义数据集的样例:
json{"query": "<image>55555", "response": "66666", "images": ["image_path"]}
{"query": "eeeee<image>eeeee<image>eeeee", "response": "fffff", "history": [], "images": ["image_path1", "image_path2"]}
{"query": "EEEEE", "response": "FFFFF", "history": [["query1", "response2"], ["query2", "response2"]], "images": []}
微调后推理脚本如下:
bashCUDA_VISIBLE_DEVICES=0 swift infer \
--ckpt_dir output/minicpm-v-v2_6-chat/vx-xxx/checkpoint-xxx \
--load_dataset_config true --merge_lora true
启动 Web UI 以进行交互操作:
bashdocker run -it --gpus device=1 -v /root/xiedong/swift:/root/xiedong/swift --net host kevinchina/deeplearning:swift bash
bashswift web-ui
在进行 LoRA 微调时,以下参数至关重要:
以下是使用一张 GPU 卡进行训练的示例:
bashCUDA_VISIBLE_DEVICES=0 NPROC_PER_NODE=1 swift sft \
--model_type minicpm-v-v2_6-chat \
--model_id_or_path /root/xiedong/swift/MiniCPM-V-2_6 \
--sft_type lora \
--dataset coco-en-mini#20000 \
--deepspeed default-zero2 --lora_rank 512 --lora_alpha 256
(待补充)
(待补充)
以上即为在 Ubuntu 环境下使用 ModelScope 进行模型推理与微调的全过程。希望本博客能够对您有所帮助!
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!