/ Модель

Характеристики

Контекст
512 токенов
Параметры
136 млн
Лицензия
CC BY 4.0
Архитектура
bert · dense
Опубликована
14 окт 2022

legal-bert-ner-base-cased-ptbr

Разметка токеновТекст → label5 профессий

BERT-модель для извлечения именованных сущностей из юридических текстов на бразильском португальском языке.

1 359скачиваний за 30 дней19лайковвеса обновлены16 мар 2023

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Это модель распознавания именованных сущностей в юридических текстах на бразильском португальском языке. Её разработал dominguesm, дообучив dominguesm/legal-bert-base-cased-ptbr на задаче классификации токенов. Модель построена на BERT, содержит 136,1 млн параметров и обрабатывает контекст длиной до 512 токенов.

Модель выделяет людей, организации, места, временные выражения, законодательные акты и судебную практику. Она предназначена для анализа юридических документов, исследований в области обработки естественного языка и правовых технологий. В README приведены тестовые метрики: общие precision 0,943, recall 0,961 и F1 0,952.

Для обучения использовались юридические документы, предоставленные Федеральным верховным судом Бразилии на условиях LREC 2020. Автор предупреждает о возможной проблеме pipeline с максимальной длиной входной последовательности. Модель распространяется по лицензии CC BY 4.0.

Сценарии применения

  • извлечение имён людей из судебных документов
  • поиск организаций в юридических текстах
  • выделение мест и временных упоминаний в правовых документах
  • распознавание ссылок на законы и судебную практику
  • подготовка юридических документов для анализа и поиска

Ограничения

Модель рассчитана на юридические тексты на бразильском португальском и ограничена контекстом в 512 токенов. README отмечает возможную проблему с параметром максимальной длины при использовании Transformers pipeline.

Для каких профессий подходит5

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

(BERT base) NER model in the legal domain in Portuguese

README under construction

ner-legal-bert-base-cased-ptbr is a NER model (token classification) in the legal domain in Portuguese that was finetuned from the model dominguesm/legal-bert-base-cased-ptbr by using a NER objective.

The model is intended to assist NLP research in the legal field, computer law and legal technology applications. Several legal texts in Portuguese (more information below) were used with the following labels:

  • PESSOA
  • ORGANIZACAO
  • LOCAL
  • TEMPO
  • LEGISLACAO
  • JURISPRUDENCIA

The labels were inspired by the LeNER_br dataset.

Training Dataset

The dataset of ner-legal-bert-base-cased-ptbr include:

  • 971932 examples of miscellaneous legal documents (train split)
  • 53996 examples of miscellaneous legal documents (valid split)
  • 53997 examples of miscellaneous legal documents (test split)

The data used was provided by the BRAZILIAN SUPREME FEDERAL TRIBUNAL, through the terms of use: LREC 2020.

The results of this project do not imply in any way the position of the BRAZILIAN SUPREME FEDERAL TRIBUNAL, all being the sole and exclusive responsibility of the author of the model.

Using the model for inference in production

from transformers import AutoModelForTokenClassification, AutoTokenizer
import torch

# parameters
model_name = "dominguesm/ner-legal-bert-base-cased-ptbr"
model = AutoModelForTokenClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

input_text = "Acrescento que não há de se falar em violação do artigo 114, § 3º, da Constituição Federal, posto que referido dispositivo revela-se impertinente, tratando da possibilidade de ajuizamento de dissídio coletivo pelo Ministério Público do Trabalho nos casos de greve em atividade essencial."

# tokenization
inputs = tokenizer(input_text, max_length=512, truncation=True, return_tensors="pt")
tokens = inputs.tokens()

# get predictions
outputs = model(**inputs).logits
predictions = torch.argmax(outputs, dim=2)

# print predictions
for token, prediction in zip(tokens, predictions[0].numpy()):
    print((token, model.config.id2label[prediction]))

You can use pipeline, too. However, it seems to have an issue regarding to the max_length of the input sequence.

from transformers import pipeline

model_name = "dominguesm/ner-legal-bert-base-cased-ptbr"

ner = pipeline(
    "ner",
    model=model_name
) 

ner(input_text, aggregation_strategy="average")

Training procedure

Hyperparameters

batch, learning rate...

  • per_device_batch_size = 64
  • gradient_accumulation_steps = 2
  • learning_rate = 2e-5
  • num_train_epochs = 3
  • weight_decay = 0.01
  • optimizer = torch.optim.AdamW
  • epsilon = 1e-08
  • lr_scheduler_type = linear

save model & load best model

  • save_total_limit = 3
  • logging_steps = 1000
  • eval_steps = logging_steps
  • evaluation_strategy = 'steps'
  • logging_strategy = 'steps'
  • save_strategy = 'steps'
  • save_steps = logging_steps
  • load_best_model_at_end = True
  • fp16 = True

Training results

Num examples = 971932
Num Epochs = 3
Instantaneous batch size per device = 64
Total train batch size (w. parallel, distributed & accumulation) = 128
Gradient Accumulation steps = 2
Total optimization steps = 22779
Evaluation Infos:
  Num examples = 53996
  Batch size = 128
StepTraining LossValidation LossPrecisionRecallF1 Accuracy
10000.1139000.0570080.8986000.9384440.918090
20000.0528000.0482540.9172430.9411880.929062
30000.0462000.0438330.9197060.9484110.933838
40000.0435000.0397960.9284390.9470580.937656
50000.0414000.0394210.9261030.9528570.939290
60000.0397000.0385990.9223760.9562570.939011
70000.0378000.0364630.9351250.9509370.942964
80000.0359000.0357060.9346380.9541470.944292
90000.0338000.0345180.9403540.9519910.946136
100000.0336000.0334540.9381700.9560970.947049
110000.0327000.0328990.9341300.9594910.946641
120000.0322000.0324770.9374000.9591500.948151
130000.0312000.0332070.9370580.9605060.948637
140000.0314000.0317110.9387650.9597110.949123
150000.0306000.0315190.9404880.9594130.949856
160000.0285000.0316180.9436430.9576930.950616
170000.0280000.0311060.9411090.9606870.950797
180000.0278000.0307120.9428210.9605280.951592
190000.0275000.0305230.9429500.9609470.951864
200000.0274000.0305770.9424620.9617540.952010
210000.0270000.0300250.9444830.9604970.952422
220000.0268000.0301620.9438680.9614180.952562

Validation metrics by Named Entity (Test Dataset)

  • Num examples = 53997
  • overall_precision: 0.9432396865925381
  • overall_recall: 0.9614334116769161
  • overall_f1: 0.9522496545298874
  • overall_accuracy': 0.9894741602608071
LabelPrecisionRecallF1 AccuracyEntity Examples
JURISPRUDENCIA0.87951971155481480.90372752215018440.891459304781031157223
LEGISLACAO0.94053959355290820.95140710285673780.945942136237093484642
LOCAL0.90114954522530040.91323581247796970.907152423385649556740
ORGANIZACAO0.92390281551653040.9549649478452350.9391771163875446183013
PESSOA0.96516852205720370.97385451989082790.9694920661875761193456
TEMPO0.9737046160662950.99188084017990040.9827086882453152186103

Notes

  • For the production of this readme, i used the readme written by Pierre Guillou (available here) as a basis, reproducing some parts entirely.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · token-classification

Можно запустить

Подбираем GPU…

Класс архитектуры
BertForTokenClassification
Ревизия весов
4421092

0 моделей