❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 功能:支持多种医疗任务,包括医学影像处理、报告生成等。
- 技术:基于多模态大型语言模型(MLLM),集成多种医疗工具。
- 性能:在多个医疗任务上优于现有开源方法,甚至超过闭源模型 GPT-4o。
正文(附运行示例)
MMedAgent 是什么
MMedAgent 是专为医疗领域设计的多模态AI智能体,通过整合各种开源医疗模型来管理多种医疗任务。系统包括一个指令调整的多模态大型语言模型(MLLM),作为行动规划器和结果聚合器,以及一套为代理量身定制的医疗工具集合,每个工具都针对医疗领域的特定任务。
MMedAgent 能处理包括 MRI、CT、X 射线等多种医学成像模式,支持临床实践中遇到的多种数据类型。通过理解用户指令和医学影像,生成格式化指令调用特定工具,聚合工具的输出以准确、全面地回复用户。MMedAgent 在多个医疗任务上的性能优于现有的开源方法,甚至超过了闭源模型 GPT-4o。
MMedAgent 的主要功能
- 多模态任务处理:支持接地、分割、分类、医学报告生成(MRG)和检索增强生成(RAG)等多种语言和多模态任务。
- 医疗影像支持:支持 MRI、CT 和 X 射线等多种医学成像模式,适应临床实践中遇到的各种数据类型。
- 工具集成与调用:集成了多个工具,涵盖七个代表性的医疗任务,能根据用户指令选择合适的工具进行调用。
- 指令微调:通过创建指令调整数据集,训练多模态大型语言模型(MLLM)作为动作规划器,理解和执行用户指令。
- 结果聚合:MLLM 作为结果聚合器,将工具的输出与用户的指令和图像结合,生成最终答案。
- 端到端训练:通过自回归目标对生成的序列进行端到端训练,确保模型能使用正确的工具并根据工具结果回答问题。
MMedAgent 的技术原理
- 系统架构:由两个主要部分组成:一个指令调整的多模态大型语言模型(MLLM),作为行动规划器和结果聚合器;以及为代理量身定制的医疗工具集合,每个工具都针对医疗领域的特定任务。
- 工作流程:包括四个步骤:用户提供指令和医疗图像;MLLM 理解指令和图像,生成格式化指令以调用特定工具;执行工具并返回结果;MLLM 将工具的输出与用户指令和图像结合,生成最终答案。
- 指令微调:采用统一的对话格式来确保其作为行动规划器和结果聚合器的角色。在接收到用户输入后,MMedAgent 生成三个部分:Thought(思想)、API Name 和 API Params(API 名称和参数)、Value(价值)。
- 自回归目标训练:通过自回归目标对生成的序列进行端到端训练,确保模型能够使用正确的工具并根据工具的结果回答问题。
如何运行 MMedAgent
1. 克隆仓库
git clone https://github.com/Wangyixinxin/MMedAgent.git
2. 创建环境
cd MMedAgent
conda create -n mmedagent python=3.10 -y
conda activate mmedagent
pip install --upgrade pip
pip install -e .
3. 安装训练所需的额外包
pip install -e ".[train]"
pip install flash-attn --no-build-isolation
4. 下载模型
git lfs install
git clone https://huggingface.co/andy0207/mmedagent
5. 训练模型
deepspeed llava/train/train_mem.py \
--lora_enable True --lora_r 128 --lora_alpha 256 --mm_projector_lr 2e-5 \
--deepspeed ./scripts/zero2.json \
--model_name_or_path ./base_model \
--version v1\
--data_path ./train_data_json/example.jsonl \
--image_folder ./train_images \
--vision_tower openai/clip-vit-large-patch14-336 \
--mm_projector_type mlp2x_gelu \
--mm_vision_select_layer -2 \
--mm_use_im_start_end False \
--mm_use_im_patch_token False \
--image_aspect_ratio pad \
--group_by_modality_length False \
--bf16 True \
--output_dir ./checkpoints/final_model_lora \
--num_train_epochs 30 \
--per_device_train_batch_size 12 \
--per_device_eval_batch_size 1 \
--gradient_accumulation_steps 2 \
--evaluation_strategy "no" \
--save_strategy "steps" \
--save_steps 3000 \
--save_total_limit 2 \
--learning_rate 2e-4 \
--weight_decay 0. \
--warmup_ratio 0.03 \
--lr_scheduler_type "cosine" \
--logging_steps 1 \
--tf32 True \
--model_max_length 2048 \
--gradient_checkpointing True \
--dataloader_num_workers 4 \
--lazy_preprocess True \
--report_to wandb
资源
- 项目官网:https://mimictalk.github.io/
- GitHub 仓库:https://github.com/Wangyixinxin/MMedAgent
- arXiv 技术论文:https://arxiv.org/pdf/2407.02483
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦