-
Notifications
You must be signed in to change notification settings - Fork 33.6k
[i18n-ar] Translated file : docs/source/ar/multilingual.md into Arabic
#33048
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
stevhliu
merged 31 commits into
huggingface:main
from
AhmedAlmaghz:Add_docs_source_ar_multilingual.md
Oct 31, 2024
Merged
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit
Hold shift + click to select a range
caa309e
Add docs/source/ar/multilingual.md to Add_docs_source_ar_multilingual.md
AhmedAlmaghz ce7a4cf
Update docs/source/ar/multilingual.md
AhmedAlmaghz a618b31
Update docs/source/ar/multilingual.md
AhmedAlmaghz 9bc062d
Update docs/source/ar/multilingual.md
AhmedAlmaghz 2bc1cc9
Update docs/source/ar/multilingual.md
AhmedAlmaghz 6b3bbc4
Update docs/source/ar/multilingual.md
AhmedAlmaghz 0e88747
Update docs/source/ar/multilingual.md
AhmedAlmaghz cbf8373
Update docs/source/ar/multilingual.md
AhmedAlmaghz c552cf9
Update docs/source/ar/multilingual.md
AhmedAlmaghz 16abf56
Update docs/source/ar/multilingual.md
AhmedAlmaghz ce6d78d
Update docs/source/ar/multilingual.md
AhmedAlmaghz 4767d64
Update docs/source/ar/multilingual.md
AhmedAlmaghz a420425
Update docs/source/ar/multilingual.md
AhmedAlmaghz 01a20b5
Update docs/source/ar/multilingual.md
AhmedAlmaghz e596e5e
Update docs/source/ar/multilingual.md
AhmedAlmaghz 5bb7d5e
Update docs/source/ar/multilingual.md
AhmedAlmaghz 980529d
Update docs/source/ar/multilingual.md
AhmedAlmaghz 2085e98
Merge branch 'main' into Add_docs_source_ar_multilingual.md
AhmedAlmaghz 21e8331
Update _toctree.yml
AhmedAlmaghz ad78566
Update _toctree.yml
AhmedAlmaghz 73c00f8
Add Translated files to branch for merg
AhmedAlmaghz c08ffc7
Update _toctree.yml
AhmedAlmaghz e9cb766
Update _toctree.yml
AhmedAlmaghz be9c35e
Update custom_models.md
AhmedAlmaghz cc08c8c
Update chat_templating.md
AhmedAlmaghz 943456e
Update docs/source/ar/create_a_model.md
AhmedAlmaghz 910e057
Update create_a_model.md
AhmedAlmaghz f625f29
Update gguf.md
AhmedAlmaghz 26c58a9
Update gguf.md
AhmedAlmaghz 0c466d9
Update gguf.md
AhmedAlmaghz 4f8dca3
Update gguf.md
AhmedAlmaghz File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,160 @@ | ||
| # النماذج متعددة اللغات للاستنتاج | ||
|
|
||
| هناك العديد من النماذج متعددة اللغات في مكتبة 🤗 Transformers، وتختلف طريقة استخدامها للاستنتاج عن النماذج أحادية اللغة. ولكن ليس كل استخدام النماذج متعددة اللغات مختلف. فبعض النماذج، مثل [google-bert/bert-base-multilingual-uncased](https://huggingface.co/google-bert/bert-base-multilingual-uncased)، يمكن استخدامها مثل النموذج أحادي اللغة. سيُظهر لك هذا الدليل كيفية استخدام النماذج متعددة اللغات التي تختلف طريقة استخدامها للاستنتاج. | ||
|
AhmedAlmaghz marked this conversation as resolved.
Outdated
|
||
|
|
||
| ## XLM | ||
|
|
||
| يحتوي XLM على عشر نقاط تفتيش مختلفة، واحدة منها فقط أحادية اللغة. ويمكن تقسيم نقاط تفتيش النماذج التسع المتبقية إلى فئتين: نقاط التفتيش التي تستخدم تضمينات اللغة وتلك التي لا تستخدمها. | ||
|
AhmedAlmaghz marked this conversation as resolved.
Outdated
|
||
|
|
||
| ### XLM مع تضمينات اللغة | ||
|
|
||
| تستخدم النماذج التالية من XLM تضمينات اللغة لتحديد اللغة المستخدمة في الاستنتاج: | ||
|
AhmedAlmaghz marked this conversation as resolved.
Outdated
|
||
|
|
||
| - `FacebookAI/xlm-mlm-ende-1024` (نمذجة اللغة المقنعة، الإنجليزية-الألمانية) | ||
| - `FacebookAI/xlm-mlm-enfr-1024` (نمذجة اللغة المقنعة، الإنجليزية-الفرنسية) | ||
| - `FacebookAI/xlm-mlm-enro-1024` (نمذجة اللغة المقنعة، الإنجليزية-الرومانية) | ||
| - `FacebookAI/xlm-mlm-xnli15-1024` (نمذجة اللغة المقنعة، لغات XNLI) | ||
| - `FacebookAI/xlm-mlm-tlm-xnli15-1024` (نمذجة اللغة المقنعة + الترجمة، لغات XNLI) | ||
| - `FacebookAI/xlm-clm-enfr-1024` (نمذجة اللغة السببية، الإنجليزية-الفرنسية) | ||
| - `FacebookAI/xlm-clm-ende-1024` (نمذجة اللغة السببية، الإنجليزية-الألمانية) | ||
|
|
||
| تُمثل تضمينات اللغة على شكل مصفوفة بنفس شكل `input_ids` التي يتم تمريرها إلى النموذج. وتعتمد القيم في هذه المصفوفات على اللغة المستخدمة ويتم تحديدها بواسطة سمات المحلل `lang2id` و `id2lang`. | ||
|
AhmedAlmaghz marked this conversation as resolved.
Outdated
|
||
|
|
||
| في هذا المثال، قم بتحميل نقطة تفتيش `FacebookAI/xlm-clm-enfr-1024` (نمذجة اللغة السببية، الإنجليزية-الفرنسية): | ||
|
AhmedAlmaghz marked this conversation as resolved.
Outdated
|
||
|
|
||
| ```py | ||
| >>> import torch | ||
| >>> from transformers import XLMTokenizer, XLMWithLMHeadModel | ||
|
|
||
| >>> tokenizer = XLMTokenizer.from_pretrained("FacebookAI/xlm-clm-enfr-1024") | ||
| >>> model = XLMWithLMHeadModel.from_pretrained("FacebookAI/xlm-clm-enfr-1024") | ||
| ``` | ||
|
|
||
| تُظهر سمة `lang2id` في المحلل اللغات وأرقام تعريفها في هذا النموذج: | ||
|
AhmedAlmaghz marked this conversation as resolved.
Outdated
|
||
|
|
||
| ```py | ||
| >>> print(tokenizer.lang2id) | ||
| {'en': 0, 'fr': 1} | ||
| ``` | ||
|
|
||
| بعد ذلك، قم بإنشاء مثال على المدخلات: | ||
|
|
||
| ```py | ||
| >>> input_ids = torch.tensor([tokenizer.encode("Wikipedia was used to")]) # batch size of 1 | ||
| ``` | ||
|
|
||
| قم بتعيين معرف اللغة إلى `"en"` واستخدمه لتحديد تضمين اللغة. وتضمين اللغة عبارة عن مصفوفة مملوءة بـ `0` لأن هذا هو معرف اللغة الإنجليزية. يجب أن تكون هذه المصفوفة بنفس حجم `input_ids`. | ||
|
|
||
| ```py | ||
| >>> language_id = tokenizer.lang2id["en"] # 0 | ||
| >>> langs = torch.tensor([language_id] * input_ids.shape[1]) # torch.tensor([0, 0, 0, ..., 0]) | ||
|
|
||
| >>> # نقوم بإعادة تشكيلها لتكون بالحجم (batch_size، sequence_length) | ||
| >>> langs = langs.view(1, -1) # الآن بالحجم [1، sequence_length] (لدينا batch size تساوي 1) | ||
| ``` | ||
|
|
||
| الآن يمكنك تمرير `input_ids` وتضمين اللغة إلى النموذج: | ||
|
|
||
| ```py | ||
| >>> outputs = model(input_ids, langs=langs) | ||
| ``` | ||
|
|
||
| يمكن لنص البرنامج النصي [run_generation.py](https://github.com/huggingface/transformers/tree/main/examples/pytorch/text-generation/run_generation.py) توليد النص باستخدام تضمينات اللغة مع نقاط تفتيش `xlm-clm`. | ||
|
|
||
| ### XLM بدون تضمينات اللغة | ||
|
|
||
| النماذج التالية من XLM لا تتطلب تضمينات اللغة أثناء الاستنتاج: | ||
|
|
||
| - `FacebookAI/xlm-mlm-17-1280` (نمذجة اللغة المقنعة، 17 لغة) | ||
| - `FacebookAI/xlm-mlm-100-1280` (نمذجة اللغة المقنعة، 100 لغة) | ||
|
|
||
| تُستخدم هذه النماذج لتمثيل الجمل العامة، على عكس نقاط تفتيش XLM السابقة. | ||
|
AhmedAlmaghz marked this conversation as resolved.
Outdated
|
||
|
|
||
| ## BERT | ||
|
|
||
| يمكن استخدام النماذج التالية من BERT للمهام متعددة اللغات: | ||
|
|
||
| - `google-bert/bert-base-multilingual-uncased` (نمذجة اللغة المقنعة + التنبؤ بالجملة التالية، 102 لغة) | ||
| - `google-bert/bert-base-multilingual-cased` (نمذجة اللغة المقنعة + التنبؤ بالجملة التالية، 104 لغات) | ||
|
|
||
| لا تتطلب هذه النماذج تضمينات اللغة أثناء الاستنتاج. يجب أن تحدد اللغة من السياق وتستنتج وفقاً لذلك. | ||
|
AhmedAlmaghz marked this conversation as resolved.
Outdated
|
||
|
|
||
| ## XLM-RoBERTa | ||
|
|
||
| يمكن استخدام النماذج التالية من XLM-RoBERTa للمهام متعددة اللغات: | ||
|
|
||
| - `FacebookAI/xlm-roberta-base` (نمذجة اللغة المقنعة، 100 لغة) | ||
| - `FacebookAI/xlm-roberta-large` (نمذجة اللغة المقنعة، 100 لغة) | ||
|
|
||
| تم تدريب XLM-RoBERTa على 2.5 تيرابايت من بيانات CommonCrawl الجديدة والمحسنة في 100 لغة. ويوفر مكاسب قوية على النماذج متعددة اللغات التي تم إصدارها سابقاً مثل mBERT أو XLM في مهام المصب مثل التصنيف، ووضع العلامات التسلسلية، والأسئلة والأجوبة. | ||
|
|
||
| ## M2M100 | ||
|
|
||
| يمكن استخدام النماذج التالية من M2M100 للترجمة متعددة اللغات: | ||
|
|
||
| - `facebook/m2m100_418M` (الترجمة) | ||
| - `facebook/m2m100_1.2B` (الترجمة) | ||
|
|
||
| في هذا المثال، قم بتحميل نقطة تفتيش `facebook/m2m100_418M` لترجمة النص من الصينية إلى الإنجليزية. يمكنك تعيين اللغة المصدر في المحلل: | ||
|
AhmedAlmaghz marked this conversation as resolved.
Outdated
|
||
|
|
||
| ```py | ||
| >>> from transformers import M2M100ForConditionalGeneration, M2M100Tokenizer | ||
|
|
||
| >>> en_text = "Do not meddle in the affairs of wizards, for they are subtle and quick to anger." | ||
| >>> chinese_text = "不要插手巫師的事務, 因為他們是微妙的, 很快就會發怒." | ||
|
|
||
| >>> tokenizer = M2M100Tokenizer.from_pretrained("facebook/m2m100_418M", src_lang="zh") | ||
| >>> model = M2M100ForConditionalGeneration.from_pretrained("facebook/m2m100_418M") | ||
| ``` | ||
|
|
||
| قم بتحليل النص: | ||
|
AhmedAlmaghz marked this conversation as resolved.
Outdated
|
||
|
|
||
| ```py | ||
| >>> encoded_zh = tokenizer(chinese_text, return_tensors="pt") | ||
| ``` | ||
|
|
||
| يجبر M2M100 معرف اللغة الهدف كأول رمز مولد للترجمة إلى لغة الهدف. قم بتعيين `forced_bos_token_id` إلى `en` في طريقة `generate` للترجمة إلى الإنجليزية: | ||
|
AhmedAlmaghz marked this conversation as resolved.
Outdated
|
||
|
|
||
| ```py | ||
| >>> generated_tokens = model.generate(**encoded_zh, forced_bos_token_id=tokenizer.get_lang_id("en")) | ||
| >>> tokenizer.batch_decode(generated_tokens, skip_special_tokens=True) | ||
| 'Do not interfere with the matters of the witches, because they are delicate and will soon be angry.' | ||
| ``` | ||
|
|
||
| ## MBart | ||
|
|
||
| يمكن استخدام النماذج التالية من MBart للترجمة متعددة اللغات: | ||
|
|
||
| - `facebook/mbart-large-50-one-to-many-mmt` (الترجمة الآلية متعددة اللغات من واحد إلى كثير، 50 لغة) | ||
| - `facebook/mbart-large-50-many-to-many-mmt` (الترجمة الآلية متعددة اللغات من كثير إلى كثير، 50 لغة) | ||
| - `facebook/mbart-large-50-many-to-one-mmt` (الترجمة الآلية متعددة اللغات من كثير إلى واحد، 50 لغة) | ||
| - `facebook/mbart-large-50` (الترجمة متعددة اللغات، 50 لغة) | ||
| - `facebook/mbart-large-cc25` | ||
|
|
||
| في هذا المثال، قم بتحميل نقطة تفتيش `facebook/mbart-large-50-many-to-many-mmt` لترجمة النص من الفنلندية إلى الإنجليزية. يمكنك تعيين اللغة المصدر في المحلل: | ||
|
AhmedAlmaghz marked this conversation as resolved.
Outdated
|
||
|
|
||
| ```py | ||
| >>> from transformers import AutoTokenizer, AutoModelForSeq2SeqLM | ||
|
|
||
| >>> en_text = "Do not meddle in the affairs of wizards, for they are subtle and quick to anger." | ||
| >>> fi_text = "Älä sekaannu velhojen asioihin, sillä ne ovat hienovaraisia ja nopeasti vihaisia." | ||
|
|
||
| >>> tokenizer = AutoTokenizer.from_pretrained("facebook/mbart-large-50-many-to-many-mmt", src_lang="fi_FI") | ||
| >>> model = AutoModelForSeq2SeqLM.from_pretrained("facebook/mbart-large-50-many-to-many-mmt") | ||
| ``` | ||
|
|
||
| قم بتحليل النص: | ||
|
AhmedAlmaghz marked this conversation as resolved.
Outdated
|
||
|
|
||
| ```py | ||
| >>> encoded_en = tokenizer(en_text, return_tensors="pt") | ||
| ``` | ||
|
|
||
| يجبر MBart معرف لغة الهدف كأول رمز مولد للترجمة إلى لغة الهدف. قم بتعيين `forced_bos_token_id` إلى `en` في طريقة `generate` للترجمة إلى الإنجليزية: | ||
|
AhmedAlmaghz marked this conversation as resolved.
Outdated
|
||
|
|
||
| ```py | ||
| >>> generated_tokens = model.generate(**encoded_en, forced_bos_token_id=tokenizer.lang_code_to_id["en_XX"]) | ||
| >>> tokenizer.batch_decode(generated_tokens, skip_special_tokens=True) | ||
| "Don't interfere with the wizard's affairs, because they are subtle, will soon get angry." | ||
| ``` | ||
|
|
||
| إذا كنت تستخدم نقطة تفتيش `facebook/mbart-large-50-many-to-one-mmt`، فلا تحتاج إلى إجبار معرف لغة الهدف كأول رمز مولد، وإلا فإن الاستخدام هو نفسه. | ||
|
AhmedAlmaghz marked this conversation as resolved.
Outdated
|
||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.