技术深度解析
该实验的技术基础建立在三大支柱上:AMD的ROCm软件栈、支持ROCm的PyTorch框架,以及Hugging Face Transformers库。团队选择了一个基于LLaMA-2的70亿参数模型,该模型已在通用医学文本上预训练,并在MedQA数据集上微调——该数据集包含12,723道来自USMLE Step 2 CK考试的多选题。
ROCm架构与兼容性
ROCm(Radeon Open Compute)是AMD的开源GPU计算平台,类似于NVIDIA的CUDA。使用的关键组件包括:
- HIP(异构计算接口可移植性):一种C++运行时API和内核语言,可将CUDA风格的代码转换为在AMD GPU上运行。团队使用HIPIFY工具自动转换任何剩余的CUDA特定调用。
- MIOpen:AMD的深度学习原语库,提供卷积、激活和其他操作的优化实现。在此次微调中,MIOpen处理了注意力机制和前馈层。
- RCCL(ROCm集体通信库):用于在四块MI250 GPU上进行分布式训练时的多GPU通信。
- Composable Kernel(CK):一个用于编写高性能GPU内核的库,用于优化AMD硬件上的FlashAttention实现。
微调流程采用了QLoRA(量化低秩适应),这是一种参数高效的微调方法,通过将基础模型量化为4位精度并添加小型可训练适配器矩阵来减少内存占用。这使得70亿参数模型能够单块MI250 GPU(64GB HBM2e)上运行,批处理大小为8。团队使用了原生支持ROCm的`bitsandbytes`库进行4位NormalFloat量化。
训练配置与性能
| 指标 | 值 |
|---|---|
| 基础模型 | LLaMA-2-7B(医学预训练) |
| 微调方法 | QLoRA(rank=64, alpha=128) |
| 精度 | 4位NF4基础,BF16适配器 |
| 硬件 | 4x AMD MI250(总计128 GB) |
| 每GPU批处理大小 | 8 |
| 学习率 | 2e-4(余弦调度) |
| 训练步数 | 3,000 |
| 墙钟时间 | 4.2小时 |
| 每GPU峰值内存 | 52 GB |
| MedQA准确率 | 67.3% |
数据要点: 在ROCm上使用QLoRA方法,在四块MI250 GPU上训练4.2小时,达到了67.3%的准确率。这与相同模型和数据集的最佳CUDA方案(69-71%)相差仅2-4个百分点,证明ROCm在无需任何CUDA代码的情况下,能够为临床微调提供有竞争力的性能。
基准对比:ROCm vs. CUDA
| 平台 | GPU | MedQA准确率 | 训练时间(4 GPU) | 云成本(每小时) |
|---|---|---|---|---|
| ROCm | AMD MI250 | 67.3% | 4.2小时 | $12.00 |
| CUDA | NVIDIA A100 80GB | 69.1% | 3.8小时 | $16.50 |
| CUDA | NVIDIA H100 | 70.5% | 2.9小时 | $28.00 |
数据要点: 虽然NVIDIA H100提供了最高的准确率和最快的训练速度,但AMD MI250以A100 73%的云成本,实现了其97.4%的准确率。对于预算有限的医疗机构来说,这种性价比极具吸引力。训练时间的差距部分源于ROCm对自动混合精度(AMP)支持尚不成熟,团队通过手动调优BF16操作缓解了这一问题。
团队在名为`clinical-ai-rocm-finetune`的GitHub仓库中发布了完整工作流,该仓库已获得超过1200颗星。仓库包含用于可重现环境的Dockerfile、HIP化版本的FlashAttention,以及MedQA评估脚本。
关键参与者与案例研究
该实验由加州大学旧金山分校(UCSF)的计算病理学家Elena Vasquez博士领导,并与AMD ROCm开发者关系团队的工程师合作完成。UCSF一直是临床AI部署的先驱,此前曾在NVIDIA硬件上运行用于放射学报告生成的模型。Vasquez博士在项目的README中表示:“我们的目标是证明临床AI不需要专有硬件。如果我们能在AMD GPU上微调一个通过医学考试的模型,那么任何医院都能做到。”
AMD的战略推进
AMD一直在积极吸引AI社区。该公司于2023年底推出的MI300X加速器,拥有192 GB HBM3内存和5.2 TB/s内存带宽——超过了NVIDIA H100的80 GB和3.35 TB/s。然而,软件一直是瓶颈。随着ROCm 6.1的发布,AMD引入了:
- 对PyTorch 2.x的原生支持,包括`torch.compile`
- 通过Composable Kernel改进的`flash_attn`实现
- 与Hugging Face `optimum`的集成,用于量化
临床AI GPU平台对比
| 特性 | AMD MI250 | AMD MI300X | NVIDIA A100 80GB | NVIDIA H100 |
|---|---|---|---|---|
| 内存 | 128 GB HBM2e | 192 GB HBM3 | 80 GB HBM2e | 80 GB HBM3 |
| 内存带宽 | 3.2 TB/s | 5.2 TB/s | 2.0 TB/s | 3.35 TB/s |
| FP16 TFLOPS | 383 | 1,307 | 312 | 989 |
| 互连 | Infinity Fabric | Infin