Hub documentation
رفع النماذج
رفع النماذج
لرفع النماذج إلى Hub، ستحتاج إلى إنشاء حساب في Hugging Face. النماذج على Hub هي مستودعات مبنية على Git، مما يمنحك ميزات مثل إدارة الإصدارات، والفروع، وإمكانية الاكتشاف والمشاركة، والتكامل مع عشرات المكتبات، والمزيد! لديك سيطرة على ما تريد رفعه إلى مستودعك، والذي قد يتضمن نقاط التفتيش (checkpoints)، وملفات الإعدادات (configs)، وأي ملفات أخرى.
يمكنك ربط المستودعات بمستخدم فردي، مثل osanseviero/fashion_brands_patterns، أو بمنظمة، مثل facebook/bart-large-xsum. يمكن للمنظمات جمع النماذج المتعلقة بشركة أو مجتمع أو مكتبة! إذا اخترت منظمة، فسيتم عرض النموذج على صفحة المنظمة، وسيتمتع كل عضو في المنظمة بالقدرة على المساهمة في المستودع. يمكنك إنشاء منظمة جديدة هنا.
ملاحظة: لا تحتاج النماذج إلى أن تكون متوافقة مع مكتبتَي Transformers/Diffusers للحصول على مقاييس التنزيل. يتم دعم أي نموذج مخصص. اقرأ المزيد أدناه!
توجد عدة طرق لرفع النماذج بحيث يتم دمجها بشكل جيد في مقاييس التحميل، وهي موضحة أدناه.
- في حال كان نموذجك مصمماً لمكتبة تدعم الميزات المدمجة، يمكنك استخدام الأساليب التي توفرها المكتبة. كما يمكن للنماذج المخصصة التي تستخدم
trust_remote_code=Trueالاستفادة من هذه الأساليب أيضاً. - في حال كان نموذجك نموذج PyTorch مخصصًا، يمكن الاستفادة من فئة
PyTorchModelHubMixinإذ تتيح إضافةfrom_pretrainedوpush_to_hubإلى أي فئةnn.Moduleتمامًا كما هو الحال مع النماذج في مكتبات Transformers وDiffusers وTimm. - بالإضافة إلى عمليات الرفع البرمجية، يمكنك دائمًا استخدام الواجهة الويب أو سطر أوامر git.
بمجرد رفع نموذجك، نقترح إضافة بطاقة نموذج إلى مستودعك لتوثيق نموذجك وجعله أسهل في الاكتشاف.
Example [repository](https://huggingface.co/LiheYoung/depth_anything_vitl14) that leverages [PyTorchModelHubMixin](#upload-a-pytorch-model-using-huggingfacehub). Downloads are shown on the right. استخدام واجهة الويب
لإنشاء مستودع نموذج جديد تمامًا، قم بزيارة huggingface.co/new. ثم اتبع الخطوات التالية:
- في تبويب “الملفات والإصدارات” (Files and versions)، اختر “إضافة ملف” (Add File) وحدد “رفع ملف” (Upload File):

- من هناك، اختر ملفًا من جهازك لرفعه واترك رسالة التزام مفيدة لمعرفة ما تقوم برفعه:

بعد ذلك، انقر على Commit changes لرفع نموذجك إلى Hub!
فحص الملفات والسجل
يمكنك التحقق من مستودعك مع جميع الملفات التي أُضيفت مؤخراً!

تتيح لك واجهة المستخدم استكشاف ملفات النموذج والتزامات (commits) وعرض الفروقات (diff) التي أدخلها كل التزام:

- إضافة بيانات وصفية
يمكنك إضافة بيانات وصفية إلى بطاقة النموذج الخاص بك. يمكنك تحديد ما يلي:
- نوع المهمة التي صُمم هذا النموذج من أجلها، مما يتيح استخدام الأدوات المدمجة ومزودي الاستدلال.
- المكتبة المستخدمة (
transformers،spaCy، إلخ) - اللغة
- مجموعة البيانات
- المقاييس
- رخصة
- والمزيد بكثير!
اقرأ المزيد عن وسوم النموذج هنا.
- إضافة مسارات TensorBoard
يُصنَّف أي مستودع يحتوي على مسارات TensorBoard (أسماء ملفات تحتوي على tfevents) بوسم TensorBoard. وكإجراء متعارف عليه، نقترح عليك حفظ المسارات في مجلد الفرع runs/. ثم يسهّل تبويب “مقاييس التدريب” مراجعة الرسوم البيانية للمتغيرات المسجّلة، مثل الخسارة أو الدقة.

ستولّد النماذج المدرَّبة باستخدام 🤗 Transformers تتبعات TensorBoard افتراضيًا إذا كان tensorboard مثبّتًا.
الرفع من مكتبة تدعم ذلك بشكل مدمج
أولاً، تحقق مما إذا كان نموذجك من مكتبة تدعم بشكل مدمج الدفع إلى/التحميل من Hub، مثل Transformers وDiffusers وTimm وAsteroid وغيرها: https://huggingface.co/docs/hub/models-libraries. أدناه، سنوضح مدى سهولة ذلك لمكتبة مثل Transformers:
from transformers import BertConfig, BertModel
config = BertConfig()
model = BertModel(config)
model.push_to_hub("nielsr/my-awesome-bert-model")
# reload
model = BertModel.from_pretrained("nielsr/my-awesome-bert-model")تدعم بعض المكتبات، مثل Transformers، تحميل الكود من Hub. هذه طريقة لجعل نموذجك يعمل مع Transformers باستخدام علم trust_remote_code=True. قد ترغب في النظر في هذا الخيار بدلاً من دمج مكتبة كاملة.
رفع نموذج PyTorch باستخدام huggingface_hub
في حال كان نموذجك نموذج PyTorch (مخصص)، يمكنك الاستفادة من فئة class PyTorchModelHubMixin المتوفرة في مكتبة Python huggingface_hub. وهي فئة بسيطة تضيف قدرات from_pretrained وpush_to_hub إلى أي nn.Module، إلى جانب مقاييس التحميل.
إليك كيفية استخدامه (بافتراض أنك قمت بتشغيل pip install huggingface_hub):
import torch
import torch.nn as nn
from huggingface_hub import PyTorchModelHubMixin
class MyModel(
nn.Module,
PyTorchModelHubMixin,
# optionally, you can add metadata which gets pushed to the model card
repo_url="your-repo-url",
pipeline_tag="text-to-image",
license="mit",
):
def __init__(self, num_channels: int, hidden_size: int, num_classes: int):
super().__init__()
self.param = nn.Parameter(torch.rand(num_channels, hidden_size))
self.linear = nn.Linear(hidden_size, num_classes)
def forward(self, x):
return self.linear(x + self.param)
# create model
config = {"num_channels": 3, "hidden_size": 32, "num_classes": 10}
model = MyModel(**config)
# save locally
model.save_pretrained("my-awesome-model")
# push to the hub
model.push_to_hub("your-hf-username/my-awesome-model")
# reload
model = MyModel.from_pretrained("your-hf-username/my-awesome-model")كما ترون، المتطلب الوحيد هو أن يرث نموذجك من PyTorchModelHubMixin. سيتم تسلسل جميع سمات الكائن تلقائيًا إلى ملف config.json. لاحظ أن طريقة init لا يمكنها قبول حُجج قابلة للتسلسل إلى JSON فقط. يتم دعم فئات البيانات في Python.
يأتي هذا مع مقاييس تنزيل آلية، مما يعني أنه يمكنك الاطلاع على عدد مرات تنزيل النموذج، بالطريقة نفسها التي تتوفر بها هذه المقاييس للنماذج المتكاملة بشكل أصلي في مكتبات Transformers وDiffusers أو Timm. مع فئة المزج هذه، يُخزَّن كل نقطة تحقق منفصلة على Hub في مستودع واحد يتكون من ملفين:
- ملف
pytorch_model.binأوmodel.safetensorsيحتوي على الأوزان - ملف
config.jsonوهو نسخة مُسلسلة من إعدادات النموذج. تُستخدم هذه الفئة لعدّ مقاييس التنزيل: في كل مرة يستدعي فيها المستخدمfrom_pretrainedلتحميلconfig.json، يزداد العدّاد بمقدار واحد. راجع هذا الدليل حول مقاييس التنزيل الآلية.
يُوصى بإضافة بطاقة نموذج إلى كل نقطة تحقق حتى يتمكن الأشخاص من قراءة ما يدور حوله النموذج، والحصول على رابط إلى الورقة البحثية، وما إلى ذلك.
قم بزيارة توثيق huggingface_hub لمعرفة المزيد.
بديلًا عن ذلك، يمكن ببساطة رفع الملفات أو المجلدات إلى المستودع برمجيًا: https://huggingface.co/docs/huggingface_hub/guides/upload.
استخدام Git
أخيرًا، نظرًا لأن مستودعات النماذج هي ببساطة مستودعات Git، يمكنك أيضًا استخدام Git لدفع ملفات نموذجك إلى Hub. اتبع الدليل حول البدء باستخدام المستودعات للتعرف على كيفية استخدام سطر الأوامر git لالتزام ودفع نماذجك.