# خطوط الأنابيب

تُعدّ خطوط الأنابيب طريقة رائعة وسهلة لاستخدام النماذج في الاستدلال. هذه الخطوط هي كائنات تُجسّد معظم الأكواد المعقدة في المكتبة، وتوفر واجهة برمجة تطبيقات بسيطة مخصصة لمهام متعددة، بما في ذلك التعرف على الكيانات المسمّاة، ونمذجة اللغة المقنّعة، وتحليل المشاعر، واستخراج الميزات، والإجابة على الأسئلة. راجع [قائمة المهام](https://huggingface.co/tasks) للحصول على أمثلة على الاستخدام.

توجد فئتان من تجريدات خط المعالجة يجب الانتباه إليهما:

- [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) وهو أقوى كائن يُلخّص جميع خطوط الأنابيب الأخرى.
- تتوفر خطوط أنابيب مخصصة للمهام في مجالات [الصوت](#audio) و[رؤية الحاسوب](#computer-vision) و[معالجة اللغة الطبيعية](#natural-language-processing) والمهام [المتعددة الوسائط](#multimodal).

## تجريد خط المعالجة[[transformers.pipeline]]

تُعدّ تجريدية *pipeline* غلافًا حول جميع خطوط الأنابيب الأخرى المتاحة. يتم إنشاء مثيل لها بنفس طريقة إنشاء أي خط أنابيب آخر، لكنها يمكن أن توفر مزايا إضافية لتحسين تجربة الاستخدام.

استدعاء بسيط لعنصر واحد:

```python
>>> pipe = pipeline("text-classification")
>>> pipe("This restaurant is awesome")
[{'label': 'POSITIVE', 'score': 0.9998743534088135}]
```

إذا كنت ترغب في استخدام نموذج محدد من [المستودع](https://huggingface.co)، يمكنك تجاهل المهمة إذا كان النموذج الموجود في المستودع يحددها مسبقًا:

```python
>>> pipe = pipeline(model="FacebookAI/roberta-large-mnli")
>>> pipe("This restaurant is awesome")
[{'label': 'NEUTRAL', 'score': 0.7313136458396912}]
```

للدعوة إلى خط أنابيب على العديد من العناصر، يمكنك استدعاؤه باستخدام *قائمة*.

```python
>>> pipe = pipeline("text-classification")
>>> pipe(["This restaurant is awesome", "This restaurant is awful"])
[{'label': 'POSITIVE', 'score': 0.9998743534088135},
 {'label': 'NEGATIVE', 'score': 0.9996669292449951}]
```

يُوصى باستخدام `dataset` مباشرةً للتكرار عبر مجموعات البيانات الكاملة. وهذا يعني أنك لا تحتاج إلى تخصيص المجموعة بأكملها دفعة واحدة، ولا إلى تنفيذ الدفعات بنفسك. ينبغي أن يعمل هذا بنفس سرعة الحلقات المخصصة على وحدة معالجة الرسوميات (GPU). وإذا لم يكن الأمر كذلك، فلا تتردد في فتح مشكلة.

```python
import datasets
from transformers import pipeline
from transformers.pipelines.pt_utils import KeyDataset
from tqdm.auto import tqdm

pipe = pipeline("automatic-speech-recognition", model="facebook/wav2vec2-base-960h", device=0)
dataset = datasets.load_dataset("s3prl/superb", name="asr", split="test")

# KeyDataset (only *pt*) will simply return the item in the dict returned by the dataset item
# as we're not interested in the *target* part of the dataset. For sentence pair use KeyPairDataset
for out in tqdm(pipe(KeyDataset(dataset, "file"))):
    print(out)
    # {"text": "NUMBER TEN FRESH NELLY IS WAITING ON YOU GOOD NIGHT HUSBAND"}
    # {"text": ....}
    # ....
```

للسهولة في الاستخدام، يمكن أيضًا استخدام مولّد:

```python
from transformers import pipeline

pipe = pipeline("text-classification")

def data():
    while True:
        # This could come from a dataset, a database, a queue or HTTP request
        # in a server
        # Caveat: because this is iterative, you cannot use `num_workers > 1` variable
        # to use multiple threads to preprocess data. You can still have 1 thread that
        # does the preprocessing while the main runs the big inference
        yield "This is a test"

for out in pipe(data()):
    print(out)
    # {"text": "NUMBER TEN FRESH NELLY IS WAITING ON YOU GOOD NIGHT HUSBAND"}
    # {"text": ....}
    # ....
```

#### transformers.pipeline[[transformers.pipeline]]

```python
transformers.pipeline(task: str | None = None, model: str | PreTrainedModel | None = None, config: str | PreTrainedConfig | None = None, tokenizer: str | PreTrainedTokenizer | PreTrainedTokenizerFast | None = None, feature_extractor: str | FeatureExtractionMixin | None = None, image_processor: str | BaseImageProcessor | None = None, video_processor: str | BaseVideoProcessor | None = None, processor: str | ProcessorMixin | None = None, revision: str | None = None, use_fast: bool = True, token: str | bool | None = None, device: int | str | torch.device | None = None, device_map: str | dict[str, int | str] | None = None, dtype: str | torch.dtype | None = 'auto', trust_remote_code: bool | None = None, model_kwargs: dict[str, Any] | None = None, pipeline_class: Any | None = None, **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/__init__.py#L745)

**المعاملات:**

task (`str`) : المهمة التي تحدد خط المعالجة الذي سيتم إرجاعه. المهام المقبولة حاليًا هي: - `"audio-classification"`: سيعيد [AudioClassificationPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.AudioClassificationPipeline). - `"automatic-speech-recognition"`: سيعيد [AutomaticSpeechRecognitionPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.AutomaticSpeechRecognitionPipeline). - `"depth-estimation"`: سيعيد [DepthEstimationPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.DepthEstimationPipeline). - `"document-question-answering"`: سيعيد [DocumentQuestionAnsweringPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.DocumentQuestionAnsweringPipeline). - `"feature-extraction"`: سيعيد [FeatureExtractionPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.FeatureExtractionPipeline). - `"fill-mask"`: سيعيد [FillMaskPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.FillMaskPipeline):. - `"image-classification"`: سيعيد [ImageClassificationPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.ImageClassificationPipeline). - `"image-feature-extraction"`: سيعيد [ImageFeatureExtractionPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.ImageFeatureExtractionPipeline). - `"image-segmentation"`: سيعيد [ImageSegmentationPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.ImageSegmentationPipeline). - `"image-text-to-text"`: سيعيد [ImageTextToTextPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.ImageTextToTextPipeline). - `"keypoint-matching"`: سيعيد [KeypointMatchingPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.KeypointMatchingPipeline). - `"mask-generation"`: سيعيد [MaskGenerationPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.MaskGenerationPipeline). - `"object-detection"`: سيعيد [ObjectDetectionPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.ObjectDetectionPipeline). - `"table-question-answering"`: سيعيد [TableQuestionAnsweringPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.TableQuestionAnsweringPipeline). - `"text-classification"` (يتوفر الاسم المستعار `"sentiment-analysis"`): سيعيد [TextClassificationPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.TextClassificationPipeline). - `"text-generation"`: سيعيد [TextGenerationPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.TextGenerationPipeline):. - `"text-to-audio"` (يتوفر الاسم المستعار `"text-to-speech"`): سيعيد [TextToAudioPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.TextToAudioPipeline):. - `"token-classification"` (يتوفر الاسم المستعار `"ner"`): سيعيد [TokenClassificationPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.TokenClassificationPipeline). - `"video-classification"`: سيعيد [VideoClassificationPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.VideoClassificationPipeline). - `"zero-shot-classification"`: سيعيد [ZeroShotClassificationPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.ZeroShotClassificationPipeline). - `"zero-shot-image-classification"`: سيعيد [ZeroShotImageClassificationPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.ZeroShotImageClassificationPipeline). - `"zero-shot-audio-classification"`: سيعيد [ZeroShotAudioClassificationPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.ZeroShotAudioClassificationPipeline). - `"zero-shot-object-detection"`: سيعيد [ZeroShotObjectDetectionPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.ZeroShotObjectDetectionPipeline).

model (`str` أو [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)، *اختياري*) : النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يمكن أن يكون معرّف نموذج أو نسخة فعلية من نموذج مُدرَّب مسبقًا يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel). إذا لم يُقدَّم، فسيتم تحميل الافتراضي الخاص بـ`task`.

config (`str` أو [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig)، *اختياري*) : التهيئة التي ستستخدمها خط المعالجة لإنشاء النموذج. يمكن أن يكون هذا معرّف نموذج أو تهيئة نموذج مُدرَّب مسبقًا فعليًا يرث من [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig). إذا لم يُقدَّم، فسيتم استخدام ملف التهيئة الافتراضي للنموذج المطلوب. وهذا يعني أنه إذا تم تقديم `model`، فسيتم استخدام تهيئته الافتراضية. ومع ذلك، إذا لم يُقدَّم `model`، فسيتم استخدام تهيئة النموذج الافتراضي لهذا `task` بدلاً من ذلك.

tokenizer (`str` أو [PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend)، *اختياري*) : المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يمكن أن يكون هذا معرّف نموذج أو مُرمِّز مُدرَّب مسبقًا فعليًا يرث من [PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend). إذا لم يُقدَّم، فسيتم تحميل المُرمِّز الافتراضي للنموذج المُعطى `model` (إذا كان نصًا). إذا لم يُحدَّد `model` أو لم يكن نصًا، فسيتم تحميل المُرمِّز الافتراضي لـ`config` (إذا كان نصًا). ومع ذلك، إذا لم يُعطَ `config` أيضًا أو لم يكن نصًا، فسيتم تحميل المُرمِّز الافتراضي للمهمة المُعطاة `task`.

feature_extractor (`str` أو [FeatureExtractionMixin](/docs/transformers/main/ar/main_classes/feature_extractor#transformers.FeatureExtractionMixin)، *اختياري*) : مستخرج الميزات الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يمكن أن يكون هذا معرّف نموذج أو مستخرج ميزات مُدرَّب مسبقًا فعليًا يرث من [FeatureExtractionMixin](/docs/transformers/main/ar/main_classes/feature_extractor#transformers.FeatureExtractionMixin). تُستخدم مستخرجات الميزات للنماذج غير المتعلقة بمعالجة اللغة الطبيعية، مثل نماذج الكلام أو الرؤية، وكذلك النماذج متعددة الوسائط. ستتطلب النماذج متعددة الوسائط أيضًا تمرير مُجزِّئ. إذا لم يُقدَّم، فسيتم تحميل مستخرج الميزات الافتراضي للنموذج المحدد `model` (إذا كان نصًا). إذا لم يُحدَّد `model` أو لم يكن نصًا، فسيتم تحميل مستخرج الميزات الافتراضي لـ `config` (إذا كان نصًا). ومع ذلك، إذا لم يُقدَّم `config` أيضًا أو لم يكن نصًا، فسيتم تحميل مستخرج الميزات الافتراضي للمهمة المحددة `task`.

image_processor (`str` أو [BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor)، *اختياري*) : معالج الصور الذي ستستخدمه خط المعالجة (pipeline) لمعالجة الصور مسبقًا لصالح النموذج. يمكن أن يكون هذا معرّف نموذج أو معالج صور فعلي يرث من [BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor). تُستخدم معالجات الصور لنماذج الرؤية (Vision) والنماذج متعددة الوسائط التي تتطلب مدخلات صور. كما ستحتاج النماذج متعددة الوسائط إلى تمرير مُرمِّز (tokenizer). إذا لم يُقدَّم معالج صور، فسيتم تحميل معالج الصور الافتراضي للنموذج المحدد `model` (إذا كان نصًا). إذا لم يُحدَّد `model` أو لم يكن نصًا، فسيتم تحميل معالج الصور الافتراضي لـ `config` (إذا كان نصًا).

processor (`str` أو [ProcessorMixin](/docs/transformers/main/ar/main_classes/processors#transformers.ProcessorMixin)، *اختياري*) : المعالج الذي ستستخدمه خط المعالجة (pipeline) لمعالجة البيانات مسبقًا للنموذج. يمكن أن يكون هذا معرّف نموذج أو معالج فعلي يرث من [ProcessorMixin](/docs/transformers/main/ar/main_classes/processors#transformers.ProcessorMixin). تُستخدم المعالجات للنماذج متعددة الوسائط التي تتطلب مدخلات متعددة الوسائط، على سبيل المثال، نموذج يتطلب مدخلات نصية وصورية معًا. إذا لم يُقدَّم، فسيتم تحميل المعالج الافتراضي للنموذج المحدد `model` (إذا كان نصًا). إذا لم يُحدَّد `model` أو لم يكن نصًا، فسيتم تحميل المعالج الافتراضي لـ `config` (إذا كان نصًا).

revision (`str`، *اختياري*، القيمة الافتراضية `"main"`) : عند تمرير اسم مهمة أو معرّف نموذج نصي: إصدار النموذج المحدد الذي سيتم استخدامه. يمكن أن يكون اسم فرع، أو اسم وسم، أو معرّف التزامن (commit id)، نظرًا إلى أننا نستخدم نظامًا قائمًا على git لتخزين النماذج والمخرجات الأخرى على huggingface.co، لذا يمكن أن يكون `revision` أي معرّف مسموح به في git.

use_fast (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم استخدام مُقسِّم سريع (Fast tokenizer) أم لا عند الإمكان (أي [PreTrainedTokenizerFast](/docs/transformers/main/ar/main_classes/tokenizer#transformers.TokenizersBackend)).

token (`str` أو *bool*، *اختياري*) : الرمز الذي يُستخدم للتفويض عبر HTTP للملفات البعيدة. إذا كان `True`، فسيتم استخدام الرمز الذي تم إنشاؤه عند تشغيل `hf auth login`.

device (`int` أو `str` أو `torch.device`، *اختياري*) : يحدد الجهاز (*مثل*، `"cpu"`، `"cuda:1"`، `"mps"`، أو ترتيب GPU مثل `1`) الذي سيُخصَّص عليه هذا الخطّ الأنابيبي. عند تركه غير مضبوط، يُوضع الخطّ الأنابيبي تلقائيًا على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يلجأ إلى المعالج المركزي (CPU) إلا عند عدم توفر أي مُسرِّع؛ حيث يتم نقل النموذج إليه نيابةً عنك. مرِّر `device="cpu"` (أو `-1`) لإجبار استخدام المعالج المركزي. لا يمكن استخدامه مع `device_map`.

device_map (`str` أو `dict[str, Union[int, str, torch.device]`، *اختياري*) : يُرسل مباشرةً كـ`model_kwargs` (وهو مجرد اختصار أبسط). عند وجود مكتبة `accelerate`، اضبط `device_map="auto"` لحساب `device_map` الأكثر تحسينًا تلقائيًا (انظر [هنا](https://huggingface.co/docs/accelerate/main/en/package_reference/big_modeling#accelerate.cpu_offload) لمزيد من المعلومات).    لا تستخدم `device_map` و`device` في الوقت نفسه لأنهما سيتعارضان

dtype (`str` أو `torch.dtype`، *اختياري*، الافتراضي `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. الافتراضي هو `"auto"`، والذي يُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به. مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوز ذلك.

trust_remote_code (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم السماح بالكود المخصص المعرّف على Hub في ملفات النمذجة أو التهيئة أو الترميز أو حتى خطوط الأنابيب الخاصة به. يجب ضبط هذا الخيار على `True` فقط للمستودعات التي تثق بها والتي قرأت كودها، لأنه سيقوم بتنفيذ الكود الموجود على Hub على جهازك المحلي.

model_kwargs (`dict[str, Any]`، *اختياري*) : قاموس إضافي لحجج الكلمات المفتاحية التي تُمرَّر إلى دالة `from_pretrained(..., **model_kwargs)` الخاصة بالنموذج.

kwargs (`dict[str, Any]`، *اختياري*) : حُجج إضافية تُمرَّر إلى تهيئة خط المعالجة المحدد (راجع توثيق فئة خط المعالجة المقابلة لمعرفة القيم الممكنة).

**يعيد:** [Pipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.Pipeline)

خط أنابيب مناسب للمهمة.

طريقة مصنع مساعدة لبناء [Pipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.Pipeline).

يتألف خط الأنابيب من:

- مكوّن واحد أو أكثر لمعالجة مدخلات النموذج مسبقًا، مثل [مجزّئ الرموز](tokenizer)،
[image_processor](image_processor) أو [feature_extractor](feature_extractor) أو [processor](processors).
- [نموذج](model) يولّد تنبؤات من المدخلات.
- خطوات ما بعد المعالجة الاختيارية لتحسين مخرجات النموذج، والتي يمكن أيضاً التعامل معها بواسطة المعالجات.

على الرغم من وجود حُجج اختيارية مثل `tokenizer` و`feature_extractor` و`image_processor` و`processor`، إلا أنه لا ينبغي تحديد جميعها في آنٍ واحد. إذا لم تُقدَّم هذه المكونات، فسيحاول `pipeline` تحميل المكونات المطلوبة تلقائيًا. إذا كنت ترغب في تقديم هذه المكونات صراحةً، فيرجى الرجوع إلى خط أنابيب محدد للحصول على مزيد من التفاصيل حول المكونات المطلوبة.

أمثلة:

```python
>>> from transformers import pipeline, AutoModelForTokenClassification, AutoTokenizer

>>> # Sentiment analysis pipeline
>>> analyzer = pipeline("sentiment-analysis")

>>> # Named entity recognition pipeline, passing in a specific model and tokenizer
>>> model = AutoModelForTokenClassification.from_pretrained("dbmdz/bert-large-cased-finetuned-conll03-english")
>>> tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")
>>> recognizer = pipeline("ner", model=model, tokenizer=tokenizer)
```

## دفعات خط الأنابيب

يمكن لجميع خطوط الأنابيب استخدام الدفعات (batching). سيعمل هذا في أي وقت تستخدم فيه خط الأنابيب قدرته على البث (streaming) (أي عند تمرير قوائم أو `Dataset` أو `generator`).

```python
from transformers import pipeline
from transformers.pipelines.pt_utils import KeyDataset
import datasets

dataset = datasets.load_dataset("stanfordnlp/imdb", name="plain_text", split="unsupervised")
pipe = pipeline("text-classification", device=0)
for out in pipe(KeyDataset(dataset, "text"), batch_size=8, truncation="only_first"):
    print(out)
    # [{'label': 'POSITIVE', 'score': 0.9998743534088135}]
    # Exactly the same output as before, but the content are passed
    # as batches to the model
```

ومع ذلك، لا يعني هذا بالضرورة تحسناً في الأداء. فقد يؤدي إلى تسريع بنسبة 10 أضعاف أو إبطاء بنسبة 5 أضعاف، وذلك تبعاً للعتاد والبيانات والنموذج الفعلي المستخدم.

مثال يكون فيه في الغالب تسريعًا:

```python
from transformers import pipeline
from torch.utils.data import Dataset
from tqdm.auto import tqdm

pipe = pipeline("text-classification", device=0)

class MyDataset(Dataset):
    def __len__(self):
        return 5000

    def __getitem__(self, i):
        return "This is a test"

dataset = MyDataset()

for batch_size in [1, 8, 64, 256]:
    print("-" * 30)
    print(f"Streaming batch_size={batch_size}")
    for out in tqdm(pipe(dataset, batch_size=batch_size), total=len(dataset)):
        pass
```

```text
# On GTX 970
------------------------------
Streaming no batching
100%|██████████████████████████████████████████████████████████████████████| 5000/5000 [00:26<00:00, 187.52it/s]
------------------------------
Streaming batch_size=8
100%|█████████████████████████████████████████████████████████████████████| 5000/5000 [00:04<00:00, 1205.95it/s]
------------------------------
Streaming batch_size=64
100%|█████████████████████████████████████████████████████████████████████| 5000/5000 [00:02<00:00, 2478.24it/s]
------------------------------
Streaming batch_size=256
100%|█████████████████████████████████████████████████████████████████████| 5000/5000 [00:01<00:00, 2554.43it/s]
(diminishing returns, saturated the GPU)
```

مثال يكون فيه في الغالب تباطؤ:

```python
class MyDataset(Dataset):
    def __len__(self):
        return 5000

    def __getitem__(self, i):
        if i % 64 == 0:
            n = 100
        else:
            n = 1
        return "This is a test" * n
```

هذه جملة طويلة جداً بشكل استثنائي مقارنةً بالجملة الأخرى. في هذه الحالة، سيتعين أن يكون **الدفعة** بأكملها بطول 400 رمز، وبالتالي ستكون الدفعة بأكملها [64, 400] بدلاً من [64, 4]، مما يؤدي إلى تباطؤ كبير. والأسوأ من ذلك، أن البرنامج ينهار ببساطة عند استخدام دفعات أكبر.

```text
------------------------------
Streaming no batching
100%|█████████████████████████████████████████████████████████████████████| 1000/1000 [00:05<00:00, 183.69it/s]
------------------------------
Streaming batch_size=8
100%|█████████████████████████████████████████████████████████████████████| 1000/1000 [00:03<00:00, 265.74it/s]
------------------------------
Streaming batch_size=64
100%|██████████████████████████████████████████████████████████████████████| 1000/1000 [00:26<00:00, 37.80it/s]
------------------------------
Streaming batch_size=256
  0%|                                                                                 | 0/1000 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "/home/nicolas/src/transformers/test.py", line 42, in <module>
    for out in tqdm(pipe(dataset, batch_size=256), total=len(dataset)):
....
    q = q / math.sqrt(dim_per_head)  # (bs, n_heads, q_length, dim_per_head)
RuntimeError: CUDA out of memory. Tried to allocate 376.00 MiB (GPU 0; 3.95 GiB total capacity; 1.72 GiB already allocated; 354.88 MiB free; 2.46 GiB reserved in total by PyTorch)
```

لا توجد حلول جيدة (عامة) لهذه المشكلة، وقد يختلف الأمر باختلاف حالات الاستخدام لديك. القاعدة العامة:

للمستخدمين، قاعدة عامة هي:

- **قِس الأداء على حمّلك، وعلى عتادك. قِس، ثم قِس، وواصل القياس. الأرقام الحقيقية هي الطريق الوحيد.**
- إذا كنت مقيداً بزمن الاستجابة (منتج مباشر يقوم بالاستدلال)، فلا تجمع الطلبات في دفعات.
- إذا كنت تستخدم المعالج المركزي (CPU)، فلا تقم بتجميع البيانات (batching).
- إذا كنت تستخدم معدل الإنتاجية (أي أنك تريد تشغيل نموذجك على مجموعة من البيانات الثابتة)، على وحدة معالجة الرسوميات، فإليك ما يجب عليك فعله:

  - إذا لم تكن لديك فكرة عن حجم sequence_length (البيانات "الطبيعية")، فبشكل افتراضي لا تُجمّع البيانات، وقِس الحجم وحاول بشكل تجريبي إضافته، وأضف فحوصات نفاد الذاكرة (OOM) للتعافي عند حدوث الفشل (وسوف يحدث في مرحلة ما إذا لم تتحكم في sequence_length).
  - إذا كان sequence_length لديك منتظماً للغاية، فمن المرجح أن يكون التجميع (batching) مثيراً للاهتمام جداً، لذا قِس الأداء وازدِ به حتى تصل إلى أخطاء نفاد الذاكرة (OOMs).
  - كلما كانت بطاقة GPU أكبر، زادت احتمالية أن يصبح تنفيذ الدفعات (batching) أكثر أهمية.
- بمجرد تفعيل الدفعات، تأكد من قدرتك على التعامل مع أخطاء نفاد الذاكرة (OOM) بسلاسة.

## تجميع أجزاء خط الأنابيب

`zero-shot-classification` و`question-answering` محددان إلى حد ما، بمعنى أن إدخالًا واحدًا قد يؤدي إلى عدة تمريرات أمامية لنموذج واحد. في الظروف العادية، كان هذا سيُسبب مشاكل مع معامل `batch_size`.

لتجاوز هذه المشكلة، كلا هذين المسارين (pipelines) محددان إلى حد ما، فهما `ChunkPipeline` بدلاً من `Pipeline` العادي. باختصار:

```python
preprocessed = pipe.preprocess(inputs)
model_outputs = pipe.forward(preprocessed)
outputs = pipe.postprocess(model_outputs)
```

أصبح الآن:

```python
all_model_outputs = []
for preprocessed in pipe.preprocess(inputs):
    model_outputs = pipe.forward(preprocessed)
    all_model_outputs.append(model_outputs)
outputs = pipe.postprocess(all_model_outputs)
```

يجب أن يكون هذا شفافًا للغاية بالنسبة إلى كودك، لأن خطوط الأنابيب تُستخدم بنفس الطريقة.

هذا عرض مبسّط، إذ يمكن لخط المعالجة أن يتعامل مع الدفعة تلقائيًا نيابةً عنك! أي أنك لا تحتاج إلى القلق بشأن عدد مرات التمرير الأمامي التي ستُطلقها مدخلاتك فعليًا، بل يمكنك تحسين `batch_size` بشكل مستقل عن المدخلات. ولا تزال التحذيرات الواردة في القسم السابق سارية المفعول.

## استدلال FP16 في خط الأنابيب

يمكن تشغيل النماذج بدقة FP16، مما قد يجعلها أسرع بكثير على وحدة معالجة الرسوميات (GPU) مع توفير في الذاكرة. لن تتأثر معظم النماذج بخسارة ملحوظة في الأداء بسبب ذلك. وكلما كان حجم النموذج أكبر، قلّت احتمالية تأثره بذلك.

لتفعيل الاستدلال بنوع FP16، يمكنك ببساطة تمرير `dtype=torch.float16` أو `dtype='float16'` إلى مُنشئ خط الأنابيب. لاحظ أن هذا يعمل فقط مع النماذج التي تعتمد على PyTorch كخلفية. سيتم تحويل مدخلاتك إلى FP16 داخلياً.

## كود مخصص لخط الأنابيب

إذا كنت ترغب في تجاوز خط أنابيب محدد.

لا تتردد في إنشاء مشكلة (Issue) للمهمة التي تعمل عليها، فهدف خط المعالجة (Pipeline) هو أن يكون سهل الاستخدام ويدعم معظم الحالات، لذا قد يدعم `transformers` حالة الاستخدام الخاصة بك.

إذا كنت ترغب في التجربة ببساطة، يمكنك:

- أنشئ فئة فرعية من خط المعالجة الذي تختاره

```python
class MyPipeline(TextClassificationPipeline):
    def postprocess():
        # Your code goes here
        scores = scores * 100
        # And here

my_pipeline = MyPipeline(model=model, tokenizer=tokenizer, ...)
# or if you use *pipeline* function, then:
my_pipeline = pipeline(model="xxxx", pipeline_class=MyPipeline)
```

يجب أن يتيح لك ذلك تنفيذ أي رمز مخصص تريده.

## تنفيذ خط أنابيب

[تنفيذ خط أنابيب جديد](../add_new_pipeline)

## الصوت

تشمل خطوط الأنابيب المتاحة لمهام الصوت ما يلي.

### AudioClassificationPipeline[[transformers.AudioClassificationPipeline]]

#### transformers.AudioClassificationPipeline[[transformers.AudioClassificationPipeline]]

```python
transformers.AudioClassificationPipeline(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/audio_classification.py#L67)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

feature_extractor ([SequenceFeatureExtractor](/docs/transformers/main/ar/main_classes/feature_extractor#transformers.SequenceFeatureExtractor)) : مستخرج الميزات الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من [SequenceFeatureExtractor](/docs/transformers/main/ar/main_classes/feature_extractor#transformers.SequenceFeatureExtractor).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

خط أنابيب تصنيف الصوت باستخدام أي `AutoModelForAudioClassification`. يتنبأ هذا الخط أنابيب بفئة الموجة الخام أو ملف الصوت. في حالة ملف الصوت، يجب تثبيت ffmpeg لدعم صيغ الصوت المتعددة.

مثال:

```python
>>> from transformers import pipeline

>>> classifier = pipeline(model="superb/wav2vec2-base-superb-ks")
>>> classifier("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/1.flac")
[{'score': 0.997, 'label': '_unknown_'}, {'score': 0.002, 'label': 'left'}, {'score': 0.0, 'label': 'yes'}, {'score': 0.0, 'label': 'down'}, {'score': 0.0, 'label': 'stop'}]
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حاليًا تحميل خط الأنابيب هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"audio-classification"`.

اطّلع على قائمة النماذج المتاحة على [huggingface.co/models](https://huggingface.co/models?filter=audio-classification).

#### __call__[[transformers.AudioClassificationPipeline.__call__]]

```python
__call__(inputs: numpy.ndarray | bytes | str | dict, **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/audio_classification.py#L109)

**المعاملات:**

inputs (`np.ndarray` أو `bytes` أو `str` أو `dict`) : تكون المدخلات إما: - `str` وهو اسم ملف الصوت، حيث يُقرأ الملف بمعدل أخذ العينات الصحيح للحصول على الموجة الصوتية باستخدام *ffmpeg*. وهذا يتطلب تثبيت *ffmpeg* على النظام. - `bytes` يُفترض أن يكون محتوى ملف صوتي ويُفسَّر بواسطة *ffmpeg* بنفس الطريقة. - (`np.ndarray` من الشكل (n, ) من النوع `np.float32` أو `np.float64`) صوت خام بمعدل أخذ العينات الصحيح (لن يتم إجراء أي فحص إضافي) - يمكن استخدام صيغة `dict` لتمرير صوت خام تم أخذ عيناته بمعدل `sampling_rate` عشوائي، ودع خط المعالجة هذا يقوم بإعادة أخذ العينات. يجب أن يكون القاموس إما بالصيغة `{"sampling_rate": int, "raw": np.array}`، أو `{"sampling_rate": int, "array": np.array}`، حيث يُستخدم المفتاح `"raw"` أو `"array"` للإشارة إلى الموجة الصوتية الخام.

top_k (`int`، *اختياري*، القيمة الافتراضية هي None) : عدد التسميات العلوية التي ستُعاد بواسطة خط المعالجة. إذا كانت القيمة المُقدَّمة هي `None` أو أكبر من عدد التسميات المتاحة في إعدادات النموذج، فستتخذ القيمة الافتراضية عدد التسميات.

function_to_apply (`str`، *اختياري*، القيمة الافتراضية "softmax") : الدالة التي تُطبَّق على مخرجات النموذج. افتراضيًا، ستطبّق خط المعالجة دالة softmax على مخرجات النموذج. الخيارات الصالحة: ["softmax", "sigmoid", "none"]. لاحظ أن تمرير القيمة `None` المدمجة في Python ستجعل القيمة الافتراضية "softmax"، لذا يجب عليك تمرير السلسلة "none" لتعطيل أي معالجة لاحقة.

**تُرجع:** قائمة من `dict` تحتوي على المفاتيح التالية

- **label** (`str`) -- التسمية المتوقعة.
- **score** (`float`) -- الاحتمال المقابل.

صنّف التسلسلات المُعطاة كمدخلات. راجع توثيق [AutomaticSpeechRecognitionPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.AutomaticSpeechRecognitionPipeline) لمزيد من المعلومات.

### AutomaticSpeechRecognitionPipeline[[transformers.AutomaticSpeechRecognitionPipeline]]

#### transformers.AutomaticSpeechRecognitionPipeline[[transformers.AutomaticSpeechRecognitionPipeline]]

```python
transformers.AutomaticSpeechRecognitionPipeline(model: PreTrainedModel, feature_extractor: typing.Union[ForwardRef('SequenceFeatureExtractor'), str, NoneType] = None, tokenizer: transformers.tokenization_python.PythonBackend | None = None, decoder: typing.Union[ForwardRef('BeamSearchDecoderCTC'), str, NoneType] = None, device: typing.Union[int, ForwardRef('torch.device'), NoneType] = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/automatic_speech_recognition.py#L146)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

feature_extractor ([SequenceFeatureExtractor](/docs/transformers/main/ar/main_classes/feature_extractor#transformers.SequenceFeatureExtractor)، *اختياري*) : مستخرج الميزات الذي ستستخدمه خط المعالجة لتشفير الموجة الصوتية للنموذج.

tokenizer ([PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend)، *اختياري*) : المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من [PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend).

decoder (`pyctcdecode.BeamSearchDecoderCTC`، *اختياري*) : يمكن تمرير [BeamSearchDecoderCTC](https://github.com/kensho-technologies/pyctcdecode/blob/2fd33dc37c4111417e08d89ccd23d28e9b308d19/pyctcdecode/decoder.py#L180) الخاص بـ PyCTCDecode للحصول على فك تشفير معزّز بنموذج لغوي. راجع [Wav2Vec2ProcessorWithLM](/docs/transformers/main/ar/model_doc/wav2vec2#transformers.Wav2Vec2ProcessorWithLM) لمزيد من المعلومات.

device (Union[`int`, `torch.device`], *اختياري*) : رقم الجهاز (Device ordinal) لدعم وحدات المعالجة المركزية/الرسوميات (CPU/GPU). ضبط هذا على `None` سيُفعّل وحدة المعالجة المركزية (CPU)، بينما سيؤدي ضبطه على قيمة موجبة إلى تشغيل النموذج على معرّف جهاز CUDA المرتبط.

خط أنابيب يهدف إلى استخراج النص المنطوق الموجود داخل بعض المقاطع الصوتية.

يمكن أن يكون الإدخال إما موجة صوتية خام أو ملف صوتي. في حالة الملف الصوتي، يجب تثبيت ffmpeg لدعم تنسيقات الصوت المتعددة

ما لم يضبط النموذج الذي تستخدمه هذه المعلمات الخاصة بالتوليد صراحةً في ملفات إعداده (`generation_config.json`)، فسيتم استخدام القيم الافتراضية التالية:
- max_new_tokens: 256
- num_beams: 5

مثال:

```python
>>> from transformers import pipeline

>>> transcriber = pipeline(model="openai/whisper-base")
>>> transcriber("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/1.flac")
{'text': ' He hoped there would be stew for dinner, turnips and carrots and bruised potatoes and fat mutton pieces to be ladled out in thick, peppered flour-fatten sauce.'}
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

#### __call__[[transformers.AutomaticSpeechRecognitionPipeline.__call__]]

```python
__call__(inputs: numpy.ndarray | bytes | str | dict, **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/automatic_speech_recognition.py#L231)

**المعاملات:**

inputs (`np.ndarray` أو `bytes` أو `str` أو `dict`) : المدخلات إما: - `str` وهو إما اسم ملف صوتي محلي، أو عنوان URL عام لتنزيل الملف الصوتي. سيتم قراءة الملف بمعدل أخذ العينات الصحيح للحصول على الموجة باستخدام *ffmpeg*. وهذا يتطلب تثبيت *ffmpeg* على النظام. - `bytes` يُفترض أن يكون محتوى ملف صوتي ويُفسَّر بواسطة *ffmpeg* بنفس الطريقة. - (`np.ndarray` من الشكل (n, ) من النوع `np.float32` أو `np.float64`) صوت خام بمعدل أخذ العينات الصحيح (لن يتم إجراء أي فحص إضافي) - يمكن استخدام صيغة `dict` لتمرير صوت خام تم أخذ عيناته بمعدل `sampling_rate` عشوائي، ودع خط المعالجة هذا يقوم بإعادة أخذ العينات. يجب أن يكون القاموس بالصيغة `{"sampling_rate": int, "raw": np.array}` مع اختيارية `"stride": (left: int, right: int)` يمكن أن تطلب من خط المعالجة تجاهل أول `left` عينة وآخر `right` عينة في فك الترميز (لكن تُستخدم أثناء الاستدلال لتوفير سياق إضافي للنموذج). استخدم `stride` فقط مع نماذج CTC.

return_timestamps (*اختياري*، `str` أو `bool`) : متوفر فقط لنماذج CTC النقية (Wav2Vec2، HuBERT، إلخ) ونموذج Whisper. غير متوفر لنماذج التتابع إلى التتابع الأخرى. بالنسبة لنماذج CTC، يمكن أن تتخذ الطوابع الزمنية أحد الصيغتين: - `"char"`: سيعيد خط الأنابيب طوابع زمنية على طول النص لكل حرف في النص. على سبيل المثال، إذا حصلت على `[{"text": "h", "timestamp": (0.5, 0.6)}, {"text": "i", "timestamp": (0.7, 0.9)}]`، فهذا يعني أن النموذج يتنبأ بأن الحرف "h" نُطق بعد `0.5` وقبل `0.6` ثانية. - `"word"`: سيعيد خط الأنابيب طوابع زمنية على طول النص لكل كلمة في النص. على سبيل المثال، إذا حصلت على `[{"text": "hi ", "timestamp": (0.5, 0.9)}, {"text": "there", "timestamp": (1.0, 1.5)}]`، فهذا يعني أن النموذج يتنبأ بأن الكلمة "hi" نُطقت بعد `0.5` وقبل `0.9` ثانية. بالنسبة لنموذج Whisper، يمكن أن تتخذ الطوابع الزمنية أحد الصيغتين: - `"word"`: نفس ما سبق بالنسبة لطوابع التتابع الزمنية على مستوى الكلمة. تُتنبأ طوابع التتابع الزمنية على مستوى الكلمة من خلال خوارزمية *dynamic-time warping (DTW)*، وهي تقريب لطوابع التتابع الزمنية على مستوى الكلمة من خلال فحص أوزان الانتباه المتقاطع. - `True`: سيعيد خط الأنابيب طوابع زمنية على طول النص لـ *مقاطع* من الكلمات في النص. على سبيل المثال، إذا حصلت على `[{"text": " Hi there!", "timestamp": (0.5, 1.5)}]`، فهذا يعني أن النموذج يتنبأ بأن المقطع "Hi there!" نُطق بعد `0.5` وقبل `1.5` ثانية. لاحظ أن مقطع النص يشير إلى تسلسل من كلمة واحدة أو أكثر، وليس كلمات فردية كما هو الحال مع طوابع التتابع الزمنية على مستوى الكلمة.

generate_kwargs (`dict`، *اختياري*) : قاموسٌ لتخصيص `generate_config` بشكلٍ مؤقتٍ يُستخدم في استدعاء التوليد. للحصول على نظرة شاملة على generate، راجع [الدليل التالي](https://huggingface.co/docs/transformers/en/main_classes/text_generation).

**يعيد:** `Dict`

قاموس بالمفاتيح التالية:
- **النص** (`str`): النص المُعرَّف.
- **chunks** (*اختياري، `list[Dict]`) عند استخدام `return_timestamps`، يصبح `chunks` قائمة تحتوي على جميع مقاطع النص المختلفة التي حددها النموذج، *على سبيل المثال* `[{"text": "hi ", "timestamp": (0.5, 0.9)}, {"text": "there", "timestamp": (1.0, 1.5)}]`. يمكن استعادة النص الكامل الأصلي تقريبًا من خلال تنفيذ `"".join(chunk["text"] for chunk in output["chunks"])`.

نسخ تسلسلات الصوت المُدخلة إلى نص. راجع توثيق [AutomaticSpeechRecognitionPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.AutomaticSpeechRecognitionPipeline) لمزيد من المعلومات.

### TextToAudioPipeline[[transformers.TextToAudioPipeline]]

#### transformers.TextToAudioPipeline[[transformers.TextToAudioPipeline]]

```python
transformers.TextToAudioPipeline(*args, vocoder = None, sampling_rate = None, noise_scheduler = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/text_to_audio.py#L46)

خط أنابيب لتوليد الصوت من النص باستخدام أي `AutoModelForTextToWaveform` أو `AutoModelForTextToSpectrogram`. يولّد هذا الخط أنابيب ملف صوتي من نص مدخل ومداخل شرطية اختيارية أخرى.

ما لم يضبط النموذج الذي تستخدمه معاملات التوليد صراحةً في `generation_config.json`، فسيتم استخدام القيم الافتراضية من `generation.configuration_utils.py._get_default_generation_params()`.
- max_new_tokens: 256

مثال:

```python
>>> from transformers import pipeline

>>> pipe = pipeline(model="suno/bark-small")
>>> output = pipe("Hey it's HuggingFace on the phone!")

>>> audio = output["audio"]
>>> sampling_rate = output["sampling_rate"]
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكنك تحديد المعاملات المُمرَّرة إلى النموذج باستخدام `TextToAudioPipeline.__call__.forward_params` أو `TextToAudioPipeline.__call__.generate_kwargs`.

مثال:

```python
>>> from transformers import pipeline

>>> music_generator = pipeline(task="text-to-audio", model="facebook/musicgen-small")

>>> # diversify the music generation by adding randomness with a high temperature and set a maximum music length
>>> generate_kwargs = {
...     "do_sample": True,
...     "temperature": 0.7,
...     "max_new_tokens": 35,
... }

>>> outputs = music_generator("Techno music with high melodic riffs", generate_kwargs=generate_kwargs)
```

يمكن حاليًا تحميل خط الأنابيب هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّفات المهام التالية: `"text-to-speech"` أو `"text-to-audio"`.

اطّلع على قائمة النماذج المتاحة على [huggingface.co/models](https://huggingface.co/models?filter=text-to-speech).

#### __call__[[transformers.TextToAudioPipeline.__call__]]

```python
__call__(text_inputs, **forward_params)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/text_to_audio.py#L260)

**المعاملات:**

text_inputs (`str`، `list[str]`، `ChatType`، أو `list[ChatType]`) : نص واحد أو عدة نصوص لتوليدها. إذا تم تمرير نصوص أو قائمة من النصوص، فسيولّد هذا الخط الأنابيب النص المقابل. وبديلًا عن ذلك، يمكن تمرير "محادثة" على شكل قائمة من القواميس التي تحتوي على مفاتيح "role" و"content"، أو قائمة من مثل هذه المحادثات. عند تمرير المحادثات، سيُستخدم قالب المحادثة الخاص بالنموذج لتنسيقها قبل تمريرها إلى النموذج.

forward_params (`dict`، *اختياري*) : المعاملات التي تُمرَّر إلى طريقة توليد النموذج/المسار الأمامي. تُمرَّر `forward_params` دائمًا إلى النموذج الأساسي.

generate_kwargs (`dict`، *اختياري*) : قاموسٌ لتخصيص `generate_config` بشكلٍ مؤقتٍ يُستخدم في استدعاء التوليد. للحصول على نظرة شاملة على generate، راجع [الدليل التالي](https://huggingface.co/docs/transformers/en/main_classes/text_generation). لا تُمرَّر `generate_kwargs` إلى النموذج الأساسي إلا إذا كان نموذجًا توليديًا، وتتمتع بأولوية أعلى من `forward_params`.

**يعيد:** `AudioOutput` أو قائمة من `AudioOutput`، وهو `TypedDict` بمفتاحين

- **audio** (`np.ndarray` من الشكل `(nb_channels, audio_length)`) -- موجة الصوت المولّدة.
- **sampling_rate** (`int`) -- معدل أخذ العينات لموجة الصوت المولّدة.

يولّد الكلام/الصوت من المدخلات. راجع توثيق [TextToAudioPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.TextToAudioPipeline) لمزيد من المعلومات.

### ZeroShotAudioClassificationPipeline[[transformers.ZeroShotAudioClassificationPipeline]]

#### transformers.ZeroShotAudioClassificationPipeline[[transformers.ZeroShotAudioClassificationPipeline]]

```python
transformers.ZeroShotAudioClassificationPipeline(**kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/zero_shot_audio_classification.py#L32)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

tokenizer ([PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend)) : المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من [PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend).

feature_extractor ([SequenceFeatureExtractor](/docs/transformers/main/ar/main_classes/feature_extractor#transformers.SequenceFeatureExtractor)) : مستخرج الميزات الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من [SequenceFeatureExtractor](/docs/transformers/main/ar/main_classes/feature_extractor#transformers.SequenceFeatureExtractor).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

خط أنابيب تصنيف الصوت بدون تدريب مسبق باستخدام `ClapModel`. يتنبأ هذا الخط أنابيب بفئة الصوت عند تزويده بصوت ومجموعة من `candidate_labels`.

القيمة الافتراضية لـ `hypothesis_template` هي: `"This is a sound of {}."`. تأكد من تحديثها لتناسب استخدامك.

مثال:
```python
>>> from transformers import pipeline
>>> from datasets import load_dataset

>>> dataset = load_dataset("ashraq/esc50")
>>> audio = next(iter(dataset["train"]["audio"]))["array"]
>>> classifier = pipeline(task="zero-shot-audio-classification", model="laion/clap-htsat-unfused")
>>> classifier(audio, candidate_labels=["Sound of a dog", "Sound of vacuum cleaner"])
[{'score': 0.9996, 'label': 'Sound of a dog'}, {'score': 0.0004, 'label': 'Sound of vacuum cleaner'}]
```

تعرّف على المزيد من أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial). يمكن حالياً تحميل خط أنابيب تصنيف الصوت هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"zero-shot-audio-classification"`. راجع قائمة النماذج المتاحة على [huggingface.co/models](https://huggingface.co/models?filter=zero-shot-audio-classification).

#### __call__[[transformers.ZeroShotAudioClassificationPipeline.__call__]]

```python
__call__(audios: numpy.ndarray | bytes | str | dict, **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/zero_shot_audio_classification.py#L70)

**المعاملات:**

audios (`str`، `list[str]`، `np.array` أو `list[np.array]`) : يتعامل خط المعالجة مع ثلاثة أنواع من المدخلات: - نص يحتوي على رابط http يشير إلى ملف صوتي - نص يحتوي على مسار محلي لملف صوتي - ملف صوتي محمّل في numpy

candidate_labels (`list[str]`) : التسميات المرشحة لهذا الصوت. سيتم تنسيقها باستخدام *hypothesis_template*.

hypothesis_template (`str`، *اختياري*، القيمة الافتراضية `"This is a sound of {}"`) : الصيغة المستخدمة بالتزامن مع *candidate_labels* لمحاولة تصنيف الصوت عن طريق استبدال العنصر الوسيط بـ candidate_labels. مرّر "{}" إذا كانت *candidate_labels* منسّقة مسبقًا.

**يعيد:**

قائمة من القواميس تحتوي على مدخل واحد لكل تسمية مقترحة. يحتوي كل قاموس على المفاتيح التالية:
- **label** (`str`) -- أحد *candidate_labels* المقترحة.
- **score** (`float`) -- الدرجة التي منحتها النموذج لتلك التسمية. وهي قيمة بين 0 و1، تُحسب على أنها `softmax` لـ`logits_per_audio`.

سند التسميات إلى الصوت (أو الأصوات) المُمرّرة كمدخلات.

## رؤية الحاسوب

تشمل خطوط الأنابيب المتاحة لمهام الرؤية الحاسوبية ما يلي.

### DepthEstimationPipeline[[transformers.DepthEstimationPipeline]]

#### transformers.DepthEstimationPipeline[[transformers.DepthEstimationPipeline]]

```python
transformers.DepthEstimationPipeline(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/depth_estimation.py#L25)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

image_processor ([BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor)) : مُعالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من [BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

خط أنابيب تقدير العمق باستخدام أي `AutoModelForDepthEstimation`. يتنبأ هذا الخط أنابيب بعمق الصورة.

مثال:

```python
>>> from transformers import pipeline

>>> depth_estimator = pipeline(task="depth-estimation", model="LiheYoung/depth-anything-base-hf")
>>> output = depth_estimator("http://images.cocodataset.org/val2017/000000039769.jpg")
>>> # This is a tensor with the values being the depth expressed in meters for each pixel
>>> output["predicted_depth"].shape
torch.Size([1, 384, 384])
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حالياً تحميل خط أنابيب تقدير العمق هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"depth-estimation"`.

اطّلع على قائمة النماذج المتاحة على [huggingface.co/models](https://huggingface.co/models?filter=depth-estimation).

#### __call__[[transformers.DepthEstimationPipeline.__call__]]

```python
__call__(inputs: typing.Union[str, list[str], ForwardRef('Image.Image'), list['Image.Image']], **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/depth_estimation.py#L66)

**المعاملات:**

inputs (`str`، `list[str]`، `PIL.Image` أو `list[PIL.Image]`) : يتعامل خط المعالجة مع ثلاثة أنواع من الصور:  - نص يحتوي على رابط http يشير إلى صورة - نص يحتوي على مسار محلي لصورة - صورة محمّلة مباشرةً في PIL  يقبل خط المعالجة صورة واحدة أو دفعة من الصور، ويجب في هذه الحالة تمريرها كنص. يجب أن تكون جميع الصور في الدفعة بنفس الصيغة: إما جميعها روابط http، أو جميعها مسارات محلية، أو جميعها صور PIL.

parameters (`Dict`, *اختياري*) : قاموس يربط بين أسماء المعاملات وقيمها، للتحكم في سلوك خط المعالجة. المعامل الوحيد المتاح حاليًا هو `timeout`، وهو المدة الزمنية، بالثواني، التي يجب أن ينتظرها خط المعالجة قبل التوقف عن محاولة تنزيل صورة.

timeout (`float`، *اختياري*، القيمة الافتراضية هي None) : الحد الأقصى للوقت بالثواني للانتظار حتى يتم جلب الصور من الويب. إذا كانت القيمة None، فلا يُضبط مهلة زمنية وقد يستمر الاستدعاء في الانتظار إلى الأبد.

**يعيد:**

قاموس أو قائمة من القواميس تحتوي على النتيجة. إذا كان الإدخال صورة واحدة، فسيُعاد قاموس، وإذا كان الإدخال قائمة من عدة صور، فسيُعاد قائمة من القواميس المقابلة للصور.

تحتوي القوامس على المفاتيح التالية:

- **predicted_depth** (`torch.Tensor`) -- العمق المتوقع من النموذج على شكل `torch.Tensor`.
- **depth** (`PIL.Image`) -- العمق المتوقع من النموذج على شكل `PIL.Image`.

تنبّأ بعمق الصورة أو الصور المُمرّرة كمدخلات.

### ImageClassificationPipeline[[transformers.ImageClassificationPipeline]]

#### transformers.ImageClassificationPipeline[[transformers.ImageClassificationPipeline]]

```python
transformers.ImageClassificationPipeline(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/image_classification.py#L73)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

image_processor ([BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor)) : مُعالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من [BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

function_to_apply (`str`، *اختياري*، القيمة الافتراضية `"default"`) : الدالة التي تُطبَّق على مخرجات النموذج لاستخراج الدرجات. تقبل أربعة قيم مختلفة:  - `"default"`: إذا كان للنموذج تسمية واحدة، فسيتم تطبيق دالة sigmoid على المخرجات. إذا كان للنموذج عدة تسميات، فسيتم تطبيق دالة softmax على المخرجات. - `"sigmoid"`: تطبّق دالة sigmoid على المخرجات. - `"softmax"`: تطبّق دالة softmax على المخرجات. - `"none"`: لا تطبّق أي دالة على المخرجات.

خط أنابيب تصنيف الصور باستخدام أي `AutoModelForImageClassification`. يتنبأ هذا الخط أنابيب بفئة الصورة.

مثال:

```python
>>> from transformers import pipeline

>>> classifier = pipeline(model="microsoft/beit-base-patch16-224-pt22k-ft22k")
>>> classifier("https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png")
[{'score': 0.442, 'label': 'macaw'}, {'score': 0.088, 'label': 'popinjay'}, {'score': 0.075, 'label': 'parrot'}, {'score': 0.073, 'label': 'parodist, lampooner'}, {'score': 0.046, 'label': 'poll, poll_parrot'}]
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حالياً تحميل خط أنابيب تصنيف الصور هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"image-classification"`.

اطّلع على قائمة النماذج المتاحة على [huggingface.co/models](https://huggingface.co/models?filter=image-classification).

#### __call__[[transformers.ImageClassificationPipeline.__call__]]

```python
__call__(inputs: typing.Union[str, list[str], ForwardRef('Image.Image'), list['Image.Image']], **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/image_classification.py#L127)

**المعاملات:**

inputs (`str`، `list[str]`، `PIL.Image` أو `list[PIL.Image]`) : يتعامل خط المعالجة مع ثلاثة أنواع من الصور:  - نص يحتوي على رابط http يشير إلى صورة - نص يحتوي على مسار محلي لصورة - صورة محمّلة مباشرةً في PIL  يقبل خط المعالجة صورة واحدة أو دفعة من الصور، ويجب في هذه الحالة تمريرها كنص. يجب أن تكون جميع الصور في الدفعة بنفس الصيغة: إما جميعها روابط http، أو جميعها مسارات محلية، أو جميعها صور PIL.

function_to_apply (`str`، *اختياري*، القيمة الافتراضية `"default"`) : الدالة التي تُطبَّق على مخرجات النموذج لاستخراج الدرجات. يقبل أربعة قيم مختلفة:  إذا لم يُحدَّد هذا الحُجُج، فسيتم تطبيق الدوال التالية وفقًا لعدد التسميات:  - إذا كان للنموذج تسمية واحدة، فسيتم تطبيق دالة sigmoid على المخرجات. - إذا كان للنموذج عدة تسميات، فسيتم تطبيق دالة softmax على المخرجات.  القيم الممكنة هي:  - `"sigmoid"`: تطبّق دالة sigmoid على المخرجات. - `"softmax"`: تطبّق دالة softmax على المخرجات. - `"none"`: لا تطبّق أي دالة على المخرجات.

top_k (`int`، *اختياري*، القيمة الافتراضية 5) : عدد التسميات العلوية التي ستُعاد بواسطة خط المعالجة. إذا كان العدد المُقدَّم أعلى من عدد التسميات المتاحة في إعدادات النموذج، فسيُعاد إلى عدد التسميات.

timeout (`float`، *اختياري*، القيمة الافتراضية هي None) : الحد الأقصى للوقت بالثواني للانتظار حتى يتم جلب الصور من الويب. إذا كانت القيمة None، فلا يُضبط مهلة زمنية وقد يستمر الاستدعاء في الانتظار إلى الأبد.

**يعيد:**

قاموس أو قائمة من القواميس تحتوي على النتيجة. إذا كان الإدخال صورة واحدة، فسيُعاد قاموس، وإذا كان الإدخال قائمة من عدة صور، فسيُعاد قائمة من القواميس المقابلة للصور.

تحتوي القوامس على المفاتيح التالية:

- **التسمية** (`str`) -- التسمية التي حددها النموذج.
- **score** (`int`) -- الدرجة التي منحتها النموذج لتلك التسمية.

اسند التسميات إلى الصورة أو الصور المُمررة كمدخلات.

### ImageSegmentationPipeline[[transformers.ImageSegmentationPipeline]]

#### transformers.ImageSegmentationPipeline[[transformers.ImageSegmentationPipeline]]

```python
transformers.ImageSegmentationPipeline(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/image_segmentation.py#L27)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

image_processor ([BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor)) : مُعالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من [BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

خط أنابيب تقسيم الصور باستخدام أي `AutoModelForXXXSegmentation`. يتنبأ هذا الخط بأنماط الكائنات وفئاتها.

مثال:

```python
>>> from transformers import pipeline

>>> segmenter = pipeline(model="facebook/detr-resnet-50-panoptic")
>>> segments = segmenter("https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png")
>>> len(segments)
2

>>> segments[0]["label"]
'bird'

>>> segments[1]["label"]
'bird'

>>> type(segments[0]["mask"])  # This is a black and white mask showing where is the bird on the original image.
<class 'PIL.Image.Image'>

>>> segments[0]["mask"].size
(768, 512)
```

يمكن حالياً تحميل خط أنابيب تقسيم الصور هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"image-segmentation"`.

اطّلع على قائمة النماذج المتاحة على [huggingface.co/models](https://huggingface.co/models?filter=image-segmentation).

#### __call__[[transformers.ImageSegmentationPipeline.__call__]]

```python
__call__(inputs: typing.Union[str, ForwardRef('Image.Image'), list[str], list['Image.Image']], **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/image_segmentation.py#L101)

**المعاملات:**

inputs (`str`، `list[str]`، `PIL.Image` أو `list[PIL.Image]`) : يتعامل خط المعالجة مع ثلاثة أنواع من الصور:  - نص يحتوي على رابط HTTP(S) يشير إلى صورة - نص يحتوي على مسار محلي لصورة - صورة محمّلة مباشرةً في PIL  يقبل خط المعالجة صورة واحدة أو دفعة من الصور. يجب أن تكون جميع الصور في الدفعة بنفس التنسيق: إما جميعها روابط HTTP(S)، أو جميعها مسارات محلية، أو جميعها صور PIL.

subtask (`str`, *اختياري*) : مهمة التقطيع التي سيتم تنفيذها، اختر من بين [`semantic`، `instance` و`panoptic`] اعتمادًا على قدرات النموذج. إذا لم يتم ضبطها، فسيحاول خط الأنابيب حل الأمر بالترتيب التالي: `panoptic`، `instance`، `semantic`.

threshold (`float`، *اختياري*، القيمة الافتراضية 0.9) : عتبة الاحتمال المستخدمة لتصفية الأقنعة المتوقعة.

mask_threshold (`float`، *اختياري*، القيمة الافتراضية 0.5) : العتبة المستخدمة عند تحويل الأقنعة المتوقعة إلى قيم ثنائية.

overlap_mask_area_threshold (`float`، *اختياري*، القيمة الافتراضية 0.5) : عتبة تداخل الأقنعة (Mask overlap) لإزالة المقاطع الصغيرة غير المتصلة.

timeout (`float`، *اختياري*، القيمة الافتراضية هي None) : الحد الأقصى للوقت بالثواني للانتظار حتى يتم جلب الصور من الويب. إذا كانت القيمة None، فلا يُضبط مهلة زمنية وقد يستمر الاستدعاء في الانتظار إلى الأبد.

**يعيد:**

إذا كان الإدخال صورة واحدة، فسيُرجع قائمة من القواميس، وإذا كان الإدخال قائمة من عدة صور، فسيُرجع قائمة من قوائم القواميس المقابلة لكل صورة.

تحتوي القواميس على القناع والتسمية والدرجة (حيث ينطبق ذلك) لكل كائن مكتشف، وتشمل المفاتيح التالية:

- **label** (`str`) -- تسمية الفئة التي حددها النموذج.
- **mask** (`PIL.Image`) -- قناع ثنائي (binary mask) للكائن المكتشف، على شكل صورة PIL بأبعاد (width, height) للصورة الأصلية. يُرجع قناعًا مملوءًا بالأصفار إذا لم يُعثر على أي كائن.
- **score** (*اختياري* `float`) -- اختياريًا، عندما يكون النموذج قادرًا على تقدير درجة الثقة في "الكائن" الذي يصفه التسمية والقناع.

أداء التقسيم (كشف الأقنعة والفئات) في الصورة أو الصور المُمرَّرة كمُدخلات.

### KeypointMatchingPipeline[[transformers.KeypointMatchingPipeline]]

#### transformers.KeypointMatchingPipeline[[transformers.KeypointMatchingPipeline]]

```python
transformers.KeypointMatchingPipeline(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/keypoint_matching.py#L67)

خط أنابيب مطابقة نقاط الملامس باستخدام أي `AutoModelForKeypointMatching`. يطابق هذا الخط أنابيب نقاط الملامس بين صورتين.

#### __call__[[transformers.KeypointMatchingPipeline.__call__]]

```python
__call__(inputs: list[collections.abc.Sequence[typing.Union[ForwardRef('Image.Image'), str]]] | collections.abc.Sequence[typing.Union[ForwardRef('Image.Image'), str]], threshold: float = 0.0, **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/keypoint_matching.py#L96)

**المعاملات:**

inputs (`str`، `list[str]`، `PIL.Image` أو `list[PIL.Image]`) : يتعامل خط المعالجة مع ثلاثة أنواع من الصور:  - نص يحتوي على رابط http يشير إلى صورة - نص يحتوي على مسار محلي لصورة - صورة محمّلة مباشرةً في PIL  يقبل خط المعالجة إما زوجًا واحدًا من الصور أو دفعة من أزواج الصور، ويجب في هذه الحالة تمريرها كنص. يجب أن تكون جميع الصور في الدفعة بنفس التنسيق: إما جميعها روابط http، أو جميعها مسارات محلية، أو جميعها صور PIL.

threshold (`float`، *اختياري*، القيمة الافتراضية 0.0) : العتبة المستخدمة لمطابقة النقاط الرئيسية. سيتم تصفية النقاط الرئيسية التي تكون درجة مطابقتها أقل من هذه العتبة. القيمة 0 تعني أن جميع النقاط الرئيسية المطابقة ستُعاد.

kwargs : `timeout (`float`, *optional*, defaults to None)` الحد الأقصى للوقت بالثواني للانتظار حتى يتم جلب الصور من الويب. إذا كانت القيمة None، فلن يتم تعيين مهلة زمنية وقد تبقى الاستدعاء محجوزًا إلى الأبد.

**يعيد:** Union[list[Match], list[list[Match]]]

قائمة من التطابقات، أو قائمة إذا تم توفير زوج صور واحد، أو قائمة من قوائم التطابقات إذا تم توفير دفعة من أزواج الصور. يحتوي كل تطابق على قاموس يتضمن المفاتيح التالية:

- **keypoint_image_0** (`Keypoint`): النقطة الرئيسية في الصورة الأولى (إحداثيات x، y).
- **keypoint_image_1** (`Keypoint`): النقطة الرئيسية في الصورة الثانية (إحداثيات x، y).
- **score** (`float`): درجة التطابق بين النقطةين المرجعيتين.

ابحث عن التطابقات بين النقاط الرئيسية في صورتين.

### ObjectDetectionPipeline[[transformers.ObjectDetectionPipeline]]

#### transformers.ObjectDetectionPipeline[[transformers.ObjectDetectionPipeline]]

```python
transformers.ObjectDetectionPipeline(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/object_detection.py#L26)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

image_processor ([BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor)) : مُعالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من [BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

خط أنابيب للكشف عن الكائنات باستخدام أي `AutoModelForObjectDetection`. يتنبأ هذا الخط بأنصاف المستطيلات المحيطة بالكائنات وفئاتها.

مثال:

```python
>>> from transformers import pipeline

>>> detector = pipeline(model="facebook/detr-resnet-50")
>>> detector("https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png")
[{'score': 0.997, 'label': 'bird', 'box': {'xmin': 69, 'ymin': 171, 'xmax': 396, 'ymax': 507}}, {'score': 0.999, 'label': 'bird', 'box': {'xmin': 398, 'ymin': 105, 'xmax': 767, 'ymax': 507}}]

>>> # x, y  are expressed relative to the top left hand corner.
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حالياً تحميل خط أنابيب كشف الكائنات هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"object-detection"`.

اطّلع على قائمة النماذج المتاحة على [huggingface.co/models](https://huggingface.co/models?filter=object-detection).

#### __call__[[transformers.ObjectDetectionPipeline.__call__]]

```python
__call__(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/object_detection.py#L81)

**المعاملات:**

inputs (`str`، `list[str]`، `PIL.Image` أو `list[PIL.Image]`) : يتعامل خط المعالجة مع ثلاثة أنواع من الصور:  - نص يحتوي على رابط HTTP(S) يشير إلى صورة - نص يحتوي على مسار محلي لصورة - صورة محمّلة مباشرةً في PIL  يقبل خط المعالجة صورة واحدة أو دفعة من الصور. يجب أن تكون جميع الصور في الدفعة بنفس التنسيق: إما جميعها روابط HTTP(S)، أو جميعها مسارات محلية، أو جميعها صور PIL.

threshold (`float`، *اختياري*، القيمة الافتراضية 0.5) : الاحتمال المطلوب لإجراء التنبؤ.

timeout (`float`، *اختياري*، القيمة الافتراضية هي None) : الحد الأقصى للوقت بالثواني للانتظار حتى يتم جلب الصور من الويب. إذا كانت القيمة None، فلا يُضبط مهلة زمنية وقد يستمر الاستدعاء في الانتظار إلى الأبد.

**يعيد:**

قائمة من القواميس أو قائمة من قوائم القواميس تحتوي على النتيجة. إذا كان الإدخال صورة واحدة، فسيُعاد قائمة من القواميس، وإذا كان الإدخال قائمة من عدة صور، فسيُعاد قائمة من قوائم القواميس المقابلة لكل صورة.

تحتوي القوامس على المفاتيح التالية:

- **label** (`str`) -- تسمية الفئة التي حددها النموذج.
- **score** (`float`) -- الدرجة التي منحتها النموذج لذلك التسمية.
- **box** (`list[dict[str, int]]`) -- صندوق الحدود للكائن المكتشف في الحجم الأصلي للصورة.

كشف الكائنات (صناديق الحدود & الفئات) في الصورة أو الصور المُمرَّرة كمدخلات.

### VideoClassificationPipeline[[transformers.VideoClassificationPipeline]]

#### transformers.VideoClassificationPipeline[[transformers.VideoClassificationPipeline]]

```python
transformers.VideoClassificationPipeline(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/video_classification.py#L41)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

image_processor ([BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor)) : مُعالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من [BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor).

video_processor ([BaseVideoProcessor](/docs/transformers/main/ar/main_classes/video_processor#transformers.BaseVideoProcessor)) : معالج الفيديو الذي ستستخدمه خط المعالجة لتشفير بيانات الفيديو للنموذج. يرث هذا الكائن من [BaseVideoProcessor](/docs/transformers/main/ar/main_classes/video_processor#transformers.BaseVideoProcessor).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

خط أنابيب تصنيف الفيديو باستخدام أي `AutoModelForVideoClassification`. يتنبأ هذا الخط أنابيب بفئة الفيديو.

يمكن حاليًا تحميل خط أنابيب تصنيف الفيديو هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"video-classification"`.

اطّلع على قائمة النماذج المتاحة على [huggingface.co/models](https://huggingface.co/models?filter=video-classification).

يدعم خط المعالجة النماذج التي تستخدم إما معالج صور (نماذج فيديو قديمة مثل VideoMAE وViViT وTimeSformer) أو معالج فيديو (نماذج أحدث مثل VJEPA2). عند وجود كلا المعالجين، يُعطى الأولوية لمعالج الفيديو؛ أما عند عدم العثور على أيٍّ منهما، فسيُطلق خط المعالجة خطأً.

#### __call__[[transformers.VideoClassificationPipeline.__call__]]

```python
__call__(inputs: str | list[str] | None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/video_classification.py#L105)

**المعاملات:**

inputs (`str`, `list[str]`) : يتعامل خط المعالجة مع ثلاثة أنواع من مقاطع الفيديو:  - نص يحتوي على رابط http يشير إلى مقطع فيديو - نص يحتوي على مسار محلي لمقطع فيديو  يقبل خط المعالجة مقطع فيديو واحدًا أو دفعة من مقاطع الفيديو، ويجب في هذه الحالة تمريرها كنص. يجب أن تكون جميع مقاطع الفيديو في الدفعة بنفس التنسيق: إما جميعها روابط http أو جميعها مسارات محلية.

top_k (`int`، *اختياري*، القيمة الافتراضية 5) : عدد التسميات العلوية التي ستُعاد بواسطة خط المعالجة. إذا كان العدد المُقدَّم أعلى من عدد التسميات المتاحة في إعدادات النموذج، فسيُعاد إلى عدد التسميات.

num_frames (`int`، *اختياري*، القيمة الافتراضية هي `self.model.config.num_frames`) : عدد الإطارات المُستخرجة من الفيديو لتنفيذ التصنيف. إذا لم يُحدد، فسيتم استخدام عدد الإطارات المحدد في إعدادات النموذج.

frame_sampling_rate (`int`، *اختياري*، القيمة الافتراضية 1) : معدل العينة المستخدم لاختيار الإطارات من الفيديو. إذا لم يُقدَّم، فسيكون الافتراضي 1، أي أنه سيتم استخدام كل إطار.

function_to_apply(`str`, *اختياري*، القيمة الافتراضية "softmax") : الدالة التي تُطبَّق على مخرجات النموذج. افتراضيًا، ستطبّق خط المعالجة دالة softmax على مخرجات النموذج. الخيارات الصالحة: ["softmax", "sigmoid", "none"]. لاحظ أن تمرير قيمة `None` المدمجة في Python ستجعل القيمة الافتراضية "softmax"، لذا يجب عليك تمرير السلسلة "none" لتعطيل أي معالجة لاحقة.

**يعيد:**

قائمة من القواميس أو قائمة من قوائم القواميس تحتوي على النتيجة. إذا كان الإدخال فيديو واحداً، فسيُعاد قائمة من `top_k` قواميس، وإذا كان الإدخال قائمة من عدة فيديوهات، فسيُعاد قائمة من قوائم `top_k` قواميس تتوافق مع الفيديوهات.

تحتوي القوامس على المفاتيح التالية:

- **التسمية** (`str`) -- التسمية التي حددها النموذج.
- **score** (`int`) -- الدرجة التي منحتها النموذج لتلك التسمية.

اسند التسميات إلى الفيديو (أو الفيديوهات) المُمرّرة كمدخلات.

### ZeroShotImageClassificationPipeline[[transformers.ZeroShotImageClassificationPipeline]]

#### transformers.ZeroShotImageClassificationPipeline[[transformers.ZeroShotImageClassificationPipeline]]

```python
transformers.ZeroShotImageClassificationPipeline(**kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/zero_shot_image_classification.py#L29)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

image_processor ([BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor)) : مُعالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من [BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

خط أنابيب تصنيف الصور بدون تدريب باستخدام `CLIPModel`. يتنبأ هذا الخط أنابيب بفئة الصورة عند تزويده بصورة ومجموعة من `candidate_labels`.

مثال:

```python
>>> from transformers import pipeline

>>> classifier = pipeline(model="google/siglip-so400m-patch14-384")
>>> classifier(
...     "https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png",
...     candidate_labels=["animals", "humans", "landscape"],
... )
[{'score': 0.965, 'label': 'animals'}, {'score': 0.03, 'label': 'humans'}, {'score': 0.005, 'label': 'landscape'}]

>>> classifier(
...     "https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png",
...     candidate_labels=["black and white", "photorealist", "painting"],
... )
[{'score': 0.996, 'label': 'black and white'}, {'score': 0.003, 'label': 'photorealist'}, {'score': 0.0, 'label': 'painting'}]
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حالياً تحميل خط أنابيب تصنيف الصور هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"zero-shot-image-classification"`.

اطّلع على قائمة النماذج المتاحة على [huggingface.co/models](https://huggingface.co/models?filter=zero-shot-image-classification).

#### __call__[[transformers.ZeroShotImageClassificationPipeline.__call__]]

```python
__call__(image: typing.Union[str, list[str], ForwardRef('Image.Image'), list['Image.Image']], candidate_labels: list, **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/zero_shot_image_classification.py#L83)

**المعاملات:**

image (`str`، `list[str]`، `PIL.Image` أو `list[PIL.Image]`) : يتعامل خط المعالجة مع ثلاثة أنواع من الصور: - نص يحتوي على رابط http يشير إلى صورة - نص يحتوي على مسار محلي لصورة - صورة محمّلة مباشرةً في PIL

candidate_labels (`list[str]`) : التسميات المرشحة لهذه الصورة. سيتم تنسيقها باستخدام *hypothesis_template*.

hypothesis_template (`str`، *اختياري*، القيمة الافتراضية `"This is a photo of {}"`) : الصيغة المستخدمة بالتزامن مع *candidate_labels* لمحاولة تصنيف الصورة عن طريق استبدال العنصر الوسيط بـ candidate_labels. مرّر "{}" إذا كانت *candidate_labels* منسّقة مسبقًا.

timeout (`float`، *اختياري*، القيمة الافتراضية هي None) : الحد الأقصى للوقت بالثواني للانتظار حتى يتم جلب الصور من الويب. إذا كانت القيمة None، فلا يُضبط مهلة زمنية وقد يستمر الاستدعاء في الانتظار إلى الأبد.

**يعيد:**

قائمة من القواميس تحتوي على مدخل واحد لكل تسمية مقترحة. يحتوي كل قاموس على المفاتيح التالية:
- **label** (`str`) -- أحد *candidate_labels* المقترحة.
- **score** (`float`) -- الدرجة التي منحتها النموذج لذلك التسمية. وهي قيمة بين 0 و1، تُحسب على أنها `softmax` لـ`logits_per_image`.

اسند التسميات إلى الصورة أو الصور المُمررة كمدخلات.

### ZeroShotObjectDetectionPipeline[[transformers.ZeroShotObjectDetectionPipeline]]

#### transformers.ZeroShotObjectDetectionPipeline[[transformers.ZeroShotObjectDetectionPipeline]]

```python
transformers.ZeroShotObjectDetectionPipeline(**kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/zero_shot_object_detection.py#L23)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

image_processor ([BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor)) : مُعالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من [BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

خط أنابيب للكشف عن الأشياء بدون تدريب باستخدام `OwlViTForObjectDetection`. يتنبأ هذا الخط بأنصاف المستطيلات المحيطة بالأشياء عند تزويده بصورة ومجموعة من `candidate_labels`.

مثال:

```python
>>> from transformers import pipeline

>>> detector = pipeline(model="google/owlvit-base-patch32", task="zero-shot-object-detection")
>>> detector(
...     "http://images.cocodataset.org/val2017/000000039769.jpg",
...     candidate_labels=["cat", "couch"],
... )
[{'score': 0.287, 'label': 'cat', 'box': {'xmin': 324, 'ymin': 20, 'xmax': 640, 'ymax': 373}}, {'score': 0.254, 'label': 'cat', 'box': {'xmin': 1, 'ymin': 55, 'xmax': 315, 'ymax': 472}}, {'score': 0.121, 'label': 'couch', 'box': {'xmin': 4, 'ymin': 0, 'xmax': 642, 'ymax': 476}}]

>>> detector(
...     "https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png",
...     candidate_labels=["head", "bird"],
... )
[{'score': 0.119, 'label': 'bird', 'box': {'xmin': 71, 'ymin': 170, 'xmax': 410, 'ymax': 508}}]
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حاليًا تحميل خط أنابيب كشف الكائنات هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"zero-shot-object-detection"`.

اطّلع على قائمة النماذج المتاحة على [huggingface.co/models](https://huggingface.co/models?filter=zero-shot-object-detection).

#### __call__[[transformers.ZeroShotObjectDetectionPipeline.__call__]]

```python
__call__(image: typing.Union[str, ForwardRef('Image.Image'), list[dict[str, typing.Any]]], candidate_labels: str | list[str] | None = None, **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/zero_shot_object_detection.py#L75)

**المعاملات:**

image (`str` أو `PIL.Image` أو `list[dict[str, Any]]`) : يتعامل خط المعالجة مع ثلاثة أنواع من الصور: - نص يحتوي على عنوان http يشير إلى صورة - نص يحتوي على مسار محلي لصورة - صورة محمّلة مباشرة في PIL يمكنك استخدام هذا المعامل لإرسال قائمة من الصور مباشرة، أو مجموعة بيانات أو مولّد على النحو التالي: ```python >>> from transformers import pipeline  >>> detector = pipeline(model="google/owlvit-base-patch32", task="zero-shot-object-detection") >>> detector( ...     [ ...         { ...             "image": "http://images.cocodataset.org/val2017/000000039769.jpg", ...             "candidate_labels": ["cat", "couch"], ...         }, ...         { ...             "image": "http://images.cocodataset.org/val2017/000000039769.jpg", ...             "candidate_labels": ["cat", "couch"], ...         }, ...     ] ... ) [[{'score': 0.287, 'label': 'cat', 'box': {'xmin': 324, 'ymin': 20, 'xmax': 640, 'ymax': 373}}, {'score': 0.25, 'label': 'cat', 'box': {'xmin': 1, 'ymin': 55, 'xmax': 315, 'ymax': 472}}, {'score': 0.121, 'label': 'couch', 'box': {'xmin': 4, 'ymin': 0, 'xmax': 642, 'ymax': 476}}], [{'score': 0.287, 'label': 'cat', 'box': {'xmin': 324, 'ymin': 20, 'xmax': 640, 'ymax': 373}}, {'score': 0.254, 'label': 'cat', 'box': {'xmin': 1, 'ymin': 55, 'xmax': 315, 'ymax': 472}}, {'score': 0.121, 'label': 'couch', 'box': {'xmin': 4, 'ymin': 0, 'xmax': 642, 'ymax': 476}}]] ```

candidate_labels (`str` أو `list[str]` أو `list[list[str]]`) : ما يجب أن يتعرف عليه النموذج في الصورة.

threshold (`float`، *اختياري*، القيمة الافتراضية 0.1) : الاحتمال اللازم لإجراء التنبؤ.

top_k (`int`، *اختياري*، القيمة الافتراضية هي None) : عدد التنبؤات العلوية التي ستُعاد بواسطة خط المعالجة. إذا كان العدد المُقدَّم `None` أو أكبر من عدد التنبؤات المتاحة، فسيُعاد إلى عدد التنبؤات.

timeout (`float`، *اختياري*، القيمة الافتراضية هي None) : الحد الأقصى للوقت بالثواني للانتظار حتى يتم جلب الصور من الويب. إذا كانت القيمة None، فلا يُضبط مهلة زمنية وقد يستمر الاستدعاء في الانتظار إلى الأبد.

**يعيد:**

قائمة من القوائم تحتوي على نتائج التنبؤ، قائمة واحدة لكل صورة مدخلات. تحتوي كل قائمة على قواميس بالمفاتيح التالية:

- **label** (`str`) -- استعلام نصي يتوافق مع الكائن الذي تم العثور عليه.
- **score** (`float`) -- الدرجة المقابلة للكائن (بين 0 و 1).
- **box** (`dict[str,int]`) -- مربع تحديد (Bounding box) للكائن المكتشف في الحجم الأصلي للصورة. وهو قاموس يحتوي على المفاتيح `x_min` و`x_max` و`y_min` و`y_max`.

كشف الكائنات (صناديق الحدود & الفئات) في الصورة أو الصور المُمرَّرة كمدخلات.

## معالجة اللغة الطبيعية

تشمل خطوط الأنابيب المتاحة لمهام معالجة اللغة الطبيعية ما يلي.

### FillMaskPipeline[[transformers.FillMaskPipeline]]

#### transformers.FillMaskPipeline[[transformers.FillMaskPipeline]]

```python
transformers.FillMaskPipeline(model: PreTrainedModel, tokenizer: PreTrainedTokenizer | None = None, feature_extractor: PreTrainedFeatureExtractor | None = None, image_processor: BaseImageProcessor | None = None, video_processor: BaseVideoProcessor | None = None, processor: ProcessorMixin | None = None, task: str = '', device: int | torch.device | None = None, binary_output: bool = False, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/fill_mask.py#L28)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

tokenizer ([PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend)) : المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من [PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

top_k (`int`، *اختياري*، القيمة الافتراضية 5) : عدد التنبؤات التي يجب إرجاعها.

targets (`str` أو `list[str]`، *اختياري*) : عند تمريره، سيحدّ النموذج الدرجات على الأهداف المُمرَّرة بدلاً من البحث في كامل المفردات. إذا لم تكن الأهداف المُقدَّمة موجودة في مفردات النموذج، فسيتم تقسيمها إلى رموز (توكنز) وسيُستخدم الرمز الناتج الأول (مع تحذير، وقد يكون ذلك أبطأ).

tokenizer_kwargs (`dict`، *اختياري*) : قاموس إضافي لحجج الكلمات المفتاحية التي تُمرَّر إلى المُجزِّئ.

#### __call__[[transformers.FillMaskPipeline.__call__]]

```python
__call__(inputs: str | list[str], **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/fill_mask.py#L234)

**المعاملات:**

inputs (`str` أو `list[str]`) : نص واحد أو عدة نصوص (أو قائمة واحدة من الأوامر) تحتوي على رموز مقنّعة.

targets (`str` أو `list[str]`، *اختياري*) : عند تمريره، سيحدّ النموذج الدرجات على الأهداف المُمرَّرة بدلاً من البحث في كامل المفردات. إذا لم تكن الأهداف المُقدَّمة موجودة في مفردات النموذج، فسيتم تقسيمها إلى رموز (توكنز) وسيُستخدم الرمز الناتج الأول (مع تحذير، وقد يكون ذلك أبطأ).

top_k (`int`، *اختياري*) : عند تمريره، يتجاوز عدد التنبؤات المطلوب إرجاعه.

**يعيد:** قائمة أو قائمة من قوائم من `dict`

تأتي كل نتيجة على شكل قائمة من القواميس التي تحتوي على المفاتيح التالية:

- **sequence** (`str`) -- المدخل المقابل مع رمز التنبؤ بالكمامة.
- **score** (`float`) -- الاحتمال المقابل.
- **رمز** (`int`) -- معرّف الرمز المتوقع (للاستبدال بالرمز المقنّع).
- **token_str** (`str`) -- الرمز المتوقع (للاستبدال بالرمز المقنّع).

املأ الرمز المقنّع في النصّ أو النصوص المُعطاة كمدخلات.

### TableQuestionAnsweringPipeline[[transformers.TableQuestionAnsweringPipeline]]

#### transformers.TableQuestionAnsweringPipeline[[transformers.TableQuestionAnsweringPipeline]]

```python
transformers.TableQuestionAnsweringPipeline(args_parser = <transformers.pipelines.table_question_answering.TableQuestionAnsweringArgumentHandler object at 0x7f6a12674950>, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/table_question_answering.py#L78)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

tokenizer ([PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend)) : المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من [PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

خط أنابيب الإجابة عن الأسئلة المتعلقة بالجداول باستخدام `ModelForTableQuestionAnswering`. هذا الخط أنابيب متاح فقط في PyTorch.

ما لم يضبط النموذج الذي تستخدمه هذه المعلمات الخاصة بالتوليد صراحةً في ملفات إعداده (`generation_config.json`)، فسيتم استخدام القيم الافتراضية التالية:
- max_new_tokens: 256

مثال:

```python
>>> from transformers import pipeline

>>> oracle = pipeline(model="google/tapas-base-finetuned-wtq")
>>> table = {
...     "Repository": ["Transformers", "Datasets", "Tokenizers"],
...     "Stars": ["36542", "4512", "3934"],
...     "Contributors": ["651", "77", "34"],
...     "Programming language": ["Python", "Python", "Rust, Python and NodeJS"],
... }
>>> oracle(query="How many stars does the transformers repository have?", table=table)
{'answer': 'AVERAGE > 36542', 'coordinates': [(0, 1)], 'cells': ['36542'], 'aggregator': 'AVERAGE'}
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حالياً تحميل خط أنابيب الإجابة على الأسئلة الجدولية هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"table-question-answering"`.

النماذج التي يمكن لهذا الخط أن يستخدمها هي نماذج تم ضبطها على مهمة الإجابة عن الأسئلة في البيانات الجدولية. راجع قائمة النماذج المتاحة المحدّثة على [huggingface.co/models](https://huggingface.co/models?filter=table-question-answering).

#### __call__[[transformers.TableQuestionAnsweringPipeline.__call__]]

```python
__call__(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/table_question_answering.py#L208)

**المعاملات:**

table (`pd.DataFrame` أو `Dict`) : إطار بيانات Pandas أو قاموس سيتم تحويله إلى إطار بيانات يحتوي على جميع قيم الجدول. راجع أعلاه لمثال على القاموس.

query (`str` أو `list[str]`) : الاستعلام أو قائمة الاستعلامات التي سيتم إرسالها إلى النموذج إلى جانب الجدول.

sequential (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم تنفيذ الاستدلال بشكل تسلسلي أو على شكل دفعة. يكون تنفيذ الدفعات أسرع، لكن نماذج مثل SQA تتطلب تنفيذ الاستدلال بشكل تسلسلي لاستخراج العلاقات داخل التسلسلات، نظرًا لطبيعتها الحوارية.

padding (`bool` أو `str` أو [PaddingStrategy](/docs/transformers/main/ar/internal/file_utils#transformers.utils.PaddingStrategy)، *اختياري*، القيمة الافتراضية `False`) : يُفعّل التحكم في الحشو. يقبل القيم التالية:  - `True` أو `'longest'`: الحشو حتى أطول تسلسل في الدفعة (أو بدون حشو إذا تم تقديم تسلسل واحد فقط). - `'max_length'`: الحشو حتى الحد الأقصى للطول المحدد بواسطة الحجة `max_length` أو حتى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. - `False` أو `'do_not_pad'` (الافتراضي): بدون حشو (أي، يمكنه إخراج دفعة تحتوي على تسلسلات بطول مختلف).

truncation (`bool` أو `str` أو `TapasTruncationStrategy`، *اختياري*، القيمة الافتراضية `False`) : يُفعّل التحكم في القص. يقبل القيم التالية:  - `True` أو `'drop_rows_to_fit'`: يُقصّ النص إلى الحد الأقصى للطول المحدد عبر الحجة `max_length`، أو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. يتم القص صفًا تلو الآخر، مع إزالة الصفوف من الجدول. - `False` أو `'do_not_truncate'` (الافتراضي): لا يتم القص (أي، يمكن إخراج دفعة تحتوي على تسلسلات أطول من الحد الأقصى المقبول لحجم الإدخال للنموذج).

**يعيد:** `A dictionary or a list of dictionaries containing results`

كل نتيجة هي قاموس يحتوي على المفاتيح التالية:

- **answer** (`str`) -- إجابة الاستعلام بناءً على الجدول. إذا كان هناك مُجمِّع، فستسبق الإجابة `AGGREGATOR >`.
- **الإحداثيات** (`list[tuple[int, int]]`) -- إحداثيات خلايا الإجابات.
- **cells** (`list[str]`) -- قائمة من النصوص تتكوّن من قيم خلايا الإجابة.
- **aggregator** (`str`) -- إذا كان للنموذج مُجمِّع، فإن هذا يعيد المُجمِّع.

يجيب على الاستعلامات وفقاً لجدول. يقبل خط المعالجة عدة أنواع من المدخلات، وهي مفصّلة أدناه:

- `pipeline(table, query)`
- `pipeline(table, [query])`
- `pipeline(table=table, query=query)`
- `pipeline(table=table, query=[query])`
- `pipeline({"table": table, "query": query})`
- `pipeline({"table": table, "query": [query]})`
- `pipeline([{"table": table, "query": query}, {"table": table, "query": query}])`

يجب أن يكون الحجة `table` قاموسًا (dict) أو إطار بيانات (DataFrame) مبنيًا من ذلك القاموس، ويحتوي على الجدول بأكمله:

مثال:

```python
data = {
    "actors": ["brad pitt", "leonardo di caprio", "george clooney"],
    "age": ["56", "45", "59"],
    "number of movies": ["87", "53", "69"],
    "date of birth": ["7 february 1967", "10 june 1996", "28 november 1967"],
}
```

يمكن تمرير هذا القاموس كما هو، أو تحويله إلى إطار بيانات pandas:

مثال:

```python
import pandas as pd

table = pd.DataFrame.from_dict(data)
```

### TextClassificationPipeline[[transformers.TextClassificationPipeline]]

#### transformers.TextClassificationPipeline[[transformers.TextClassificationPipeline]]

```python
transformers.TextClassificationPipeline(**kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/text_classification.py#L43)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

tokenizer ([PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend)) : المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من [PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

function_to_apply (`str`، *اختياري*، القيمة الافتراضية `"default"`) : الدالة التي تُطبَّق على مخرجات النموذج لاستخراج الدرجات. يقبل أربعة قيم مختلفة:  - `"default"`: إذا كان للنموذج تسمية واحدة، فسيُطبَّق دالة sigmoid على المخرجات. إذا كان للنموذج عدة تسميات، فسيُطبَّق دالة softmax على المخرجات. في حالة مهام الانحدار، لن تُطبَّق أي دالة على المخرجات. - `"sigmoid"`: يُطبَّق دالة sigmoid على المخرجات. - `"softmax"`: يُطبَّق دالة softmax على المخرجات. - `"none"`: لا يُطبَّق أي دالة على المخرجات.

خط أنابيب تصنيف النصوص باستخدام أي `ModelForSequenceClassification`. راجع [أمثلة تصنيف التسلسل](../task_summary#sequence-classification) لمزيد من المعلومات.

مثال:

```python
>>> from transformers import pipeline

>>> classifier = pipeline(model="distilbert/distilbert-base-uncased-finetuned-sst-2-english")
>>> classifier("This movie is disgustingly good !")
[{'label': 'POSITIVE', 'score': 1.0}]

>>> classifier("Director tried too much.")
[{'label': 'NEGATIVE', 'score': 0.996}]
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حاليًا تحميل خط أنابيب تصنيف النصوص هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"sentiment-analysis"` (لتصنيف التسلسلات وفقًا للمشاعر الإيجابية أو السلبية).

إذا كانت هناك تسميات تصنيف متعددة متاحة (`model.config.num_labels >= 2`)، فسيُنفّذ خط المعالجة softmax على النتائج. أما إذا كانت هناك تسمية واحدة فقط، فسيُنفّذ خط المعالجة sigmoid على النتيجة. وفي حال مهام الانحدار (`model.config.problem_type == "regression"`)، لن يُطبَّق أي دالة على المخرجات.

النماذج التي يمكن لهذا الخط أن يستخدمها هي نماذج تم ضبطها على مهمة تصنيف التسلسلات. راجع قائمة النماذج المتاحة المحدّثة على [huggingface.co/models](https://huggingface.co/models?filter=text-classification).

#### __call__[[transformers.TextClassificationPipeline.__call__]]

```python
__call__(inputs: str | list[str] | dict[str, str] | list[dict[str, str]], **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/text_classification.py#L105)

**المعاملات:**

inputs (`str` أو `list[str]` أو `dict[str]`، أو `list[dict[str]]`) : نص واحد أو عدة نصوص لتصنيفها. لاستخدام أزواج النصوص في تصنيفك، يمكنك إرسال قاموس يحتوي على مفاتيح `{"text", "text_pair"}`، أو قائمة من تلك القواميس.

top_k (`int`، *اختياري*، القيمة الافتراضية `1`) : عدد النتائج التي يجب إرجاعها.

function_to_apply (`str`، *اختياري*، القيمة الافتراضية `"default"`) : الدالة التي تُطبَّق على مخرجات النموذج لاستخراج الدرجات. يقبل أربعة قيم مختلفة:  إذا لم يُحدَّد هذا الحُجج، فسيتم تطبيق الدوال التالية وفقًا لعدد التسميات:  - إذا كان نوع المشكلة هو الانحدار، فلن تُطبَّق أي دالة على المخرجات. - إذا كان للنموذج تسمية واحدة، فسيتم تطبيق دالة sigmoid على المخرجات. - إذا كان للنموذج عدة تسميات، فسيتم تطبيق دالة softmax على المخرجات.  القيم الممكنة هي:  - `"sigmoid"`: تُطبِّق دالة sigmoid على المخرجات. - `"softmax"`: تُطبِّق دالة softmax على المخرجات. - `"none"`: لا تُطبِّق أي دالة على المخرجات.

**يعيد:** قائمة من `dict`

تأتي كل نتيجة على شكل قائمة من القواميس التي تحتوي على المفاتيح التالية:

- **label** (`str`) -- التسمية المتوقعة.
- **score** (`float`) -- الاحتمال المقابل.

إذا تم استخدام `top_k`، يُعاد قاموس واحد من هذا النوع لكل تسمية.

صنّف النصّات المُعطاة كمدخلات.

### TextGenerationPipeline[[transformers.TextGenerationPipeline]]

#### transformers.TextGenerationPipeline[[transformers.TextGenerationPipeline]]

```python
transformers.TextGenerationPipeline(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/text_generation.py#L23)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

tokenizer ([PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend)) : المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من [PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

خط أنابيب توليد اللغة باستخدام أي `ModelWithLMHead` أو `ModelForCausalLM`. يتنبأ هذا الخط أنابيب بالكلمات التي ستلي نصّ موجه محدد. عندما يكون النموذج الأساسي نموذجًا محاديًا، يمكنه أيضًا قبول محادثة واحدة أو أكثر، وفي هذه الحالة سيعمل الخط أنابيب في وضع المحادثة وسيستمر في المحادثة(ات) بإضافة ردوده. تأخذ كل محادثة شكل قائمة من القواميس (dicts)، حيث يحتوي كل قاموس على مفتاحي "role" و"content".

ما لم يضبط النموذج الذي تستخدمه هذه المعلمات الخاصة بالتوليد صراحةً في ملفات إعداده (`generation_config.json`)، فسيتم استخدام القيم الافتراضية التالية:
- max_new_tokens: 256
- do_sample: True
- temperature: 0.7

أمثلة:

```python
>>> from transformers import pipeline

>>> generator = pipeline(model="openai-community/gpt2")
>>> generator("I can't believe you did such a ", do_sample=False)
[{'generated_text': "I can't believe you did such a icky thing to me. I'm so sorry. I'm so sorry. I'm so sorry. I'm so sorry. I'm so sorry. I'm so sorry. I'm so sorry. I"}]

>>> # These parameters will return suggestions, and only the newly created text making it easier for prompting suggestions.
>>> outputs = generator("My tart needs some", num_return_sequences=4, return_full_text=False)
```

```python
>>> from transformers import pipeline

>>> generator = pipeline(model="HuggingFaceH4/zephyr-7b-beta")
>>> # Zephyr-beta is a conversational model, so let's pass it a chat instead of a single string
>>> generator([{"role": "user", "content": "What is the capital of France? Answer in one word."}], do_sample=False, max_new_tokens=2)
[{'generated_text': [{'role': 'user', 'content': 'What is the capital of France? Answer in one word.'}, {'role': 'assistant', 'content': 'Paris'}]}]
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial). يمكنك تمرير معاملات توليد النص إلى هذا الخط للتحكم في معايير التوقف واستراتيجية فك الترميز والمزيد. تعرّف على المزيد حول معاملات توليد النص في [استراتيجيات توليد النص](../generation_strategies) و[توليد النص](text_generation).

يمكن حالياً تحميل خط أنابيب توليد اللغة هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"text-generation"`.

النماذج التي يمكن لهذا الخط أن يستخدمها هي نماذج تم تدريبها بهدف نمذجة لغوية ذاتية التوليد. راجع قائمة [نماذج إكمال النص](https://huggingface.co/models?filter=text-generation) المتاحة وقائمة [النماذج الحوارية](https://huggingface.co/models?other=conversational) على [huggingface.co/models].

#### __call__[[transformers.TextGenerationPipeline.__call__]]

```python
__call__(text_inputs, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/text_generation.py#L251)

**المعاملات:**

text_inputs (`str`، `list[str]`، `ChatType`، أو `list[ChatType]`) : موجه واحد أو عدة موجهات (أو قائمة واحدة من الموجهات) لإكمالها. إذا تم تمرير نصوص أو قائمة من النصوص، فسيكمل هذا الخط الأنابيب كل موجه. كبديل، يمكن تمرير "دردشة" على شكل قائمة من القواميس التي تحتوي على مفاتيح "role" و"content"، أو قائمة من مثل هذه الدردشات. عند تمرير الدردشات، سيُستخدم قالب الدردشة الخاص بالنموذج لتنسيقها قبل تمريرها إلى النموذج.

return_tensors (`bool`، *اختياري*، القيمة الافتراضية `False`) : تُرجع تينسورات التنبؤات (بصفتها فهارس الرموز) في المخرجات. إذا تم ضبطها على `True`، فلن يُعاد النص المُفكَّك.

return_text (`bool`، *اختياري*) : تُرجع النصوص المُفكَّكة في المخرجات.

return_full_text (`bool`، *اختياري*، القيمة الافتراضية `True`) : إذا تم ضبطه على `False` يُعاد النص المضاف فقط، وإلا يُعاد النص الكامل. لا يمكن تحديده في الوقت نفسه مع `return_text`.

clean_up_tokenization_spaces (`bool`، *اختياري*) : ما إذا كان سيتم تنظيف المساحات الإضافية المحتملة في نص المخرجات. القيمة الافتراضية هي إعداد `clean_up_tokenization_spaces` الخاص بمجزّئ الرموز.

continue_final_message( `bool`, *اختياري*) : يشير هذا إلى أنك تريد من النموذج أن يستمر في الرسالة الأخيرة في محادثة الإدخال بدلاً من بدء رسالة جديدة، مما يتيح لك "تعبئة مسبقة" لاستجابته. افتراضياً، تكون هذه القيمة `True` عندما تكون الرسالة الأخيرة في محادثة الإدخال بدور `assistant`، و`False` في الحالات الأخرى، لكن يمكنك تجاوز هذا السلوك يدوياً عن طريق تعيين هذا العلم.

prefix (`str`، *اختياري*) : البادئة المضافة إلى الاستعلام.

stop_sequence (`str` أو `list[str]`، *اختياري*) : سلسلة واحدة أو أكثر توقف التوليد بمجرد توليدها. تُضمَّن سلسلة التوقف في المخرجات.

handle_long_generation (`str`, *اختياري*) : افتراضيًا، لا يتعامل هذا الخطّ الأنابيب مع التوليد الطويل (ذلك الذي يتجاوز الحد الأقصى لطول النموذج بشكلٍ ما). لا توجد طريقة مثالية للتعامل مع هذه المشكلة (المزيد من المعلومات :https://github.com/huggingface/transformers/issues/14033#issuecomment-948385227). يوفّر هذا استراتيجيات شائعة للالتفاف على هذه المشكلة اعتمادًا على حالة الاستخدام لديك.  - `None` : الاستراتيجية الافتراضية حيث لا يحدث شيء محدد - `"hole"`: يقصّ من يسار المدخلات، ويترك فجوة واسعة بما يكفي للسماح بحدوث التوليد (قد يقصّ جزءًا كبيرًا من الموجه، ولا يكون مناسبًا عندما يتجاوز التوليد سعة النموذج)

tokenizer_encode_kwargs (`dict`, *اختياري*) : حُجج إضافية بالاسم تُمرَّر إلى خطوة الترميز في المُرمِّز. إذا كان مدخل النص محادثة، فإنه يُمرَّر إلى `apply_chat_template`. وإلا، فإنه يُمرَّر إلى `__call__`.

generate_kwargs (`dict`، *اختياري*) : حُجج إضافية بالاسم تُمرَّر إلى طريقة generate في النموذج (انظر طريقة generate [هنا](./text_generation)).

**يعيد:** قائمة أو قائمة من قوائم من `dict`

تُرجع أحد القامتين التاليتين (لا يمكن إرجاع مزيج من `generated_text` و`generated_token_ids`):

- **generated_text** (`str`، موجود عندما يكون `return_text=True`) -- النص المولّد.
- **generated_token_ids** (`torch.Tensor`، موجود عندما يكون `return_tensors=True`) -- معرّفات الرموز النصية للنص المولّد.

أكمل المُوجِّهات المُعطاة كمدخلات.

### TokenClassificationPipeline[[transformers.TokenClassificationPipeline]]

#### transformers.TokenClassificationPipeline[[transformers.TokenClassificationPipeline]]

```python
transformers.TokenClassificationPipeline(args_parser = <transformers.pipelines.token_classification.TokenClassificationArgumentHandler object at 0x7f6a12e05a50>, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/token_classification.py#L91)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

tokenizer ([PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend)) : المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من [PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

ignore_labels (`list[str]`، القيمة الافتراضية `["O"]`) : قائمة من التسميات التي يجب تجاهلها.

stride (`int`, *اختياري*) : إذا تم تقديم stride، يُطبَّق خط الأنابيب على النص بأكمله. يتم تقسيم النص إلى مقاطع بحجم model_max_length. يعمل فقط مع المرمّزات السريعة و`aggregation_strategy` مختلف عن `NONE`. يحدد قيمة هذا الحجة عدد الرموز المتداخلة بين المقاطع. بعبارة أخرى، سيتقدّم النموذج بمقدار `tokenizer.model_max_length - stride` رموز في كل خطوة.

aggregation_strategy (`str`، *اختياري*، القيمة الافتراضية `"none"`) : الاستراتيجية التي تُستخدم لدمج الرموز (أو عدم دمجها) بناءً على توقع النموذج. - "none" : لن تُجري أي تجميع وستُعيد ببساطة النتائج الخام من النموذج - "simple" : ستحاول تجميع الكيانات وفقًا للمخطط الافتراضي. (A, B-TAG)، (B, I-TAG)، (C, I-TAG)، (D, B-TAG2) (E, B-TAG2) ستنتهي على النحو التالي [{"word": ABC, "entity": "TAG"}, {"word": "D", "entity": "TAG2"}, {"word": "E", "entity": "TAG2"}] لاحظ أن وسمي B متتاليين سيُنتجان كيانين مختلفين. في اللغات القائمة على الكلمات، قد ننتهي إلى تقسيم الكلمات بشكل غير مرغوب فيه : تخيّل أن Microsoft مُوسومة على النحو [{"word": "Micro", "entity": "ENTERPRISE"}, {"word": "soft", "entity": "NAME"}]. ابحث عن FIRST، MAX، AVERAGE لمعرفة الطرق للتخفيف من ذلك وتوضيح الكلمات (في اللغات التي تدعم ذلك المعنى، وهو في الأساس رموز مفصولة بمسافة). ستعمل هذه التخفيفات فقط على الكلمات الفعلية، فقد لا تزال "New york" مُوسومة بكيانين مختلفين. - "first" : (يعمل فقط على النماذج القائمة على الكلمات) سيستخدم استراتيجية `SIMPLE` باستثناء أن الكلمات لا يمكن أن تنتهي بوسوم مختلفة. ستستخدم الكلمات ببساطة وسم الرمز الأول من الكلمة عند وجود غموض. - "average" : (يعمل فقط على النماذج القائمة على الكلمات) سيستخدم استراتيجية `SIMPLE` باستثناء أن الكلمات لا يمكن أن تنتهي بوسوم مختلفة. ستُمتص النقاط أولاً عبر الرموز، ثم يُطبَّق التسمية القصوى. - "max" : (يعمل فقط على النماذج القائمة على الكلمات) سيستخدم استراتيجية `SIMPLE` باستثناء أن الكلمات لا يمكن أن تنتهي بوسوم مختلفة. سيكون كيان الكلمة ببساطة الرمز ذو الدرجة القصوى.

خط أنابيب التعرف على الكيانات المسمّاة باستخدام أي `ModelForTokenClassification`. راجع [أمثلة التعرف على الكيانات المسمّاة](../task_summary#named-entity-recognition) لمزيد من المعلومات.

مثال:

```python
>>> from transformers import pipeline

>>> token_classifier = pipeline(model="Jean-Baptiste/camembert-ner", aggregation_strategy="simple")
>>> sentence = "Je m'appelle jean-baptiste et je vis à montréal"
>>> tokens = token_classifier(sentence)
>>> tokens
[{'entity_group': 'PER', 'score': 0.9931, 'word': 'jean-baptiste', 'start': 12, 'end': 26}, {'entity_group': 'LOC', 'score': 0.998, 'word': 'montréal', 'start': 38, 'end': 47}]

>>> token = tokens[0]
>>> # Start and end provide an easy way to highlight words in the original text.
>>> sentence[token["start"] : token["end"]]
' jean-baptiste'

>>> # Some models use the same idea to do part of speech.
>>> syntaxer = pipeline(model="vblagoje/bert-english-uncased-finetuned-pos", aggregation_strategy="simple")
>>> syntaxer("My name is Sarah and I live in London")
[{'entity_group': 'PRON', 'score': 0.999, 'word': 'my', 'start': 0, 'end': 2}, {'entity_group': 'NOUN', 'score': 0.997, 'word': 'name', 'start': 3, 'end': 7}, {'entity_group': 'AUX', 'score': 0.994, 'word': 'is', 'start': 8, 'end': 10}, {'entity_group': 'PROPN', 'score': 0.999, 'word': 'sarah', 'start': 11, 'end': 16}, {'entity_group': 'CCONJ', 'score': 0.999, 'word': 'and', 'start': 17, 'end': 20}, {'entity_group': 'PRON', 'score': 0.999, 'word': 'i', 'start': 21, 'end': 22}, {'entity_group': 'VERB', 'score': 0.998, 'word': 'live', 'start': 23, 'end': 27}, {'entity_group': 'ADP', 'score': 0.999, 'word': 'in', 'start': 28, 'end': 30}, {'entity_group': 'PROPN', 'score': 0.999, 'word': 'london', 'start': 31, 'end': 37}]
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حالياً تحميل خط أنابيب التعرف على الرموز هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"ner"` (لتنبؤ بفئات الرموز في تسلسل: شخص، منظمة، موقع أو أخرى).

النماذج التي يمكن أن يستخدمها هذا الخط هي نماذج تم ضبطها على مهمة تصنيف الرموز. راجع قائمة النماذج المتاحة المحدّثة على [huggingface.co/models](https://huggingface.co/models?filter=token-classification).

#### __call__[[transformers.TokenClassificationPipeline.__call__]]

```python
__call__(inputs: str | list[str], **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/token_classification.py#L210)

**المعاملات:**

inputs (`str` أو `List[str]`) : نص واحد أو عدة نصوص (أو قائمة واحدة من النصوص) لتصنيف الرموز. يمكن أن تكون مُقسّمة مسبقًا عندما يكون `is_split_into_words=True`.

**يعيد:** قائمة أو قائمة من قوائم من `dict`

تأتي كل نتيجة على شكل قائمة من القواميس (واحد لكل رمز في الإدخال المقابل، أو لكل كيان إذا تم إنشاء خط المعالجة هذا مع aggregation_strategy) مع المفاتيح التالية:

- **word** (`str`) -- الرمز/الكلمة المُصنَّفة. يتم الحصول عليها عبر فك ترميز الرموز المختارة. إذا كنت ترغب في الحصول على النص الدقيق كما ورد في الجملة الأصلية، فاستخدم `start` و`end`.
- **score** (`float`) -- الاحتمال المقابل للكيان `entity`.
- **entity** (`str`) -- الكيان المتوقع لذلك الرمز/الكلمة (يُسمى *entity_group* عندما لا يكون *aggregation_strategy* هو `"none"`.
- **index** (`int`، موجود فقط عندما `aggregation_strategy="none"`) -- فهرس الرمز المقابل في الجملة.
- **start** (`int`، *اختياري*) -- فهرس بداية الكيان المقابل في الجملة. لا يتوفر إلا إذا كانت الإزاحات متاحة داخل مُجزّئ النص
- **نهاية** (`int`، *اختياري*) -- فهرس نهاية الكيان المقابل في الجملة. لا يتوفر إلا إذا كانت الإزاحات متاحة داخل مُجزّئ النص

صنّف كل رمز من الرموز في النصّ أو النصوص المُعطاة كمدخلات.

#### aggregate_words[[transformers.TokenClassificationPipeline.aggregate_words]]

```python
aggregate_words(entities: list, aggregation_strategy: AggregationStrategy)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/token_classification.py#L522)

تجاوز الرموز من كلمة محددة التي لا تتوافق مع حدود الكلمة لفرض التوافق على حدود الكلمة.

مثال: micro|soft| com|pany| B-ENT I-NAME I-ENT I-ENT ستُعاد كتابتها باستخدام الاستراتيجية الأولى على النحو التالي: microsoft| company| B-ENT I-ENT

#### gather_pre_entities[[transformers.TokenClassificationPipeline.gather_pre_entities]]

```python
gather_pre_entities(sentence: str, input_ids: ndarray, scores: ndarray, offset_mapping: list[tuple[int, int]] | None, special_tokens_mask: ndarray, aggregation_strategy: AggregationStrategy, word_ids: list[int | None] | None = None, word_to_chars_map: list[tuple[int, int]] | None = None)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/token_classification.py#L398)

دمج مصفوفات numpy المختلفة في قواميس تحتوي على جميع المعلومات اللازمة للتجميع

#### group_entities[[transformers.TokenClassificationPipeline.group_entities]]

```python
group_entities(entities: list)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/token_classification.py#L585)

**المعاملات:**

entities (`dict`) : الكيانات التي تتنبأ بها خط المعالجة.

ابحث عن الرموز المتجاورة التي تتنبأ بنفس الكيان، ثم اجمعها في مجموعة واحدة.

#### group_sub_entities[[transformers.TokenClassificationPipeline.group_sub_entities]]

```python
group_sub_entities(entities: list)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/token_classification.py#L550)

**المعاملات:**

entities (`dict`) : الكيانات التي تتنبأ بها خط المعالجة.

اجمع الرموز المتجاورة التي تم التنبؤ بنفس الكيان لها.

### ZeroShotClassificationPipeline[[transformers.ZeroShotClassificationPipeline]]

#### transformers.ZeroShotClassificationPipeline[[transformers.ZeroShotClassificationPipeline]]

```python
transformers.ZeroShotClassificationPipeline(args_parser = <transformers.pipelines.zero_shot_classification.ZeroShotClassificationArgumentHandler object at 0x7f6a126906d0>, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/zero_shot_classification.py#L44)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

tokenizer ([PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend)) : المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من [PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

خط أنابيب تصنيف بدون تدريب مسبق يعتمد على الاستدلال اللغوي الطبيعي، باستخدام `ModelForSequenceClassification` مُدرَّب على مهام الاستدلال اللغوي الطبيعي. يُعادل خطوط أنابيب `text-classification`، لكن هذه النماذج لا تتطلب تحديد عدد محدد مسبقاً للفئات المحتملة، إذ يمكن اختيارها وقت التشغيل. وعادةً ما يعني ذلك أن العملية أبطأ، لكنها **أكثر مرونة بكثير**.

يمكن تمرير أي تركيبة من التسلسلات والوسوم، وسيتم تقديم كل تركيبة كزوج فرض/فرضية وتمريرها إلى النموذج المُدرَّب مسبقًا. ثم يُؤخذ اللوجيت الخاص بـ *entailment* كقيمة اللوجيت لصلاحية الوسم المرشح. يمكن استخدام أي نموذج NLI، لكن يجب أن يتضمن إعداد النموذج معرّف وسم *entailment* ضمن :attr:*~transformers.PreTrainedConfig.label2id*.

مثال:

```python
>>> from transformers import pipeline

>>> oracle = pipeline(model="facebook/bart-large-mnli")
>>> oracle(
...     "I have a problem with my iphone that needs to be resolved asap!!",
...     candidate_labels=["urgent", "not urgent", "phone", "tablet", "computer"],
... )
{'sequence': 'I have a problem with my iphone that needs to be resolved asap!!', 'labels': ['urgent', 'phone', 'computer', 'not urgent', 'tablet'], 'scores': [0.504, 0.479, 0.013, 0.003, 0.002]}

>>> oracle(
...     "I have a problem with my iphone that needs to be resolved asap!!",
...     candidate_labels=["english", "german"],
... )
{'sequence': 'I have a problem with my iphone that needs to be resolved asap!!', 'labels': ['english', 'german'], 'scores': [0.814, 0.186]}
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حاليًا تحميل خط أنابيب NLI هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"zero-shot-classification"`.

النماذج التي يمكن أن يستخدمها هذا الخط هي نماذج تم ضبطها على مهمة NLI. راجع قائمة النماذج المتاحة المحدّثة على [huggingface.co/models](https://huggingface.co/models?search=nli).

#### __call__[[transformers.ZeroShotClassificationPipeline.__call__]]

```python
__call__(sequences: str | list[str], *args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/zero_shot_classification.py#L159)

**المعاملات:**

sequences (`str` أو `list[str]`) : التسلسلات المراد تصنيفها، وسيتم اقتطاعها إذا كان مدخل النموذج كبيرًا جدًا.

candidate_labels (`str` أو `list[str]`) : مجموعة التسميات الصنفية الممكنة لتصنيف كل تسلسل إليها. يمكن أن تكون تسمية واحدة، أو نصًا يحتوي على تسميات مفصولة بفواصل، أو قائمة من التسميات.

hypothesis_template (`str`، *اختياري*، القيمة الافتراضية `"This example is {}."`) : القالب المستخدم لتحويل كل تسمية إلى فرضية بأسلوب NLI. يجب أن يتضمن هذا القالب {} أو صياغة مشابهة لإدراج التسمية المرشحة في القالب. على سبيل المثال، القالب الافتراضي هو `"This example is {}."` ومع التسمية المرشحة `"sports"`، يُدخل هذا في النموذج على النحو التالي `"<cls> sequence to classify <sep> This example is sports . <sep>"`. يعمل القالب الافتراضي بشكل جيد في العديد من الحالات، لكن قد يكون من المفيد تجربة قوالب مختلفة اعتمادًا على إعداد المهمة.

multi_label (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان من الممكن أن تكون عدة تسميات مرشحة صحيحة في آنٍ واحد. إذا كانت `False`، يتم تطبيع الدرجات بحيث يكون مجموع احتمالات التسميات لكل تسلسل يساوي 1. أما إذا كانت `True`، فتُعتبر التسميات مستقلة، وتُطبَّع الاحتمالات لكل مرشح من خلال تطبيق softmax على درجة الاستلزام مقابل درجة التناقض.

**يعيد:** `dict` أو قائمة من `dict`

يأتي كل نتيجة على شكل قاموس بالمفاتيح التالية:

- **sequence** (`str`) -- التسلسل الذي يمثل هذا المخرجات له.
- **labels** (`list[str]`) -- التسميات مرتبة حسب ترتيب الاحتمالية.
- **النتائج** (`list[float]`) -- احتمالات كل من التسميات.

صنّف التسلسلات المُعطاة كمدخلات. راجع توثيق [ZeroShotClassificationPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.ZeroShotClassificationPipeline) لمزيد من المعلومات.

## متعدد الوسائط

تشمل خطوط الأنابيب المتاحة للمهام متعددة الوسائط ما يلي.

### DocumentQuestionAnsweringPipeline[[transformers.DocumentQuestionAnsweringPipeline]]

#### transformers.DocumentQuestionAnsweringPipeline[[transformers.DocumentQuestionAnsweringPipeline]]

```python
transformers.DocumentQuestionAnsweringPipeline(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/document_question_answering.py#L206)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

tokenizer ([PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend)) : المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من [PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend).

image_processor ([BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor)) : مُعالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من [BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

خط أنابيب الإجابة عن الأسئلة من المستندات باستخدام أي `AutoModelForDocumentQuestionAnswering`. المدخلات والمخرجات مشابهة لخط أنابيب الإجابة عن الأسئلة (الاستخراجي)؛ ومع ذلك، يتلقى خط الأنابيب صورة (وكلمات/صناديق اختيارية ناتجة عن OCR) كمدخل بدلاً من نص السياق.

ما لم يضبط النموذج الذي تستخدمه هذه المعلمات الخاصة بالتوليد صراحةً في ملفات إعداده (`generation_config.json`)، فسيتم استخدام القيم الافتراضية التالية:
- max_new_tokens: 256

مثال:

```python
>>> from transformers import pipeline

>>> document_qa = pipeline(model="impira/layoutlm-document-qa")
>>> document_qa(
...     image="https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/invoice_docquery_a.png",
...     question="What is the invoice number?",
... )
[{'score': 0.425, 'answer': 'us-001', 'start': 16, 'end': 16}]
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حالياً تحميل خط أنابيب الإجابة على أسئلة المستندات هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"document-question-answering"`.

النماذج التي يمكن لهذا الخط أن يستخدمها هي نماذج تم ضبطها على مهمة الإجابة عن الأسئلة المستندة إلى مستندات. راجع قائمة النماذج المتاحة المحدّثة على [huggingface.co/models](https://huggingface.co/models?filter=document-question-answering).

#### __call__[[transformers.DocumentQuestionAnsweringPipeline.__call__]]

```python
__call__(image: typing.Union[ForwardRef('Image.Image'), str, list[dict[str, typing.Any]]], question: str | None = None, word_boxes: tuple[str, list[float]] | None = None, **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/document_question_answering.py#L338)

**المعاملات:**

image (`str` أو `PIL.Image`) : يتعامل خط المعالجة مع ثلاثة أنواع من الصور:  - نص يحتوي على رابط http يشير إلى صورة - نص يحتوي على مسار محلي لصورة - صورة محمّلة مباشرة في PIL  يقبل خط المعالجة صورة واحدة أو دفعة من الصور. إذا تم تقديم صورة واحدة، يمكن بثّها إلى أسئلة متعددة.

question (`str`) : سؤال يُطرح على المستند.

word_boxes (`list[str, tuple[float, float, float, float]]`، *اختياري*) : قائمة بالكلمات ومربعات الإحاطة (معايرة من 0 إلى 1000). إذا قمت بتوفير هذا الإدخال الاختياري، فسيستخدم خط المعالجة هذه الكلمات والمربعات بدلاً من تشغيل التعرف الضوئي على الحروف على الصورة لاستنتاجها للنماذج التي تحتاج إليها (مثل LayoutLM). وهذا يتيح لك إعادة استخدام نتائج التعرف الضوئي على الحروف عبر العديد من استدعاءات خط المعالجة دون الحاجة إلى إعادة تشغيله في كل مرة.

top_k (`int`، *اختياري*، القيمة الافتراضية 1) : عدد الإجابات التي يجب إرجاعها (سيتم اختيارها حسب ترتيب الاحتمالية). لاحظ أننا نعيد عددًا أقل من top_k إجابات إذا لم تتوفر خيارات كافية ضمن السياق.

doc_stride (`int`، *اختياري*، القيمة الافتراضية 128) : إذا كانت الكلمات في المستند طويلة جدًا بحيث لا تتسع مع السؤال للنموذج، فسيتم تقسيمها إلى عدة مقاطع مع بعض التداخل. يتحكم هذا الحجم في حجم ذلك التداخل.

max_answer_len (`int`، *اختياري*، القيمة الافتراضية 15) : الحد الأقصى لطول الإجابات المتوقعة (على سبيل المثال، تُؤخذ في الاعتبار فقط الإجابات ذات الطول الأقصر).

max_seq_len (`int`، *اختياري*، القيمة الافتراضية 384) : الحد الأقصى لطول الجملة الإجمالي (السياق + السؤال) بوحدة الرموز لكل مقطع يُمرَّر إلى النموذج. سيتم تقسيم السياق إلى عدة مقاطع (باستخدام `doc_stride` كتداخل) عند الحاجة.

max_question_len (`int`، *اختياري*، القيمة الافتراضية 64) : الحد الأقصى لطول السؤال بعد الترميز. سيتم اقتطاعه عند الحاجة.

handle_impossible_answer (`bool`، *اختياري*، الافتراضي `False`) : ما إذا كنا نقبل "مستحيل" كإجابة أم لا.

lang (`str`، *اختياري*) : اللغة المستخدمة أثناء تشغيل التعرف الضوئي على الحروف (OCR). القيمة الافتراضية هي الإنجليزية.

tesseract_config (`str`، *اختياري*) : أعلام إضافية تُمرَّر إلى tesseract أثناء تشغيل OCR.

timeout (`float`، *اختياري*، القيمة الافتراضية هي None) : الحد الأقصى للوقت بالثواني للانتظار حتى يتم جلب الصور من الويب. إذا كانت القيمة None، فلا يُضبط مهلة زمنية وقد يستمر الاستدعاء في الانتظار إلى الأبد.

**يعيد:** `dict` أو قائمة من `dict`

يأتي كل نتيجة على شكل قاموس بالمفاتيح التالية:

- **score** (`float`) -- الاحتمال المرتبط بالإجابة.
- **start** (`int`) -- فهرس كلمة البداية للإجابة (في النسخة المعالجة بالنص البصري من المدخل أو في `word_boxes` المُقدَّمة).
- **end** (`int`) -- فهرس كلمة النهاية للإجابة (في النسخة المعالجة بالنص البصري من المدخل أو `word_boxes` المُقدَّمة).
- **answer** (`str`) -- الإجابة على السؤال.
- **كلمات** (`list[int]`) -- فهرس كل زوج كلمة/مربع موجود في الإجابة

أجب عن الأسئلة المُعطاة كمدخلات باستخدام المستند(ات). يُعرَّف المستند على أنه صورة وقائمة اختيارية من أزواج (كلمة، صندوق) تمثل النص في المستند. إذا لم تُقدَّم `word_boxes`، فسيتم استخدام محرك Tesseract OCR (إذا كان متاحًا) لاستخراج الكلمات والصناديق تلقائيًا للنماذج المشابهة لـ LayoutLM التي تتطلبها كمدخلات. أما بالنسبة إلى Donut، فلا يتم تشغيل أي OCR.

يمكنك استدعاء خط الأنابيب بعدة طرق:

- `pipeline(image=image, question=question)`
- `pipeline(image=image, question=question, word_boxes=word_boxes)`
- `pipeline([{"image": image, "question": question}])`
- `pipeline([{"image": image, "question": question, "word_boxes": word_boxes}])`

### FeatureExtractionPipeline[[transformers.FeatureExtractionPipeline]]

#### transformers.FeatureExtractionPipeline[[transformers.FeatureExtractionPipeline]]

```python
transformers.FeatureExtractionPipeline(model: PreTrainedModel, tokenizer: PreTrainedTokenizer | None = None, feature_extractor: PreTrainedFeatureExtractor | None = None, image_processor: BaseImageProcessor | None = None, video_processor: BaseVideoProcessor | None = None, processor: ProcessorMixin | None = None, task: str = '', device: int | torch.device | None = None, binary_output: bool = False, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/feature_extraction.py#L15)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

tokenizer ([PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend)) : المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من [PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

tokenize_kwargs (`dict`، *اختياري*) : قاموس إضافي لحجج الكلمات المفتاحية التي تُمرَّر إلى المُجزِّئ.

return_tensors (`bool`، *اختياري*) : إذا كانت `True`، تُرجع مصفوفة (tensor) وفقًا للإطار المحدد، وإلا تُرجع قائمة.

لا يستخدم خط أنابيب استخراج الميزات أي رأس نموذج. يستخرج هذا الخط أنابيب حالات الإخفاء من محوّل الأساس، والتي يمكن استخدامها كميزات في المهام اللاحقة.

مثال:

```python
>>> from transformers import pipeline

>>> extractor = pipeline(model="google-bert/bert-base-uncased", task="feature-extraction")
>>> result = extractor("This is a simple test.", return_tensors=True)
>>> result.shape  # This is a tensor of shape [1, sequence_length, hidden_dimension] representing the input string.
torch.Size([1, 8, 768])
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حالياً تحميل خط أنابيب استخراج الميزات هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة: `"feature-extraction"`.

يمكن استخدام جميع النماذج لهذا المسار. راجع قائمة جميع النماذج، بما في ذلك النماذج التي ساهم بها المجتمع على [huggingface.co/models](https://huggingface.co/models).

#### __call__[[transformers.FeatureExtractionPipeline.__call__]]

```python
__call__(*args: str | list[str], **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/feature_extraction.py#L78)

**المعاملات:**

args (`str` أو `list[str]`) : نص واحد أو عدة نصوص (أو قائمة واحدة من النصوص) للحصول على سماتها.

**يعيد:** قائمة متداخلة من `float`

الميزات التي يحسبها النموذج.

استخراج ميزات النص(نص) المدخل.

### ImageFeatureExtractionPipeline[[transformers.ImageFeatureExtractionPipeline]]

#### transformers.ImageFeatureExtractionPipeline[[transformers.ImageFeatureExtractionPipeline]]

```python
transformers.ImageFeatureExtractionPipeline(model: PreTrainedModel, tokenizer: PreTrainedTokenizer | None = None, feature_extractor: PreTrainedFeatureExtractor | None = None, image_processor: BaseImageProcessor | None = None, video_processor: BaseVideoProcessor | None = None, processor: ProcessorMixin | None = None, task: str = '', device: int | torch.device | None = None, binary_output: bool = False, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/image_feature_extraction.py#L23)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

image_processor ([BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor)) : مُعالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من [BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

image_processor_kwargs (`dict`, *اختياري*) : قاموس إضافي لحجج الكلمات المفتاحية التي تُمرَّر إلى معالج الصور، على سبيل المثال {"size": {"height": 100, "width": 100}}

pool (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان يجب إخراج المخرجات المجمّعة أم لا. إذا كانت القيمة `False`، فسيُرجع النموذج حالات الإخفاء الخام.

لا يستخدم خط أنابيب استخراج ميزات الصور أي رأس نموذج. يستخرج هذا الخط أنابيب الحالات المخفية من محوّل الأساس، والتي يمكن استخدامها كميزات في المهام اللاحقة.

مثال:

```python
>>> from transformers import pipeline

>>> extractor = pipeline(model="google/vit-base-patch16-224", task="image-feature-extraction")
>>> result = extractor("https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png", return_tensors=True)
>>> result.shape  # This is a tensor of shape [1, sequence_length, hidden_dimension] representing the input image.
torch.Size([1, 197, 768])
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حالياً تحميل خط أنابيب استخراج ميزات الصورة هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة: `"image-feature-extraction"`.

يمكن استخدام جميع نماذج الرؤية في هذا الخط. راجع قائمة جميع النماذج، بما في ذلك النماذج التي ساهم بها المجتمع على [huggingface.co/models](https://huggingface.co/models).

#### __call__[[transformers.ImageFeatureExtractionPipeline.__call__]]

```python
__call__(*args: typing.Union[str, ForwardRef('Image.Image'), list['Image.Image'], list[str]], **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/image_feature_extraction.py#L94)

**المعاملات:**

images (`str`، `list[str]`، `PIL.Image` أو `list[PIL.Image]`) : يتعامل خط المعالجة مع ثلاثة أنواع من الصور:  - نص يحتوي على رابط http يشير إلى صورة - نص يحتوي على مسار محلي لصورة - صورة محمّلة مباشرةً في PIL  يقبل خط المعالجة صورة واحدة أو دفعة من الصور، ويجب في هذه الحالة تمريرها كنص. يجب أن تكون جميع الصور في الدفعة بنفس الصيغة: إما جميعها روابط http، أو جميعها مسارات محلية، أو جميعها صور PIL.

timeout (`float`، *اختياري*، القيمة الافتراضية None) : الحد الأقصى للوقت بالثواني للانتظار حتى يتم جلب الصور من الويب. إذا كانت القيمة None، فلن يُستخدم مهلة زمنية وقد تبقى الاستدعاء محجوزًا إلى الأبد.

**يعيد:** قائمة متداخلة من `float`

الميزات التي يحسبها النموذج.

استخراج ميزات المدخلات.

### ImageTextToTextPipeline[[transformers.ImageTextToTextPipeline]]

#### transformers.ImageTextToTextPipeline[[transformers.ImageTextToTextPipeline]]

```python
transformers.ImageTextToTextPipeline(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/image_text_to_text.py#L53)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

processor ([ProcessorMixin](/docs/transformers/main/ar/main_classes/processors#transformers.ProcessorMixin)) : المعالج الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من [ProcessorMixin](/docs/transformers/main/ar/main_classes/processors#transformers.ProcessorMixin). المعالج هو كائن مركّب قد يحتوي على `tokenizer`، و`feature_extractor`، و`image_processor`.

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

خط أنابيب من الصورة والنص إلى النص باستخدام `AutoModelForImageTextToText`. يولّد هذا الخط أنابيب نصًا بناءً على صورة ونص. عندما يكون النموذج الأساسي نموذجًا محادثيًا، يمكنه أيضًا قبول محادثة واحدة أو أكثر، وفي هذه الحالة سيعمل الخط أنابيب في وضع المحادثة وسيستمر في المحادثة(ات) بإضافة ردوده. تأخذ كل محادثة شكل قائمة من القواميس (dicts)، حيث يحتوي كل قاموس على مفتاحي "role" و"content".

ما لم يضبط النموذج الذي تستخدمه هذه المعلمات الخاصة بالتوليد صراحةً في ملفات إعداده (`generation_config.json`)، فسيتم استخدام القيم الافتراضية التالية:
- max_new_tokens: 256

مثال:

```python
>>> from transformers import pipeline

>>> pipe = pipeline(task="image-text-to-text", model="Salesforce/blip-image-captioning-base")
>>> pipe("https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png", text="A photo of")
[{'generated_text': 'a photo of two birds'}]
```

```python
>>> from transformers import pipeline

>>> pipe = pipeline("image-text-to-text", model="llava-hf/llava-interleave-qwen-0.5b-hf")
>>> messages = [
>>>     {
>>>         "role": "user",
>>>         "content": [
>>>             {
>>>                 "type": "image",
>>>                 "url": "https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/qwen_vl_demo.jpeg",
>>>             },
>>>             {"type": "text", "text": "Describe this image."},
>>>         ],
>>>     },
>>>     {
>>>         "role": "assistant",
>>>         "content": [
>>>             {"type": "text", "text": "There is a dog and"},
>>>         ],
>>>     },
>>> ]
>>> pipe(text=messages, max_new_tokens=20, return_full_text=False)
[{'input_text': [{'role': 'user',
    'content': [{'type': 'image',
    'url': 'https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/qwen_vl_demo.jpeg'},
    {'type': 'text', 'text': 'Describe this image.'}]},
{'role': 'assistant',
    'content': [{'type': 'text', 'text': 'There is a dog and'}]}],
'generated_text': ' a person in the image. The dog is sitting on the sand, and the person is sitting on'}]
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حالياً تحميل خط أنابيب الصورة والنص إلى النص من pipeline() باستخدام معرّف المهمة التالي: "image-text-to-text".

اطّلع على قائمة النماذج المتاحة على [huggingface.co/models](https://huggingface.co/models?pipeline_tag=image-text-to-text).

#### __call__[[transformers.ImageTextToTextPipeline.__call__]]

```python
__call__(images: typing.Union[str, list[str], list[list[str]], ForwardRef('Image.Image'), list['Image.Image'], list[list['Image.Image']], list[dict], NoneType] = None, text: str | list[str] | list[dict] | None = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/image_text_to_text.py#L215)

**المعاملات:**

images (`str`, `list[str]`, `PIL.Image, `list[PIL.Image]`, `list[dict[str, Union[str, PIL.Image]]]`) : The pipeline handles three types of images:  - A string containing a HTTP(s) link pointing to an image - A string containing a local path to an image - An image loaded in PIL directly  The pipeline accepts either a single image or a batch of images. Finally, this pipeline also supports the chat format (see `text`) containing images and text in this argument.

text (str, list[str], `list[dict[str, Union[str, PIL.Image]]]`) : النص الذي سيُستخدم للتوليد. إذا تم تمرير قائمة من النصوص، فيجب أن يكون طول القائمة مساويًا لعدد الصور. يمكن أيضًا أن يتبع النص صيغة المحادثة: قائمة من القواميس حيث يمثل كل قاموس رسالة في محادثة. يجب أن يحتوي كل قاموس على مفتاحين: 'role' و 'content'. يجب أن يكون 'role' أحد 'user' أو 'system' أو 'assistant'. يجب أن يكون 'content' قائمة من القواميس تحتوي على نص الرسالة ونوع الرسالة. يمكن أن يكون نوع الرسالة إما 'text' أو 'image'. إذا كان النوع 'image'، فلا يلزم وجود نص.

return_tensors (`bool`، *اختياري*، القيمة الافتراضية `False`) : تُرجع تينسورات التنبؤات (بصفتها فهارس الرموز) في المخرجات. إذا تم ضبطها على `True`، فلن يُعاد النص المُفكَّك.

return_text (`bool`، *اختياري*) : تُرجع النصوص المُفكَّكة في المخرجات.

return_full_text (`bool`، *اختياري*، القيمة الافتراضية `True`) : إذا تم ضبطه على `False` يُعاد النص المضاف فقط، وإلا يُعاد النص الكامل. لا يمكن تحديده في الوقت نفسه مع `return_text`.

clean_up_tokenization_spaces (`bool`، *اختياري*) : ما إذا كان سيتم تنظيف المساحات الإضافية المحتملة في نص المخرجات. القيمة الافتراضية هي إعداد `clean_up_tokenization_spaces` الخاص بمجزّئ الرموز.

continue_final_message( `bool`, *اختياري*) : يشير هذا إلى أنك تريد من النموذج أن يستمر في الرسالة الأخيرة في محادثة الإدخال بدلاً من بدء رسالة جديدة، مما يتيح لك "تعبئة مسبقة" لاستجابته. افتراضياً، تكون هذه القيمة `True` عندما تكون الرسالة الأخيرة في محادثة الإدخال بدور `assistant`، و`False` في الحالات الأخرى، لكن يمكنك تجاوز هذا السلوك يدوياً عن طريق تعيين هذا العلم.

**يعيد:** قائمة أو قائمة من قوائم من `dict`

تأتي كل نتيجة على شكل قاموس يحتوي على المفتاح التالي (لا يمكن إرجاع مجموعة من `generated_text` و`generated_token_ids` معًا):

- **generated_text** (`str`، موجود عندما يكون `return_text=True`) -- النص المولّد.
- **generated_token_ids** (`torch.Tensor`، موجود عندما يكون `return_tensors=True`) -- معرّفات الرموز النصية للنص المولّد.
- **input_text** (`str`) -- النص المُدخل.

توليد نص بناءً على النص والصورة (أو الصور) المُمرّرة كمدخلات.

### AnyToAnyPipeline[[transformers.AnyToAnyPipeline]]

#### transformers.AnyToAnyPipeline[[transformers.AnyToAnyPipeline]]

```python
transformers.AnyToAnyPipeline(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/any_to_any.py#L67)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

processor ([ProcessorMixin](/docs/transformers/main/ar/main_classes/processors#transformers.ProcessorMixin)) : المعالج الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من [ProcessorMixin](/docs/transformers/main/ar/main_classes/processors#transformers.ProcessorMixin). المعالج هو كائن مركّب قد يحتوي على `tokenizer`، و`feature_extractor`، و`image_processor`.

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

خط أنابيب توليد متعدد الوسائط باستخدام `AutoModelForMultimodalLM`. يولّد هذا الخط أنابيب نصًا بناءً على أي تركيبة من البيانات متعددة الوسائط والنص. عندما يكون النموذج الأساسي نموذجًا محاديًا، يمكنه أيضًا قبول محادثة واحدة أو أكثر، وفي هذه الحالة سيعمل الخط أنابيب في وضع المحادثة وسيستمر في المحادثة(ات) بإضافة ردوده. تأخذ كل محادثة شكل قائمة من القواميس (dicts)، حيث يحتوي كل قاموس على مفتاحي "role" و"content".

ما لم يضبط النموذج الذي تستخدمه هذه المعلمات الخاصة بالتوليد صراحةً في ملفات إعداده (`generation_config.json`)، فسيتم استخدام القيم الافتراضية التالية:
- max_new_tokens: 256

مثال:

```python
>>> from transformers import pipeline

>>> pipe = pipeline(task="any-to-any", model="google/gemma-3n-E4B-it")
>>> pipe("https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png", text="A photo of")
[{'generated_text': 'a photo of two birds'}]
```

```python
>>> from transformers import pipeline

>>> pipe = pipeline("any-to-any", model="google/gemma-3n-E4B-it")
>>> messages = [
>>>     {
>>>         "role": "user",
>>>         "content": [
>>>             {
>>>                 "type": "image",
>>>                 "url": "https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/qwen_vl_demo.jpeg",
>>>             },
>>>             {"type": "text", "text": "Describe this image."},
>>>         ],
>>>     },
>>>     {
>>>         "role": "assistant",
>>>         "content": [
>>>             {"type": "text", "text": "There is a dog and"},
>>>         ],
>>>     },
>>> ]
>>> pipe(text=messages, max_new_tokens=20, return_full_text=False)
[{'input_text': [{'role': 'user',
    'content': [{'type': 'image',
    'url': 'https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/qwen_vl_demo.jpeg'},
    {'type': 'text', 'text': 'Describe this image.'}]},
{'role': 'assistant',
    'content': [{'type': 'text', 'text': 'There is a dog and'}]}],
'generated_text': ' a person in the image. The dog is sitting on the sand, and the person is sitting on'}]
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حالياً تحميل خط أنابيب متعدد الوسائط هذا من pipeline() باستخدام معرّف المهمة التالي: "any-to-any".

اطّلع على قائمة النماذج المتاحة على [huggingface.co/models](https://huggingface.co/models?pipeline_tag=any-to-any).

#### __call__[[transformers.AnyToAnyPipeline.__call__]]

```python
__call__(text: str | list[str] | list[dict], images: typing.Union[str, list[str], list[list[str]], ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None, videos: typing.Union[str, list[str], list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]], NoneType] = None, audio: typing.Union[str, list[str], numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/any_to_any.py#L258)

**المعاملات:**

text (`str`، `list[str]`، `list[dict]`) : النص الذي سيُستخدم للتوليد. إذا تم تمرير قائمة من النصوص، فيجب أن تكون طول القائمة مساوياً لعدد الصور. يمكن أيضاً أن يتبع النص صيغة المحادثة: قائمة من القواميس حيث يمثل كل قاموس رسالة في محادثة. يجب أن يحتوي كل قاموس على مفتاحين: 'role' و 'content'. يجب أن يكون 'role' واحداً من 'user' أو 'system' أو 'assistant'. يجب أن يكون 'content' قائمة من القواميس تحتوي على نص الرسالة ونوع الرسالة.

images (`str`، `list[str]`، `ImageInput`) : يتعامل خط المعالجة مع ثلاثة أنواع من الصور:  - نص يحتوي على رابط HTTP(s) يشير إلى صورة - نص يحتوي على مسار محلي لصورة - صورة محمّلة مباشرةً في PIL  يقبل خط المعالجة صورة واحدة أو دفعة من الصور. أخيرًا، يدعم هذا الخط أيضًا صيغة المحادثة (انظر `text`) التي تحتوي على صور ونصوص في هذا الحقل.

videos (`str`، `list[str]`، `VideoInput`) : يتعامل خط المعالجة مع ثلاثة أنواع من مقاطع الفيديو:  - نص يحتوي على رابط HTTP(s) يشير إلى مقطع فيديو - نص يحتوي على مسار محلي لمقطع فيديو - مقطع فيديو تم تحميله وفك ترميزه إلى صيغة مصفوفة  يقبل خط المعالجة مقطع فيديو واحدًا أو دفعة من مقاطع الفيديو. أخيرًا، يدعم هذا الخط أيضًا صيغة المحادثة (انظر `text`) التي تحتوي على مقاطع فيديو ونصوص في هذا الحقل.

audio (`str`، `list[str]`، `AudioInput`) : يتعامل خط المعالجة مع ثلاثة أنواع من الملفات الصوتية:
- نص يحتوي على رابط HTTP(s) يشير إلى ملف صوتي
- نص يحتوي على مسار محلي لملف صوتي
- ملف صوتي محمّل مباشرةً في PIL
يقبل خط المعالجة ملفًا صوتيًا واحدًا أو دفعة من الملفات الصوتية. أخيرًا، يدعم هذا الخط أيضًا صيغة المحادثة (انظر `text`) التي تحتوي على ملفات صوتية ونصوص في هذا الحقل.

return_tensors (`bool`، *اختياري*، القيمة الافتراضية `False`) : تُرجع تينسورات التنبؤات (بصفتها فهارس الرموز) في المخرجات. إذا تم ضبطها على `True`، فلن يُعاد النص المُفكَّك.

return_text (`bool`، *اختياري*) : تُرجع النصوص المُفكَّكة في المخرجات.

return_full_text (`bool`، *اختياري*، القيمة الافتراضية `True`) : إذا تم ضبطه على `False` يُعاد النص المضاف فقط، وإلا يُعاد النص الكامل. لا يمكن تحديده في الوقت نفسه مع `return_text`.

clean_up_tokenization_spaces (`bool`، *اختياري*) : ما إذا كان سيتم تنظيف المساحات الإضافية المحتملة في نص المخرجات. القيمة الافتراضية هي إعداد `clean_up_tokenization_spaces` الخاص بمجزّئ الرموز.

continue_final_message( `bool`, *اختياري*) : يشير هذا إلى أنك تريد من النموذج أن يستمر في الرسالة الأخيرة في محادثة الإدخال بدلاً من بدء رسالة جديدة، مما يتيح لك "تعبئة مسبقة" لاستجابته. افتراضياً، تكون هذه القيمة `True` عندما تكون الرسالة الأخيرة في محادثة الإدخال بدور `assistant`، و`False` في الحالات الأخرى، لكن يمكنك تجاوز هذا السلوك يدوياً عن طريق تعيين هذا العلم.

**يعيد:** قائمة أو قائمة من قوائم من `dict`

تأتي كل نتيجة على شكل قاموس يحتوي على المفتاح التالي (لا يمكن إرجاع مجموعة من `generated_text` و`generated_token_ids` معًا):

- **generated_text** (`str`، موجود عندما يكون `return_text=True` و`generation_mode="text"`) -- النص المولّد.
- **generated_audio** (`np.ndarray`، موجود عندما يكون `generation_mode="audio"`) -- الصوت المُولَّد.
- **generated_image** (`PIL.Image.Image`، موجود عندما يكون `generation_mode="image"`) -- الصورة المولّدة.
- **generated_token_ids** (`torch.Tensor`، يظهر عندما تكون `return_tensors=True` و`generation_mode="text"`) -- معرّفات الرموز النصية المولّدة.
- **input_text** (`str`) -- النص المُدخل.

توليد نص بناءً على نص مُدخل، مع إمكانية تمرير بيانات متعددة الوسائط كمدخلات اختيارية.

### MaskGenerationPipeline[[transformers.MaskGenerationPipeline]]

#### transformers.MaskGenerationPipeline[[transformers.MaskGenerationPipeline]]

```python
transformers.MaskGenerationPipeline(**kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/mask_generation.py#L36)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

image_processor ([BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor)) : مُعالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من [BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor).

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

points_per_batch (*اختياري*، int، القيمة الافتراضية 64) : يحدد عدد النقاط التي تُنفَّذ في وقت واحد بواسطة النموذج. قد تكون الأعداد الأعلى أسرع لكنها تستهلك ذاكرة GPU أكبر.

output_bboxes_mask (`bool`، *اختياري*، الافتراضي `False`) : ما إذا كان سيتم إخراج تنبؤات صندوق الحدود أم لا.

output_rle_masks (`bool`، *اختياري*، الافتراضي `False`) : ما إذا كان يجب إخراج الأقنعة بصيغة `RLE` أم لا

توليد الأقنعة تلقائيًا للصور باستخدام `SamForMaskGeneration`. تتنبأ هذه القناة بأنماط ثنائية (binary masks) لصورة معينة، بناءً على الصورة المُدخلة. وهي قناة من نوع `ChunkPipeline` لأنك يمكنك فصل النقاط في دفعة مصغّرة (mini-batch) لتجنب مشاكل نفاد الذاكرة (OOM). استخدم الحجة `points_per_batch` للتحكم في عدد النقاط التي سيتم معالجتها في الوقت نفسه. القيمة الافتراضية هي `64`.

يعمل خط الأنابيب في ثلاث خطوات:
1. `preprocess`: يتم توليد شبكة من 1024 نقطة متباعدة بالتساوي، إلى جانب صناديق الإحاطة وتسميات النقاط. لمزيد من التفاصيل حول كيفية إنشاء النقاط وصناديق الإحاطة، راجع دالة `_generate_crop_boxes`. كما يتم معالجة الصورة مسبقًا باستخدام `image_processor`. تُنتج هذه الدالة `yields` دفعة فرعية من `points_per_batch`.

2. `forward`: يُدخل مخرجات `preprocess` إلى النموذج. يتم حساب تضمين الصورة مرة واحدة فقط. يستدعي كلًا من `self.model.get_image_embeddings` ويتأكد من عدم حساب التدرجات، وأن الموترات والنماذج موجودة على نفس الجهاز.

3. `postprocess`: يحدث هنا الجزء الأهم من توليد الأقنعة تلقائيًا. يتم تنفيذ ثلاث خطوات:
   - image_processor.postprocess_masks (يُنفَّذ في كل تكرار من حلقة الدفعة الفرعية): يستقبل الأقنعة الخام، ويُعيد تحجيمها وفقاً لحجم الصورة، ثم يحوّلها إلى أقنعة ثنائية.
   - image_processor.filter_masks (في كل تكرار من حلقة الدفعة الفرعية): يستخدم كلًا من `pred_iou_thresh` و`stability_scores`. كما يطبّق مجموعة متنوعة من عوامل التصفية بناءً على كبح العظمى غير القصوى لإزالة الأقنعة الرديئة.
   - يطبّق image_processor.postprocess_masks_for_amg خوارزمية NSM على القناع للاحتفاظ بالأقنعة ذات الصلة فقط.

مثال:

```python
>>> from transformers import pipeline

>>> generator = pipeline(model="facebook/sam-vit-base", task="mask-generation")
>>> outputs = generator(
...     "http://images.cocodataset.org/val2017/000000039769.jpg",
... )

>>> outputs = generator(
...     "https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png", points_per_batch=128
... )
```

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في [دليل خط الأنابيب](../pipeline_tutorial)

يمكن حالياً تحميل خط أنابيب التقطيع هذا من [pipeline()](/docs/transformers/main/ar/main_classes/pipelines#transformers.pipeline) باستخدام معرّف المهمة التالي: `"mask-generation"`.

اطّلع على قائمة النماذج المتاحة على [huggingface.co/models](https://huggingface.co/models?filter=mask-generation).

#### __call__[[transformers.MaskGenerationPipeline.__call__]]

```python
__call__(image: typing.Union[str, ForwardRef('Image.Image'), list[str], list['Image.Image']], *args: Any, **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/mask_generation.py#L143)

**المعاملات:**

image (`str` أو `List[str]` أو `PIL.Image` أو `List[PIL.Image]`) : صورة أو قائمة من الصور.

mask_threshold (`float`، *اختياري*، القيمة الافتراضية 0.0) : العتبة المستخدمة عند تحويل الأقنعة المتوقعة إلى قيم ثنائية.

pred_iou_thresh (`float`، *اختياري*، القيمة الافتراضية 0.88) : عتبة تصفية في `[0,1]` تُطبَّق على جودة القناع المتوقعة من النموذج.

stability_score_thresh (`float`، *اختياري*، القيمة الافتراضية 0.95) : عتبة تصفية في `[0,1]`، تعتمد على استقرار القناع (mask) عند إجراء تغييرات على العتبة المستخدمة لتحويل تنبؤات القناع من النموذج إلى قيم ثنائية.

stability_score_offset (`int`، *اختياري*، القيمة الافتراضية 1) : مقدار إزاحة حدّ القطع عند حساب درجة الاستقرار.

crops_nms_thresh (`float`، *اختياري*، القيمة الافتراضية 0.7) : حدّ تقاطع الصندوق (IoU) المستخدم في كبت غير الأقصى (non-maximal suppression) لتصفية الأقنعة المكررة.

crops_n_layers (`int`، *اختياري*، القيمة الافتراضية 0) : إذا كان `crops_n_layers>0`، فسيتم تشغيل التنبؤ بالقناع مرة أخرى على مقاطع من الصورة. يحدد عدد الطبقات التي سيتم تشغيلها، حيث تحتوي كل طبقة على عدد 2**i_layer من مقاطع الصورة.

crop_overlap_ratio (`float`، *اختياري*، القيمة الافتراضية `512 / 1500`) : يحدد درجة تداخل المحاصيل. في طبقة المحاصيل الأولى، ستتداخل المحاصيل بنسبة هذه الكسر من طول الصورة. وتقلل الطبقات اللاحقة التي تحتوي على عدد أكبر من المحاصيل من هذا التداخل.

crop_n_points_downscale_factor (`int`، *اختياري*، القيمة الافتراضية `1`) : يتم تصغير عدد النقاط لكل جانب المُستخرجة في الطبقة n بمعامل crop_n_points_downscale_factor**n.

timeout (`float`، *اختياري*، القيمة الافتراضية هي None) : الحد الأقصى للوقت بالثواني للانتظار حتى يتم جلب الصور من الويب. إذا كانت القيمة None، فلا يُضبط مهلة زمنية وقد يستمر الاستدعاء في الانتظار إلى الأبد.

**يعيد:** `Dict`

قاموس بالمفاتيح التالية:
- **قناع** (`PIL.Image`) -- قناع ثنائي للكائن المكتشف على شكل صورة PIL بأبعاد `(width, height)` من الصورة الأصلية. يُرجع قناعاً مملوءاً بالأصفار إذا لم يُعثر على أي كائن.
- **score** (*اختياري* `float`) -- اختياريًا، عندما يكون النموذج قادرًا على تقدير درجة الثقة في "الكائن" الذي يصفه التسمية والقناع.

يولّد أقنعة تجزئة ثنائية

## الفئة الأصلية: `Pipeline`[[transformers.Pipeline]]

#### transformers.Pipeline[[transformers.Pipeline]]

```python
transformers.Pipeline(model: PreTrainedModel, tokenizer: PreTrainedTokenizer | None = None, feature_extractor: PreTrainedFeatureExtractor | None = None, image_processor: BaseImageProcessor | None = None, video_processor: BaseVideoProcessor | None = None, processor: ProcessorMixin | None = None, task: str = '', device: int | torch.device | None = None, binary_output: bool = False, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/base.py#L763)

**المعاملات:**

model ([PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel)) : النموذج الذي ستستخدمه خط الأنابيب لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel).

tokenizer ([PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend)) : المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من [PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend).

feature_extractor ([SequenceFeatureExtractor](/docs/transformers/main/ar/main_classes/feature_extractor#transformers.SequenceFeatureExtractor)) : مستخرج الميزات الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من [SequenceFeatureExtractor](/docs/transformers/main/ar/main_classes/feature_extractor#transformers.SequenceFeatureExtractor).

image_processor ([BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor)) : مُعالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من [BaseImageProcessor](/docs/transformers/main/ar/main_classes/image_processor#transformers.BaseImageProcessor).

processor ([ProcessorMixin](/docs/transformers/main/ar/main_classes/processors#transformers.ProcessorMixin)) : المعالج الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من [ProcessorMixin](/docs/transformers/main/ar/main_classes/processors#transformers.ProcessorMixin). المعالج هو كائن مركّب قد يحتوي على `tokenizer`، و`feature_extractor`، و`image_processor`.

task (`str`، القيمة الافتراضية هي `""`) : معرّف للمهمة الخاص بالخط الأنابيب.

num_workers (`int`، *اختياري*، القيمة الافتراضية 8) : عندما سيقوم خط المعالجة باستخدام *DataLoader* (عند تمرير مجموعة بيانات، على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : عندما سيقوم خط الأنابيب باستخدام *DataLoader* (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، حجم الدفعة (batch) التي سيتم استخدامها. في حالة الاستدلال، قد لا يكون هذا مفيدًا دائمًا، يرجى قراءة [التدفع (Batching) مع خطوط الأنابيب](https://huggingface.co/transformers/main_classes/pipelines.html#pipeline-batching) .

args_parser ([ArgumentHandler](/docs/transformers/main/ar/internal/pipelines_utils#transformers.pipelines.ArgumentHandler)، *اختياري*) : مرجع إلى الكائن المسؤول عن تحليل معلمات خط الأنابيب المُقدَّمة.

device (`int` أو `str` أو `torch.device`، *اختياري*) : الجهاز الذي يُخصَّص عليه خط المعالجة. عند تركه دون تعيين، يُوضع خط المعالجة على أول مُسرِّع متاح (CUDA، MPS، XPU، ...) ولا يُرجع إلى وحدة المعالجة المركزية (CPU) إلا إذا لم يتوفر أي مُسرِّع؛ حيث يُنقل النموذج إلى هناك تلقائيًا. مرِّر `device="cpu"` (أو `-1`) لفرض استخدام وحدة المعالجة المركزية، أو رقمًا تسلسليًا موجبًا أو `"cuda:1"` لاختيار مُسرِّع محدد، أو `torch.device`/`str` أصليًا. لا يمكن دمج هذا الحجة مع نموذج تم تحميله مسبقًا عبر `accelerate` (أي نموذج يحتوي على `hf_device_map`).

dtype (`str` أو `torch.dtype`، *اختياري*، القيمة الافتراضية `"auto"`) : الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى `from_pretrained`. القيمة الافتراضية هي `"auto"`، والتي تُحمِّل النموذج بنوع البيانات (dtype) الذي حُفظ به (يُقرأ من `config.dtype` في نقطة التفتيش، وإلا يُستنتج من الأوزان). مرِّر قيمة صريحة مثل `torch.float16` أو `torch.bfloat16` أو `torch.float32`، ... لتجاوزها.

binary_output (`bool`، *اختياري*، القيمة الافتراضية `False`) : علم يحدد ما إذا كان يجب أن يكون مخرج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات مخرجات خام، مثل النص.

تُعد فئة Pipeline الفئة التي ترث منها جميع خطوط الأنابيب. راجع هذه الفئة لمعرفة الطرق المشتركة بين خطوط الأنابيب المختلفة.

الفئة الأساسية التي تنفّذ العمليات المُسارّة. يُعرَّف سير عمل خطّ الأنابيب على أنه تسلسل من العمليات التالية:

المدخلات -> الترميز -> استنتاج النموذج -> المعالجة اللاحقة (تعتمد على المهمة) -> المخرجات

يدعم Pipeline التشغيل على وحدة المعالجة المركزية (CPU) أو وحدة معالجة الرسوميات (GPU) من خلال معامل device (انظر أدناه).

تُخرج بعض الأنابيب، مثل [FeatureExtractionPipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.FeatureExtractionPipeline) (`'feature-extraction'`)، كائنات تينسور كبيرة على شكل قوائم متداخلة. ولتفادي إخراج هذه البنية الكبيرة كبيانات نصية، نوفر معامل الإنشاء `binary_output`. إذا تم ضبطه على `True`، فسيتم تخزين المخرجات بتنسيق pickle.

#### check_model_type[[transformers.Pipeline.check_model_type]]

```python
check_model_type(supported_models: list[str] | dict)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/base.py#L1126)

**المعاملات:**

supported_models (`list[str]` أو `dict`) : قائمة النماذج المدعومة بواسطة خط الأنابيب، أو قاموس بقيم فئات النماذج.

تحقق مما إذا كانت فئة النموذج مدعومة في خط المعالجة.

#### device_placement[[transformers.Pipeline.device_placement]]

```python
device_placement()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/base.py#L1012)

**يعيد:**

مدير السياق

مدير سياق يتيح تخصيص المصفوفات على الجهاز الذي يحدده المستخدم.

أمثلة:

```python
# Explicitly ask for tensor allocation on CUDA device :0
pipe = pipeline(..., device=0)
with pipe.device_placement():
    # Every tensor allocation will be done on the request device
    output = pipe(...)
```

#### ensure_tensor_on_device[[transformers.Pipeline.ensure_tensor_on_device]]

```python
ensure_tensor_on_device(**inputs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/base.py#L1094)

**المعاملات:**

inputs (حجج الكلمات المفتاحية التي يجب أن تكون من نوع `torch.Tensor`، ويتم تجاهل الباقي) : المصفوفات التي يجب وضعها على `self.device`.

تكراري على القوائم **فقط**. --

**يعيد:** `dict[str, torch.Tensor]`

نفس `inputs` ولكن على الجهاز المناسب.

تأكد من أن متجهات PyTorch موجودة على الجهاز المحدد.

#### postprocess[[transformers.Pipeline.postprocess]]

```python
postprocess(model_outputs: ModelOutput, **postprocess_parameters: dict)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/base.py#L1193)

Postprocess will receive the raw outputs of the `_forward` method, generally tensors, and reformat them into something more friendly. Generally it will output a list or a dict or results (containing just strings and numbers).

#### predict[[transformers.Pipeline.predict]]

```python
predict(X)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/base.py#L991)

واجهة Scikit / Keras لخطوط أنابيب transformers. ستحوّل هذه الطريقة إلى __call__().

#### preprocess[[transformers.Pipeline.preprocess]]

```python
preprocess(input_: Any, **preprocess_parameters: dict)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/base.py#L1172)

يستقبل `input_` الخاص بخط أنابيب محدد ويعيد قاموسًا يحتوي على كل ما هو ضروري لتشغيل `_forward` بشكل صحيح. يجب أن يحتوي على متجه واحد على الأقل، لكنه قد يتضمن عناصر أخرى غير محددة.

#### push_to_hub[[transformers.Pipeline.push_to_hub]]

```python
push_to_hub(repo_id: str, commit_message: str | None = None, commit_description: str | None = None, private: bool | None = None, token: bool | str | None = None, revision: str | None = None, create_pr: bool = False, max_shard_size: int | str | None = '50GB', tags: list[str] | None = None)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/hub.py#L822)

**المعاملات:**

repo_id (`str`) : اسم المستودع الذي تريد دفع خط أنابيبك إليه. يجب أن يحتوي على اسم مؤسستك عند الدفع إلى مؤسسة محددة.

commit_message (`str`، *اختياري*) : الرسالة التي سيتم الالتزام بها أثناء الدفع. ستكون الافتراضية `"Upload pipe"`.

commit_description (`str`، *اختياري*) : وصف الالتزام الذي سيتم إنشاؤه

private (`bool`، *اختياري*) : ما إذا كان سيتم جعل المستودع خاصًا. إذا كانت القيمة `None` (الافتراضي)، فسيكون المستودع عامًا ما لم يكن الافتراضي الخاص بالمنظمة هو الخاص. يتم تجاهل هذه القيمة إذا كان المستودع موجودًا مسبقًا.

token (`bool` أو `str`، *اختياري*) : الرمز الذي يُستخدم كترخيص HTTP bearer للملفات البعيدة. إذا كان `True` (الافتراضي)، فسيتم استخدام الرمز الذي تم إنشاؤه عند تشغيل `hf auth login` (المخزّن في `~/.huggingface`).

revision (`str`، *اختياري*) : الفرع الذي سيتم دفع الملفات المرفوعة إليه.

create_pr (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم إنشاء طلب دمج (PR) مع الملفات المرفوعة أم الالتزام مباشرة.

max_shard_size (`int` أو `str`، *اختياري*، القيمة الافتراضية `"50GB"`) : ينطبق على النماذج فقط. الحد الأقصى لحجم نقطة التفتيش قبل تقسيمها إلى أجزاء. ستكون نقاط التفتيش المقسمة بعد ذلك أصغر من هذا الحجم. إذا تم التعبير عنها كنص، فيجب أن تتكون من أرقام تليها وحدة (مثل `"5MB"`).

tags (`list[str]`، *اختياري*) : قائمة بالوسوم التي سيتم دفعها إلى Hub.

ارفع ملف خط المعالجة إلى 🤗 Model Hub.

أمثلة:

```python
from transformers import pipeline

pipe = pipeline("google-bert/bert-base-cased")

# Push the pipe to your namespace with the name "my-finetuned-bert".
pipe.push_to_hub("my-finetuned-bert")

# Push the pipe to an organization with the name "my-finetuned-bert".
pipe.push_to_hub("huggingface/my-finetuned-bert")
```

#### save_pretrained[[transformers.Pipeline.save_pretrained]]

```python
save_pretrained(save_directory: str | os.PathLike, **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/base.py#L939)

**المعاملات:**

save_directory (`str` أو `os.PathLike`) : مسار إلى المجلد الذي سيتم فيه الحفظ. سيتم إنشاؤه إذا لم يكن موجودًا.

kwargs (`dict[str, Any]`، *اختياري*) : حُجج إضافية تُمرَّر إلى طريقة [push_to_hub()](/docs/transformers/main/ar/main_classes/model#transformers.utils.PushToHubMixin.push_to_hub).

احفظ نموذج خط المعالجة ومُجزّئ الرموز الخاص به.

#### transform[[transformers.Pipeline.transform]]

```python
transform(X)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/base.py#L985)

واجهة Scikit / Keras لخطوط أنابيب transformers. ستحوّل هذه الطريقة إلى __call__().

