尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Mini-InternVL2-4B-DA-Medical多轮对话实战:掌握history参数,让医学AI真正记住上下文

Mini-InternVL2-4B-DA-Medical多轮对话实战:掌握history参数,让医学AI真正记住上下文 Mini-InternVL2-4B-DA-Medical多轮对话实战掌握history参数让医学AI真正记住上下文【免费下载链接】Mini-InternVL2-4B-DA-Medical项目地址: https://ai.gitcode.com/hf_mirrors/OpenGVLab/Mini-InternVL2-4B-DA-MedicalMini-InternVL2-4B-DA-Medical是 OpenGVLab 推出的医学领域适配版多模态大模型基于开源 InternVL2-4B 在海量医学影像数据上微调而成。本文是一份面向新手的多轮对话实战指南只需掌握history参数就能让医学 AI 记住之前的对话连续完成影像描述与追问获得流畅的问诊式体验。 快速认识 Mini-InternVL2-4B-DA-Medical一句话概括这是一个会看片子的口袋级医学多模态模型。项目说明基座模型InternVL2-4BMini-InternVL 架构领域适配在医学影像数据上专项微调视觉编码器InternViT动态分辨率1~12 个图像块语言骨干Phi-3-mini-128k支持 128K 上下文训练数据PMC-OA、MIMIC-CXR、MedPix、Open-i、Retina Image Bank 等规格4B 参数单卡即可部署模型介绍、全系列尺寸1B / 2B / 4B详见 README.md视觉与语言子模块分别位于 modeling_intern_vit.py 和 modeling_phi3.py。为什么领域适配很关键普通多模态大模型对医学影像只能泛泛而谈而 Mini-InternVL2-4B-DA-Medical 经过医学数据微调在胸片、眼底、病理等影像的描述与问答上明显更专业——相当于通用实习生完成了专科培训。 三步加载模型3分钟上手环境要求transformers4.37.2用AutoModel直接加载权重即可无需训练from transformers import AutoModel, AutoTokenizer model AutoModel.from_pretrained( OpenGVLab/Mini-InternVL2-4B-DA-Medical, torch_dtypetorch.bfloat16, trust_remote_codeTrue ).eval().cuda() tokenizer AutoTokenizer.from_pretrained( OpenGVLab/Mini-InternVL2-4B-DA-Medical, trust_remote_codeTrue, use_fastFalse)两个必配项trust_remote_codeTrue模型依赖自定义建模代码 modeling_internvl_chat.pyuse_fastFalse构建 tokenizer 时必须指定。 理解 history 参数多轮对话的核心机制单轮对话时模型是金鱼记忆——回答完就忘。多轮对话的关键就是model.chat()的history 参数它的结构非常直观一个 (问题, 答案) 元组组成的列表。response, history model.chat(tokenizer, pixel_values, question, generation_config, historyhistory, return_historyTrue)源码逻辑很简洁modeling_internvl_chat.py把history中每一轮对话按顺序重放进对话模板在末尾追加本轮question让模型生成答案将(question, response)追加到history末尾若return_historyTrue同时返回答案和更新后的记忆。 三个参数构成闭环history过去的记忆→question本轮提问→return_historyTrue带出新记忆供下一轮使用。 实战示例医学影像问诊式对话以一张 X 光片为例进行看图 追问的三轮对话generation_config dict(max_new_tokens1024, do_sampleTrue) # 第 1 轮描述图像首轮 historyNone q1 image\nPlease describe the image in detail. response, history model.chat(tokenizer, pixel_values, q1, generation_config, historyNone, return_historyTrue) # 第 2 轮临床追问直接传 history q2 What do these findings suggest clinically? response, history model.chat(tokenizer, pixel_values, q2, generation_config, historyhistory, return_historyTrue) # 第 3 轮继续对话 q3 Please explain it in more accessible language. response, history model.chat(tokenizer, pixel_values, q3, generation_config, historyhistory, return_historyTrue)轮次用户输入要点第 1 轮image 描述请求图片只在这一轮传入question 需含image占位符第 2 轮临床追问不必重传图片也不必写image第 3 轮通俗化解释模型记得第 1 轮看过这张图精髓就在这里图片只传一次。首轮问题里的图像 token 会随 history 一起被重放后续轮次只传文字模型依然知道你在问哪张图。❓ 多轮对话常见问题速查Q1批处理为什么不能用 historybatch_chat()暂不支持多轮对话传入history会直接抛出异常见 modeling_internvl_chat.py。批量场景请用单轮batch_chat多轮场景请用chat循环。Q2每轮都要写image占位符吗不用。仅首轮historyNone时chat()会自动在问题开头补上image\n见 modeling_internvl_chat.py从第二轮起 history 里已包含图像信息无需重复。Q3对话越长会不会越慢会。每轮都要重读完整对话历史输入 token 随轮数增长。换话题时重新开一个空history即可。Q4如何让回答更稳定通过generation_config控制随机性医学场景建议降低do_sample或采用贪心解码输出更专业、更可控。⚠️ 注意事项与技巧环境transformers4.37.2否则加载模型可能报错显存bfloat16 精度下权重约 8 GB叠加上下文开销建议 12 GB 以上显存的单卡部署参数详情见 config.json多图多轮把两张图torch.cat拼接并传入num_patches_list即可连续追问两张图的异同对话模板模型采用phi3-chat模板角色格式与系统消息由 conversation.py 自动处理无需手写。 总结一张表记住 history 用法掌握点用法开新对话historyNone获取记忆return_historyTrue延续对话下一轮传入historyhistoryMini-InternVL2-4B-DA-Medical 用 4B 的轻量参数做到了医学级的图像理解能力而 history 参数正是把一问一答升级为连续问诊的关键。记住这一行代码即可response, history model.chat(tokenizer, pixel_values, question, generation_config, historyhistory, return_historyTrue)【免费下载链接】Mini-InternVL2-4B-DA-Medical项目地址: https://ai.gitcode.com/hf_mirrors/OpenGVLab/Mini-InternVL2-4B-DA-Medical创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表