专栏名称: Hugging Face
The AI community building the future.
目录
相关文章推荐
FM1007福建交通广播  ·  男星大仓忠义宣布结婚,女方已怀孕!公开信:我 ... ·  昨天  
FM1007福建交通广播  ·  男星大仓忠义宣布结婚,女方已怀孕!公开信:我 ... ·  昨天  
51好读  ›  专栏  ›  Hugging Face

在英特尔 Gaudi 2 上加速蛋白质语言模型 ProtST

Hugging Face  · 公众号  ·  · 2024-07-24 10:30

正文


引言

蛋白质语言模型 (Protein Language Models, PLM) 已成为蛋白质结构与功能预测及设计的有力工具。在 2023 年国际机器学习会议 (ICML) 上,MILA 和英特尔实验室联合发布了 ProtST 模型,该模型是个可基于文本提示设计蛋白质的多模态模型。此后,ProtST 在研究界广受好评,不到一年的时间就积累了 40 多次引用,彰显了该工作的影响力。

  • ProtST https://proceedings.mlr.press/v202/xu23t.html

PLM 最常见的任务之一是预测氨基酸序列的亚细胞位置。此时,用户输入一个氨基酸序列给模型,模型会输出一个标签,以指示该序列所处的亚细胞位置。论文表明,ProtST-ESM-1b 的零样本亚细胞定位性能优于最先进的少样本分类器 (如下图)。

为了使 ProtST 更民主化,英特尔和 MILA 对模型进行了重写,以使大家可以通过 Hugging Face Hub 来使用模型。大家可于 此处 下载模型及数据集。

  • 模型地址 https://hf.co/mila-intel

本文将展示如何使用英特尔 Gaudi 2 加速卡及 optimum-habana 开源库高效运行 ProtST 推理和微调。 英特尔 Gaudi 2 是英特尔设计的第二代 AI 加速卡。感兴趣的读者可参阅我们 之前的博文 ,以深入了解该加速卡以及如何通过 英特尔开发者云 使用它。得益于 optimum-habana ,仅需少量的代码更改,用户即可将基于 transformers 的代码移植至 Gaudi 2。

  • 英特尔 Gaudi 2 https://habana.ai/products/gaudi2/
  • 大语言模型快速推理:在 Habana Gaudi2 上推理 BLOOMZ https://hf.co/blog/zh/habana-gaudi-2-bloom
  • 英特尔开发者云 https://cloud.intel.com
  • optimum-habana https://github.com/huggingface/optimum-habana

对 ProtST 进行推理

常见的亚细胞位置包括细胞核、细胞膜、细胞质、线粒体等,你可从 此数据集 中获取全面详细的位置介绍。

  • 数据集地址 https://hf.co/datasets/mila-intel/subloc_template

我们使用 ProtST-SubcellularLocalization 数据集的测试子集来比较 ProtST 在英伟达 A100 80GB PCIe Gaudi 2 两种加速卡上的推理性能。该测试集包含 2772 个氨基酸序列,序列长度范围为 79 至 1999。

你可以使用 此脚本 重现我们的实验,我们以 bfloat16 精度和 batch size 1 运行模型。在英伟达 A100 和英特尔 Gaudi 2 上,我们获得了相同的准确率 (0.44),但 Gaudi 2 的推理速度比 A100 快 1.76 倍。单张 A100 和单张 Gaudi 2 的运行时间如下图所示。

  • 复现脚本 https://github.com/huggingface/optimum-habana/tree/main/examples/protein-folding#single-hpu-inference-for-zero-shot-evaluation

微调 ProtST

针对下游任务对 ProtST 模型进行微调是提高模型准确性的简单且公认的方法。在本实验中,我们专门研究了针对二元定位任务的微调,其是亚细胞定位的简单版,任务用二元标签指示蛋白质是膜结合的还是可溶的。

你可使用 此脚本 重现我们的实验。其中,我们在 ProtST-BinaryLocalization 数据集上以 bfloat16 精度微调 ProtST-ESM1b-for-sequential-classification 。下表展示了不同硬件配置下测试子集的模型准确率,可以发现它们均与论文中发布的准确率 (~92.5%) 相当。

  • 复现脚本 https://github.com/huggingface/optimum-habana/tree/main/examples/protein-folding#multi-hpu-finetune-for-sequence-classification-task
  • ProtST-BinaryLocalization https://hf.co/datasets/mila-intel/ProtST-BinaryLocalization
  • ProtST-ESM1b-for-sequential-classification https://hf.co/mila-intel/protst-esm1b-for-sequential-classification

下图显示了微调所用的时间。可以看到,单张 Gaudi 2 比单张 A100 快 2.92 倍。该图还表明,在 4 张或 8 张 Gaudi 2 加速卡上使用分布式训练可以实现近线性扩展。







请到「今天看啥」查看全文