Transformers documentation

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

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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

تُعدّ خطوط الأنابيب طريقة رائعة وسهلة لاستخدام النماذج في الاستدلال. هذه الخطوط هي كائنات تُجسّد معظم الأكواد المعقدة في المكتبة، وتوفر واجهة برمجة تطبيقات بسيطة مخصصة لمهام متعددة، بما في ذلك تسمية الكيانات، ونمذجة اللغة المقنّعة، وتحليل المشاعر، واستخراج الميزات، والإجابة على الأسئلة. راجع قائمة المهام للحصول على أمثلة على الاستخدام.

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

تجريد خط المعالجة

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

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

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

إذا كنت ترغب في استخدام نموذج محدد من المستودع، يمكنك تجاهل المهمة إذا كان النموذج الموجود في المستودع يحددها مسبقًا:

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

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

>>> 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). وإذا لم يكن الأمر كذلك، فلا تتردد في فتح مشكلة.

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": ....}
    # ....

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

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

< >

( task: str | None = Nonemodel: str | PreTrainedModel | None = Noneconfig: str | PreTrainedConfig | None = Nonetokenizer: str | PreTrainedTokenizer | PreTrainedTokenizerFast | None = Nonefeature_extractor: str | FeatureExtractionMixin | None = Noneimage_processor: str | BaseImageProcessor | None = Nonevideo_processor: str | BaseVideoProcessor | None = Noneprocessor: str | ProcessorMixin | None = Nonerevision: str | None = Noneuse_fast: bool = Truetoken: str | bool | None = Nonedevice: int | str | torch.device | None = Nonedevice_map: str | dict[str, int | str] | None = Nonedtype: str | torch.dtype | None = 'auto'trust_remote_code: bool | None = Nonemodel_kwargs: dict[str, Any] | None = Nonepipeline_class: Any | None = None**kwargs: Any ) → Pipeline

المعاملات

  • task (str) — المهمة التي تحدد خط المعالجة (pipeline) الذي سيتم إرجاعه. المهام المقبولة حاليًا هي:
  • model (str أو PreTrainedModel, اختياري) — النموذج الذي ستستخدمه خط المعالجة (pipeline) لإجراء التنبؤات. يمكن أن يكون معرّف نموذج أو نسخة فعلية من نموذج مُدرَّب مسبقًا يرث من PreTrainedModel.

    إذا لم يُقدَّم، فسيتم تحميل الافتراضي الخاص بـ task.

  • config (str أو PreTrainedConfig, اختياري) — التكوين الذي ستستخدمه خط المعالجة (pipeline) لتوليد نموذج. يمكن أن يكون معرّف نموذج أو تكوين نموذج مُدرَّب مسبقًا يرث من PreTrainedConfig.

    إذا لم يُقدَّم، فسيتم استخدام ملف الإعدادات الافتراضي للنموذج المطلوب. وهذا يعني أنه إذا تم تقديم model، فسيتم استخدام إعداداته الافتراضية. ومع ذلك، إذا لم يُقدَّم model، فسيتم استخدام إعدادات النموذج الافتراضي الخاص بالمهمة task بدلاً من ذلك.

  • tokenizer (str أو PreTrainedTokenizer, اختياري) — المُجزِّئ الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يمكن أن يكون معرّف نموذج أو مُجزِّئ مُدرَّب مسبقًا يرث من PreTrainedTokenizer.

    إذا لم يُقدَّم، سيتم تحميل مُجزِّئ الرموز الافتراضي للنموذج المُعطى model (إذا كان نصاً). إذا لم يُحدَّد model أو لم يكن نصاً، فسيتم تحميل مُجزِّئ الرموز الافتراضي لـconfig (إذا كان نصاً). ومع ذلك، إذا لم يُعطَ config أيضاً أو لم يكن نصاً، فسيتم تحميل مُجزِّئ الرموز الافتراضي للمهمة المُعطاة task.

  • feature_extractor (str أو FeatureExtractionMixin, اختياري) — مستخرج الميزات الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يمكن أن يكون هذا معرّف نموذج أو مستخرج ميزات مُدرَّب مسبقًا يرث من FeatureExtractionMixin.

    تُستخدم مستخرِجات الميزات (Feature extractors) للنماذج غير المتعلقة بمعالجة اللغة الطبيعية، مثل نماذج الكلام أو الرؤية، وكذلك النماذج متعددة الوسائط. كما تتطلب النماذج متعددة الوسائط تمرير مُجزِّئ (tokenizer) أيضاً.

    إذا لم يُقدَّم، فسيتم تحميل مستخرج الميزات الافتراضي للنموذج المُعطى model (إذا كان نصاً). وإذا لم يُحدَّد model أو لم يكن نصاً، فسيتم تحميل مستخرج الميزات الافتراضي لـconfig (إذا كان نصاً). ومع ذلك، إذا لم يُعطَ config أيضاً أو لم يكن نصاً، فسيتم تحميل مستخرج الميزات الافتراضي للمهمة المُعطاة task.

  • image_processor (str أو BaseImageProcessor, اختياري) — معالج الصور الذي ستستخدمه خط المعالجة (pipeline) لمعالجة الصور مسبقًا للنموذج. يمكن أن يكون هذا معرّف نموذج أو معالج صور فعلي يرث من BaseImageProcessor.

    تُستخدم معالجات الصور لنماذج الرؤية والنماذج متعددة الوسائط التي تتطلب مدخلات على شكل صور. كما تتطلب النماذج متعددة الوسائط تمرير مُجزِّئ (tokenizer) أيضاً.

    إذا لم يُقدَّم، سيتم تحميل مُعالج الصور الافتراضي الخاص بـmodel المُعطى (إذا كان نصًا). إذا لم يُحدَّد model أو لم يكن نصًا، فسيتم تحميل مُعالج الصور الافتراضي الخاص بـconfig (إذا كان نصًا).

  • processor (str أو ProcessorMixin, اختياري) — المعالج الذي ستستخدمه خط المعالجة (pipeline) لمعالجة البيانات مسبقًا للنموذج. يمكن أن يكون هذا معرّف نموذج أو معالج فعلي يرث من ProcessorMixin.

    تُستخدم المعالجات (Processors) للنماذج متعددة الوسائط التي تتطلب مدخلات متعددة الوسائط، على سبيل المثال، نموذج يتطلب مدخلات نصية وصورًا معًا.

    إذا لم يُقدَّم، سيتم تحميل المعالج الافتراضي الخاص بـmodel المحدد (إذا كان نصاً). وإذا لم يُحدد model أو لم يكن نصاً، فسيتم تحميل المعالج الافتراضي الخاص بـconfig (إذا كان نصاً).

  • revision (str، اختياري، القيمة الافتراضية "main") — عند تمرير اسم مهمة أو معرّف نموذج نصي: الإصدار المحدد من النموذج الذي سيتم استخدامه. يمكن أن يكون اسم فرع، أو اسم وسم، أو معرف التزامن (commit id)، حيث نستخدم نظامًا قائمًا على git لتخزين النماذج والمواد الأخرى على huggingface.co، لذا يمكن أن يكون revision أي معرّف يسمح به git.
  • use_fast (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم استخدام مُجزِّئ سريع (Fast tokenizer) إن أمكن (أي PreTrainedTokenizerFast).
  • 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 or dict[str, Union[int, str, torch.device], optional) — Sent directly as model_kwargs (just a simpler shortcut). When accelerate library is present, set device_map="auto" to compute the most optimized device_map automatically (see here for more information).

    لا تستخدم device_map وdevice في الوقت نفسه، لأنهما سيتعارضان.

  • dtype (str أو torch.dtype، اختياري، القيمة الافتراضية "auto") — الدقة التي يُحمَّل بها النموذج، وتُمرَّر إلى from_pretrained. القيمة الافتراضية هي "auto"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها. مرِّر قيمة صريحة مثل 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.

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

  • مكوّن واحد أو أكثر لمعالجة مدخلات النموذج مسبقًا، مثل tokenizer أو image_processor أو feature_extractor أو processor.
  • نموذج يولّد تنبؤات من المدخلات.
  • خطوات ما بعد المعالجة الاختيارية لتحسين مخرجات النموذج، والتي يمكن أيضًا التعامل معها بواسطة المعالجات.
While there are such optional arguments as `tokenizer`, `feature_extractor`, `image_processor`, and `processor`, they shouldn't be specified all at once. If these components are not provided, `pipeline` will try to load required ones automatically. In case you want to provide these components explicitly, please refer to a specific pipeline in order to get more details regarding what components are required.

أمثلة:

>>> 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)

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

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

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 أضعاف، وذلك تبعاً للأجهزة والبيانات والنموذج الفعلي المستخدم.

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

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
# 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)

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

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]، مما يؤدي إلى تباطؤ كبير. والأسوأ من ذلك، عند استخدام دفعات أكبر، ينهار البرنامج ببساطة.

------------------------------
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 العادي. باختصار:

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

أصبح الآن:

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 حالة الاستخدام الخاصة بك.

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

  • أنشئ فئة فرعية من خط المعالجة الذي تختاره
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)

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

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

تنفيذ خط أنابيب جديد

الصوت

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

AudioClassificationPipeline

فئة transformers.AudioClassificationPipeline

< >

( *args**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • feature_extractor (SequenceFeatureExtractor) — مستخرج الميزات الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من SequenceFeatureExtractor.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.

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

مثال:

>>> 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() باستخدام معرّف المهمة التالي: "audio-classification".

اطّلع على قائمة النماذج المتاحة على huggingface.co/models.

__call__

< >

( inputs: numpy.ndarray | bytes | str | dict**kwargs: Any ) → A list of dict with the following keys

المعاملات

  • 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 لمزيد من المعلومات.

AutomaticSpeechRecognitionPipeline

فئة transformers.AutomaticSpeechRecognitionPipeline

< >

( model: PreTrainedModelfeature_extractor: typing.Union[ForwardRef('SequenceFeatureExtractor'), str, NoneType] = Nonetokenizer: transformers.tokenization_python.PythonBackend | None = Nonedecoder: typing.Union[ForwardRef('BeamSearchDecoderCTC'), str, NoneType] = Nonedevice: typing.Union[int, ForwardRef('torch.device'), NoneType] = None**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • feature_extractor (SequenceFeatureExtractor، اختياري) — مستخرج الميزات الذي ستستخدمه خط المعالجة لتشفير الموجة الصوتية للنموذج.
  • tokenizer (PreTrainedTokenizer، اختياري) — المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من PreTrainedTokenizer.
  • decoder (pyctcdecode.BeamSearchDecoderCTC، اختياري) — يمكن تمرير BeamSearchDecoderCTC الخاص بـ PyCTCDecode للحصول على فك تشفير معزّز بنموذج لغوي. راجع Wav2Vec2ProcessorWithLM لمزيد من المعلومات.
  • device (Union[int, torch.device], اختياري) — ترتيب الجهاز لدعم المعالجات المركزية/الرسوميات. عند تعيينه إلى None سيتم استخدام المعالج المركزي، بينما سيؤدي تعيينه إلى قيمة موجبة إلى تشغيل النموذج على معالج CUDA المرتبط بهذا المعرّف.

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

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

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

  • max_new_tokens: 256
  • num_beams: 5

مثال:

>>> 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.'}

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في دليل خط الأنابيب

__call__

< >

( inputs: numpy.ndarray | bytes | str | dict**kwargs: Any ) → Dict

المعاملات

  • 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": مماثل لما سبق في حالة طوابع الوقت على مستوى الكلمة. تُتنبأ بطوابع الوقت على مستوى الكلمة عبر خوارزمية الانحراف الزمني الديناميكي (DTW)، وهي تقريب لطوابع الوقت على مستوى الكلمة من خلال فحص أوزان الانتباه المتقاطع.
    • True: سيعيد خط المعالجة الطوابع الزمنية إلى جانب النص لـالمقاطع من الكلمات في النص. فعلى سبيل المثال، إذا حصلت على [{"text": " Hi there!", "timestamp": (0.5, 1.5)}]، فهذا يعني أن النموذج يتنبأ بأن المقطع "Hi there!" تم نطقه بعد 0.5 وقبل 1.5 ثانية. يرجى ملاحظة أن مقطع النص يشير إلى تسلسل من كلمة واحدة أو أكثر، وليس إلى كلمات فردية كما هو الحال مع الطوابع الزمنية على مستوى الكلمة.
  • generate_kwargs (dict, اختياري) — قائمة المعلمات المؤقتة (ad-hoc) الخاصة بـ generate_config التي تُستخدم في استدعاء التوليد. للحصول على نظرة شاملة على generate، راجع الدليل التالي.

يعيد

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 لمزيد من المعلومات.

TextToAudioPipeline

فئة transformers.TextToAudioPipeline

< >

( *argsvocoder = Nonesampling_rate = Nonenoise_scheduler = None**kwargs )

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

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

  • max_new_tokens: 256

مثال:

>>> 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"]

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في دليل خط الأنابيب

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

مثال:

>>> 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() باستخدام معرّفات المهام التالية: "text-to-speech" أو "text-to-audio".

اطّلع على قائمة النماذج المتاحة على huggingface.co/models.

__call__

< >

( text_inputs**forward_params ) → AudioOutput or a list of AudioOutput, which is a TypedDict with two keys

المعاملات

  • text_inputs (str، list[str]، ChatType، أو list[ChatType]) — نص واحد أو عدة نصوص لتوليدها. إذا تم تمرير نصوص أو قائمة من النصوص، فسيولّد هذا الخط الأنابيب النص المقابل. وبديلًا عن ذلك، يمكن تمرير «محادثة» على شكل قائمة من القواميس التي تحتوي على مفاتيح «role» و«content»، أو قائمة من مثل هذه المحادثات. عند تمرير المحادثات، سيُستخدم قالب المحادثة الخاص بالنموذج لتنسيقها قبل تمريرها إلى النموذج.
  • forward_params (dict، اختياري) — المعاملات التي تُمرَّر إلى طريقة التوليد/التقديم (forward) للنموذج. تُمرَّر forward_params دائمًا إلى النموذج الأساسي.
  • generate_kwargs (dict, اختياري) — قائمة المعلمات المؤقتة (ad-hoc) الخاصة بـ generate_config التي تُستخدم في استدعاء التوليد. للحصول على نظرة شاملة على generate، راجع الدليل التالي. لا تُمرَّر generate_kwargs إلى النموذج الأساسي إلا إذا كان نموذجًا توليديًا، ولها الأولوية على forward_params.

يعيد

AudioOutput أو قائمة من AudioOutput، وهو TypedDict بمفتاحين

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

يولّد الكلام/الصوت من المدخلات. راجع توثيق TextToAudioPipeline لمزيد من المعلومات.

ZeroShotAudioClassificationPipeline

فئة transformers.ZeroShotAudioClassificationPipeline

< >

( **kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • tokenizer (PreTrainedTokenizer) — المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من PreTrainedTokenizer.
  • feature_extractor (SequenceFeatureExtractor) — مستخرج الميزات الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من SequenceFeatureExtractor.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.

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

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

مثال:

>>> 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() باستخدام معرّف المهمة التالي: "zero-shot-audio-classification". راجع قائمة النماذج المتاحة على huggingface.co/models.

__call__

< >

( audios: numpy.ndarray | bytes | str | dict**kwargs: Any )

المعاملات

  • 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 منسّقة مسبقًا.

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

رؤية الحاسوب

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

DepthEstimationPipeline

فئة transformers.DepthEstimationPipeline

< >

( *args**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • image_processor (BaseImageProcessor) — معالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من BaseImageProcessor.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.

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

مثال:

>>> 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() باستخدام معرّف المهمة التالي: "depth-estimation".

اطّلع على قائمة النماذج المتاحة على huggingface.co/models.

__call__

< >

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

المعاملات

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

    يقبل خط الأنابيب إما صورة واحدة أو دفعة من الصور، والتي يجب تمريرها بعد ذلك كسلسلة نصية. يجب أن تكون جميع الصور في الدفعة بنفس التنسيق: إما جميعها روابط http، أو جميعها مسارات محلية، أو جميعها صور PIL.

  • parameters (Dict, اختياري) — قاموس يربط بين أسماء المعاملات وقيمها، للتحكم في سلوك خط المعالجة. المعامل الوحيد المتاح حاليًا هو timeout، وهو المدة الزمنية، بالثواني، التي يجب أن ينتظرها خط المعالجة قبل التوقف عن محاولة تنزيل صورة.
  • timeout (float، اختياري، القيمة الافتراضية هي None) — الحد الأقصى للوقت بالثواني للانتظار حتى يتم جلب الصور من الويب. إذا كانت القيمة None، فلن يتم تعيين مهلة زمنية وقد تبقى الاستدعاءات معلقة إلى الأبد.

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

ImageClassificationPipeline

فئة transformers.ImageClassificationPipeline

< >

( *args**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • image_processor (BaseImageProcessor) — معالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من BaseImageProcessor.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.
  • function_to_apply (str, اختياري, القيمة الافتراضية هي "default") — الدالة التي تُطبَّق على مخرجات النموذج لاستخراج الدرجات. يقبل أربعة قيم مختلفة:
    • "default": إذا كان للنموذج تسمية واحدة، فسيُطبَّق دالة sigmoid على المخرجات. أما إذا كان للنموذج عدة تسميات، فسيُطبَّق دالة softmax على المخرجات.
    • "sigmoid": يطبّق دالة سيجمويد على المخرجات.
    • "softmax": يطبّق دالة softmax على المخرجات.
    • "none": لا يطبّق أي دالة على المخرجات.

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

مثال:

>>> 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() باستخدام معرّف المهمة التالي: "image-classification".

اطّلع على قائمة النماذج المتاحة على huggingface.co/models.

__call__

< >

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

المعاملات

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

    يقبل خط الأنابيب إما صورة واحدة أو دفعة من الصور، والتي يجب تمريرها بعد ذلك كسلسلة نصية. يجب أن تكون جميع الصور في الدفعة بنفس التنسيق: إما جميعها روابط http، أو جميعها مسارات محلية، أو جميعها صور PIL.

  • function_to_apply (str, اختياري, الافتراضي هو "default") — الدالة التي تُطبَّق على مخرجات النموذج لاستخراج الدرجات. يقبل أربعة قيم مختلفة:

    إذا لم يُحدد هذا الحُجّة، فسيُطبَّق الدوال التالية وفقاً لعدد التسميات:

    • إذا كان النموذج يحتوي على تسمية واحدة، فسيتم تطبيق دالة sigmoid على المخرجات.
    • إذا كان النموذج يحتوي على عدة تسميات، فسيتم تطبيق دالة softmax على المخرجات.

    القيم الممكنة هي:

    • "sigmoid": يطبّق دالة سيجمويد على المخرجات.
    • "softmax": يطبّق دالة softmax على المخرجات.
    • "none": لا يطبّق أي دالة على المخرجات.
  • top_k (int، اختياري، القيمة الافتراضية 5) — عدد التسميات العلوية التي ستُعاد بواسطة خط المعالجة. إذا كان العدد المُقدَّم أعلى من عدد التسميات المتاحة في إعدادات النموذج، فسيُعاد إلى عدد التسميات.
  • timeout (float، اختياري، القيمة الافتراضية هي None) — الحد الأقصى للوقت بالثواني للانتظار حتى يتم جلب الصور من الويب. إذا كانت القيمة None، فلن يتم تعيين مهلة زمنية وقد تبقى الاستدعاءات معلقة إلى الأبد.

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

ImageSegmentationPipeline

فئة transformers.ImageSegmentationPipeline

< >

( *args**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • image_processor (BaseImageProcessor) — معالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من BaseImageProcessor.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.

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

مثال:

>>> 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() باستخدام معرّف المهمة التالي: "image-segmentation".

اطّلع على قائمة النماذج المتاحة على huggingface.co/models.

__call__

< >

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

المعاملات

  • 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) — حد تداخل الأقنعة لإزالة المقاطع الصغيرة غير المتصلة.
  • timeout (float، اختياري، القيمة الافتراضية هي None) — الحد الأقصى للوقت بالثواني للانتظار حتى يتم جلب الصور من الويب. إذا كانت القيمة None، فلن يتم تعيين مهلة زمنية وقد تبقى الاستدعاءات معلقة إلى الأبد.

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

KeypointMatchingPipeline

فئة transformers.KeypointMatchingPipeline

< >

( *args**kwargs )

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

__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 ) → Union[list[Match], list[list[Match]]]

المعاملات

  • 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) The maximum time in seconds to wait for fetching images from the web. If None, no timeout is set and the call may block forever.

يعيد

Union[list[Match], list[list[Match]]]

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

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

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

ObjectDetectionPipeline

فئة transformers.ObjectDetectionPipeline

< >

( *args**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • image_processor (BaseImageProcessor) — معالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من BaseImageProcessor.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.

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

مثال:

>>> 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() باستخدام معرّف المهمة التالي: "object-detection".

اطّلع على قائمة النماذج المتاحة على huggingface.co/models.

__call__

< >

( *args**kwargs )

المعاملات

  • inputs (str, list[str], PIL.Image أو list[PIL.Image]) — تعامل خط المعالجة مع ثلاثة أنواع من الصور:
    • نص يحتوي على رابط HTTP(S) يشير إلى صورة
    • نص يحتوي على مسار محلي لصورة
    • صورة محمّلة مباشرةً في PIL

    يقبل خط الأنابيب إما صورة واحدة أو دفعة من الصور. يجب أن تكون جميع الصور في الدفعة بنفس الصيغة: إما جميعها روابط HTTP(S)، أو جميعها مسارات محلية، أو جميعها صور PIL.

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

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

VideoClassificationPipeline

فئة transformers.VideoClassificationPipeline

< >

( *args**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • image_processor (BaseImageProcessor) — معالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من BaseImageProcessor.
  • video_processor (BaseVideoProcessor) — معالج الفيديو الذي ستستخدمه خط المعالجة لتشفير بيانات الفيديو للنموذج. يرث هذا الكائن من BaseVideoProcessor.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.

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

يمكن حاليًا تحميل خط أنابيب تصنيف الفيديو هذا من pipeline() باستخدام معرّف المهمة التالي: "video-classification".

اطّلع على قائمة النماذج المتاحة على huggingface.co/models.

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

__call__

< >

( inputs: str | list[str] | None**kwargs )

المعاملات

  • 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” لتعطيل أي معالجة لاحقة.

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

ZeroShotImageClassificationPipeline

فئة transformers.ZeroShotImageClassificationPipeline

< >

( **kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • image_processor (BaseImageProcessor) — معالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من BaseImageProcessor.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.

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

مثال:

>>> 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() باستخدام معرّف المهمة التالي: "zero-shot-image-classification".

اطّلع على قائمة النماذج المتاحة على huggingface.co/models.

__call__

< >

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

المعاملات

  • 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، فلن يتم تعيين مهلة زمنية وقد تبقى الاستدعاءات معلقة إلى الأبد.

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

ZeroShotObjectDetectionPipeline

فئة transformers.ZeroShotObjectDetectionPipeline

< >

( **kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • image_processor (BaseImageProcessor) — معالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من BaseImageProcessor.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.

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

مثال:

>>> 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() باستخدام معرّف المهمة التالي: "zero-shot-object-detection".

اطّلع على قائمة النماذج المتاحة على huggingface.co/models.

__call__

< >

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

المعاملات

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

    يمكنك استخدام هذا المعامل لإرسال قائمة صور مباشرة، أو مجموعة بيانات أو مولّد على النحو التالي:

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

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

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

FillMaskPipeline

فئة transformers.FillMaskPipeline

< >

( model: PreTrainedModeltokenizer: PreTrainedTokenizer | None = Nonefeature_extractor: PreTrainedFeatureExtractor | None = Noneimage_processor: BaseImageProcessor | None = Nonevideo_processor: BaseVideoProcessor | None = Noneprocessor: ProcessorMixin | None = Nonetask: str = ''device: int | torch.device | None = Nonebinary_output: bool = False**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • tokenizer (PreTrainedTokenizer) — المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من PreTrainedTokenizer.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من 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__

< >

( inputs: str | list[str]**kwargs: Any ) → A list or a list of list of dict

المعاملات

  • inputs (str أو list[str]) — نص واحد أو عدة نصوص (أو قائمة واحدة من الأوامر) تحتوي على رموز مقنّعة.
  • targets (str أو list[str]، اختياري) — عند تمريره، سيحدّ النموذج النتائج إلى الأهداف المُمرَّرة بدلاً من البحث في كامل المفردات. إذا لم تكن الأهداف المُقدَّمة موجودة في مفردات النموذج، فسيتم تقسيمها إلى رموز وسيُستخدم أول رمز ناتج (مع تحذير، وقد يكون ذلك أبطأ).
  • top_k (int، اختياري) — عند تمريره، يتجاوز عدد التنبؤات المطلوب إرجاعه.

يعيد

قائمة أو قائمة قوائم من dict

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

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

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

TableQuestionAnsweringPipeline

فئة transformers.TableQuestionAnsweringPipeline

< >

( args_parser = <transformers.pipelines.table_question_answering.TableQuestionAnsweringArgumentHandler object at 0x7f94c6280090>**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • tokenizer (PreTrainedTokenizer) — المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من PreTrainedTokenizer.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.

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

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

  • max_new_tokens: 256

مثال:

>>> 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() باستخدام معرّف المهمة التالي: "table-question-answering".

النماذج التي يمكن لهذا الخط أن يستخدمها هي نماذج تم ضبطها على مهمة الإجابة عن الأسئلة في البيانات الجدولية. راجع قائمة النماذج المتاحة المحدّثة على huggingface.co/models.

__call__

< >

( *args**kwargs ) → A dictionary or a list of dictionaries containing results

المعاملات

  • table (pd.DataFrame أو Dict) — إطار بيانات Pandas أو قاموس سيتم تحويله إلى إطار بيانات يحتوي على جميع قيم الجدول. راجع أعلاه لمثال على القاموس.
  • query (str أو list[str]) — استعلام أو قائمة استعلامات تُرسل إلى النموذج إلى جانب الجدول.
  • sequential (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم تنفيذ الاستدلال بشكل تسلسلي أو على شكل دفعة. يكون تنفيذ الدفعات أسرع، لكن نماذج مثل SQA تتطلب تنفيذ الاستدلال بشكل تسلسلي لاستخراج العلاقات داخل التسلسلات، نظراً لطبيعتها الحوارية.
  • padding (bool, str أو 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' (الافتراضي): لا يوجد اقتطاع (أي، يمكن إخراج دفعة بأطوال تسلسلات أكبر من الحد الأقصى المقبول لحجم الإدخال في النموذج).

يعيد

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

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

  • 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) مبنيًا من ذلك القاموس، ويحتوي على الجدول بأكمله:

مثال:

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:

مثال:

import pandas as pd

table = pd.DataFrame.from_dict(data)

TextClassificationPipeline

فئة transformers.TextClassificationPipeline

< >

( **kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • tokenizer (PreTrainedTokenizer) — المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من PreTrainedTokenizer.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.
  • function_to_apply (str, اختياري, القيمة الافتراضية هي "default") — الدالة التي تُطبَّق على مخرجات النموذج لاستخراج الدرجات. يقبل أربعة قيم مختلفة:
    • "default": إذا كان للنموذج تسمية واحدة، فسيُطبَّق دالة sigmoid على المخرجات. وإذا كان للنموذج عدة تسميات، فسيُطبَّق دالة softmax على المخرجات. أما في مهام الانحدار، فلن تُطبَّق أي دالة على المخرجات.
    • "sigmoid": يطبّق دالة سيجمويد على المخرجات.
    • "softmax": يطبّق دالة softmax على المخرجات.
    • "none": لا يطبّق أي دالة على المخرجات.

خط أنابيب تصنيف النصوص باستخدام أي ModelForSequenceClassification. راجع أمثلة تصنيف التسلسل لمزيد من المعلومات.

مثال:

>>> 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() باستخدام معرّف المهمة التالي: "sentiment-analysis" (لتصنيف التسلسلات وفقًا للمشاعر الإيجابية أو السلبية).

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

النماذج التي يمكن لهذا الخط أن يستخدمها هي نماذج تم ضبطها على مهمة تصنيف تسلسل. راجع قائمة النماذج المتاحة المحدّثة على huggingface.co/models.

__call__

< >

( inputs: str | list[str] | dict[str, str] | list[dict[str, str]]**kwargs: Any ) → A list of dict

المعاملات

  • inputs (str أو list[str] أو dict[str]، أو list[dict[str]]) — نص واحد أو عدة نصوص لتصنيفها. لاستخدام أزواج من النصوص في عملية التصنيف، يمكنك إرسال قاموس يحتوي على المفاتيح {"text", "text_pair"}، أو قائمة من هذه القواميس.
  • top_k (int، اختياري، القيمة الافتراضية 1) — عدد النتائج التي يجب إرجاعها.
  • function_to_apply (str, اختياري, القيمة الافتراضية هي "default") — الدالة التي تُطبَّق على مخرجات النموذج لاستخراج الدرجات. يقبل أربعة قيم مختلفة:

    إذا لم يُحدد هذا الحُجّة، فسيُطبَّق الدوال التالية وفقاً لعدد التسميات:

    • إذا كان نوع المشكلة هو الانحدار، فلن يتم تطبيق أي دالة على المخرجات.
    • إذا كان النموذج يحتوي على تسمية واحدة، فسيتم تطبيق دالة sigmoid على المخرجات.
    • إذا كان النموذج يحتوي على عدة تسميات، فسيتم تطبيق دالة softmax على المخرجات.

    القيم الممكنة هي:

    • "sigmoid": يطبّق دالة سيجمويد على المخرجات.
    • "softmax": يطبّق دالة softmax على المخرجات.
    • "none": لا يطبّق أي دالة على المخرجات.

يعيد

قائمة من dict

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

  • label (str) — التسمية المتوقعة.
  • score (float) — الاحتمال المقابل.

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

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

TextGenerationPipeline

فئة transformers.TextGenerationPipeline

< >

( *args**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • tokenizer (PreTrainedTokenizer) — المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من PreTrainedTokenizer.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.

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

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

  • max_new_tokens: 256
  • do_sample: True
  • temperature: 0.7

أمثلة:

>>> 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)
>>> 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() باستخدام معرّف المهمة التالي: "text-generation".

النماذج التي يمكن لهذا الخط أن يستخدمها هي نماذج تم تدريبها بهدف نمذجة لغوية ذاتية التوليد. راجع قائمة نماذج إكمال النص المتاحة وقائمة النماذج الحوارية على [huggingface.co/models].

__call__

< >

( text_inputs**kwargs ) → A list or a list of lists of dict

المعاملات

  • 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 هنا).

يعيد

قائمة أو قائمة قوائم من dict

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

  • generated_text (str، موجود عندما يكون return_text=True) — النص المُولَّد.
  • generated_token_ids (torch.Tensor، موجود عندما يكون return_tensors=True) — معرّفات الرموز للنص المولّد.

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

TokenClassificationPipeline

فئة transformers.TokenClassificationPipeline

< >

( args_parser = <transformers.pipelines.token_classification.TokenClassificationArgumentHandler object at 0x7f94c779da50>**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • tokenizer (PreTrainedTokenizer) — المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من PreTrainedTokenizer.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من 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 باستثناء أن الكلمات لا يمكن أن تحمل وسومًا مختلفة. سيكون كيان الكلمة ببساطة الرمز ذي الدرجة القصوى.
    • “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. راجع أمثلة التعرف على الكيانات المسماة لمزيد من المعلومات.

مثال:

>>> 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() باستخدام معرّف المهمة التالي: "ner" (لتنبؤ بفئات الرموز في تسلسل: شخص، منظمة، موقع أو أخرى).

النماذج التي يمكن أن يستخدمها هذا الخط هي نماذج تم ضبطها على مهمة تصنيف الرموز. راجع قائمة النماذج المتاحة المحدّثة على huggingface.co/models.

__call__

< >

( inputs: str | list[str]**kwargs: Any ) → A list or a list of list of dict

المعاملات

  • 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

< >

( entities: listaggregation_strategy: AggregationStrategy )

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

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

gather_pre_entities

< >

( sentence: strinput_ids: ndarrayscores: ndarrayoffset_mapping: list[tuple[int, int]] | Nonespecial_tokens_mask: ndarrayaggregation_strategy: AggregationStrategyword_ids: list[int | None] | None = Noneword_to_chars_map: list[tuple[int, int]] | None = None )

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

group_entities

< >

( entities: list )

المعاملات

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

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

group_sub_entities

< >

( entities: list )

المعاملات

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

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

ZeroShotClassificationPipeline

فئة transformers.ZeroShotClassificationPipeline

< >

( args_parser = <transformers.pipelines.zero_shot_classification.ZeroShotClassificationArgumentHandler object at 0x7f94c62eb790>**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • tokenizer (PreTrainedTokenizer) — المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من PreTrainedTokenizer.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.

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

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

مثال:

>>> 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]}

تعرّف على المزيد حول أساسيات استخدام خط الأنابيب في دليل خط الأنابيب

يمكن حاليًا تحميل خط أنابيب NLI هذا من pipeline() باستخدام معرّف المهمة التالي: "zero-shot-classification".

النماذج التي يمكن لهذا الخط أن يستخدمها هي نماذج تم ضبطها على مهمة NLI. راجع القائمة المحدّثة للنماذج المتاحة على huggingface.co/models.

__call__

< >

( sequences: str | list[str]*args**kwargs ) → A dict or a list of dict

المعاملات

  • 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 على درجة الاستلزام مقابل درجة التناقض.

يعيد

A dict or a list of dict

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

  • sequence (str) — التسلسل الذي يمثل هذا المخرجات له.
  • labels (list[str]) — التسميات مرتبة حسب ترتيب الاحتمالية.
  • scores (list[float]) — احتمالات كل من التسميات.

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

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

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

DocumentQuestionAnsweringPipeline

فئة transformers.DocumentQuestionAnsweringPipeline

< >

( *args**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • tokenizer (PreTrainedTokenizer) — المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من PreTrainedTokenizer.
  • image_processor (BaseImageProcessor) — معالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من BaseImageProcessor.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.

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

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

  • max_new_tokens: 256

مثال:

>>> 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() باستخدام معرّف المهمة التالي: "document-question-answering".

النماذج التي يمكن لهذه المسار استخدامُها هي نماذج تم ضبطها على مهمة الإجابة عن الأسئلة المستندة إلى مستندات. راجع قائمة النماذج المتاحة المحدّثة على huggingface.co/models.

__call__

< >

( image: typing.Union[ForwardRef('Image.Image'), str, list[dict[str, typing.Any]]]question: str | None = Noneword_boxes: tuple[str, list[float]] | None = None**kwargs: Any ) → A dict or a list of dict

المعاملات

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

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

  • question (str) — سؤال يُطرح على المستند.
  • word_boxes (list[str, tuple[float, float, float, float]], اختياري) — قائمة بالكلمات ومربعات الحدود (معايرة من 0 إلى 1000). إذا قمت بتوفير هذا الإدخال الاختياري، فسيستخدم خط المعالجة هذه الكلمات والمربعات بدلاً من تشغيل تقنية التعرف الضوئي على الحروف (OCR) على الصورة لاستخراجها للنماذج التي تتطلبها (مثل 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، اختياري) — اللغة المستخدمة أثناء تشغيل التعرف الضوئي على الحروف. القيمة الافتراضية هي الإنجليزية.
  • tesseract_config (str, اختياري) — أعلام إضافية تُمرَّر إلى tesseract أثناء تشغيل OCR.
  • timeout (float، اختياري، القيمة الافتراضية هي None) — الحد الأقصى للوقت بالثواني للانتظار حتى يتم جلب الصور من الويب. إذا كانت القيمة None، فلن يتم تعيين مهلة زمنية وقد تبقى الاستدعاءات معلقة إلى الأبد.

يعيد

A dict or a list of 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

< >

( model: PreTrainedModeltokenizer: PreTrainedTokenizer | None = Nonefeature_extractor: PreTrainedFeatureExtractor | None = Noneimage_processor: BaseImageProcessor | None = Nonevideo_processor: BaseVideoProcessor | None = Noneprocessor: ProcessorMixin | None = Nonetask: str = ''device: int | torch.device | None = Nonebinary_output: bool = False**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • tokenizer (PreTrainedTokenizer) — المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من PreTrainedTokenizer.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • tokenize_kwargs (dict، اختياري) — قائمة مفاتيح إضافية تُمرَّر إلى المُرمِّز.
  • return_tensors (bool، اختياري) — إذا كانت True، تُرجع متجهًا (tensor) وفقًا للإطار المحدد، وإلا تُرجع قائمة.

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

مثال:

>>> 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() باستخدام معرّف المهمة: "feature-extraction".

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

__call__

< >

( *args: str | list[str]**kwargs: Any ) → A nested list of float

المعاملات

  • args (str أو list[str]) — نص واحد أو عدة نصوص (أو قائمة واحدة من النصوص) للحصول على ميزات النص.

يعيد

قائمة متداخلة من float

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

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

ImageFeatureExtractionPipeline

فئة transformers.ImageFeatureExtractionPipeline

< >

( model: PreTrainedModeltokenizer: PreTrainedTokenizer | None = Nonefeature_extractor: PreTrainedFeatureExtractor | None = Noneimage_processor: BaseImageProcessor | None = Nonevideo_processor: BaseVideoProcessor | None = Noneprocessor: ProcessorMixin | None = Nonetask: str = ''device: int | torch.device | None = Nonebinary_output: bool = False**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • image_processor (BaseImageProcessor) — معالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من BaseImageProcessor.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من 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، فسيُرجع النموذج حالات الإخفاء الخام.

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

مثال:

>>> 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() باستخدام معرّف المهمة: "image-feature-extraction".

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

__call__

< >

( *args: typing.Union[str, ForwardRef('Image.Image'), list['Image.Image'], list[str]]**kwargs: Any ) → A nested list of float

المعاملات

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

    يقبل خط الأنابيب إما صورة واحدة أو دفعة من الصور، والتي يجب تمريرها بعد ذلك كسلسلة نصية. يجب أن تكون جميع الصور في الدفعة بنفس التنسيق: إما جميعها روابط http، أو جميعها مسارات محلية، أو جميعها صور PIL.

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

يعيد

قائمة متداخلة من float

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

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

ImageTextToTextPipeline

فئة transformers.ImageTextToTextPipeline

< >

( *args**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • processor (ProcessorMixin) — المعالج الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من ProcessorMixin. المعالج هو كائن مركّب قد يحتوي على tokenizer وfeature_extractor و image_processor.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.

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

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

  • max_new_tokens: 256

مثال:

>>> 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'}]
>>> 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() باستخدام معرّف المهمة التالي: “image-text-to-text”.

اطّلع على قائمة النماذج المتاحة على huggingface.co/models.

__call__

< >

( images: typing.Union[str, list[str], list[list[str]], ForwardRef('Image.Image'), list['Image.Image'], list[list['Image.Image']], list[dict], NoneType] = Nonetext: str | list[str] | list[dict] | None = None**kwargs ) → A list or a list of list of dict

المعاملات

  • images (str, list[str], PIL.Image, list[PIL.Image], list[dict[str, Union[str, PIL.Image]]]) — يتعامل خط المعالجة مع ثلاثة أنواع من الصور:
    • نص يحتوي على رابط HTTP(s) يشير إلى صورة
    • نص يحتوي على مسار محلي لصورة
    • صورة محمّلة مباشرةً في PIL

    يقبل خط الأنابيب صورة واحدة أو دفعة من الصور. أخيرًا، يدعم هذا الخط أيضًا صيغة المحادثة (انظر text) التي تحتوي على صور ونصوص في هذا الحقل.

  • 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

< >

( *args**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • processor (ProcessorMixin) — المعالج الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من ProcessorMixin. المعالج هو كائن مركّب قد يحتوي على tokenizer وfeature_extractor و image_processor.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.

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

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

  • max_new_tokens: 256

مثال:

>>> 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'}]
>>> 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() باستخدام معرّف المهمة التالي: “any-to-any”.

اطّلع على قائمة النماذج المتاحة على huggingface.co/models.

__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] = Nonevideos: 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] = Noneaudio: typing.Union[str, list[str], numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None**kwargs ) → A list or a list of list of dict

المعاملات

  • 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

< >

( **kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • image_processor (BaseImageProcessor) — معالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من BaseImageProcessor.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من 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 على القناع للاحتفاظ بالأقنعة ذات الصلة فقط.

مثال:

>>> 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() باستخدام معرّف المهمة التالي: "mask-generation".

اطّلع على قائمة النماذج المتاحة على huggingface.co/models.

__call__

< >

( image: typing.Union[str, ForwardRef('Image.Image'), list[str], list['Image.Image']]*args: Any**kwargs: Any ) → Dict

المعاملات

  • 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]، يعتمد على استقرار القناع عند تغيير حد القطع المستخدم لتحويل تنبؤات القناع من النموذج إلى قيم ثنائية.
  • 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

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

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

يولّد أقنعة تجزئة ثنائية

الفئة الأصلية: Pipeline

فئة transformers.Pipeline

< >

( model: PreTrainedModeltokenizer: PreTrainedTokenizer | None = Nonefeature_extractor: PreTrainedFeatureExtractor | None = Noneimage_processor: BaseImageProcessor | None = Nonevideo_processor: BaseVideoProcessor | None = Noneprocessor: ProcessorMixin | None = Nonetask: str = ''device: int | torch.device | None = Nonebinary_output: bool = False**kwargs )

المعاملات

  • model (PreTrainedModel) — النموذج الذي ستستخدمه خط المعالجة لإجراء التنبؤات. يجب أن يكون هذا نموذجاً يرث من PreTrainedModel.
  • tokenizer (PreTrainedTokenizer) — المُرمِّز الذي ستستخدمه خط المعالجة لتشفير البيانات الخاصة بالنموذج. يرث هذا الكائن من PreTrainedTokenizer.
  • feature_extractor (SequenceFeatureExtractor) — مستخرج الميزات الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من SequenceFeatureExtractor.
  • image_processor (BaseImageProcessor) — معالج الصور الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من BaseImageProcessor.
  • processor (ProcessorMixin) — المعالج الذي ستستخدمه خط المعالجة لتشفير البيانات للنموذج. يرث هذا الكائن من ProcessorMixin. المعالج هو كائن مركّب قد يحتوي على tokenizer وfeature_extractor و image_processor.
  • task (str، القيمة الافتراضية "") — معرّف للمهمة الخاصة بالخط الأنابيب.
  • num_workers (int، اختياري، القيمة الافتراضية 8) — عندما يستخدم خط المعالجة DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، عدد العمال الذين سيتم استخدامهم.
  • batch_size (int، اختياري، القيمة الافتراضية 1) — عندما يستخدم خط الأنابيب DataLoader (عند تمرير مجموعة بيانات، أو على وحدة معالجة الرسوميات لنموذج Pytorch)، فإن حجم الدفع (batch) المستخدم، وفي حالة الاستدلال (inference) لا يكون هذا مفيداً دائماً، يرجى قراءة التدفع (Batching) مع خطوط الأنابيب .
  • args_parser (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"، والتي تُحمِّل النموذج بالدقة التي حُفظ بها (تُقرأ من config.dtype في نقطة التفتيش، وإلا فستُستنتج من الأوزان). مرِّر قيمة صريحة مثل torch.float16 أو torch.bfloat16 أو torch.float32، ... لتجاوزها.
  • binary_output (bool، اختياري، القيمة الافتراضية False) — علامة تُشير إلى ما إذا كان يجب أن يكون ناتج خط المعالجة بصيغة مُسلسلة (أي pickle) أم كبيانات ناتج خام، مثل النص.

تُعد فئة Pipeline الفئة التي ترث منها جميع خطوط الأنابيب. راجع هذه الفئة لمعرفة الطرق المشتركة بين خطوط الأنابيب المختلفة.

الفئة الأساسية التي تنفّذ العمليات المُسارّة. يُعرَّف سير عمل خطّ الأنابيب على أنه تسلسل من العمليات التالية:

المدخلات -> الترميز -> استنتاج النموذج -> المعالجة اللاحقة (تعتمد على المهمة) -> المخرجات

يدعم Pipeline التشغيل على وحدة المعالجة المركزية (CPU) أو وحدة معالجة الرسوميات (GPU) من خلال معامل device (انظر أدناه).

تُخرج بعض خطوط الأنابيب، مثل FeatureExtractionPipeline ('feature-extraction')، كائنات تينسور كبيرة على شكل قوائم متداخلة. ولتفادي إخراج هذه البنية الكبيرة كبيانات نصية، نوفر معامل الإنشاء binary_output. إذا تم ضبطه على True، فسيتم تخزين المخرجات بتنسيق pickle.

check_model_type

< >

( supported_models: list[str] | dict )

المعاملات

  • supported_models (list[str] أو dict) — قائمة النماذج المدعومة بواسطة خط الأنابيب، أو قاموس بقيم فئات النماذج.

تحقق مما إذا كانت فئة النموذج مدعومة في خط المعالجة.

device_placement

< >

( )

مدير سياق يتيح تخصيص المصفوفات على الجهاز الذي يحدده المستخدم.

أمثلة:

# 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

< >

( **inputs ) → dict[str, torch.Tensor]

المعاملات

  • inputs (حجج بالكلمة المفتاحية يجب أن تكون من نوع torch.Tensor، ويتم تجاهل الباقي) — المشغلات التي يجب وضعها على self.device.
  • Recursive على القوائم فقط. —

يعيد

dict[str, torch.Tensor]

نفس inputs ولكن على الجهاز المناسب.

تأكد من أن متجهات PyTorch موجودة على الجهاز المحدد.

postprocess

< >

( model_outputs: ModelOutput**postprocess_parameters: dict )

يستقبل Postprocess المخرجات الخام لطريقة _forward، وهي عادةً متجهات (tensors)، ويعيد تنسيقها إلى شكل أكثر ملاءمة. بشكل عام، سيقوم بإخراج قائمة أو قاموس (dict) للنتائج (تحتوي على نصوص وأرقام فقط).

predict

< >

( X )

واجهة Scikit / Keras لخطوط أنابيب transformers. ستحوّل هذه الطريقة إلى call().

preprocess

< >

( input_: Any**preprocess_parameters: dict )

يستقبل input_ الخاص بخط أنابيب محدد ويعيد قاموسًا يحتوي على كل ما هو ضروري لتشغيل _forward بشكل صحيح. يجب أن يحتوي على متجه واحد على الأقل، لكنه قد يتضمن عناصر أخرى غير محددة.

push_to_hub

< >

( repo_id: strcommit_message: str | None = Nonecommit_description: str | None = Noneprivate: bool | None = Nonetoken: bool | str | None = Nonerevision: str | None = Nonecreate_pr: bool = Falsemax_shard_size: int | str | None = '50GB'tags: list[str] | None = None )

المعاملات

  • repo_id (str) — اسم المستودع الذي تريد دفع خط الأنابيب الخاص بك إليه. يجب أن يحتوي على اسم مؤسستك عند الدفع إلى مؤسسة محددة.
  • commit_message (str، اختياري) — الرسالة التي سيتم الالتزام بها أثناء الدفع. القيمة الافتراضية هي "Upload pipe".
  • commit_description (str, اختياري) — وصف الالتزام الذي سيتم إنشاؤه
  • private (bool، اختياري) — ما إذا كان سيتم جعل المستودع خاصًا. إذا كان None (الافتراضي)، فسيكون المستودع عامًا ما لم يكن الافتراضي للمنظمة هو الخاص. يتم تجاهل هذه القيمة إذا كان المستودع موجودًا بالفعل.
  • token (bool أو str، اختياري) — الرمز الذي يُستخدم كتفويض حامل HTTP للملفات البعيدة. إذا كان 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.

أمثلة:

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

< >

( save_directory: str | os.PathLike**kwargs: Any )

المعاملات

  • save_directory (str أو os.PathLike) — مسار إلى المجلد الذي سيتم الحفظ فيه. سيتم إنشاؤه إذا لم يكن موجودًا.
  • kwargs (dict[str, Any]، اختياري) — حجج إضافية بأسماء تُمرَّر إلى طريقة push_to_hub().

احفظ نموذج خط المعالجة ومُجزّئ الرموز الخاص به.

transform

< >

( X )

واجهة Scikit / Keras لخطوط أنابيب transformers. ستحوّل هذه الطريقة إلى call().

Update on GitHub