/ Модель

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

Контекст
512 токенов
Параметры
138 млн
Архитектура
bert · dense
Опубликована
2 мар 2022

bert-base-turkish-ner-cased

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

Модель BERT для разметки токенов и распознавания именованных сущностей в турецком тексте.

7 083скачиваний за 30 дней23лайкавеса обновлены1 фев 2024

Бенчмарки

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

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

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

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

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

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

savasy/bert-base-turkish-ner-cased — модель на основе BERT, дообученная для распознавания именованных сущностей в турецком тексте. Автор описывает её как простую в использовании NER-модель на базе transfer learning; в README также приведены результаты оценки на двух наборах данных: F1 около 0,925 и 0,953 соответственно. Архитектура — BertForTokenClassification, размер — 137,8 млн параметров, максимальная длина контекста — 512 токенов. Модель принимает текст и возвращает метки для токенов.

Она предназначена для извлечения сущностей из турецких текстов. В README указана базовая модель dbmdz/bert-base-turkish-cased. Репозиторий содержит веса в форматах PyTorch, Safetensors и Flax. Лицензия в предоставленных данных не указана.

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

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

Ограничения

Качество зависит от соответствия входных текстов данным, на которых модель оценивалась; результаты приведены только для двух наборов данных. Лицензия в предоставленной карточке не указана.

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

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

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

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

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

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

Открыть на Hugging Face

For Turkish language, here is an easy-to-use NER application.

** Türkçe için kolay bir python NER (Bert + Transfer Learning) (İsim Varlık Tanıma) modeli...

Citation

Please cite if you use it in your study


@misc{yildirim2024finetuning,
      title={Fine-tuning Transformer-based Encoder for Turkish Language Understanding Tasks}, 
      author={Savas Yildirim},
      year={2024},
      eprint={2401.17396},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}



@book{yildirim2021mastering,
  title={Mastering Transformers: Build state-of-the-art models from scratch with advanced natural language processing techniques},
  author={Yildirim, Savas and Asgari-Chenaghlu, Meysam},
  year={2021},
  publisher={Packt Publishing Ltd}
}

other detail

Thanks to @stefan-it, I applied the followings for training

cd tr-data

for file in train.txt dev.txt test.txt labels.txt do wget https://schweter.eu/storage/turkish-bert-wikiann/$file done

cd .. It will download the pre-processed datasets with training, dev and test splits and put them in a tr-data folder.

Run pre-training After downloading the dataset, pre-training can be started. Just set the following environment variables:

export MAX_LENGTH=128
export BERT_MODEL=dbmdz/bert-base-turkish-cased 
export OUTPUT_DIR=tr-new-model
export BATCH_SIZE=32
export NUM_EPOCHS=3
export SAVE_STEPS=625
export SEED=1

Then run pre-training:

python3 run_ner_old.py --data_dir ./tr-data3 \
--model_type bert \
--labels ./tr-data/labels.txt \
--model_name_or_path $BERT_MODEL \
--output_dir $OUTPUT_DIR-$SEED \
--max_seq_length $MAX_LENGTH \
--num_train_epochs $NUM_EPOCHS \
--per_gpu_train_batch_size $BATCH_SIZE \
--save_steps $SAVE_STEPS \
--seed $SEED \
--do_train \
--do_eval \
--do_predict \
--fp16

Usage

from transformers import pipeline, AutoModelForTokenClassification, AutoTokenizer
model = AutoModelForTokenClassification.from_pretrained("savasy/bert-base-turkish-ner-cased")
tokenizer = AutoTokenizer.from_pretrained("savasy/bert-base-turkish-ner-cased")
ner=pipeline('ner', model=model, tokenizer=tokenizer)
ner("Mustafa Kemal Atatürk 19 Mayıs 1919'da Samsun'a ayak bastı.")

Some results

Data1: For the data above Eval Results:

  • precision = 0.916400580551524
  • recall = 0.9342309684101502
  • f1 = 0.9252298787412536
  • loss = 0.11335893666411284

Test Results:

  • precision = 0.9192058759362955
  • recall = 0.9303010230367262
  • f1 = 0.9247201697271198
  • loss = 0.11182546521618497

Data2: https://github.com/stefan-it/turkish-bert/files/4558187/nerdata.txt The performance for the data given by @kemalaraz is as follows

savas@savas-lenova:~/Desktop/trans/tr-new-model-1$ cat eval_results.txt

  • precision = 0.9461980692049029
  • recall = 0.959309358847465
  • f1 = 0.9527086063783312
  • loss = 0.037054269206847804

savas@savas-lenova:~/Desktop/trans/tr-new-model-1$ cat test_results.txt

  • precision = 0.9458370635631155
  • recall = 0.9588201928530913
  • f1 = 0.952284378344882
  • loss = 0.035431676572445225

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей