库名称: transformers
流水线标签: 图像文本到文本
许可证: mit # 假设为MIT许可证,请核实并根据需要更正
标签:
- 多模态
- 医学影像
- 胸部X光
- 肺炎检测
- 可解释人工智能
- llava
LLaVA-Med v1.5 Mistral胸部X光分析模型
项目页面: SelfSynthX
arXiv论文: 通过自合成数据增强多模态基础模型的认知与可解释性
本模型是基于LLaVA-Med v1.5 Mistral-7B微调的多模态基础模型,专为分析胸部X光图像和检测肺炎而优化,使用了Kaggle的胸部X光图像(肺炎)数据集。
关键细节
- 基础模型: LLaVA-Med v1.5 Mistral-7B
- 数据集: 胸部X光图像(肺炎)
- 创新点:
- 自合成数据: 通过生成人类可理解的诊断见解增强可解释性。
- 领域特定微调: 针对医学影像优化,实现准确的肺炎分类。
- 迭代训练: 利用拒绝采样提升诊断准确性和解释质量。
- 预期用途: 通过详细、可解释的输出辅助胸部X光图像的肺炎诊断。
使用方法
import requests
from PIL import Image
import torch
from transformers import AutoProcessor, LlavaForConditionalGeneration
model_id = "YuchengShi/llava-med-v1.5-mistral-7b-chest-xray"
model = LlavaForConditionalGeneration.from_pretrained(
model_id,
torch_dtype=torch.float16,
low_cpu_mem_usage=True,
).to("cuda")
processor = AutoProcessor.from_pretrained(model_id)
conversation = [
{
"role": "user",
"content": [
{"type": "text", "text": "你能分析这张胸部X光片吗?"},
{"type": "image"},
],
},
]
prompt = processor.apply_chat_template(conversation, add_generation_prompt=True)
image_file = "chest-xray/test1.png"
raw_image = Image.open(requests.get(image_file, stream=True).raw)
inputs = processor(images=raw_image, text=prompt, return_tensors='pt').to("cuda", torch.float16)
output = model.generate(**inputs, max_new_tokens=200, do_sample=False)
print(processor.decode(output[0][2:], skip_special_tokens=True))
训练与评估
- 训练: 在胸部X光图像(肺炎数据集)上使用LoRA进行微调,并结合迭代拒绝采样。
- 评估: 实现了稳健的肺炎分类,并提供了可解释的诊断说明。
引用
如果使用本模型,请引用:
@inproceedings{
shi2025enhancing,
title={通过自合成数据增强多模态基础模型的认知与可解释性},
author={石宇成 and 李全正 and 孙进 and 李翔 and 刘宁浩},
booktitle={第十三届国际学习表征会议},
year={2025},
url={https://openreview.net/forum?id=lHbLpwbEyt}
}