From cb410e8830a045d9dbc2b83253213e0e7fbfa751 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Wed, 11 Dec 2024 01:27:53 +0300
Subject: [PATCH 01/29] Create token_classification.md
---
docs/source/ar/tasks/token_classification.md | 551 +++++++++++++++++++
1 file changed, 551 insertions(+)
create mode 100644 docs/source/ar/tasks/token_classification.md
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
new file mode 100644
index 000000000000..05f0dfe93316
--- /dev/null
+++ b/docs/source/ar/tasks/token_classification.md
@@ -0,0 +1,551 @@
+
+
+# تصنيف الرموز(Token classification)
+
+[[open-in-colab]]
+
+
+
+يُكلف تصنيف الرموز بتعيين تسمية إلى رموز فردية في جملة. واحدة من أكثر مهام تصنيف الرموز شيوعًا هي التعرف على الكيانات المسماة (NER). تحاول NER إيجاد تسمية لكل كيان في جملة، مثل شخص، أو موقع، أو منظمة.
+
+سيوضح لك هذا الدليل كيفية:
+
+1. ضبط [DistilBERT](https://huggingface.co/distilbert/distilbert-base-uncased) على مجموعة بيانات [WNUT 17](https://huggingface.co/datasets/wnut_17) للكشف عن كيانات جديدة.
+2. استخدام نموذج الضبط الدقيق الخاص بك للاستنتاج.
+
+
+
+لرؤية جميع البنى والنقاط المتوافقة مع هذه المهمة، نوصي بالتحقق من [صفحة المهمة](https://huggingface.co/tasks/token-classification).
+
+
+
+قبل أن تبدأ، تأكد من تثبيت جميع المكتبات الضرورية:
+
+```bash
+pip install transformers datasets evaluate seqeval
+```
+
+نحن نشجعك على تسجيل الدخول إلى حساب HuggingFace الخاص بك حتى تتمكن من تحميل ومشاركة نموذجك مع المجتمع. عندما يُطلب منك، أدخل رمزك لتسجيل الدخول:
+
+```py
+>>> from huggingface_hub import notebook_login
+
+>>> notebook_login()
+```
+
+## تحميل مجموعة بيانات WNUT 17
+
+ابدأ بتحميل مجموعة بيانات WNUT 17 من مكتبة 🤗 Datasets:
+
+```py
+>>> from datasets import load_dataset
+
+>>> wnut = load_dataset("wnut_17")
+```
+
+ثم ألق نظرة على مثال:
+
+```py
+>>> wnut["train"][0]
+{'id': '0',
+ 'ner_tags': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0],
+ 'tokens': ['@paulwalk', 'It', "'s", 'the', 'view', 'from', 'where', 'I', "'m", 'living', 'for', 'two', 'weeks', '.', 'Empire', 'State', 'Building', '=', 'ESB', '.', 'Pretty', 'bad', 'storm', 'here', 'last', 'evening', '.']
+}
+```
+
+يمثل كل رقم في `ner_tags` كيان. قم بتحويل الأرقام إلى أسماء التصنيفات لمعرفة ماهية الكيانات:
+
+```py
+>>> label_list = wnut["train"].features[f"ner_tags"].feature.names
+>>> label_list
+[
+ "O",
+ "B-corporation",
+ "I-corporation",
+ "B-creative-work",
+ "I-creative-work",
+ "B-group",
+ "I-group",
+ "B-location",
+ "I-location",
+ "B-person",
+ "I-person",
+ "B-product",
+ "I-product",
+]
+```
+
+يشير الحرف الذي يسبق كل `ner_tag` إلى موضع الرمز للكيان:
+
+- `B-` يشير إلى بداية كيان.
+- `I-` يشير إلى أن الرمز موجود داخل نفس الكيان (على سبيل المثال، الرمز `State` هو جزء من كيان مثل `Empire State Building`).
+- `0` يشير إلى أن الرمز لا يتوافق مع أي كيان.
+
+## المعالجة المسبقة(Preprocess)
+
+
+
+الخطوة التالية هي تحميل مجزء النصوص DistilBERT للمعالجة المسبقة لحقل `tokens`:
+
+```py
+>>> from transformers import AutoTokenizer
+
+>>> tokenizer = AutoTokenizer.from_pretrained("distilbert/distilbert-base-uncased")
+```
+
+كما رأيت في حقل `tokens` المثال أعلاه، يبدو أن الإدخال قد تم تحليله بالفعل. لكن الإدخال لم يتم تجزئته بالفعل بعد وسيتعين عليك تعيين `is_split_into_words=True` لتحليل الكلمات إلى كلمات فرعية. على سبيل المثال:
+
+```py
+>>> example = wnut["train"][0]
+>>> tokenized_input = tokenizer(example["tokens"], is_split_into_words=True)
+>>> tokens = tokenizer.convert_ids_to_tokens(tokenized_input["input_ids"])
+>>> tokens
+['[CLS]', '@', 'paul', '##walk', 'it', "'", 's', 'the', 'view', 'from', 'where', 'i', "'", 'm', 'living', 'for', 'two', 'weeks', '.', 'empire', 'state', 'building', '=', 'es', '##b', '.', 'pretty', 'bad', 'storm', 'here', 'last', 'evening', '.', '[SEP]']
+```
+
+ومع ذلك، يضيف هذا بعض الرموز الخاصة `[CLS]` و`[SEP]` وتحليل الكلمات الفرعية يخلق عدم تطابق بين الإدخال والتسميات. قد يتم تقسيم كلمة واحدة تقابل تسمية واحدة الآن إلى كلمتين فرعيتين. ستحتاج إلى إعادة محاذاة الرموز والتسميات عن طريق:
+
+1. تعيين جميع الرموز إلى كلماتهم المقابلة مع طريقة [`word_ids`](https://huggingface.co/docs/transformers/main_classes/tokenizer#transformers.BatchEncoding.word_ids).
+2. تعيين التسمية `-100` إلى الرموز الخاصة `[CLS]` و`[SEP]` بحيث يتم تجاهلها بواسطة دالة الخسارة PyTorch (انظر [CrossEntropyLoss](https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html)).
+3. تسمية الرمز الأول فقط لكلمة معينة. قم بتعيين `-100` إلى الرموز الفرعية الأخرى من نفس الكلمة.
+
+هنا كيف يمكنك إنشاء وظيفة لإعادة محاذاة الرموز والتسميات، وقص السلاسل لتكون أطول من طول الإدخال الأقصى لـ DistilBERT:
+
+```py
+>>> def tokenize_and_align_labels(examples):
+... tokenized_inputs = tokenizer(examples["tokens"], truncation=True, is_split_into_words=True)
+
+... labels = []
+... for i, label in enumerate(examples[f"ner_tags"]):
+... word_ids = tokenized_inputs.word_ids(batch_index=i) # تعيين الرموز إلى كلماتهم المقابلة.
+... previous_word_idx = None
+... label_ids = []
+... for word_idx in word_ids: # تعيين الرموز الخاصة إلى -100.
+... if word_idx is None:
+... label_ids.append(-100)
+... elif word_idx != previous_word_idx: # تسمية الرمز الأول فقط لكلمة معينة.
+... label_ids.append(label[word_idx])
+... else:
+... label_ids.append(-100)
+... previous_word_idx = word_idx
+... labels.append(label_ids)
+
+... tokenized_inputs["labels"] = labels
+... return tokenized_inputs
+```
+
+لتطبيق وظيفة المعالجة المسبقة على مجموعة البيانات بأكملها، استخدم وظيفة [`~datasets.Dataset.map`] لمجموعة بيانات 🤗. يمكنك تسريع وظيفة `map` عن طريق تعيين `batched=True` لمعالجة عناصر متعددة من مجموعة البيانات في وقت واحد:
+
+```py
+>>> tokenized_wnut = wnut.map(tokenize_and_align_labels, batched=True)
+```
+
+الآن قم بإنشاء دفعة من الأمثلة باستخدام [`DataCollatorWithPadding`]. من الأكثر كفاءة *التحديد الديناميكي* للجمل إلى أطول طول في دفعة أثناء التجميع، بدلاً من تحديد مجموعة البيانات بالكامل إلى الطول الأقصى.
+
+
+
+```py
+>>> from transformers import DataCollatorForTokenClassification
+
+>>> data_collator = DataCollatorForTokenClassification(tokenizer=tokenizer)
+```
+
+
+```py
+>>> from transformers import DataCollatorForTokenClassification
+
+>>> data_collator = DataCollatorForTokenClassification(tokenizer=tokenizer, return_tensors="tf")
+```
+
+
+
+## التقييم(Evaluate)
+
+غالبًا ما يكون تضمين مقياس أثناء التدريب مفيدًا لتقييم أداء نموذجك. يمكنك تحميل طريقة تقييم بسرعة مع مكتبة 🤗 [Evaluate](https://huggingface.co/docs/evaluate/index). لهذه المهمة، قم بتحميل إطار [seqeval](https://huggingface.co/spaces/evaluate-metric/seqeval) (انظر جولة 🤗 Evaluate [quick tour](https://huggingface.co/docs/evaluate/a_quick_tour) لمعرفة المزيد حول كيفية تحميل وحساب مقياس). ينتج seqeval في الواقع العديد من الدرجات: الدقة، والاستدعاء، وF1، والدقة.
+
+```py
+>>> import evaluate
+
+>>> seqeval = evaluate.load("seqeval")
+```
+
+احصل على تسميات الكيانات المسماة (NER) أولاً، ثم قم بإنشاء دالة تمرر تنبؤاتك وتسمياتك الصحيحة إلى [`~evaluate.EvaluationModule.compute`] لحساب الدرجات:
+
+```py
+>>> import numpy as np
+
+>>> labels = [label_list[i] for i in example[f"ner_tags"]]
+
+>>> def compute_metrics(p):
+... predictions, labels = p
+... predictions = np.argmax(predictions, axis=2)
+
+... true_predictions = [
+... [label_list[p] for (p, l) in zip(prediction, label) if l != -100]
+... for prediction, label in zip(predictions, labels)
+... ]
+... true_labels = [
+... [label_list[l] for (p, l) in zip(prediction, label) if l != -100]
+... for prediction, label in zip(predictions, labels)
+... ]
+
+... results = seqeval.compute(predictions=true_predictions, references=true_labels)
+... return {
+... "precision": results["overall_precision"],
+... "recall": results["overall_recall"],
+... "f1": results["overall_f1"],
+... "accuracy": results["overall_accuracy"],
+... }
+```
+
+دالة `compute_metrics` الخاصة بك جاهزة الآن، وستعود إليها عند إعداد تدريبك.
+
+## التدريب(Train)
+
+قبل البدء في تدريب نموذجك، قم بإنشاء خريطة للتعريفات المتوقعة إلى تسمياتها باستخدام `id2label` و`label2id`:
+
+```py
+>>> id2label = {
+... 0: "O",
+... 1: "B-corporation",
+... 2: "I-corporation",
+... 3: "B-creative-work",
+... 4: "I-creative-work",
+... 5: "B-group",
+... 6: "I-group",
+... 7: "B-location",
+... 8: "I-location",
+... 9: "B-person",
+... 10: "I-person",
+... 11: "B-product",
+... 12: "I-product",
+... }
+>>> label2id = {
+... "O": 0,
+... "B-corporation": 1,
+... "I-corporation": 2,
+... "B-creative-work": 3,
+... "I-creative-work": 4,
+... "B-group": 5,
+... "I-group": 6,
+... "B-location": 7,
+... "I-location": 8,
+... "B-person": 9,
+... "I-person": 10,
+... "B-product": 11,
+... "I-product": 12,
+... }
+```
+
+
+
+
+
+إذا لم تكن على دراية بتعديل نموذج باستخدام [`Trainer`], ألق نظرة على الدليل التعليمي الأساسي [هنا](../training#train-with-pytorch-trainer)!
+
+
+
+أنت مستعد الآن لبدء تدريب نموذجك! قم بتحميل DistilBERT مع [`AutoModelForTokenClassification`] إلى جانب عدد التصنيفات المتوقعة، وتخطيطات التسميات:
+
+```py
+>>> from transformers import AutoModelForTokenClassification, TrainingArguments, Trainer
+
+>>> model = AutoModelForTokenClassification.from_pretrained(
+... "distilbert/distilbert-base-uncased", num_labels=13, id2label=id2label, label2id=label2id
+... )
+```
+
+في هذه المرحلة، هناك ثلاث خطوات فقط متبقية:
+
+1. حدد معلمات التدريب الخاصة بك في [`TrainingArguments`]. المعامل الوحيد المطلوب هو `output_dir` الذي يحدد مكان حفظ نموذجك. ستقوم بدفع هذا النموذج إلى Hub عن طريق تعيين `push_to_hub=True` (يجب أن تكون مسجلاً الدخول إلى Hugging Face لتحميل نموذجك). في نهاية كل حقبة، سيقوم [`Trainer`] بتقييم درجات seqeval وحفظ نقطة تفتيش التدريب.
+2. قم بتمرير معاملات التدريب إلى [`Trainer`] إلى جانب النموذج، ومجموعة البيانات، والمحلل اللغوي، و`data collator`، ودالة `compute_metrics`.
+3. قم باستدعاء [`~Trainer.train`] لتعديل نموذجك.
+
+```py
+>>> training_args = TrainingArguments(
+... output_dir="my_awesome_wnut_model",
+... learning_rate=2e-5,
+... per_device_train_batch_size=16,
+... per_device_eval_batch_size=16,
+... num_train_epochs=2,
+... weight_decay=0.01,
+... eval_strategy="epoch",
+... save_strategy="epoch",
+... load_best_model_at_end=True,
+... push_to_hub=True,
+... )
+
+>>> trainer = Trainer(
+... model=model,
+... args=training_args,
+... train_dataset=tokenized_wnut["train"],
+... eval_dataset=tokenized_wnut["test"],
+... processing_class=tokenizer,
+... data_collator=data_collator,
+... compute_metrics=compute_metrics,
+... )
+
+>>> trainer.train()
+```
+
+بمجرد اكتمال التدريب، شارك نموذجك على Hub باستخدام طريقة [`~transformers.Trainer.push_to_hub`] حتى يتمكن الجميع من استخدام نموذجك:
+
+```py
+>>> trainer.push_to_hub()
+```
+
+
+
+
+إذا لم تكن على دراية بتعديل نموذج باستخدام Keras، ألق نظرة على الدليل التعليمي الأساسي [هنا](../training#train-a-tensorflow-model-with-keras)!
+
+
+للتعديل على نموذج في TensorFlow، ابدأ بإعداد دالة محسن، وجدول معدل التعلم، وبعض معلمات التدريب:
+
+```py
+>>> from transformers import create_optimizer
+
+>>> batch_size = 16
+>>> num_train_epochs = 3
+>>> num_train_steps = (len(tokenized_wnut["train"]) // batch_size) * num_train_epochs
+>>> optimizer, lr_schedule = create_optimizer(
+... init_lr=2e-5,
+... num_train_steps=num_train_steps,
+... weight_decay_rate=0.01,
+... num_warmup_steps=0,
+... )
+```
+
+ثم يمكنك تحميل DistilBERT مع [`TFAutoModelForTokenClassification`] إلى جانب عدد التسميات المتوقعة، وتخطيطات التسميات:
+
+```py
+>>> from transformers import TFAutoModelForTokenClassification
+
+>>> model = TFAutoModelForTokenClassification.from_pretrained(
+... "distilbert/distilbert-base-uncased", num_labels=13, id2label=id2label, label2id=label2id
+... )
+```
+
+قم بتحويل مجموعات بياناتك إلى تنسيق `tf.data.Dataset` مع [`~transformers.TFPreTrainedModel.prepare_tf_dataset`]:
+
+```py
+>>> tf_train_set = model.prepare_tf_dataset(
+... tokenized_wnut["train"],
+... shuffle=True,
+... batch_size=16,
+... collate_fn=data_collator,
+... )
+
+>>> tf_validation_set = model.prepare_tf_dataset(
+... tokenized_wnut["validation"],
+... shuffle=False,
+... batch_size=16,
+... collate_fn=data_collator,
+... )
+```
+
+قم بتهيئة النموذج للتدريب مع [`compile`](https://keras.io/api/models/model_training_apis/#compile-method). لاحظ أن نماذج Transformers لديها جميعها دالة خسارة ذات صلة بالمهمة بشكل افتراضي، لذلك لا تحتاج إلى تحديد واحدة ما لم ترغب في ذلك:
+
+```py
+>>> import tensorflow as tf
+
+>>> model.compile(optimizer=optimizer) # No loss argument!
+```
+
+آخر أمرين يجب إعدادهما قبل بدء التدريب هو حساب درجات seqeval من التنبؤات، وتوفير طريقة لدفع نموذجك إلى Hub. يتم ذلك باستخدام [Keras callbacks](../main_classes/keras_callbacks).
+
+مرر دالة `compute_metrics` الخاصة بك إلى [`~transformers.KerasMetricCallback`]:
+
+```py
+>>> from transformers.keras_callbacks import KerasMetricCallback
+
+>>> metric_callback = KerasMetricCallback(metric_fn=compute_metrics, eval_dataset=tf_validation_set)
+```
+
+حدد مكان دفع نموذجك والمحلل اللغوي في [`~transformers.PushToHubCallback`]:
+
+```py
+>>> from transformers.keras_callbacks import PushToHubCallback
+
+>>> push_to_hub_callback = PushToHubCallback(
+... output_dir="my_awesome_wnut_model",
+... tokenizer=tokenizer,
+... )
+```
+
+ثم قم بتجميع مكالماتك معًا:
+
+```py
+>>> callbacks = [metric_callback, push_to_hub_callback]
+```
+
+أخيرًا، أنت مستعد الآن لبدء تدريب نموذجك! قم باستدعاء [`fit`](https://keras.io/api/models/model_training_apis/#fit-method) مع مجموعات بيانات التدريب والتحقق، وعدد الحقبات، ومكالماتك لتعديل النموذج:
+
+```py
+>>> model.fit(x=tf_train_set, validation_data=tf_validation_set, epochs=3, callbacks=callbacks)
+```
+
+بمجرد اكتمال التدريب، يتم تحميل نموذجك تلقائيًا إلى Hub حتى يتمكن الجميع من استخدامه!
+
+
+
+
+
+للحصول على مثال أكثر عمقًا حول كيفية تعديل نموذج لتصنيف الرموز، ألق نظرة على الدفتر المقابل
+[دفتر PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/token_classification.ipynb)
+أو [دفتر TensorFlow](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/token_classification-tf.ipynb).
+
+
+
+## الاستدلال(Inference)
+
+رائع، الآن بعد أن قمت بتعديل نموذج، يمكنك استخدامه للاستدلال!
+
+احصل على بعض النصوص التي تريد تشغيل الاستدلال عليها:
+
+```py
+>>> text = "The Golden State Warriors are an American professional basketball team based in San Francisco."
+
+النص المترجم:
+أبسط طريقة لتجربة نموذجك المُدرب مسبقًا للاستدلال هي استخدامه في [`pipeline`]. قم بتنفيذ `pipeline` لتصنيف الكيانات المسماة مع نموذجك، ومرر نصك إليه:
+
+```py
+>>> from transformers import pipeline
+
+>>> classifier = pipeline("ner", model="stevhliu/my_awesome_wnut_model")
+>>> classifier(text)
+[{'entity': 'B-location',
+ 'score': 0.42658573,
+ 'index': 2,
+ 'word': 'golden',
+ 'start': 4,
+ 'end': 10},
+ {'entity': 'I-location',
+ 'score': 0.35856336,
+ 'index': 3,
+ 'word': 'state',
+ 'start': 11,
+ 'end': 16},
+ {'entity': 'B-group',
+ 'score': 0.3064001,
+ 'index': 4,
+ 'word': 'warriors',
+ 'start': 17,
+ 'end': 25},
+ {'entity': 'B-location',
+ 'score': 0.65523505,
+ 'index': 13,
+ 'word': 'san',
+ 'start': 80,
+ 'end': 83},
+ {'entity': 'B-location',
+ 'score': 0.4668663,
+ 'index': 14,
+ 'word': 'francisco',
+ 'start': 84,
+ 'end': 93}]
+```
+
+يمكنك أيضًا تكرار نتائج `pipeline` يدويًا إذا أردت:
+
+
+
+قم بتقسيم النص إلى رموز وعودة تنسورات PyTorch:
+
+```py
+>>> from transformers import AutoTokenizer
+
+>>> tokenizer = AutoTokenizer.from_pretrained("stevhliu/my_awesome_wnut_model")
+>>> inputs = tokenizer(text, return_tensors="pt")
+```
+
+مرر مدخلاتك إلى النموذج واحصل على `logits`:
+
+```py
+>>> from transformers import AutoModelForTokenClassification
+
+>>> model = AutoModelForTokenClassification.from_pretrained("stevhliu/my_awesome_wnut_model")
+>>> with torch.no_grad():
+... logits = model(**inputs).logits
+```
+
+احصل على الفئة ذات الاحتمالية الأعلى، واستخدم خريطة `id2label` للنموذج لتحويلها إلى تسمية نصية:
+
+```py
+>>> predictions = torch.argmax(logits, dim=2)
+>>> predicted_token_class = [model.config.id2label[t.item()] for t in predictions[0]]
+>>> predicted_token_class
+['O',
+ 'O',
+ 'B-location',
+ 'I-location',
+ 'B-group',
+ 'O',
+ 'O',
+ 'O',
+ 'O',
+ 'O',
+ 'O',
+ 'O',
+ 'O',
+ 'B-location',
+ 'B-location',
+ 'O',
+ 'O']
+```
+
+
+قم بتقسيم النص إلى رموز وعودة تنسورات TensorFlow:
+
+```py
+>>> from transformers import AutoTokenizer
+
+>>> tokenizer = AutoTokenizer.from_pretrained("stevhliu/my_awesome_wnut_model")
+>>> inputs = tokenizer(text, return_tensors="tf")
+```
+
+مرر مدخلاتك إلى النموذج واحصل على `logits`:
+
+```py
+>>> from transformers import TFAutoModelForTokenClassification
+
+>>> model = TFAutoModelForTokenClassification.from_pretrained("stevhliu/my_awesome_wnut_model")
+>>> logits = model(**inputs).logits
+```
+
+احصل على الفئة ذات الاحتمالية الأعلى، واستخدم خريطة `id2label` للنموذج لتحويلها إلى تسمية نصية:
+
+```py
+>>> predicted_token_class_ids = tf.math.argmax(logits, axis=-1)
+>>> predicted_token_class = [model.config.id2label[t] for t in predicted_token_class_ids[0].numpy().tolist()]
+>>> predicted_token_class
+['O',
+ 'O',
+ 'B-location',
+ 'I-location',
+ 'B-group',
+ 'O',
+ 'O',
+ 'O',
+ 'O',
+ 'O',
+ 'O',
+ 'O',
+ 'O',
+ 'B-location',
+ 'B-location',
+ 'O',
+ 'O']
+```
+
+
From 4a4850a14dd03b74f5305f4326010a7cabd16e0e Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Wed, 11 Dec 2024 01:30:13 +0300
Subject: [PATCH 02/29] Update token_classification.md
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index 05f0dfe93316..ebf3e0b71815 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -415,8 +415,8 @@ pip install transformers datasets evaluate seqeval
```py
>>> text = "The Golden State Warriors are an American professional basketball team based in San Francisco."
+```
-النص المترجم:
أبسط طريقة لتجربة نموذجك المُدرب مسبقًا للاستدلال هي استخدامه في [`pipeline`]. قم بتنفيذ `pipeline` لتصنيف الكيانات المسماة مع نموذجك، ومرر نصك إليه:
```py
From c3975a5ef8a020dee348b27a1f6804b141025255 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 19:52:02 +0300
Subject: [PATCH 03/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 21 ++++++++++----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index ebf3e0b71815..cfe9abd6a205 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -1,14 +1,13 @@
-
+
# تصنيف الرموز(Token classification)
From d7d272a7a1083b3e3c4107f67f073fdefd4dd3e2 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:12:51 +0300
Subject: [PATCH 04/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index cfe9abd6a205..74562cd6d61c 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -15,7 +15,7 @@
-يُكلف تصنيف الرموز بتعيين تسمية إلى رموز فردية في جملة. واحدة من أكثر مهام تصنيف الرموز شيوعًا هي التعرف على الكيانات المسماة (NER). تحاول NER إيجاد تسمية لكل كيان في جملة، مثل شخص، أو موقع، أو منظمة.
+يهدف تصنيف الرموز إلى إعطاء تسمية لكل رمز على حدة في الجملة. من أكثر مهام تصنيف الرموز شيوعًا هو التعرف على الكيانات المسماة (NER). يحاول NER تحديد تسمية لكل كيان في الجملة، مثل شخص، أو مكان، أو منظمة.
سيوضح لك هذا الدليل كيفية:
From 16b1280d1d23c4774b21ec6afb24a2efde685053 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:13:10 +0300
Subject: [PATCH 05/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index 74562cd6d61c..9682e67bb36b 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -20,7 +20,7 @@
سيوضح لك هذا الدليل كيفية:
1. ضبط [DistilBERT](https://huggingface.co/distilbert/distilbert-base-uncased) على مجموعة بيانات [WNUT 17](https://huggingface.co/datasets/wnut_17) للكشف عن كيانات جديدة.
-2. استخدام نموذج الضبط الدقيق الخاص بك للاستنتاج.
+2. استخدام نموذجك المضبوط بدقة للاستدلال.
From 913dcc7cf9ad4e87a6d9077a865e7d4de93b1d3d Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:13:41 +0300
Subject: [PATCH 06/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index 9682e67bb36b..d45026d11ad8 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -24,7 +24,7 @@
-لرؤية جميع البنى والنقاط المتوافقة مع هذه المهمة، نوصي بالتحقق من [صفحة المهمة](https://huggingface.co/tasks/token-classification).
+للاطلاع جميع البنى والنقاط المتوافقة مع هذه المهمة، نوصي بالرجوع من [صفحة المهمة](https://huggingface.co/tasks/token-classification).
From 62d401484e5e57557a12ca47a75937ec41f2cbbf Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:13:59 +0300
Subject: [PATCH 07/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index d45026d11ad8..31b611c841e9 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -62,7 +62,7 @@ pip install transformers datasets evaluate seqeval
}
```
-يمثل كل رقم في `ner_tags` كيان. قم بتحويل الأرقام إلى أسماء التصنيفات لمعرفة ماهية الكيانات:
+يمثل كل رقم في `ner_tags` كياناً. حوّل الأرقام إلى أسماء التصنيفات لمعرفة ماهية الكيانات:
```py
>>> label_list = wnut["train"].features[f"ner_tags"].feature.names
From 57ee1b8c18badd27a7bc0c77615258049e56e59c Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:15:49 +0300
Subject: [PATCH 08/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index 31b611c841e9..1528698b9ab4 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -86,9 +86,9 @@ pip install transformers datasets evaluate seqeval
يشير الحرف الذي يسبق كل `ner_tag` إلى موضع الرمز للكيان:
-- `B-` يشير إلى بداية كيان.
-- `I-` يشير إلى أن الرمز موجود داخل نفس الكيان (على سبيل المثال، الرمز `State` هو جزء من كيان مثل `Empire State Building`).
-- `0` يشير إلى أن الرمز لا يتوافق مع أي كيان.
+- `B-` يشير إلى بداية الكيان.
+- `I-` يشير إلى أن الرمز يقع ضمن نفس الكيان (على سبيل المثال، الرمز `State` هو جزء من كيان مثل `Empire State Building`).
+- `0` يشير إلى أن الرمز لا يمثل أي كيان.
## المعالجة المسبقة(Preprocess)
From 903867f40464023c3286d6e7b7d430207a16af56 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:16:34 +0300
Subject: [PATCH 09/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index 1528698b9ab4..e070b193704d 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -94,7 +94,7 @@ pip install transformers datasets evaluate seqeval
-الخطوة التالية هي تحميل مجزء النصوص DistilBERT للمعالجة المسبقة لحقل `tokens`:
+الخطوة التالية هي تحميل مُجزِّئ النصوص DistilBERT للمعالجة المسبقة لحقل `tokens`:
```py
>>> from transformers import AutoTokenizer
From ab029882e4fc1a73441edb4584b9f1e98ec70db9 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:17:06 +0300
Subject: [PATCH 10/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index e070b193704d..c921f8dd7fae 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -102,7 +102,7 @@ pip install transformers datasets evaluate seqeval
>>> tokenizer = AutoTokenizer.from_pretrained("distilbert/distilbert-base-uncased")
```
-كما رأيت في حقل `tokens` المثال أعلاه، يبدو أن الإدخال قد تم تحليله بالفعل. لكن الإدخال لم يتم تجزئته بالفعل بعد وسيتعين عليك تعيين `is_split_into_words=True` لتحليل الكلمات إلى كلمات فرعية. على سبيل المثال:
+كما رأيت في حقل `tokens` المثال أعلاه، يبدو أن المدخل قد تم تحليله بالفعل. لكن المدخل لم يُجزأ بعد ويتعيّن عليك ضبط `is_split_into_words=True` لتقسيم الكلمات إلى كلمات فرعية. على سبيل المثال:
```py
>>> example = wnut["train"][0]
From c918128d660a230336fc410f567e3094cace329f Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:17:38 +0300
Subject: [PATCH 11/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index c921f8dd7fae..f5f4147a1326 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -114,11 +114,11 @@ pip install transformers datasets evaluate seqeval
ومع ذلك، يضيف هذا بعض الرموز الخاصة `[CLS]` و`[SEP]` وتحليل الكلمات الفرعية يخلق عدم تطابق بين الإدخال والتسميات. قد يتم تقسيم كلمة واحدة تقابل تسمية واحدة الآن إلى كلمتين فرعيتين. ستحتاج إلى إعادة محاذاة الرموز والتسميات عن طريق:
-1. تعيين جميع الرموز إلى كلماتهم المقابلة مع طريقة [`word_ids`](https://huggingface.co/docs/transformers/main_classes/tokenizer#transformers.BatchEncoding.word_ids).
-2. تعيين التسمية `-100` إلى الرموز الخاصة `[CLS]` و`[SEP]` بحيث يتم تجاهلها بواسطة دالة الخسارة PyTorch (انظر [CrossEntropyLoss](https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html)).
-3. تسمية الرمز الأول فقط لكلمة معينة. قم بتعيين `-100` إلى الرموز الفرعية الأخرى من نفس الكلمة.
+1. ربط كل رمز بالكلمة الأصلية باستخدام الخاصية [`word_ids`](https://huggingface.co/docs/transformers/main_classes/tokenizer#transformers.BatchEncoding.word_ids).
+2. تعيين التسمية `-100` للرموز الخاصة `[CLS]` و`[SEP]` بحيث يتم تجاهلها بواسطة دالة الخسارة PyTorch (انظر [CrossEntropyLoss](https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html)).
+3. تسمية الرمز الأول فقط لكلمة معينة. قم بتعيين `-100` لأجزاء الكلمة الأخرى.
-هنا كيف يمكنك إنشاء وظيفة لإعادة محاذاة الرموز والتسميات، وقص السلاسل لتكون أطول من طول الإدخال الأقصى لـ DistilBERT:
+هنا كيف يمكنك إنشاء وظيفة لإعادة محاذاة الرموز والتسميات، وقص الجمل لتتجاوز الحد الأقصى لطول مُدخلات DistilBERT:
```py
>>> def tokenize_and_align_labels(examples):
From db4440215f13ce1447155e5e2d185c67cc91696d Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:18:00 +0300
Subject: [PATCH 12/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index f5f4147a1326..0954540fe685 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -112,7 +112,7 @@ pip install transformers datasets evaluate seqeval
['[CLS]', '@', 'paul', '##walk', 'it', "'", 's', 'the', 'view', 'from', 'where', 'i', "'", 'm', 'living', 'for', 'two', 'weeks', '.', 'empire', 'state', 'building', '=', 'es', '##b', '.', 'pretty', 'bad', 'storm', 'here', 'last', 'evening', '.', '[SEP]']
```
-ومع ذلك، يضيف هذا بعض الرموز الخاصة `[CLS]` و`[SEP]` وتحليل الكلمات الفرعية يخلق عدم تطابق بين الإدخال والتسميات. قد يتم تقسيم كلمة واحدة تقابل تسمية واحدة الآن إلى كلمتين فرعيتين. ستحتاج إلى إعادة محاذاة الرموز والتسميات عن طريق:
+ومع ذلك، يضيف هذا بعض الرموز الخاصة `[CLS]` و`[SEP]` وتقسيم الكلمات إلى أجزاء يُنشئ عدم تطابق بين المُدخلات والتسميات. قد يتم تقسيم كلمة واحدة تقابل تسمية واحدة الآن إلى كلمتين فرعيتين. ستحتاج إلى إعادة محاذاة الرموز والتسميات عن طريق:
1. ربط كل رمز بالكلمة الأصلية باستخدام الخاصية [`word_ids`](https://huggingface.co/docs/transformers/main_classes/tokenizer#transformers.BatchEncoding.word_ids).
2. تعيين التسمية `-100` للرموز الخاصة `[CLS]` و`[SEP]` بحيث يتم تجاهلها بواسطة دالة الخسارة PyTorch (انظر [CrossEntropyLoss](https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html)).
From d39d69c3b50759df2d32c3c82dd080bda63796c6 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:18:19 +0300
Subject: [PATCH 13/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index 0954540fe685..74b4491fa23e 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -143,7 +143,7 @@ pip install transformers datasets evaluate seqeval
... return tokenized_inputs
```
-لتطبيق وظيفة المعالجة المسبقة على مجموعة البيانات بأكملها، استخدم وظيفة [`~datasets.Dataset.map`] لمجموعة بيانات 🤗. يمكنك تسريع وظيفة `map` عن طريق تعيين `batched=True` لمعالجة عناصر متعددة من مجموعة البيانات في وقت واحد:
+لتطبيق هذه العملية على كامل مجموعة البيانات، استخدم الدالة [`~datasets.Dataset.map`] لمجموعة بيانات 🤗. يمكنك تسريع الدالة `map` عن طريق تعيين `batched=True` لمعالجة عناصر متعددة من مجموعة البيانات في وقت واحد:
```py
>>> tokenized_wnut = wnut.map(tokenize_and_align_labels, batched=True)
From 7c94cc46d065ec2241e23e229d9ea1d570725ea6 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:18:56 +0300
Subject: [PATCH 14/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index 74b4491fa23e..82e4d773d9e5 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -149,7 +149,7 @@ pip install transformers datasets evaluate seqeval
>>> tokenized_wnut = wnut.map(tokenize_and_align_labels, batched=True)
```
-الآن قم بإنشاء دفعة من الأمثلة باستخدام [`DataCollatorWithPadding`]. من الأكثر كفاءة *التحديد الديناميكي* للجمل إلى أطول طول في دفعة أثناء التجميع، بدلاً من تحديد مجموعة البيانات بالكامل إلى الطول الأقصى.
+الآن قم بإنشاء دفعة من الأمثلة باستخدام [`DataCollatorWithPadding`].من الأفضل استخدام *الحشو الديناميكي* للجمل إلى أطول طول في دفعة أثناء التجميع، بدلاً من حشو مجموعة البيانات بالكامل إلى الطول الأقصى.
From cae645dcc9295f80033b403b2976fb47e9424d3a Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:19:16 +0300
Subject: [PATCH 15/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index 82e4d773d9e5..5f23c916ea14 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -170,7 +170,7 @@ pip install transformers datasets evaluate seqeval
## التقييم(Evaluate)
-غالبًا ما يكون تضمين مقياس أثناء التدريب مفيدًا لتقييم أداء نموذجك. يمكنك تحميل طريقة تقييم بسرعة مع مكتبة 🤗 [Evaluate](https://huggingface.co/docs/evaluate/index). لهذه المهمة، قم بتحميل إطار [seqeval](https://huggingface.co/spaces/evaluate-metric/seqeval) (انظر جولة 🤗 Evaluate [quick tour](https://huggingface.co/docs/evaluate/a_quick_tour) لمعرفة المزيد حول كيفية تحميل وحساب مقياس). ينتج seqeval في الواقع العديد من الدرجات: الدقة، والاستدعاء، وF1، والدقة.
+يُعدّ تضمين مقياس أثناء التدريب مفيدًا في تقييم أداء نموذجك. يمكنك تحميل طريقة تقييم بسرعة مع مكتبة 🤗 [Evaluate](https://huggingface.co/docs/evaluate/index). لهذه المهمة، قم بتحميل إطار [seqeval](https://huggingface.co/spaces/evaluate-metric/seqeval) (انظر جولة 🤗 Evaluate [quick tour](https://huggingface.co/docs/evaluate/a_quick_tour) لمعرفة المزيد حول كيفية تحميل وحساب مقياس). يُخرج seqeval عدة نتائج: الدقة، والاستذكار، ومقياس F1، والدقة.
```py
>>> import evaluate
From 234eff3c5241686c81f9c11598c199f41273b9d1 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:19:39 +0300
Subject: [PATCH 16/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index 5f23c916ea14..f954e0068ad9 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -178,7 +178,7 @@ pip install transformers datasets evaluate seqeval
>>> seqeval = evaluate.load("seqeval")
```
-احصل على تسميات الكيانات المسماة (NER) أولاً، ثم قم بإنشاء دالة تمرر تنبؤاتك وتسمياتك الصحيحة إلى [`~evaluate.EvaluationModule.compute`] لحساب الدرجات:
+احصل على تسميات الكيانات المسماة (NER) أولاً،ثم أنشئ دالة تُمرر تنبؤاتك وتسمياتك الصحيحة إلى [`~evaluate.EvaluationModule.compute`] لحساب النتائج:
```py
>>> import numpy as np
From ed512d3a81330d982fc5550d5f6bfa40f8bb04f3 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:19:57 +0300
Subject: [PATCH 17/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index f954e0068ad9..ca4c809568be 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -207,7 +207,7 @@ pip install transformers datasets evaluate seqeval
... }
```
-دالة `compute_metrics` الخاصة بك جاهزة الآن، وستعود إليها عند إعداد تدريبك.
+دالة `compute_metrics` جاهزة للاستخدام، وستحتاج إليها عند إعداد التدريب.
## التدريب(Train)
From 633f4ffbfd1f9b99270e085e8fa9c7c9d5469b74 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:20:16 +0300
Subject: [PATCH 18/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index ca4c809568be..f25405cdf96f 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -211,7 +211,7 @@ pip install transformers datasets evaluate seqeval
## التدريب(Train)
-قبل البدء في تدريب نموذجك، قم بإنشاء خريطة للتعريفات المتوقعة إلى تسمياتها باستخدام `id2label` و`label2id`:
+قبل تدريب النموذج، جهّز خريطة تربط بين المعرّفات المتوقعة وتسمياتها باستخدام `id2label` و `label2id`:
```py
>>> id2label = {
From f041cdd099fb0394ae13316561b5ae341c55aaae Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:20:33 +0300
Subject: [PATCH 19/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index f25405cdf96f..5ad022b4d101 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -254,7 +254,7 @@ pip install transformers datasets evaluate seqeval
-أنت مستعد الآن لبدء تدريب نموذجك! قم بتحميل DistilBERT مع [`AutoModelForTokenClassification`] إلى جانب عدد التصنيفات المتوقعة، وتخطيطات التسميات:
+أنت مستعد الآن لبدء تدريب نموذجك! قم بتحميل DistilBERT مع [`AutoModelForTokenClassification`] إلى جانب عدد التصنيفات المتوقعة، وخريطة التسميات:
```py
>>> from transformers import AutoModelForTokenClassification, TrainingArguments, Trainer
From 40122c6f50590d6b62233607c4c9ce1dccaaac7a Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:20:53 +0300
Subject: [PATCH 20/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index 5ad022b4d101..f7019e7d85f4 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -266,9 +266,9 @@ pip install transformers datasets evaluate seqeval
في هذه المرحلة، هناك ثلاث خطوات فقط متبقية:
-1. حدد معلمات التدريب الخاصة بك في [`TrainingArguments`]. المعامل الوحيد المطلوب هو `output_dir` الذي يحدد مكان حفظ نموذجك. ستقوم بدفع هذا النموذج إلى Hub عن طريق تعيين `push_to_hub=True` (يجب أن تكون مسجلاً الدخول إلى Hugging Face لتحميل نموذجك). في نهاية كل حقبة، سيقوم [`Trainer`] بتقييم درجات seqeval وحفظ نقطة تفتيش التدريب.
-2. قم بتمرير معاملات التدريب إلى [`Trainer`] إلى جانب النموذج، ومجموعة البيانات، والمحلل اللغوي، و`data collator`، ودالة `compute_metrics`.
-3. قم باستدعاء [`~Trainer.train`] لتعديل نموذجك.
+1. حدد معلمات التدريب الخاصة بك في [`TrainingArguments`]. المعامل الوحيد المطلوب هو `output_dir` الذي يحدد مكان حفظ نموذجك. ستقوم بدفع هذا النموذج إلى Hub عن طريق تعيين `push_to_hub=True` (يجب أن تكون مسجلاً الدخول إلى Hugging Face لتحميل نموذجك). في نهاية كل حقبة، سيقوم [`Trainer`] بتقييم درجات seqeval وحفظ تسخة التدريب.
+2. قم بتمرير معاملات التدريب إلى [`Trainer`] إلى جانب النموذج، ومجموعة البيانات، والمُجزِّئ اللغوي، و`data collator`، ودالة `compute_metrics`.
+3.استدعِ [`~Trainer.train`] لتدريب نموذجك.
```py
>>> training_args = TrainingArguments(
From 1ff056ed2b54642c8cfd9ea8e33d40a0e0d40cbf Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:21:12 +0300
Subject: [PATCH 21/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index f7019e7d85f4..99da3408ce09 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -353,7 +353,7 @@ pip install transformers datasets evaluate seqeval
... )
```
-قم بتهيئة النموذج للتدريب مع [`compile`](https://keras.io/api/models/model_training_apis/#compile-method). لاحظ أن نماذج Transformers لديها جميعها دالة خسارة ذات صلة بالمهمة بشكل افتراضي، لذلك لا تحتاج إلى تحديد واحدة ما لم ترغب في ذلك:
+هيّئ النموذج للتدريب باستخدام [`compile`](https://keras.io/api/models/model_training_apis/#compile-method). لاحظ أن نماذج Transformers تتضمن دالة خسارة افتراضية مرتبطة بالمهمة، لذلك لا تحتاج إلى تحديد واحدة إلا إذا كنت ترغب في ذلك:
```py
>>> import tensorflow as tf
From c10527bef5b05068ba0d350e1c0da006c0b9b1cb Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:21:36 +0300
Subject: [PATCH 22/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index 99da3408ce09..b8f824f2cd9e 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -382,7 +382,7 @@ pip install transformers datasets evaluate seqeval
... )
```
-ثم قم بتجميع مكالماتك معًا:
+ثم جمّع callbacks الخاصة بك معًا:
```py
>>> callbacks = [metric_callback, push_to_hub_callback]
From f3f8901129edd4bab0a67f70aa13e2d6c844cf42 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:22:05 +0300
Subject: [PATCH 23/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index b8f824f2cd9e..79bfb75cdfc2 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -388,7 +388,7 @@ pip install transformers datasets evaluate seqeval
>>> callbacks = [metric_callback, push_to_hub_callback]
```
-أخيرًا، أنت مستعد الآن لبدء تدريب نموذجك! قم باستدعاء [`fit`](https://keras.io/api/models/model_training_apis/#fit-method) مع مجموعات بيانات التدريب والتحقق، وعدد الحقبات، ومكالماتك لتعديل النموذج:
+أخيرًا، أنت جاهز الآن لبدء تدريب نموذجك! قم باستدعاء [`fit`](https://keras.io/api/models/model_training_apis/#fit-method) مع بيانات التدريب والتحقق، وعدد الحقبات، وcallbacks لتعديل النموذج:
```py
>>> model.fit(x=tf_train_set, validation_data=tf_validation_set, epochs=3, callbacks=callbacks)
From 04710d6eb0eae134d57aea9d412ad6c44d8d27f6 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:22:33 +0300
Subject: [PATCH 24/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index 79bfb75cdfc2..a1e1d2df9280 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -400,7 +400,7 @@ pip install transformers datasets evaluate seqeval
-للحصول على مثال أكثر عمقًا حول كيفية تعديل نموذج لتصنيف الرموز، ألق نظرة على الدفتر المقابل
+للحصول على مثال أكثر تفصيلاً حول كيفية تعديل نموذج لتصنيف الرموز، ألق نظرة على الدفتر المقابل
[دفتر PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/token_classification.ipynb)
أو [دفتر TensorFlow](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/token_classification-tf.ipynb).
From b3cc6b02b1577038d0e2ad3f6970ec2e40ce340e Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:22:53 +0300
Subject: [PATCH 25/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index a1e1d2df9280..96f2c8f9b490 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -459,7 +459,7 @@ pip install transformers datasets evaluate seqeval
-قم بتقسيم النص إلى رموز وعودة تنسورات PyTorch:
+قسّم النص إلى رموز وأرجع المُوتّرات بلغة PyTorch:
```py
>>> from transformers import AutoTokenizer
From c40a6b5bc087bb43809e8ac2e110f0eea489d503 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:23:12 +0300
Subject: [PATCH 26/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index 96f2c8f9b490..49625306a0e5 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -478,7 +478,7 @@ pip install transformers datasets evaluate seqeval
... logits = model(**inputs).logits
```
-احصل على الفئة ذات الاحتمالية الأعلى، واستخدم خريطة `id2label` للنموذج لتحويلها إلى تسمية نصية:
+استخرج الفئة ذات الاحتمالية الأعلى، واستخدم جدول `id2label` الخاصة بالنموذج لتحويلها إلى تسمية نصية:
```py
>>> predictions = torch.argmax(logits, dim=2)
From 852462c6ac05a51e7ff9ec75a3aa6db2150bd116 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:23:20 +0300
Subject: [PATCH 27/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index 49625306a0e5..3edf99e16ca1 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -504,7 +504,7 @@ pip install transformers datasets evaluate seqeval
```
-قم بتقسيم النص إلى رموز وعودة تنسورات TensorFlow:
+قسّم النص إلى رموز وأرجع المُوتّرات ب TensorFlow:
```py
>>> from transformers import AutoTokenizer
From b0743cf23c372b9745f26ae94a2ee3e18f5fbb6c Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 5 Jan 2025 20:23:39 +0300
Subject: [PATCH 28/29] Update docs/source/ar/tasks/token_classification.md
Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com>
---
docs/source/ar/tasks/token_classification.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ar/tasks/token_classification.md b/docs/source/ar/tasks/token_classification.md
index 3edf99e16ca1..e311482aeccb 100644
--- a/docs/source/ar/tasks/token_classification.md
+++ b/docs/source/ar/tasks/token_classification.md
@@ -522,7 +522,7 @@ pip install transformers datasets evaluate seqeval
>>> logits = model(**inputs).logits
```
-احصل على الفئة ذات الاحتمالية الأعلى، واستخدم خريطة `id2label` للنموذج لتحويلها إلى تسمية نصية:
+استخرج الفئة ذات الاحتمالية الأعلى، واستخدم جدول `id2label` الخاصة بالنموذج لتحويلها إلى تسمية نصية:
```py
>>> predicted_token_class_ids = tf.math.argmax(logits, axis=-1)
From ec269dedbfbd06a167d94be3ca86598d4183d108 Mon Sep 17 00:00:00 2001
From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com>
Date: Sun, 12 Jan 2025 03:19:31 +0300
Subject: [PATCH 29/29] Update _toctree.yml
---
docs/source/ar/_toctree.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/source/ar/_toctree.yml b/docs/source/ar/_toctree.yml
index fdb0ca002841..01568e93561d 100644
--- a/docs/source/ar/_toctree.yml
+++ b/docs/source/ar/_toctree.yml
@@ -35,8 +35,8 @@
sections:
# - local: tasks/sequence_classification
# title: تصنيف النصوص
-# - local: tasks/token_classification
-# title: تصنيف الرموز
+ - local: tasks/token_classification
+ title: تصنيف الرموز
- local: tasks/question_answering
title: الإجابة على الأسئلة
# - local: tasks/language_modeling