SuperAPI AI 工具集

ai-for-science-proteinbert

智能体与模型

查看项目

更新于 10-15 17:19

技能介绍

用途:将 ProteinBERT 从 TensorFlow 2.x/Keras 迁移到 PyTorch 2.5.1 + torch_npu 2.5.1,在 Ascend910 与 CANN 8.3.RC1 上部署。模型为 6 层 Conv + GlobalAttention,约 16M 参数,原始框架 TF/Keras。Skill 自包含模型定义、权重转换、推理、微调、精度对比及独立部署包。

主要能力:TF pkl 权重转 PyTorch;提取 local/global embedding;三阶段微调(冻结 lr=1e-2 → 全层 lr=1e-4 → 长序列 seq_len=1024 lr=1e-5);提取 6 层×4 头共 24 个注意力头权重并保存 npz;提供 GPU/NPU 配对脚本与逐层调试工具做数值对比。

使用方式:先 source /home/Ascend/ascend-toolkit/set_env.sh 并设置 ASCEND_RT_VISIBLE_DEVICES;conda 建环境后 pip install torch==2.5.1 torch_npu==2.5.1 等依赖。从 Zenodo 下载 183MB 预训练权重 epoch_92400_sample_23500000.pkl,再运行 python scripts/deploy_toolkit/convert_weights.py --input ... --output ... 完成转换;随后按 scripts/demo_scripts 下配对脚本提取 embedding、微调或可视化。

已验证结果:5 个 benchmark 中以 GPU 为基线,二分类/多分类偏差在 1.3% 以内,回归任务 NPU 偏差方向为正;预训练 embedding 全部 28 层输出 mean/std 偏差 < 1e-4。

限制与注意:TF 与 torch_npu 不可装在同一 conda 环境;需 pyyaml。迁移关键点为 K.dot 对应 einsum 维度、LayerNorm eps 需设为 1e-3、隐藏层收集逻辑与微调 head 输入维度 15599,否则精度错误。未提供官方收费、平台支持范围或额外效果数据。