Transformers documentation
خطوط الأنابيب
خطوط الأنابيب
تُعدّ خطوط الأنابيب طريقة رائعة وسهلة لاستخدام النماذج في الاستدلال. هذه الخطوط هي كائنات تُجسّد معظم الأكواد المعقدة في المكتبة، وتوفر واجهة برمجة تطبيقات بسيطة مخصصة لمهام متعددة، بما في ذلك تسمية الكيانات، ونمذجة اللغة المقنّعة، وتحليل المشاعر، واستخراج الميزات، والإجابة على الأسئلة. راجع قائمة المهام للحصول على أمثلة على الاستخدام.
توجد فئتان من تجريدات خط المعالجة يجب الانتباه إليهما:
- pipeline() وهو أقوى كائن يُلخّص جميع خطوط الأنابيب الأخرى.
- تتوفر خطوط أنابيب مخصصة للمهام في مجالات الصوت ورؤية الحاسوب ومعالجة اللغة الطبيعية والمهام المتعددة الوسائط.
تجريد خط المعالجة
تُعدّ تجريدية 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
< source >( 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) الذي سيتم إرجاعه. المهام المقبولة حاليًا هي:"audio-classification": ستُرجع AudioClassificationPipeline."automatic-speech-recognition": سيعيد AutomaticSpeechRecognitionPipeline."depth-estimation": سيعيد DepthEstimationPipeline."document-question-answering": ستُرجع DocumentQuestionAnsweringPipeline."feature-extraction": ستُرجع FeatureExtractionPipeline."fill-mask": سيعيد FillMaskPipeline:."image-classification": سيعيد ImageClassificationPipeline."image-feature-extraction": ستُرجع ImageFeatureExtractionPipeline."image-segmentation": سيعيد ImageSegmentationPipeline."image-text-to-text": سيعيد ImageTextToTextPipeline."keypoint-matching": سيعيد KeypointMatchingPipeline."mask-generation": ستُرجع MaskGenerationPipeline."object-detection": سيعيد ObjectDetectionPipeline."table-question-answering": سيعيد TableQuestionAnsweringPipeline."text-classification"(مع وجود الاسم المستعار"sentiment-analysis"): سيعيد TextClassificationPipeline."text-generation": ستُرجع TextGenerationPipeline:."text-to-audio"(مع وجود الاسم المستعار"text-to-speech"): ستُرجع TextToAudioPipeline:."token-classification"(مع وجود الاسم البديل"ner"): ستُرجع TokenClassificationPipeline."video-classification": ستُرجع VideoClassificationPipeline."zero-shot-classification": سيعيد ZeroShotClassificationPipeline."zero-shot-image-classification": سيعيد ZeroShotImageClassificationPipeline."zero-shot-audio-classification": سيعيد ZeroShotAudioClassificationPipeline."zero-shot-object-detection": سيعيد ZeroShotObjectDetectionPipeline.
- 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 (
strordict[str, Union[int, str, torch.device], optional) — Sent directly asmodel_kwargs(just a simpler shortcut). Whenacceleratelibrary is present, setdevice_map="auto"to compute the most optimizeddevice_mapautomatically (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
< source >( *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__
< source >( 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
< source >( 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__
< source >( 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
< source >( *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__
< source >( 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
< source >( **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__
< source >( 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
< source >( *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__
< source >( 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
< source >( *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__
< source >( 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
< source >( *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__
< source >( 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
خط أنابيب مطابقة نقاط الملامس باستخدام أي AutoModelForKeypointMatching. يطابق هذا الخط أنابيب نقاط الملامس بين صورتين.
__call__
< source >( 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
< source >( *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__
< source >( *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
< source >( *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__
< source >( 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
< source >( **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__
< source >( 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
< source >( **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__
< source >( image: typing.Union[str, ForwardRef('Image.Image'), list[dict[str, typing.Any]]]candidate_labels: str | list[str] | None = None**kwargs: Any )
كشف الكائنات (صناديق الحدود & الفئات) في الصورة أو الصور المُمرَّرة كمدخلات.
معالجة اللغة الطبيعية
تشمل خطوط الأنابيب المتاحة لمهام معالجة اللغة الطبيعية ما يلي.
FillMaskPipeline
فئة transformers.FillMaskPipeline
< source >( 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__
< source >( 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
< source >( 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__
< source >( *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:
TextClassificationPipeline
فئة transformers.TextClassificationPipeline
< source >( **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__
< source >( 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
< source >( *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__
< source >( 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
< source >( 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__
< source >( 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، اختياري) — فهرس نهاية الكيان المقابل في الجملة. لا يتوفر إلا إذا كانت الإزاحات متاحة داخل مُجزّئ النص
صنّف كل رمز من الرموز في النصّ أو النصوص المُعطاة كمدخلات.
تجاوز الرموز من كلمة محددة التي لا تتوافق مع حدود الكلمة لفرض التوافق على حدود الكلمة.
مثال: micro|soft| com|pany| B-ENT I-NAME I-ENT I-ENT ستُعاد كتابتها باستخدام الاستراتيجية الأولى على النحو التالي: microsoft| company| B-ENT I-ENT
gather_pre_entities
< source >( 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
< source >( entities: list )
ابحث عن الرموز المتجاورة التي تتنبأ بنفس الكيان، ثم اجمعها في مجموعة واحدة.
group_sub_entities
< source >( entities: list )
اجمع الرموز المتجاورة التي تم التنبؤ بنفس الكيان لها.
ZeroShotClassificationPipeline
فئة transformers.ZeroShotClassificationPipeline
< source >( 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__
< source >( 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
< source >( *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__
< source >( 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
< source >( 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__
< source >( *args: str | list[str]**kwargs: Any ) → A nested list of float
استخراج ميزات النص(نص) المدخل.
ImageFeatureExtractionPipeline
فئة transformers.ImageFeatureExtractionPipeline
< source >( 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__
< source >( *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
< source >( *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__
< source >( 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
< source >( *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__
< source >( 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
< source >( **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.
يعمل خط الأنابيب في ثلاث خطوات:
preprocess: يتم توليد شبكة من 1024 نقطة متباعدة بالتساوي، إلى جانب صناديق الإحاطة وتسميات النقاط. لمزيد من التفاصيل حول كيفية إنشاء النقاط وصناديق الإحاطة، راجع دالة_generate_crop_boxes. كما يتم معالجة الصورة مسبقًا باستخدامimage_processor. تُنتج هذه الدالةyieldsدفعة فرعية منpoints_per_batch.forward: يُدخل مخرجاتpreprocessإلى النموذج. يتم حساب تضمين الصورة مرة واحدة فقط. يستدعي كلًا منself.model.get_image_embeddingsويتأكد من عدم حساب التدرجات، وأن المشغلات والنماذج موجودة على نفس الجهاز.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__
< source >( 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
< source >( 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
< source >( supported_models: list[str] | dict )
تحقق مما إذا كانت فئة النموذج مدعومة في خط المعالجة.
مدير سياق يتيح تخصيص المصفوفات على الجهاز الذي يحدده المستخدم.
ensure_tensor_on_device
< source >( **inputs ) → dict[str, torch.Tensor]
تأكد من أن متجهات PyTorch موجودة على الجهاز المحدد.
يستقبل Postprocess المخرجات الخام لطريقة _forward، وهي عادةً متجهات (tensors)، ويعيد تنسيقها إلى شكل أكثر ملاءمة. بشكل عام، سيقوم بإخراج قائمة أو قاموس (dict) للنتائج (تحتوي على نصوص وأرقام فقط).
واجهة Scikit / Keras لخطوط أنابيب transformers. ستحوّل هذه الطريقة إلى call().
يستقبل input_ الخاص بخط أنابيب محدد ويعيد قاموسًا يحتوي على كل ما هو ضروري لتشغيل _forward بشكل صحيح. يجب أن يحتوي على متجه واحد على الأقل، لكنه قد يتضمن عناصر أخرى غير محددة.
push_to_hub
< source >( 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
< source >( save_directory: str | os.PathLike**kwargs: Any )
المعاملات
- save_directory (
strأوos.PathLike) — مسار إلى المجلد الذي سيتم الحفظ فيه. سيتم إنشاؤه إذا لم يكن موجودًا. - kwargs (
dict[str, Any]، اختياري) — حجج إضافية بأسماء تُمرَّر إلى طريقة push_to_hub().
احفظ نموذج خط المعالجة ومُجزّئ الرموز الخاص به.
واجهة Scikit / Keras لخطوط أنابيب transformers. ستحوّل هذه الطريقة إلى call().