加载中…
加载中…
Este modelo e um finetune do distilbert-base-uncased para extração de relações causais entre genes em texto biomédico. Foi treinado no dataset GNBR (Gene Network KnowledgeBase and Repository), que contem relações extraídas de literatura científica via análise de dependência sintática.
O objetivo do modelo é servir como extrator causal em pipelines de bioinformática, classificando pares de genes como activates (ativação) ou regulated (regulação) com base no contexto da sentença.
Classificação de sequência (sequence classification) binária:
| Label | ID | Significado |
|---|---|---|
| activates | 0 | Relação de ativação direta (aumento de expressão/atividade) |
| regulated | 1 | Relação de regulação geral (modulação, sem direção explícita) |
O modelo recebe como entrada uma sequência no formato:
GENE1 [SEP] GENE2 [SEP] Sentença contendo ambos os genes
E retorna a probabilidade de a relação entre eles ser activates ou regulated.
O GNBR (Gene Network KnowledgeBase and Repository) e um dataset de relações gene-gene extraídas de ~2 milhões de artigos do PubMed. Ele foi construído pelo Projeto GNBR (Zenodo 3346007) e contém:
| Componente | Descrição |
|---|---|
| Part I | Matriz de distribuição de temas (theme distributions) por caminho de dependência |
| Part II | Caminhos de dependência sintática entre pares de genes |
Os temas originais foram mapeados para as 2 classes finais:
| Tema Original | Classe Final |
|---|---|
| V+, E+, W | activates |
| E, Rg | regulated |
Apos a filtragem e o cruzamento entre Part I e Part II, o dataset final continha 121.839 amostras.
| Parâmetro | Valor |
|---|---|
| Modelo base | distilbert-base-uncased |
| Numero de labels | 2 (activates, regulated) |
| Epochs | 3 |
| Batch size (train) | 32 |
| Batch size (eval) | 32 |
| Learning rate | 3e-5 |
| Max sequence length | 128 |
| Precisao | fp16 (mixed precision) |
| Metrica de selecao | f1_macro |
| Otimizador | AdamW (padrao do Trainer) |
Para viabilizar o treino no Colab, foi feita uma subamostragem balanceada de 15.000 amostras por classe (30.000 total), divididas em:
| Split | Proporção | Tamanho aproximado |
|---|---|---|
| Treino | 80% | ~24.000 |
| Validação | 10% | ~3.000 |
| Teste | 10% | ~3.000 |
Foram utilizadas accuracy e F1-score macro para avaliar o desempenho, com seleção do melhor modelo com base no F1 macro.
from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline
import torch
model_path = "leandronunes/distilbert-re-gene"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForSequenceClassification.from_pretrained(model_path)
# Opção 1: usar a pipeline
relation_extractor = pipeline(
"text-classification",
model=model_path,
tokenizer=model_path,
device=0 if torch.cuda.is_available() else -1,
)
def extrair_relacao_causal(sentence: str, gene1: str, gene2: str):
formatted_input = f"{gene1} [SEP] {gene2} [SEP] {sentence}"
best_prediction = relation_extractor(formatted_input)[0]
return {
"gene_origem": gene1,
"gene_alvo": gene2,
"relacao_predita": best_prediction['label'],
"confianca": round(best_prediction['score'], 4),
}
# Exemplo
resultado = extrair_relacao_causal(
"We found that PKMYT1 significantly activates CDK1 downstream.",
"PKMYT1",
"CDK1",
)
print(resultado)
# {'gene_origem': 'PKMYT1', 'gene_alvo': 'CDK1', 'relacao_predita': 'activates', 'confianca': 0.98}
O modelo espera que os genes e a sentença sejam concatenados com o token especial [SEP] (que o tokenizer do DistilBERT converte automaticamente para [SEP]). A ordem é:
<GENE_ORIGEM> [SEP] <GENE_ALVO> [SEP] <SENTENCA>
activates de regulated. Não cobre outras relações do GNBR (ex: inhibits, binds, upregulates).[SEP]: O formato de entrada e rígido. Se a ordem dos genes for invertida, a predição pode mudar.Este modelo é destinado a:
Não é destinado a: diagnóstico clínico, decisão terapêutica autônoma ou qualquer aplicação que exija validação por especialista humano.
leandronunes/bioformer-ner: Extrator ontológico de entidades biomédicas (CellComp, GO, Complex)leandronunes/distilbert-re-gene: Este modelo (extrator de relações causais)Se você usar este modelo, por favor cite o dataset GNBR:
@article{percha2018gnbr,
title={A global network of biomedical relationships derived from text},
author={Percha, Bethany and Altman, Russ B},
journal={Bioinformatics},
volume={34},
number={15},
pages={2614--2624},
year={2018},
publisher={Oxford University Press}
}
Apache 2.0 (herdada do distilbert-base-uncased).