الدرس 4 من 9
Hugging Face
الـ GitHub بتاع موديلات الـ AI.
يعني إيه Hugging Face؟
موقع ومكتبات فيها مئات الآلاف من الموديلات المفتوحة: تصنيف نصوص، ترجمة، تلخيص، تعرف على كلام، صور، وكل حاجة. ومكتبة transformers بتخليك تحمّل أي موديل منهم وتستخدمه بنفس الطريقة.
pip install transformers sentence-transformers torch
الـ Pipeline: أسهل طريقة
from transformers import pipeline classifier = pipeline( "sentiment-analysis", model="distilbert/distilbert-base-uncased-finetuned-sst-2-english", ) reviews = [ "Delivery was fast and the product is amazing!", "Terrible quality, it broke after two days.", "It's okay, nothing special.", ] for review, result in zip(reviews, classifier(reviews)): print(f"{result['label']:8} {result['score']:.2f} {review}")
لاحظ الجملة التالتة: «عادي» مش إيجابي ولا سلبي، بس الموديل ده متدرب على نوعين بس فلازم يختار واحد منهم. اعرف دايماً الموديل اتدرب على إيه قبل ما تستخدمه.
بتدور على موديل إزاي؟
- ادخل على
huggingface.co/modelsوفلتر بنوع المهمة (Tasks) واللغة (Languages). - رتّب بالأكتر تحميلاً، واقرا الـ Model Card: اتدرب على إيه، ونتايجه، وحدوده.
- للعربي فيه موديلات متخصصة كتير، وفيه موديلات متدربة على اللهجة المصرية كمان.
من غير Pipeline: تحكم كامل
الـ pipeline من جوه بيعمل ٣ حاجات: tokenizer ← موديل ← تحويل الناتج. لما تحتاج تحكم أكتر (زي fine-tuning بعدين) هتكتبهم بنفسك:
import torch from transformers import AutoTokenizer, AutoModelForSequenceClassification name = "distilbert/distilbert-base-uncased-finetuned-sst-2-english" tok = AutoTokenizer.from_pretrained(name) model = AutoModelForSequenceClassification.from_pretrained(name) inputs = tok("The food was cold and the service was slow", return_tensors="pt") with torch.no_grad(): logits = model(**inputs).logits # raw scores probs = torch.softmax(logits, dim=-1)[0] # softmax -> probabilities for label_id, p in enumerate(probs): print(f"{model.config.id2label[label_id]:8} {p:.1%}")
🤖 كل اللي اتعلمته بيتجمع هناtokenizer (الدرس الأول)، وموديل Transformer (الدرس اللي فات)، و
torch.no_grad() (المرحلة ٦)، و softmax (المرحلة ٣). مفيش سحر، كله حاجات انت فاهمها.