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_sizemare ș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")saupipeline("translation")din tutoriale vechi. În Transformers 5 folosești un model de generare de text (text-generation) cu instrucțiunea potrivită.
Întrebări & Exemple practice:
Funcția pipeline() din TransformersAi 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.