yangheng95 / PyABSA

Sentiment Analysis, Text Classification, Text Augmentation, Text Adversarial defense, etc.;
https://pyabsa.readthedocs.io
MIT License
937 stars 159 forks source link

During training: warnings for ATE Classification Report #394

Open KadriMufti opened 6 months ago

KadriMufti commented 6 months ago

Version

Version: 2.4.1.post1
Summary: This tool provides the state-of-the-art models for aspect term extraction (ATE), aspect polarity classification (APC), and text classification (TC).
Home-page: https://github.com/yangheng95/PyABSA
Author: Yang, Heng
Author-email: hy345@exeter.ac.uk
License: MIT
Location: /usr/local/lib/python3.8/dist-packages
Requires: metric-visualizer, boostaug, networkx, seqeval, torch, sentencepiece, protobuf, update-checker, pytorch-warmup, transformers, tqdm, findfile, pandas, typing-extensions, gitpython, termcolor, spacy, autocuda
Required-by: boostaug
Name: torch
Version: 2.2.1+cu121
Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration
Home-page: https://pytorch.org/
Author: PyTorch Team
Author-email: packages@pytorch.org
License: BSD-3
Location: /usr/local/lib/python3.8/dist-packages
Requires: networkx, sympy, nvidia-cuda-nvrtc-cu12, triton, nvidia-cusolver-cu12, nvidia-cudnn-cu12, nvidia-cufft-cu12, typing-extensions, fsspec, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, nvidia-nccl-cu12, nvidia-nvtx-cu12, jinja2, nvidia-curand-cu12, filelock, nvidia-cuda-runtime-cu12, nvidia-cusparse-cu12
Required-by: trl, torchvision, torchaudio, timm, pytorch-warmup, pyabsa, peft, OpenNMT-py, flash-attn, deepspeed, accelerate
Name: transformers
Version: 4.40.0.dev0
Summary: State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow
Home-page: https://github.com/huggingface/transformers
Author: The Hugging Face team (past and future) with the help of all our contributors (https://github.com/huggingface/transformers/graphs/contributors)
Author-email: transformers@huggingface.co
License: Apache 2.0 License
Location: /usr/local/lib/python3.8/dist-packages
Requires: regex, requests, packaging, pyyaml, filelock, tokenizers, numpy, safetensors, tqdm, huggingface-hub
Required-by: trl, pyabsa, peft

Describe the bug During training I get warnings regarding metrics as seen below (I pasted them in bold font). Why are "Recall and F-score are ill-defined"?

  warnings.warn('{} seems not to be NE tag.'.format(chunk))
/usr/local/lib/python3.8/dist-packages/seqeval/metrics/sequence_labeling.py:171: UserWarning: [CLS] seems not to be NE tag.
  warnings.warn('{} seems not to be NE tag.'.format(chunk))
/usr/local/lib/python3.8/dist-packages/seqeval/metrics/v1.py:57: UndefinedMetricWarning: Recall and F-score are ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))**
[2024-03-29 12:45:21] (2.4.1.post1) 
---------------------------- ATE Classification Report ----------------------------

[2024-03-29 12:45:21] (2.4.1.post1)
               precision    recall  f1-score   support

         ASP     0.0558    0.5437    0.1013      9428
        CLS]     0.0000    0.0000    0.0000         0
        SEP]     1.0000    0.9997    0.9999      3667

   micro avg     0.0895    0.6714    0.1579     13095
   macro avg     0.3519    0.5145    0.3670     13095
weighted avg     0.3202    0.6714    0.3529     13095

[2024-03-29 12:45:21] (2.4.1.post1) 
---------------------------- ATE Classification Report ----------------------------

Code To Reproduce

config.model = ATEPC.ATEPCModelList.FAST_LCF_ATEPC
config.evaluate_begin = 0
config.max_seq_len = 512
config.num_epoch = 50
config.batch_size = 16
config.patience = 10
config.log_step = -1
config.seed = [1]
config.show_metric = True
config.gradient_accumulation_steps = 4
config.verbose = False  # If verbose == True, PyABSA will output the model strcture and several processed data examples

config.pretrained_bert = "MoritzLaurer/mDeBERTa-v3-base-xnli-multilingual-nli-2mil7" 
config.notice = (
    f"This is a finetuned aspect term extraction model, based on {config.pretrained_bert}, using combined Arabic and English data from various sources."  # for memos usage
)

model = config.pretrained_bert.split('/')[-1]
base_path =  f'/app/aspect/code4_pyabsa/NEW_ATEPC_MULTILINGUAL_CHECKPOINT_{model}_3/'
# checkpoint = base_path + get_latest_checkpoint(base_path)
trainer = ATEPC.ATEPCTrainer(
    config=config,
    dataset=my_dataset,
    auto_device=DeviceTypeOption.AUTO, 
    checkpoint_save_mode=2,
    load_aug=False, 
    path_to_save=base_path
)

Expected behavior

I expect the training should continue without problems because I checked my training and test data and there are no errors or mistakes in the formatting.

Screenshots

image

yangheng95 commented 6 months ago

Can paste some of the data instances in your dataset and @me then? It seems to be a data annotation problem.

KadriMufti commented 6 months ago

@yangheng95


حينما O -100
إنتهيت O -100
من O -100
قراءة O -100
الكتاب O -100
وبعد O -100
أن O -100
ضحكت O -100
هممم O -100
تمددت O -100
وانا O -100
أراقب O -100
السقف O -100
في O -100
منزل O -100
جدتي O -100
الجميل O -100
فكرت O -100
كيف O -100
اننا O -100
نخشى O -100
أصلاً O -100
بأن O -100
نعترف O -100
بأننا O -100
تركنا O -100
على O -100
قارعة O -100
الحياة O -100
وحيدات O -100
هممممم O -100
لكن O -100
ماذا O -100
لو O -100
وجدنا O -100
من O -100
يشاركنا O -100
نفس O -100
الأحساس O -100
لا O -100
أحد O -100
يعلن O -100
عن O -100
نفسه O -100
الكل O -100
يخفي O -100
خلف O -100
قناعة O -100
جرحاً O -100
ما O -100
خيبةً O -100
ما O -100
, O -100
طعنةً O -100
ما O -100
,ينتظر O -100
أن O -100
يطمئن O -100
إليك O -100
ليرفع O -100
قناعه O -100
ويعترف O -100
: O -100
ما O -100
أستطعت O -100
أن O -100
أنسى O -100
كتبته O -100
أحلام O -100
بطريقة O -100
العارفة O -100
للشيء O -100
المجربة O -100
للألم O -100
فإستطاعت O -100
أن O -100
توصل O -100
إلينا O -100
الفكرة O -100
حينما O -100
صممت O -100
الميثاق O -100
الذي O -100
قادني O -100
فضولي O -100
لأقرأه O -100
وجدت O -100
أن O -100
أحلام O -100
أخذت O -100
الأمر O -100
على O -100
محمل O -100
الجد O -100
: O -100
أن O -100
أحبّ O -100
كما O -100
لم O -100
تحبّ O -100
امرأة. O -100
و O -100
أن O -100
أكون O -100
جاهزة O -100
للنسيان. O -100
كما O -100
ينسى O -100
الرجال B-ASP neutral
. O -100
من O -100
كتالوج O -100
النسيان O -100
: O -100

قدر O -100
الحب O -100
الخيبة B-ASP negative
لأنه O -100
يولد O -100
بأحلام O -100
شاهقة O -100
أكبر O -100
من O -100
أصحابها O -100
. O -100
أن O -100
الإنسان O -100
العربي O -100
قدري O -100
بطبعه O -100
يترك O -100
للحياة O -100
مهمة O -100
تدبّر O -100
أمره O -100
, O -100
وفي O -100
الحياة O -100
كما O -100
في O -100
الحب O -100
لا O -100
يرى O -100
أبعد O -100
من O -100
يومه O -100
. O -100

قدر O -100
الحب B-ASP negative
الخيبة O -100
لأنه O -100
يولد O -100
بأحلام O -100
شاهقة O -100
أكبر O -100
من O -100
أصحابها O -100
. O -100
أن O -100
الإنسان O -100
العربي O -100
قدري O -100
بطبعه O -100
يترك O -100
للحياة O -100
مهمة O -100
تدبّر O -100
أمره O -100
, O -100
وفي O -100
الحياة O -100
كما O -100
في O -100
الحب O -100
لا O -100
يرى O -100
أبعد O -100
من O -100
يومه O -100
. O -100

قدر O -100
الحب O -100
الخيبة O -100
لأنه O -100
يولد O -100
بأحلام B-ASP negative
شاهقة O -100
أكبر O -100
من O -100
أصحابها O -100
. O -100
أن O -100
الإنسان O -100
العربي O -100
قدري O -100
بطبعه O -100
يترك O -100
للحياة O -100
مهمة O -100
تدبّر O -100
أمره O -100
, O -100
وفي O -100
الحياة O -100
كما O -100
في O -100
الحب O -100
لا O -100
يرى O -100
أبعد O -100
من O -100
يومه O -100
. O -100

قدر O -100
الحب O -100
الخيبة O -100
لأنه O -100
يولد O -100
بأحلام O -100
شاهقة O -100
أكبر O -100
من O -100
أصحابها O -100
. O -100
أن O -100
الإنسان O -100
العربي B-ASP neutral
قدري O -100
بطبعه O -100
يترك O -100
للحياة O -100
مهمة O -100
تدبّر O -100
أمره O -100
, O -100
وفي O -100
الحياة O -100
كما O -100
في O -100
الحب O -100
لا O -100
يرى O -100
أبعد O -100
من O -100
يومه O -100
. O -100

القصيدة O -100
مشكلتها B-ASP negative
في O -100
التناول O -100
مشكلتها O -100
في O -100
البداية O -100
والنهاية O -100
مضامينها O -100
وشكلها O -100
وعديد O -100
من O -100
المسائل O -100

القصيدة O -100
مشكلتها O -100
في O -100
التناول O -100
مشكلتها O -100
في O -100
البداية O -100
والنهاية O -100
مضامينها O -100
وشكلها O -100
وعديد O -100
من O -100
المسائل B-ASP negative

أعترض O -100
على O -100
رأيه O -100
في O -100
تقسيم O -100
رد O -100
فعل O -100
الناس O -100
على O -100
دعوته O -100
( O -100
جماعة B-ASP negative
الاخوان I-ASP negative
) O -100
,, O -100
من O -100
معاداة O -100
من O -100
يعارض O -100
دعوته O -100
و O -100
عدم O -100
إيذاء O -100
من O -100
يكون O -100
محايد O -100
فلا O -100
يعارض O -100
ولا O -100
يتبع O -100
, O -100
و O -100
محبة O -100
من O -100
يؤيد O -100
الدعوة O -100
فهو O -100
في O -100
ذلك O -100
جعلها O -100
و O -100
كأنها O -100
دين O -100
من O -100
عند O -100
الله O -100
. O -100

أعترض O -100
على O -100
رأيه O -100
في O -100
تقسيم O -100
رد O -100
فعل O -100
الناس O -100
على O -100
دعوته O -100
( O -100
جماعة O -100
الاخوان O -100
) O -100
,, O -100
من O -100
معاداة O -100
من O -100
يعارض O -100
دعوته O -100
و O -100
عدم O -100
إيذاء O -100
من O -100
يكون O -100
محايد O -100
فلا O -100
يعارض O -100
ولا O -100
يتبع O -100
, O -100
و O -100
محبة O -100
من O -100
يؤيد O -100
الدعوة B-ASP negative
فهو O -100
في O -100
ذلك O -100
جعلها O -100
و O -100
كأنها O -100
دين O -100
من O -100
عند O -100
الله O -100
. O -100