19 KiB
English | 简体中文 | 繁體中文 | 한국어 | Español | 日本語 | हिन्दी | Русский | Português | తెలుగు | Français | Deutsch | Italiano | Tiếng Việt | العربية | اردو | বাংলা | فارسی | Română |
Modele pre-antrenate de ultimă generație pentru inferență și antrenare
Transformers funcționează ca framework-ul de definire a modelelor pentru tehnologii de ultimă generație în machine learning aplicate pe text, computer vision, audio, video și modele multimodale, atât pentru inferență, cât și pentru antrenare.
Acesta centralizează definirea modelelor astfel încât această definiție să fie agreată la nivelul întregului ecosistem. transformers este pivotul dintre framework-uri: dacă definirea unui model este suportată, acesta va fi compatibil cu majoritatea framework-urilor de antrenare (Axolotl, Unsloth, DeepSpeed, FSDP, PyTorch-Lightning, ...), a motoarelor de inferență (vLLM, SGLang, TGI, ...),
și a bibliotecilor de modelare adiacente (llama.cpp, mlx, ...) care utilizează definirea modelului din transformers.
Ne angajăm să ajutăm suportarea noilor modele de ultimă generație și să le democratizăm utilizarea prin oferirea unei definiri a modelului simplă, personalizabilă și eficientă.
Avem peste 1M de checkpoint-uri de model Transformers pe Hub-ul Hugging Face pe care le poți utiliza.
Explorează Hub-ul chiar azi pentru a găsi un model și folosește Transformers pentru a începe imediat.
Instalarea
Transformers este compatibil cu Python 3.10+ și PyTorch 2.4+.
Creează și activează un virtual environment folosind venv sau uv, un Python package manager și project manager rapid, scris în Rust.
# venv
python -m venv .my-env
source .my-env/bin/activate
# uv
uv venv .my-env
source .my-env/bin/activate
Instalează Transformers în virtual environment-ul tău.
# pip
pip install "transformers[torch]"
# uv
uv pip install "transformers[torch]"
Instalează Transformers din codul sursă dacă vrei cele mai noi schimbări din bibliotecă sau ești interesat în a contribui. Totuși, s-ar putea ca cea mai recentă versiune să nu fie stabilă. Deschide un issue dacă întâmpini o eroare.
git clone https://github.com/huggingface/transformers.git
cd transformers
# pip
pip install '.[torch]'
# uv
uv pip install '.[torch]'
Pornire rapidă
Începe să utilizezi Transformers imediat folosind API-ul Pipeline. Pipeline-ul este o clasă de inferență high-level ce suportă text, audio, vision și task-uri multimodale. Se ocupă de preprocesarea input-ului și returnează output-ul corespunzător.
Inițializează un pipeline și specifică modelul pentru generarea de text. Modelul este descărcat și salvat în cache pentru o reutilizare ușoară. În final, scrie un prompt pentru model.
from transformers import pipeline
pipeline = pipeline(task="text-generation", model="Qwen/Qwen2.5-1.5B")
pipeline("the secret to baking a really good cake is ")
[{'generated_text': 'the secret to baking a really good cake is 1) to use the right ingredients and 2) to follow the recipe exactly. the recipe for the cake is as follows: 1 cup of sugar, 1 cup of flour, 1 cup of milk, 1 cup of butter, 1 cup of eggs, 1 cup of chocolate chips. if you want to make 2 cakes, how much sugar do you need? To make 2 cakes, you will need 2 cups of sugar.'}]
Pentru a conversa cu un model, utilizarea este aceeași. Singura diferență este că va trebui să construiești un istoric al conversației (input-ul pentru Pipeline) dintre tine și sistem.
Tip
Poți conversa cu un model și din linia de comandă, atât timp cât [
transformers serverulează].transformers chat Qwen/Qwen2.5-0.5B-Instruct
import torch
from transformers import pipeline
chat = [
{"role": "system", "content": "You are a sassy, wise-cracking robot as imagined by Hollywood circa 1986."},
{"role": "user", "content": "Hey, can you tell me any fun things to do in 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"])
Vezi exemplele de mai jos pentru a vedea cum funcționează Pipeline pentru different modalități și task-uri.
Recunoaștere vocală automată
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': ' I have a dream that one day this nation will rise up and live out the true meaning of its creed.'}
Clasificare de imagini
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': 'sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita',
'score': 0.0016551691805943847},
{'label': 'lorikeet', 'score': 0.00018523589824326336},
{'label': 'African grey, African gray, Psittacus erithacus',
'score': 7.85409429227002e-05},
{'label': 'quail', 'score': 5.502637941390276e-05}]
Răspundere vizuală la întrebări
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="What is in the image?",
)
[{'answer': 'statue of liberty'}]
De ce să folosesc Transformers?
-
Modele de ultimă generație ușor de utilizat:
- Performanță înaltă la generarea și procesarea de limbaj natural, computer vision, audio, video și task-uri multimodale.
- Barieră scăzută de intrare pentru cercetători, ingineri și developeri.
- Puține niveluri de abstractizare pentru utilizator, având doar trei clase de învățat.
- Un API unificat pentru utilizarea tuturor modelelor noastre pre-antrenate.
-
Costuri de calcul mai mici, amprentă de carbon mai mică:
- Utilizează modelele antrenate în loc să le antrenezi de la zero.
- Redu timpul de calcul și costurile de producție.
- Sute de arhitecturi de modele cu peste 1M de checkpoint-uri pre-antrenate pentru toate modalitățile de date.
-
Alege framework-ul potrivit pentru fiecare etapă din ciclul de viață al unui model:
- Antrenează modele de ultimă generație în doar 3 linii de cod.
- Mută un singur model între framework-urile PyTorch / JAX / TF2.0 după bunul plac.
- Alege framework-ul potrivit pentru antrenare, evaluare și producție.
-
Personalizează cu ușurință un model sau un exemplu în funcție de nevoile tale:
- Oferim exemple pentru fiecare arhitectură pentru a reproduce rezultatele publicate de autorii originali.
- Mecanismele interne ale modelelor sunt expuse într-un mod cât mai consecvent posibil.
- Fișierele modelului pot fi utilizate independent de librărie pentru experimente rapide.
Când nu ar trebui să utilizez Transformers?
- Această bibliotecă nu este un toolbox de block-uri pentru construirea rețelelor neuronale. Codul din fișierele modelelor nu este refactorizat cu mai multă abstractizare pentru ca cercetătorii să poată utiliza rapid fiecare dintre modele fără să aibă de-a face cu fișiere/abstractizări adiționale.
- API-ul de antrenare este optimizat pentru utilizarea cu modele PyTorch oferite de Transformers. Pentru loop-uri generice de machine learning, utilizează o bibliotecă precum Accelerate.
- Script-urile de exemplu sunt doar exemple. S-ar putea ca acestea să nu funcționeze în toate cazurile și va trebui să adaptezi codul pentru ca acestea să funcționeze.
100 de proiecte folosind Transformers
Transformers este mai mult decât un toolkit pentru utilizarea modelelor pre-antrenate, este o comunitate de proiecte construite în jurul acestuia și a Hub-ului Hugging Face. Vrem ca Transformers să ajute developerii, cercetătorii, studenții, profesorii, inginerii și pe toți ceilalți oameni să-și construiască propriile proiecte.
Pentru a sărbători atingerea a 100,000 de stars pentru proiectul Transformers, am vrut să aducem comunitatea în centrul atenției prin pagina awesome-transformers care este o listă de 100 de proiecte incredibile construite utilizând Transformers.
Dacă deții sau utilizezi un proiect și crezi că ar trebui să facă parte din listă, deschide un PR pentru a-l adăuga!
Modele de exemplu
Poți testa majoritatea modelelor noastre direct pe paginile lor de pe Hub.
Vezi mai jos modele de exemplu pentru diverse cazuri de utilizare.
Audio
Computer vision
- Generare automată de măști cu SAM
- Estimare de depth cu DepthPro
- Clasificare de imagini cu DINO v2
- Detectare de keypoint-uri cu SuperPoint
- Potrivire de keypoint-uri cu SuperGlue
- Detectare de obiecte cu RT-DETRv2
- Estimare de postură corporală cu VitPose
- Segmentare universală cu OneFormer
- Clasificare video cu VideoMAE
Multimodale
- Audio-to-text sau text-to-text cu Voxtral, Audio Flamingo
- Răspunsuri la întrebări din documente cu LayoutLMv3
- Imagine-to-text sau text-to-text cu Qwen-VL
- Descrierea imaginilor cu BLIP-2
- Înțelegerea documentelor pe bază de OCR cu GOT-OCR2
- Răspunsuri la întrebări pe bază de tabele cu TAPAS
- Generare și înțelegere multimodală unificată cu Emu3
- Vision-to-text cu Llava-OneVision
- Răspunsuri la întrebări vizuale cu Llava
- Segmentare vizuală pe bază de expresii de referință cu Kosmos-2
NLP
Citare
Avem un articol pe care îl poți cita pentru biblioteca 🤗 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://aclanthology.org/2020.emnlp-demos.6/",
pages = "38--45"
}
