Funcția pipeline() din Transformers în Hugging Face Hub & Transformers

API-ul de inferență cel mai simplu din Transformers: alegi sarcina și modelul, iar pipeline-ul face pre-procesarea, rularea modelului și post-procesarea.

Sintaxă & invocare Python
from transformers import pipeline

pipe = pipeline(task="text-generation", model="google/gemma-2-2b")
pipe("the secret to baking a really good cake is ")

Ce face Funcția pipeline() din Transformers

pipeline() creează un pipeline specific sarcinii (de exemplu TextGenerationPipeline) după identificatorul dat în task. Fiecare sarcină are un model și un preprocesor implicit, dar documentația îți arată cum să le înlocuiești cu parametrul model. Dacă modelul de pe Hub își declară sarcina, poți omite task.

Sarcinile documentate în Transformers 5 includ, printre altele: text-generation, text-classification, token-classification, fill-mask, zero-shot-classification, automatic-speech-recognition, audio-classification, text-to-audio, image-classification, object-detection, image-segmentation, depth-estimation, image-text-to-text, any-to-any și feature-extraction. Pipeline-urile separate pentru rezumare și traducere nu mai apar în lista din versiunea 5; aceste sarcini se fac cu modele de generare de text.

Când device nu este setat, pipeline-ul pune modelul pe primul accelerator disponibil (CUDA, Apple Silicon MPS, XPU) și folosește CPU doar dacă nu există unul. device=0 alege primul GPU, device="mps" Apple Silicon, iar device_map="auto" lasă Accelerate să împartă greutățile pe dispozitive (util pentru modele mari).

Sintaxă și opțiuni

Opțiune / Parametru Descriere
task Identificatorul sarcinii (de exemplu "text-generation").
model Modelul de pe Hub sau local. Fără el se folosește modelul implicit al sarcinii.
device Dispozitivul: 0, "mps", "cpu". Implicit primul accelerator disponibil.
device_map="auto" Împărțirea automată a greutăților prin Accelerate.
batch_size Procesare în loturi. Dezactivată implicit; poate grăbi pe GPU, dar nu e garantat.
dtype Precizia greutăților (de exemplu torch.bfloat16).

Exemple practice

Exemplul 1: Generare de text

from transformers import pipeline

pipeline = pipeline(task="text-generation", model="google/gemma-2-2b")
pipeline("the secret to baking a really good cake is ")

Rezultat

[{'generated_text': 'the secret to baking a really good cake is 1. the right ingredients 2. the'}]

Exemplul 2: Transcriere audio cu Whisper

pipeline = pipeline(task="automatic-speech-recognition", model="openai/whisper-large-v3")
pipeline("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac")

Rezultat

{'text': ' I have a dream that one day this nation will rise up and live out the true meaning of its creed.'}

Exemplul 3: Clasificare zero-shot

zs = pipeline("zero-shot-classification")
zs("Factură restantă la curent", candidate_labels=["finanțe", "sport", "it"])

Exemplul 4: Mai multe intrări, ca listă

pipeline(["the secret to baking a really good cake is ", "a baguette is "])

Greșeli frecvente și bune practici

  • Setezi batch_size mare și aștepți automat o accelerare. Documentația spune că batching-ul poate ajuta pe GPU, dar nu este garantat; nu îl recomandă pe CPU, când contează latența sau când lungimile secvențelor variază mult. Măsoară și tratează erorile de memorie.
  • Te bazezi pe modelul implicit al sarcinii în producție. Fixează modelul cu model=, ca rezultatele să nu depindă de alegerea implicită.
  • Folosești pipeline("summarization") sau pipeline("translation") din tutoriale vechi. În Transformers 5 folosești un model de generare de text (text-generation) cu instrucțiunea potrivită.

Comenzi înrudite

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: Funcția pipeline() din Transformers

Ai o întrebare despre Funcția pipeline() din Transformers sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!

🤖

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.

Comunitate AI Adaugă o întrebare sau distribuie un cod / prompt

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.