BioGPT

GitHub
4.5k 480 较难 1 次阅读 4天前MIT语言模型其他
AI 解读 由 AI 自动生成,仅供参考

BioGPT 是一款专为生物医学领域打造的生成式预训练 Transformer 模型,由微软研究院团队开发。它专注于理解和生成专业的生物医学文本,旨在解决通用大模型在处理复杂医学术语、疾病关系及科研文献时准确性不足的问题。

通过在海量的生物医学文献上进行预训练,BioGPT 能够胜任多种高难度任务,包括自动回答医学问题(如 PubMedQA)、抽取药物与疾病间的复杂关系、以及进行专业的文档分类。无论是需要快速梳理文献的研究人员,还是致力于开发医疗辅助应用的开发者,BioGPT 都能提供强有力的支持。

其核心亮点在于“领域专精”。与通用模型不同,BioGPT 深度学习了生物医学特有的语言模式,显著提升了在专业场景下的表现。项目不仅提供了基础预训练模型,还开源了针对问答、关系提取等特定任务微调后的大型模型检查点,并支持通过 Hugging Face 便捷调用。借助 PyTorch 和 fairseq 框架,用户可以轻松将其集成到现有的科研或工程流程中,加速生物医学知识的挖掘与应用。

使用场景

某生物医药公司的研发分析师正试图从海量 PubMed 文献中梳理“某种新型激酶抑制剂与特定耐药突变”之间的复杂关联,以指导下一阶段的药物分子优化。

没有 BioGPT 时

  • 术语理解偏差:通用大模型常将生物医学专有名词(如基因变体、蛋白质结构域)误读为普通词汇,导致提取的关系完全错误。
  • 长文逻辑断裂:面对包含复杂实验数据和多重否定句的长篇摘要,模型难以捕捉跨段落的因果逻辑,无法准确回答“该药物是否对某突变有效”。
  • 人工核查成本高:分析师需逐篇阅读全文并手动标注实体关系,处理几百篇文献往往需要数周时间,严重拖慢研发决策节奏。
  • 生成内容不可用:尝试让通用模型总结综述时,生成的内容常出现“幻觉”,编造不存在的临床数据或引用错误的文献结论。

使用 BioGPT 后

  • 领域知识精准匹配:BioGPT 基于海量生物医学语料预训练,能准确识别并理解复杂的基因 - 药物相互作用术语,确保实体抽取零偏差。
  • 深度推理能力增强:利用针对 PubMedQA 微调的模型,BioGPT 能直接阅读文献上下文,精准推断出药物对特定突变的抑制效果及潜在机制。
  • 自动化流程提效:通过调用 BioGPT 的关系抽取接口(如 RE-DDI 或 RE-DTI 模型),可在几分钟内完成数千篇文献的结构化信息挖掘,效率提升百倍。
  • 专业综述自动生成:BioGPT 生成的文本严格遵循生物医学逻辑,能产出包含准确数据支撑的初步综述草稿,分析师仅需做最终校验即可。

BioGPT 将原本耗时数周的人工文献挖掘工作压缩至小时级,同时显著提升了生物医学信息提取的准确度与专业性。

运行环境要求

操作系统
  • 未说明
GPU

需要 NVIDIA GPU (代码示例中包含 .cuda() 调用),具体型号、显存大小及 CUDA 版本未在文档中明确说明

内存

未说明

依赖
notes必须手动编译并安装 Moses 和 fastBPE 工具,且需设置 MOSES 和 FASTBPE 环境变量指向其安装路径。模型支持通过官方链接或 Hugging Face Hub 下载预训练权重。
python3.10
torch==1.12.0
fairseq==0.12.0
sacremoses
scikit-learn
transformers (可选,用于 Hugging Face 集成)
BioGPT hero image

快速开始

BioGPT

本仓库包含 BioGPT:用于生物医学文本生成与挖掘的生成式预训练 Transformer 的实现,作者为 Renqian Luo、Liai Sun、Yingce Xia、Tao Qin、Sheng Zhang、Hoifung Poon 和 Tie-Yan Liu。

要求与安装

  • PyTorch 版本 == 1.12.0
  • Python 版本 == 3.10
  • fairseq 版本 == 0.12.0:
git clone https://github.com/pytorch/fairseq
cd fairseq
git checkout v0.12.0
pip install .
python setup.py build_ext --inplace
cd ..
  • Moses
git clone https://github.com/moses-smt/mosesdecoder.git
export MOSES=${PWD}/mosesdecoder
  • fastBPE
git clone https://github.com/glample/fastBPE.git
export FASTBPE=${PWD}/fastBPE
cd fastBPE
g++ -std=c++11 -pthread -O3 fastBPE/main.cc -IfastBPE -o fast
  • sacremoses
pip install sacremoses
  • sklearn
pip install scikit-learn

请务必将环境变量 MOSESFASTBPE 分别设置为 Moses 和 fastBPE 的路径,因为后续会用到它们。

快速入门

预训练模型

我们提供了预训练的 BioGPT 模型检查点以及针对下游任务的微调检查点,既可以通过 URL 下载,也可以通过 Hugging Face 🤗 Hub 获取。

模型 描述 URL 🤗 Hub
BioGPT 预训练的 BioGPT 模型检查点 链接 链接
BioGPT-Large 预训练的 BioGPT-Large 模型检查点 链接 链接
BioGPT-QA-PubMedQA-BioGPT 在 PubMedQA 数据集上微调的 BioGPT 问答模型 链接
BioGPT-QA-PubMedQA-BioGPT-Large 在 PubMedQA 数据集上微调的 BioGPT-Large 问答模型 链接
BioGPT-RE-BC5CDR 在 BC5CDR 数据集上微调的 BioGPT 关系抽取模型 链接
BioGPT-RE-DDI 在 DDI 数据集上微调的 BioGPT 关系抽取模型 链接
BioGPT-RE-DTI 在 KD-DTI 数据集上微调的 BioGPT 关系抽取模型 链接
BioGPT-DC-HoC 在 HoC 数据集上微调的 BioGPT 文档分类模型 链接

请下载这些文件并解压到该项目的 checkpoints 文件夹中。

例如:

mkdir checkpoints
cd checkpoints
wget https://msralaphilly2.blob.core.windows.net/release/BioGPT/checkpoints/Pre-trained-BioGPT.tgz?sp=r&st=2023-11-13T15:37:35Z&se=2099-12-30T23:37:35Z&spr=https&sv=2022-11-02&sr=b&sig=3CcG1TOhqJPBhkVutvVn3PtUq0vPyLBgwggUfojypfY%3D
tar -zxvf Pre-trained-BioGPT.tgz

示例用法

在代码中使用预训练的 BioGPT 模型:

import torch
from fairseq.models.transformer_lm import TransformerLanguageModel
m = TransformerLanguageModel.from_pretrained(
        "checkpoints/Pre-trained-BioGPT", 
        "checkpoint.pt", 
        "data",
        tokenizer='moses', 
        bpe='fastbpe', 
        bpe_codes="data/bpecodes",
        min_len=100,
        max_len_b=1024)
m.cuda()
src_tokens = m.encode("COVID-19 is")
generate = m.generate([src_tokens], beam=5)[0]
output = m.decode(generate[0]["tokens"])
print(output)

在代码中使用在 KD-DTI 数据集上微调的 BioGPT 模型进行药物-靶点相互作用预测:

import torch
from src.transformer_lm_prompt import TransformerLanguageModelPrompt
m = TransformerLanguageModelPrompt.from_pretrained(
        "checkpoints/RE-DTI-BioGPT", 
        "checkpoint_avg.pt", 
        "data/KD-DTI/relis-bin",
        tokenizer='moses', 
        bpe='fastbpe', 
        bpe_codes="data/bpecodes",
        max_len_b=1024,
        beam=1)
m.cuda()
src_text="" # 输入文本,例如 PubMed 摘要
src_tokens = m.encode(src_text)
generate = m.generate([src_tokens], beam=args.beam)[0]
output = m.decode(generate[0]["tokens"])
print(output)

更多下游任务,请参阅下文。

下游任务

请参阅 examples 中的相应文件夹:

BC5CDR 上的关系抽取

KD-DTI 上的关系抽取

DDI 上的关系抽取

HoC 上的文档分类

PubMedQA 上的问答

文本生成

Hugging Face 🤗 使用方法

BioGPT 已集成到 Hugging Face 的 transformers 库中,模型检查点也在 Hugging Face Hub 上提供。

您可以直接使用 pipeline 进行文本生成。由于生成过程涉及随机性,我们设置了随机种子以确保结果可复现:

from transformers import pipeline, set_seed
from transformers import BioGptTokenizer, BioGptForCausalLM
model = BioGptForCausalLM.from_pretrained("microsoft/biogpt")
tokenizer = BioGptTokenizer.from_pretrained("microsoft/biogpt")
generator = pipeline('text-generation', model=model, tokenizer=tokenizer)
set_seed(42)
generator("COVID-19 is", max_length=20, num_return_sequences=5, do_sample=True)

以下是如何在 PyTorch 中使用该模型获取给定文本特征的方法:

from transformers import BioGptTokenizer, BioGptForCausalLM
tokenizer = BioGptTokenizer.from_pretrained("microsoft/biogpt")
model = BioGptForCausalLM.from_pretrained("microsoft/biogpt")
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)

束搜索解码:

import torch
from transformers import BioGptTokenizer, BioGptForCausalLM, set_seed

tokenizer = BioGptTokenizer.from_pretrained("microsoft/biogpt")
model = BioGptForCausalLM.from_pretrained("microsoft/biogpt")

sentence = "COVID-19 is"
inputs = tokenizer(sentence, return_tensors="pt")

set_seed(42)

with torch.no_grad():
    beam_output = model.generate(**inputs,
                                 min_length=100,
                                 max_length=1024,
                                 num_beams=5,
                                 early_stopping=True
                                )
tokenizer.decode(beam_output[0], skip_special_tokens=True)

更多信息请参阅 Hugging Face 官网上的 文档

演示

请在 Hugging Face Spaces 上查看以下演示:

许可证

BioGPT 采用 MIT 许可证。该许可证同样适用于预训练模型。

贡献

本项目欢迎贡献和建议。大多数贡献都需要您同意贡献者许可协议(CLA),声明您有权且确实授予我们使用您贡献的权利。详情请访问 https://cla.opensource.microsoft.com。

当您提交拉取请求时,CLA 机器人会自动判断您是否需要提供 CLA,并相应地标记 PR(例如状态检查、评论)。只需按照机器人提供的指示操作即可。对于所有使用我们 CLA 的仓库,您只需完成一次此步骤。

本项目已采纳 微软开源行为准则。更多信息请参阅 行为准则常见问题解答,或如有任何其他疑问或意见,请联系 opencode@microsoft.com

商标

本项目可能包含项目、产品或服务的商标或标识。未经授权使用微软商标或标识须遵守并遵循 微软商标与品牌指南。在本项目的修改版本中使用微软商标或标识不得造成混淆或暗示微软的赞助。任何第三方商标或标识的使用均应遵守其各自的政策。

常见问题

相似工具推荐

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架

PaddleOCR

PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。

74.9k|★★★☆☆|今天
语言模型图像开发框架

awesome-machine-learning

awesome-machine-learning 是一份精心整理的机器学习资源清单,汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点,这份清单按编程语言(如 Python、C++、Go 等)和应用场景(如计算机视觉、自然语言处理、深度学习等)进行了系统化分类,帮助使用者快速定位高质量项目。 它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库,还是资深工程师对比不同语言的技术选型,都能从中获得极具价值的参考。此外,清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源,构建了从学习到实践的全链路支持体系。 其独特亮点在于严格的维护标准:明确标记已停止维护或长期未更新的项目,确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”,awesome-machine-learning 以开源协作的方式持续更新,旨在降低技术探索门槛,让每一位从业者都能高效地站在巨人的肩膀上创新。

72.1k|★☆☆☆☆|2天前
开发框架其他