中文医学问答与 MRI 分割工作台,覆盖大语言模型微调、评测、Agent 工具编排、异步影像分割及结果复核。
本项目由 PharmaLLM 衍生而来。原仓库侧重医学语言模型的数据处理、微调、评测与 vLLM 服务,本仓库在此基础上增加 Agent 对话、影像分割工作台和科室复核流程。为方便复现,保留相关训练与评测代码;产品界面继续使用 PharmaLLM 品牌。
用户可以上传影像,通过自然语言发起股骨头与髋臼分割,在四视图工作区查看结果,并继续询问任务状态和分割体积。语言模型与分割模型在独立 GPU 进程中运行,应用 API 和任务 Worker 保持独立。
通过浏览器使用医学对话与 MRI 分割工作台,无需在本地安装模型。在线服务由本地 GPU 服务器提供推理支持,经 Cloudflare Tunnel 接入固定域名与 HTTPS。
本仓库发布代码、配置示例与技术文档;模型权重、训练数据和用户文件由部署者单独管理。
本地启动 · 系统与实验说明 · GitHub 上传指南 · 本地 GPU 公网访问方案 · 与原项目的关系
- 医学对话:流式回答、历史会话、有限窗口上下文、可选择对话模型;同会话可追问已完成分割的体积。
- Agent 编排:LangGraph 状态图,先验证工具参数和权限,再创建任务;工具轮次和图步数有上限。
- 影像工作台:NIfTI / DICOM 解析,轴位、冠状位、矢状位和三维分割结果,窗宽窗位、标签叠加、结果下载。
- 自然语言分割:单通道 T1 MRI 的股骨头与髋臼分割;Ask for approval 逐次确认,Full access 对已授权的分割请求自动执行。
- 团队协作:可读团队代号、科室、管理员/医生/审核员;医生提交结果后,审核员在授权范围内复核。
- 工程保障:租户与用户授权、幂等、事务 Outbox、任务租约、SSE 重连、审计与私有文件访问。
上传影像、通过对话发起股骨头与髋臼分割,并查看影像工作区和任务状态。下方为 约 18 秒完整录屏的动图预览,点击可打开 MP4 文件。
| 层次 | 实现 |
|---|---|
| 训练与评测 | Qwen3-8B-Base、PyTorch、Transformers、PEFT、DeepSpeed ZeRO-3;全参数 SFT / LoRA 对照 |
| 语言模型服务 | 独立 vLLM、OpenAI 兼容 HTTP 接口、结构化路由约束 |
| Agent | LangGraph、Pydantic 工具契约、PostgreSQL Checkpointer |
| API 与界面 | FastAPI、Uvicorn、原生 HTML / CSS / JavaScript、SSE、Canvas |
| 持久化与检索 | PostgreSQL、SQLAlchemy、Alembic、pgvector;默认 hash Embedding 仅作工程演示 |
| 长任务 | Redis、Celery、事务 Outbox、领取租约与幂等状态更新 |
| 影像与分割 | NumPy、SciPy、NiBabel、pydicom、独立 nnU-Net 服务、常驻模型进程 |
| 权限与观测 | JWT、Argon2、追加式审计、JSON 日志、OpenTelemetry / 可选 Jaeger |
| 验证与部署 | pytest、Node 前端测试、合成数据浏览器检查、Docker Compose 基础设施、独立 Python 环境 |
下面为 2026-09-24 的离线医学选择题评测:固定数据划分,温度 0,最多生成 8 个新 Token,只输出选项字母。
| 模型 | CMB-Exam(280 题) | MedQA-ZH(3426 题) |
|---|---|---|
| Qwen3-8B-Base | 35.71% | 21.89% |
| PharmaLLM LoRA(r=16) | 56.07% | 81.00% |
| PharmaLLM 全参数 SFT | 58.93% | 81.52% |
在相同评测设置下,LoRA 与全参数 SFT 均较原始 Base 模型提升,全参数 SFT 在两项基准上进一步取得更高正确率。上述指标来自离线选择题测试,用于比较本项目的不同微调方案。评测配置、样本统计与实验记录见模型实验汇总。
从仓库根目录执行。需要 Linux、Python 3.11–3.13(建议 3.12)及 Docker Compose:
cd PharmaLLM_V1.1/agent_app
python3 scripts/init_env.py --mode fake
bash scripts/install.sh
source .venv/bin/activate
docker compose up -d --wait db redis
bash scripts/migrate.sh
python -m pharma_agent.cli seed-demo
python scripts/start_api.py浏览器访问 http://127.0.0.1:8082。fake 为确定性的 CPU 工程演示,不提供真实医学模型能力,也不产生真实分割。使用你自己的模型需按完整启动说明配置独立 vLLM 和 nnU-Net 环境。
PharmaLLM_V1.0/ 数据处理、训练、评测、推理脚本及配置
PharmaLLM_V1.1/agent_app/ Agent、API、界面、迁移、测试、基础设施 Compose
PharmaLLM_V1.1/docs/agent/ 架构、数据模型、权限、任务与运维文档
PharmaLLM_V1.1/model/ 分割模型结构元数据;不含权重
docs/ 公共启动、项目说明、上传及公网访问指南
tools/check_public_repo.py 文件范围、大文件及常见凭据检查
RELEASE_MANIFEST.json 本次整理文件的 SHA-256 清单
后续将围绕 Agent 决策质量、知识接入、影像分析与部署运维持续迭代:
- Agent 与工具调用:完善多场景路由评测、工具参数校验与异常恢复,评估独立路由模型。
- 知识检索与资料接入:接入医学语义 Embedding,完善分块、重排与引用评估,扩展 PDF / OCR 资料导入。
- 上下文管理:增加更精确的 Token 预算与长对话摘要,完善多轮任务指代和业务事实更新。
- 影像任务与结果分析:扩展分割模型和任务配置,完善结构标签、定量分析及分割质量评估。
- 推理与性能:补齐量化复现流程,开展端到端延迟、并发与 GPU 资源配置对照测试。
- 上线与运维:在已接入固定域名与 HTTPS 的基础上,完善进程托管、监控告警和数据备份流程。

