# Phi-4-multimodal-instruct ## 论文 [Phi-4-Mini Technical Report: Compact yet Powerful Multimodal Language Models via Mixture-of-LoRAs](https://arxiv.org/pdf/2503.01743) ## 模型结构 Phi-4-多模态是一个混合了LoRAs的单一模型,包括在同一表示空间内同时处理的语音、视觉和语言。其结果是一个能够处理文本、音频和视频输入的统一模型——不需要复杂的管道或不同模态的单独模型。Phi-4-multimodal建立在提高效率和可扩展性的新架构之上。它包含了更大的词汇表以改进处理,支持多语言功能,并将语言推理与多模态输入集成在一起。
## 算法原理 Mixture-of-LoRAs(MoA)的新型参数高效调整方法,旨在为LLMs的多任务学习提供更有效的解决方案。MoA通过结合多个领域特定的LoRA(Low-Rank Adaptation)模块,并使用显式路由策略来实现多任务学习,从而减少任务间的干扰,并提高每个单独任务的性能。此外,MoA允许对LoRA模型进行迭代适应,以便快速适应新领域。
## 环境配置 ### Docker(方法一) 推荐使用docker方式运行, 此处提供[光源](https://www.sourcefind.cn/#/service-details)拉取docker镜像的地址与使用步骤 ``` docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.3.0-py3.10-dtk24.04.3-ubuntu20.04 docker run -it --shm-size=1024G -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal:/opt/hyhal --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name phi-4 bash # 为以上拉取的docker的镜像ID替换 git clone http://developer.sourcefind.cn/codes/modelzoo/phi-4-multimodal-instruct_pytorch.git cd /path/your_code_data/ pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ``` Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应。 ### Dockerfile(方法二) 此处提供dockerfile的使用方法 ``` docker build -t phi-4:latest . docker run --shm-size 500g --network=host --name=phi-4 --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v 项目地址(绝对路径):/home/ -v /opt/hyhal:/opt/hyhal:ro -it bash git clone http://developer.sourcefind.cn/codes/modelzoo/phi-4-multimodal-instruct_pytorch.git cd /path/your_code_data/ pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ### Anaconda(方法三) 此处提供本地配置、编译的详细步骤,例如: 关于本项目DCU显卡所需的特殊深度学习库可从[光合](https://developer.sourcefind.cn/tool/)开发者社区下载安装。 ``` DTK驱动:dtk24.04.3 python:3.10 torch:2.3.0 flash-attn:2.6.1 ``` `Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应` 其它非深度学习库参照requirement.txt安装: ``` git clone http://developer.sourcefind.cn/codes/modelzoo/phi-4-multimodal-instruct_pytorch.git cd /path/your_code_data/ pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ## 数据集 在ms-wift中自带测试数据集,使用[AI-ModelScope/LaTeX_OCR](https://www.modelscope.cn/datasets/AI-ModelScope/LaTeX_OCR/summary)数据集,使用脚本自动下载数据集,用于正常训练的完整数据集可参照该数据集格式进行自备。 ## 训练 使用ms-swift框架微调 ``` git clone https://github.com/modelscope/ms-swift.git cd ms-swift pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ### 单机多卡 sh phi4_finetune.sh 可根据需要修改参数。 ``` CUDA_VISIBLE_DEVICES=0,1,2,3 \ swift sft \ --model '/home/wanglch/Phi4/Phi-4-multimodal-instruct' \ --dataset 'AI-ModelScope/LaTeX_OCR:human_handwrite#20000' \ --train_type dummy \ --torch_dtype bfloat16 \ --num_train_epochs 1 \ --per_device_train_batch_size 1 \ --per_device_eval_batch_size 1 \ --learning_rate 1e-4 \ --gradient_accumulation_steps 16 \ --eval_steps 200 \ --save_steps 200 \ --save_total_limit 5 \ --logging_steps 5 \ --max_length 2048 \ --output_dir output \ --warmup_ratio 0.05 \ --dataloader_num_workers 4 ``` ## 推理 ### 单机单卡 文本推理 ``` python phi4_text_inference.py ``` 图片推理 ``` python phi4_vision_inference.py ``` 音频推理 ``` python phi4_speech_inference.py ``` ## result - 文本推理
- 图片推理
- 音频推理
### 精度 无 ## 应用场景 ### 算法类别 `对话问答` ### 热点应用行业 `科研,教育,政府,金融` ## 预训练权重 [microsoft/Phi-4-multimodal-instruct](https://huggingface.co/microsoft/Phi-4-multimodal-instruct) ## 源码仓库及问题反馈 - https://developer.sourcefind.cn/codes/modelzoo/phi-4-multimodal-instruct_pytorch ## 参考资料 - https://github.com/microsoft/PhiCookBook - https://huggingface.co/microsoft/Phi-4-multimodal-instruct