English | 简体中文 | 繁體中文 | 한국어 | Español | 日本語 | हिन्दी | Русский | Português | తెలుగు | Français | Deutsch | Italiano | Tiếng Việt | العربية | اردو | বাংলা |
Transformers funge da framework di definizione dei modelli per modelli di machine learning all'avanguardia nei modelli di testo, visione artificiale, audio, video e multimodali, sia per l'inferenza che per l'addestramento.
Centralizza la definizione del modello in modo che tale definizione sia concordata all'interno dell'ecosistema.
transformers è il perno tra i framework: se una definizione di modello è supportata, sarà compatibile con la
maggior parte dei framework di addestramento (Axolotl, Unsloth, DeepSpeed, FSDP, PyTorch-Lightning, ...), motori
di inferenza (vLLM, SGLang, TGI, ...) e librerie di modellazione adiacenti (llama.cpp, mlx, ...) che sfruttano
la definizione del modello da transformers.
Ci impegniamo a sostenere nuovi modelli all'avanguardia e a democratizzarne l'utilizzo rendendo la loro definizione semplice, personalizzabile ed efficiente.
Ci sono oltre 1 milione di Transformers model checkpoint su Hugging Face Hub che puoi utilizzare.
Esplora oggi stesso l'Hub per trovare un modello e utilizzare Transformers per aiutarti a iniziare subito.
Transformers funziona con Python 3.10+ e PyTorch 2.4+.
Crea e attiva un ambiente virtuale con venv o uv, un pacchetto Python veloce basato su Rust e un gestore di progetti.
# venv
python -m venv .my-env
source .my-env/bin/activate
# uv
uv venv .my-env
source .my-env/bin/activateInstalla Transformers nel tuo ambiente virtuale.
# pip
pip install "transformers[torch]"
# uv
uv pip install "transformers[torch]"Installa Transformers dal sorgente se desideri le ultime modifiche nella libreria o sei interessato a contribuire. Tuttavia, la versione più recente potrebbe non essere stabile. Non esitare ad aprire una issue se riscontri un errore.
git clone https://github.com/huggingface/transformers.git
cd transformers
# pip
pip install .[torch]
# uv
uv pip install .[torch]Inizia subito a utilizzare Transformers con l'API Pipeline. Pipeline è una classe di inferenza di alto livello che supporta attività di testo, audio, visione e multimodali. Gestisce la pre-elaborazione dell'input e restituisce l'output appropriato.
Istanziare una pipeline e specificare il modello da utilizzare per la generazione di testo. Il modello viene scaricato e memorizzato nella cache in modo da poterlo riutilizzare facilmente. Infine, passare del testo per attivare il modello.
from transformers import pipeline
pipeline = pipeline(task="text-generation", model="Qwen/Qwen2.5-1.5B")
pipeline("il segreto per preparare una torta davvero buona è ")
[{'generated_text': 'il segreto per preparare una torta davvero buona è 1) usare gli ingredienti giusti e 2) seguire alla lettera la ricetta. la ricetta della torta è la seguente: 1 tazza di zucchero, 1 tazza di farina, 1 tazza di latte, 1 tazza di burro, 1 tazza di uova, 1 tazza di gocce di cioccolato. se vuoi preparare 2 torte, quanto zucchero ti serve? Per preparare 2 torte, avrete bisogno di 2 tazze di zucchero.'}]Per chattare con un modello, lo schema di utilizzo è lo stesso. L'unica differenza è che è necessario creare una cronologia delle chat (l'input per Pipeline) tra l'utente e il sistema.
Tip
È anche possibile chattare con un modello direttamente dalla riga di comando.
transformers chat Qwen/Qwen2.5-0.5B-Instructimport torch
from transformers import pipeline
chat = [
{"role": "system", "content": "Sei un robot sfacciato e spiritoso, proprio come lo immaginava Hollywood nel 1986."},
{"role": "user", "content": "Ehi, mi puoi suggerire qualcosa di divertente da fare a New York?"}
]
pipeline = pipeline(task="text-generation", model="meta-llama/Meta-Llama-3-8B-Instruct", dtype=torch.bfloat16, device_map="auto")
response = pipeline(chat, max_new_tokens=512)
print(response[0]["generated_text"][-1]["content"])Espandi gli esempi riportati di seguito per vedere come funziona Pipeline per diverse modalità e attività.
Riconoscimento vocale automatico
from transformers import pipeline
pipeline = pipeline(task="automatic-speech-recognition", model="openai/whisper-large-v3")
pipeline("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac")
{'text': ' Ho un sogno: che un giorno questa nazione si solleverà e vivrà il vero significato del suo credo.'}Classificazione delle immagini
from transformers import pipeline
pipeline = pipeline(task="image-classification", model="facebook/dinov2-small-imagenet1k-1-layer")
pipeline("https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png")
[{'label': 'macaw', 'score': 0.997848391532898},
{'label': 'cacatua dal ciuffo giallo, Kakatoe galerita, Cacatua galerita',
'score': 0.0016551691805943847},
{'label': 'lorichetto', 'score': 0.00018523589824326336},
{'label': 'Pappagallo grigio africano, Psittacus erithacus',
'score': 7.85409429227002e-05},
{'label': 'quaglia', 'score': 5.502637941390276e-05}]Risposta a domande visive
from transformers import pipeline
pipeline = pipeline(task="visual-question-answering", model="Salesforce/blip-vqa-base")
pipeline(
image="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/idefics-few-shot.jpg",
question="Cosa c'è nell'immagine?",
)
[{'answer': 'statua della libertà'}]-
Modelli all'avanguardia facili da usare:
- Prestazioni elevate nella comprensione e generazione del linguaggio naturale, nella visione artificiale, nell'audio, nel video e nelle attività multimodali.
- Bassa barriera di ingresso per ricercatori, ingegneri e sviluppatori.
- Poche astrazioni rivolte all'utente con solo tre classi da imparare.
- Un'API unificata per l'utilizzo di tutti i nostri modelli preaddestrati.
-
Riduzione dei costi di calcolo e dell'impronta di carbonio:
- Condivisione dei modelli addestrati invece di addestrarli da zero.
- Riduzione dei tempi di calcolo e dei costi di produzione.
- Decine di architetture di modelli con oltre 1 milione di checkpoint preaddestrati in tutte le modalità.
-
Scegli il framework giusto per ogni fase del ciclo di vita di un modello:
- Addestra modelli all'avanguardia con sole 3 righe di codice.
- Sposta un singolo modello tra i framework PyTorch/JAX/TF2.0 a tuo piacimento.
- Scegli il framework giusto per l'addestramento, la valutazione e la produzione.
-
Personalizza facilmente un modello o un esempio in base alle tue esigenze:
- Forniamo esempi per ogni architettura per riprodurre i risultati pubblicati dagli autori originali.
- Gli interni del modello sono esposti nel modo più coerente possibile.
- I file del modello possono essere utilizzati indipendentemente dalla libreria per esperimenti rapidi.
- Questa libreria non è un toolbox modulare di blocchi costitutivi per reti neurali. Il codice nei file dei modelli non è stato rifattorizzato con ulteriori astrazioni di proposito, in modo che i ricercatori possano iterare rapidamente su ciascuno dei modelli senza dover approfondire ulteriori astrazioni/file.
- L'API di addestramento è ottimizzata per funzionare con i modelli PyTorch forniti da Transformers. Per i loop generici di machine learning, è necessario utilizzare un'altra libreria come Accelerate.
- Gli script di esempio sono solo esempi. Potrebbero non funzionare immediatamente nel vostro caso specifico e potrebbe essere necessario adattare il codice affinché funzioni.
Transformers è più di un semplice toolkit per l'utilizzo di modelli preaddestrati, è una comunità di progetti costruita attorno ad esso e all' Hugging Face Hub. Vogliamo che Transformers consenta a sviluppatori, ricercatori, studenti, professori, ingegneri e chiunque altro di realizzare i propri progetti dei sogni.
Per celebrare le 100.000 stelle di Transformers, abbiamo voluto puntare i riflettori sulla comunità con la pagina awesome-transformers, che elenca 100 incredibili progetti realizzati con Transformers.
Se possiedi o utilizzi un progetto che ritieni debba essere inserito nell'elenco, apri una PR per aggiungerlo!
È possibile testare la maggior parte dei nostri modelli direttamente sulle loro pagine dei modelli Hub.
Espandi ciascuna modalità qui sotto per vedere alcuni modelli di esempio per vari casi d'uso.
Audio
Visione artificiale
- Generazione automatica di maschere con SAM
- Stima della profondità con DepthPro
- Classificazione delle immagini con DINO v2
- Rilevamento dei punti chiave con SuperPoint
- Corrispondenza dei punti chiave con SuperGlue
- Rilevamento degli oggetti con RT-DETRv2
- Stima della posa con VitPose
- Segmentazione universale con OneFormer
- Classificazione dei video con VideoMAE
Multimodale
- Audio or text to text with Qwen2-Audio
- Document question answering with LayoutLMv3
- Image or text to text with Qwen-VL
- Image captioning BLIP-2
- OCR-based document understanding with GOT-OCR2
- Table question answering with TAPAS
- Unified multimodal understanding and generation with Emu3
- Vision to text with Llava-OneVision
- Visual question answering with Llava
- Visual referring expression segmentation with Kosmos-2
NLP
Ora abbiamo un paper che puoi citare per la libreria 🤗 Transformers:
@inproceedings{wolf-etal-2020-transformers,
title = "Transformers: State-of-the-Art Natural Language Processing",
author = "Thomas Wolf and Lysandre Debut and Victor Sanh and Julien Chaumond and Clement Delangue and Anthony Moi and Pierric Cistac and Tim Rault and Rémi Louf and Morgan Funtowicz and Joe Davison and Sam Shleifer and Patrick von Platen and Clara Ma and Yacine Jernite and Julien Plu and Canwen Xu and Teven Le Scao and Sylvain Gugger and Mariama Drame and Quentin Lhoest and Alexander M. Rush",
booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations",
month = oct,
year = "2020",
address = "Online",
publisher = "Association for Computational Linguistics",
url = "https://www.aclweb.org/anthology/2020.emnlp-demos.6",
pages = "38--45"
}

