DistilBERT-RE-Gene: Extração de Relações Causais Gene-Gene

Descrição

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.

Tarefa

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.

Dados de Treino: GNBR

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.

Procedimento de Treino

Hiperparâmetros

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)

Subamostragem

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

Métricas

Foram utilizadas accuracy e F1-score macro para avaliar o desempenho, com seleção do melhor modelo com base no F1 macro.

Uso

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}

Entrada Esperada

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>

Limitações

  • Binário: O modelo só distingue activates de regulated. Não cobre outras relações do GNBR (ex: inhibits, binds, upregulates).
  • Dependência do [SEP]: O formato de entrada e rígido. Se a ordem dos genes for invertida, a predição pode mudar.
  • Contexto limitado: Maximo de 128 tokens. Sentenças longas sao truncadas.
  • Subamostragem: Treinado em 30.000 amostras (de 121.839 disponíveis). Retreinar com o dataset completo pode melhorar o desempenho.
  • Idioma: Treinado predominantemente em inglês científico.
  • Espécie-agnóstico: O modelo não distingue genes de diferentes espécies (humano, zebrafish, etc.).

Uso Pretendido

Este modelo é destinado a:

  • Extração de relações causais gene-gene em pipelines de NLP biomédico
  • Alimentação de grafos de conhecimento e bases de dados de interações gênicas
  • Pré-processamento para sistemas de RAG científico
  • Validação automática de hipóteses causais geradas por LLMs

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.

Modelos Relacionados

  • leandronunes/bioformer-ner: Extrator ontológico de entidades biomédicas (CellComp, GO, Complex)
  • leandronunes/distilbert-re-gene: Este modelo (extrator de relações causais)

Citação

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}
}

Licença

Apache 2.0 (herdada do distilbert-base-uncased).

Downloads last month
23
Safetensors
Model size
67M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for leandronunes/distilbert-re-gene

Finetuned
(12787)
this model