ReSB2-Bi-Encoder

SentenceTransformer model fine-tuned for retrieval of semantically related Brazilian legislative bills.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Maximum Sequence Length: 1500 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 1500, 'do_lower_case': False, 'architecture': 'ModernBertModel'})
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)

Usage

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

pip install -U sentence-transformers

Then you can load this model and run inference.

from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("sentence_transformers_model_id")
# Run inference
sentences = [
    'Dispõe sobre a estabilidade provisória do trabalhador vítima de acidente de trabalho que apresenta redução na capacidade laboral.\n\no congresso nacional decreta\n\nO Congresso Nacional decreta:\nArt. 1º  O art. 118 da Lei 8.213, de 24 de julho de 1991, \npassa a vigorar com a seguinte redação:\n¿Art. 118. ............................................................................\nParágrafo único. A estabilidade referida no ¿caput¿ vigorará \naté a aposentadoria por tempo de contribuição do segurado, na hipótese de este \napresentar redução ou restrição de sua capacidade laboral em razão do acidente \ndo trabalho, independentemente de percepção de auxilio-acidente¿.  \nArt. 2º  Esta lei entra em vigor na data de sua publicação.',
    'Acrescentar o art. 476-B ao Decreto-Lei nº 5.452, de 1º de maio de 1943, para garantir estabilidade ao empregado na cessação do seguro-doença ou auxílio enfermidade e dá outras providências.\n\no congresso nacional decreta\n\nO Congresso Nacional decreta: \n \n \n \nArt. 1º O Decreto-Lei nº 5.452, de 1º de maio de 1943, fica acrescido do \nseguinte Art. 476-B: \nArt. 476-B. Após a cessação do seguro-doença ou auxílio enfermidade, \nquando do retorno ao trabalho, o empregador deverá garantir ao empregado \no mesmo período que esteve afastado nestas situações, a título de \nestabilidade empregatícia. \n \nParágrafo único. Estende-se este direito à estabilidade preconizada, neste \nartigo, às situações previstas na Seção V deste diploma legal, que versa \nsobre a Proteção à Maternidade. \n \nArt. 2º Esta lei entra em vigor na data de sua publicação.',
    'Dispõe sobre a concessão de incentivos fiscais para as indústrias do setor de reciclagem e do setor metal mecânico.\n\no congresso nacional decreta\n\nO Congresso Nacional decreta: \n \n \n \nArt. 1o Fica concedido às empresas que se dediquem à \nreciclagem de vidro, plástico, papel, pneu e metal, os seguintes benefícios \nfiscais do Imposto sobre Produtos Industrializados ¿ IPI e do Imposto sobre a \n \nImportação - II: \n \nI ¿ crédito presumido correspondente ao valor da alíquota \ndo IPI incidente sobre operação promovida por estabelecimento industrial nas \nsaídas dos produtos reciclados; \n \nII ¿ diferimento do IPI e do II incidentes sobre as \nimportações de máquinas, equipamentos, peças, parte s e acessórios \ndestinados a integrar o ativo fixo das empresas, para o momento da alienação \nou eventual saída desses bens; \n \nIII ¿ diferimento do IPI sobre a aquisição, no mercado \ninterno, de máquinas, equipamentos, peças, partes, acessórios e materiais \ndestinados a integrar o ativo fixo das empresas, para o momento da alienação \nou eventual saída desses bens. \n \n§ 1º Nas aquisições internas de máquinas, equipamentos, \npeças, partes e acessórios destinados a integrar o ativo fixo das empresas, o\nCÂMARA DOS DEPUTADOS \n \n \n \nimposto será de responsabilidade do estabelecimento adquirente da \nmercadoria, na qualidade de contribuinte substituto, e recolhido no momento da \nalienação ou saída dos respectivos bens. \n \n \n \n \n§ 2º Nas operações internas de entrada de matérias-\nprimas, produtos intermediários e material de embalagem, o imposto será de \nresponsabilidade do estabelecimento adquirente do produto final, na qualidade \nde contribuinte substituto, e apurado de forma global no momento da venda \ndos produtos fabricados. \n \n§ 3º Os impostos incidentes sobre as importações de \nmatérias-primas, produtos intermediários e material de embalagem serão \napurados de forma global no momento da venda dos produtos fabricados. \n \n§ 4º Perderá o direito ao tratamento tributário previsto \nneste artigo, com a conseqüente restauração da sistemática normal de \napuração dos impostos e a imediata devolução aos cofres públicos, com os \nacréscimos legais devidos, de todos os valores não recolhidos, decorrentes do \nbenefício concedido, o contribuinte que, ao longo do gozo do benefício, \napresentar qualquer irregularidade com relação ao cumprimento das exigências \nprevistas no art. 5º desta lei. \n \n§ 5º Não será permitido às empresas beneficiadas o \naproveitamento de qualquer crédito relativo às operações de entrada de \nmercadorias, \nmatérias-primas, \nprodutos \nintermediários \ne \nmaterial \nde \nembalagem necessários às suas atividades. \n \nArt. 2º As empresas do setor metal mecânico terão \nreduzida as bases de cálculo do IPI e do II, na pro porção de 33,33% (trinta e \ntrês inteiros e trinta e três centésimos por cento) , nas operações de saídas \ninternas. \n \nArt. 3º Os benefícios estabelecidos nesta Lei não s e \naplicam ao contribuinte que: possua débito com o Instituto Nacional do Seguro \nSocial - INSS, ou com a Fazenda Pública Federal, cu ja exigibilidade não esteja \nsuspensa. \n \nArt. 4º Os incentivos fiscais previstos nesta Lei vigorarão\nCÂMARA DOS DEPUTADOS \n \n \n \naté o último dia útil do décimo ano subseqüente ao da data de sua publicação. \n \n \nArt. 5º Esta lei entra em vigor na data de sua publicação.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[ 1.0000,  0.8096,  0.0534],
#         [ 0.8096,  1.0000, -0.0377],
#         [ 0.0534, -0.0377,  1.0000]])

Evaluation

Metrics

Semantic Similarity

Metric Value
pearson_cosine 0.8644
spearman_cosine 0.7286

Training Details

Training Dataset

Unnamed Dataset

  • Size: 40,825 training samples
  • Columns: text1 and text2
  • Approximate statistics based on the first 1000 samples:
    text1 text2
    type string string
    details
    • min: 79 tokens
    • mean: 624.5 tokens
    • max: 1500 tokens
    • min: 81 tokens
    • mean: 560.15 tokens
    • max: 1500 tokens
  • Samples:
    text1 text2
    Cria o Programa Renda Básica Universal

    o congresso nacional decreta

    O CONGRESSO NACIONAL decreta:

    Art. 1º Fica criada a Renda Básica Universal, instrumento de garantia de renda aos
    cidadãos, como instrumento de garantias mínimas para a dignidade humana.

    Art. 2º Para fins de aplicação desta lei são considerados idosos em extrema
    vulnerabilidade que tenham:

    I-
    Entre 60 e 64 anos de idade;

    II-
    Que não possuam fonte de renda ou sua renda não ultrapasse a meio
    salario mínimo.

    Art. 3º Para fins de aplicação desta lei são considerados cidadãos em extrema
    vulnerabilidade as pessoas que:

    I-
    Tenham entre 30 e 59 anos de idade;

    II-
    Sua renda não ultrapasse meio salario mínimo por mês.

    Art. 4º Para fins de aplicação desta lei são considerados jovens vulneráveis as
    pessoas que:


    I-
    Tenham entre 15 e 29 anos de idade;

    II-
    A renda per capta familiar não ultrapasse um salário mínimo;

    Art. 5º Para fins de aplicação desta lei são consideradas crianças vul...
    Fica instituído o programa de renda mínima para todos os brasileiros que tenham renda inferior ao valor do salário mínimo nacional e dá outras providencias

    o congresso nacional decreta

    O CONGRESSO NACIONAL decreta:
    Art. 1° Todos os brasileiros em situação de extrema pobreza e
    vulnerabilidade social receberão um auxilio deste programa no valor de um salário
    mínimo mensal, independentemente de estar recebendo outro benefício social
    § 1º O atual Cadastro Único (CadUnico) servirá como base de dados para
    o pagamento da renda mínima nacional
    § 2º São considerados brasileiros em situação de extrema pobreza:
    I-
    Não tenham fonte de renda;
    II-
    Renda igual ou inferior a meio salário mínimo;
    III-
    Renda per capta familiar que não ultrapasse um salário mínimo;
    Art. 3º As despesas decorrentes desta Lei deverão estar previstas no
    Orçamento da União anualmente.
    Art. 4° Esta lei entra em vigor na data de sua publicação.
    JUSTIFICTIVA
    O Brasil foi inserido novamente no mapa da fome, infeliz...
    Altera a Lei nº 9.503, de 23 de setembro de 1997, que institui o Código de Trânsito Brasileiro, para dispor sobre mensagem de advertência impressa na embalagem dos produtos de telefonia celular comercializados no País.

    o congresso nacional decreta

    O Congresso Nacional decreta:
    Art. 1º Esta lei acrescenta dispositivo ao Capítulo das
    Disposições Gerais e Transitórias da Lei nº 9.503, de 23 de setembro de 1997,
    que institui o Código de Trânsito Brasileiro, para obrigar que a embalagem dos
    produtos de telefonia celular comercializados no País contenha mensagem de
    advertência acerca do risco de acidente de trânsito relacionado ao uso de
    aparelho celular ao volante de veículo automotor.
    Art. 2º A Lei nº 9.503, de 23 de setembro de 1997, que
    institui o Código de Trânsito Brasileiro, passa a vigorar acrescida do seguinte
    art. 315-A:
    “Art. 315-A. A embalagem dos produtos de telefonia
    celular comercializados no País conterá a seguinte mensagem de
    advertência: ‘Importante: Utilizar o telefone c...
    Inclua-se o art. 79-A na Lei nº 9.503, de 23 de setembro de 1997, no sentido de estabelecer campanha contra o uso do celular ao dirigir.

    o congresso nacional decreta

    O Congresso Nacional decreta:
    Art. 1º Esta Lei acrescenta o art. 79-A na Lei nº 9.503, de
    23 de setembro de 1997, Código de Trânsito Brasileiro - CBT, no sentido de
    estabelecer campanha contra o uso do celular ao dirigir.
    Art. 2º Inclua-se o art. 79-A na Lei nº 9.503, de 23 de
    setembro de 1997, com a seguinte redação:
    ¿Art. 79-A Os órgãos e entidades executivos de trânsito
    da União, dos Estados, do Distrito Federal e dos
    Municípios deverão firmar convênio com as operadoras
    móveis de telecomunicações em operação no Brasil com
    o intuito de divulgar campanhas via mensagens curtas de
    texto
    ou
    outros
    serviços
    ou
    funcionalidades
    de
    mensagens
    eletrônicas,
    informando
    o
    número
    de
    acidentes automobilísticos, com ou sem vítimas fatais,
    comprovadamente provocados pelo uso do celular ao
    volante.
    § 1º As me...
    Altera a redação do Código Penal (Decreto-Lei nº 2.848, de 7 de dezembro de 1940) e da Lei de Execuções Penais (Lei 7.210 de 11 de julho de 1984), dispondo sobre o regime de cumprimento de pena, dentre outras providências.

    o congresso nacional decreta

    O Congresso Nacional decreta:
    Art. 1º Esta lei estabelece o regime fechado e o aberto
    para cumprimento da pena privativa de liberdade, bem como altera as
    condições do livramento condicional e do cumprimento de pena no regime
    aberto.
    Art. 2º O art. 33 do Decreto-Lei nº 2.848, de 7 de
    dezembro de 1940 (Código Penal), passa a vigorar com a seguinte redação:
    ¿Art. 33. A pena de reclusão deve ser cumprida em regime
    fechado ou aberto. A de detenção, em regime aberto,
    salvo necessidade de transferência a regime fechado.
    § 1º ......................................................................................
    .............................................................................................
    c) regime aberto a execução ...
    Altera o Decreto-Lei nº 2.848, de 1940.

    o congresso nacional decreta

    O Congresso Nacional decreta:


    Art. 1º Esta Lei altera o Decreto-Lei nº 2.848, de 1940.

    Art. 2º Os incisos I, II e V do art. 83 do Decreto-Lei nº
    2.848, de 1940, passam a vigorar com a seguinte redação:

    ¿Art. 83 - O juiz poderá conceder livramento condicional ao
    condenado a pena privativa de liberdade igual ou superior a 2 (dois)
    anos, desde que:

    I - cumprida mais da metade da pena se o condenado não
    for reincidente em crime doloso e tiver bons antecedentes;

    II - cumpridos mais de dois terços da pena se o condenado
    for reincidente em crime doloso;

    ......................................................................................

    V - cumpridos mais de quatro quintos da pena, nos casos
    de condenação por crime hediondo, prática de tortura, tráfico ilícito
    de entorpecentes e drogas afins, tráfico de pessoas e terrorismo, se
    o apenado não for reincidente específico em crimes dessa ...
  • Loss: MultipleNegativesSymmetricRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "gather_across_devices": false
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 10
  • per_device_eval_batch_size: 10
  • learning_rate: 2e-05
  • weight_decay: 0.01
  • warmup_ratio: 0.1
  • seed: 148937
  • data_seed: 148937
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: epoch
  • prediction_loss_only: True
  • per_device_train_batch_size: 10
  • per_device_eval_batch_size: 10
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 2e-05
  • weight_decay: 0.01
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 3
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 148937
  • data_seed: 148937
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: False
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: False
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • parallelism_config: None
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch_fused
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: None
  • hub_always_push: False
  • hub_revision: None
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • liger_kernel_config: None
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Training Loss eval_spearman_cosine
0.1225 500 0.5793 -
0.2449 1000 0.1086 -
0.3674 1500 0.0876 -
0.4898 2000 0.0712 -
0.6123 2500 0.0544 -
0.7348 3000 0.052 -
0.8572 3500 0.0449 -
0.9797 4000 0.0431 -
1.0 4083 - 0.7142
1.1021 4500 0.0305 -
1.2246 5000 0.0323 -
1.3470 5500 0.035 -
1.4695 6000 0.0289 -
1.5920 6500 0.0297 -
1.7144 7000 0.0254 -
1.8369 7500 0.0273 -
1.9593 8000 0.0225 -
2.0 8166 - 0.7223
2.0818 8500 0.0228 -
2.2043 9000 0.0176 -
2.3267 9500 0.0175 -
2.4492 10000 0.02 -
2.5716 10500 0.0224 -
2.6941 11000 0.021 -
2.8166 11500 0.0188 -
2.9390 12000 0.0155 -
3.0 12249 - 0.7286

Framework Versions

  • Python: 3.9.21
  • Sentence Transformers: 5.1.1
  • Transformers: 4.56.2
  • PyTorch: 2.8.0+cu128
  • Accelerate: 1.4.0
  • Datasets: 3.3.1
  • Tokenizers: 0.22.0

Citation

If you use this model, please cite:

@inproceedings{lage2026resb2,
  title={ReSB²: Machine-Assisted Linking of Legislative Bills using Domain-Adapted ModernBERT and Explainable AI},
  author={Lage, Lucas Gabriel and others},
  booktitle={Proceedings of the ACM Conference on Hypertext and Social Media},
  year={2026}
}

License

The models developed and released in this repository, including the trained ReSB² models, are provided for research and academic purposes.

The use of the underlying pre-trained models is subject to the licenses and terms of use defined by their original providers. Users are responsible for complying with the respective licenses when using, modifying, or redistributing these models.

Acknowledgments

This work was supported by the Legislative Assembly of Minas Gerais (ALMG), CNPq, CAPES, and FAPEMIG.

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

Evaluation results