license: apache-2.0
datasets:
- liuhaotian/LLaVA-Instruct-150K
- Yuanze/Olympus
language:
- en
base_model:
- zhumj34/Mipha-3B
pipeline_tag: image-text-to-text
library_name: transformers
tags:
- transformers
- llm
- lmm
- conversational
- olympus
- llava
- text-generation
- vision-language
Olympus:计算机视觉任务的通用任务路由系统
(CVPR 2025, 亮点论文)

"Olympus:计算机视觉任务的通用任务路由系统"官方实现
♥️ 如果您发现本项目对研究有所帮助,请在GitHub上给我们点亮🌟(https://github.com/yuanze-lin/Olympus)并引用我们的论文📑
📣 最新动态
- [ ] 发布与任务专用模型的集成代码
- [x] 发布训练和推理代码
- [x] 发布Olympus数据集
- [x] 发布Olympus模型
🔅 项目概览
快速开始
🛠️ 环境安装
运行以下命令配置环境:
git clone https://github.com/yuanze-lin/Olympus.git
cd Olympus
conda create -n olympus python==3.10 -y
conda activate olympus
pip install -r requirements.txt
这将创建我们使用的olympus
环境。
下载模型与数据
我们共享收集的Olympus数据集如下:
Olympus_20tasks_all
:包含20个子任务
文件夹下的20个JSON文件,每个文件对应特定任务。您可以通过论文中的路由标记定义识别各JSON文件对应的任务,以及coa.json
提供的行动链数据。这21个JSON文件均包含训练和测试数据。
Olympus.json
:最终微调数据集。
(1) 下载Olympus模型:
python download_olympus.py
模型将保存在ckpts
目录下。
(2) 下载微调数据:
python download_olympus_json.py
JSON数据将保存为train_data
文件夹下的Olympus.json
。注意该文件已合并llava_v1_5_mix665k.json
与我们收集的20个任务数据。
如需手动合并数据,请先创建jsons
文件夹(mkdir jsons
),从Olympus_20tasks_all和llava_v1_5_mix665k.json下载所有JSON文件至jsons
文件夹,然后运行合并脚本:
python scripts/merge_data.py
(3) 下载Mipha-3B微调模型:
python download_mipha_3b.py
模型将保存在ckpts
目录下。
推理演示
运行以下命令进行推理:
model_name=Olympus
MODELDIR=ckpts/$model_name
python predict.py \
--prompt "生成一张毛茸茸的橘猫在窗台上慵懒休息的图像,\
阳光透过玻璃洒落,投射柔和阴影营造温馨氛围。\
接下来能否将猫的颜色改为白色?这个改动会更引人注目。\
随后请基于修改后的图像生成高分辨率3D模型。\
最后请展示一段猫狗在游乐场奔跑的视频。" \
--model-path $MODELDIR \
--temperature 0 \
--conv-mode v0
或直接运行bash predict.sh
。
预期输出示例:
输入提示: 生成一张毛茸茸的橘猫在窗台上慵懒休息的图像,
阳光透过玻璃洒落,投射柔和阴影营造温馨氛围。
接下来能否将猫的颜色改为白色?这个改动会更引人注目。
随后请基于修改后的图像生成高分辨率3D模型。
最后请展示一段猫狗在游乐场奔跑的视频。
输出结果: <image_gen>毛茸茸的橘猫在窗台上慵懒休息,阳光透过玻璃洒落,投射柔和阴影营造温馨氛围。</image_gen>
<image_edit>将猫的颜色改为白色。</image_edit>
<3D_gen_image>基于修改后的图像生成高分辨率3D模型。</3D_gen_image>
<video_gen>猫狗在游乐场奔跑的视频。</video_gen>
修改--prompt
参数可自定义输入提示。
视觉指令微调
请参考此处准备指令微调数据。特别注意将不同数据集的图像存放在train_data
文件夹下。
运行以下命令进行模型微调:
bash scripts/mipha/finetune.sh
性能评估
评估模型在不同基准测试上的表现:
参见评估指南。
请将评估数据置于eval
文件夹。评估脚本位于scripts/mipha/eval/
目录。
例如测试VQAv2数据集表现,运行:
bash scripts/mipha/eval/vqav2.sh
🔮 支持能力(覆盖20项任务)
🏂 多样化应用场景
引用文献
如果您认为Olympus对研究有所帮助,请使用以下BibTeX引用:
@article{lin2024olympus,
title={Olympus: A Universal Task Router for Computer Vision Tasks},
author={Lin, Yuanze and Li, Yunsheng and Chen, Dongdong and Xu, Weijian and Clark, Ronald and Torr, Philip HS},
journal={arXiv preprint arXiv:2412.09612},
year={2024}
}
致谢
本项目基于以下优秀开源工作构建: