Hub documentation
Görevler
Görevler
Görev nedir?
Görevler, yani pipeline türleri, her modelin API'sinin “şeklini” (girdiler ve çıktıları) tanımlar ve herhangi bir model için hangi Inference API'sinin ve widget'ın görüntülenmek istendiğini belirlemek için kullanılır.

Bu sınıflandırma nispeten kaba tanelidir (model etiketlerinizde her zaman daha ince taneli görev adları ekleyebilirsiniz), bu nedenle yeni bir görev oluşturmanız nadiren gerekir. Yeni bir görev için destek eklemek istiyorsanız, bu belge gerekli adımları açıklar.
Genel Bakış
Hub'a yeni bir görevin entegre edilmesi şu anlama gelir:
- Kullanıcılar, belirli bir görevin tüm modellerini – ve veri kümelerini – arayabilir.
- Inference API bu görevi destekler.
- Kullanıcılar, modelleri doğrudan widget ile deneyebilir. 🏆
Tüm adımları kendinizin uygulaması gerekmediğini unutmayın. Yeni bir görev eklemek topluluk çabasıdır ve birden fazla kişi katkıda bulunabilir. 🧑🤝🧑
Süreci başlatmak için huggingface_hub deposunda yeni bir sorun (issue) açın. Lütfen “Adding a new task” şablonunu kullanın. ⚠️Herhangi bir kod yazmadan önce bu belgeyi gözden geçirmeniz önerilir. ⚠️
İlk adım, önerdiğiniz görev için bir model yüklemektir. Yeni görev için Hub'da bir modeliniz olduğunda, bir sonraki adım onu Inference API'de etkinleştirmektir. Seçebileceğiniz üç tür destek vardır:
- 🤗
transformersmodeli kullanma - 🐳 resmi olarak desteklenen bir kütüphaneden bir model kullanma
- 🖨️ özel çıkarım koduna sahip bir model kullanma. Bu deneysel seçeneğin dezavantajları vardır, bu nedenle diğer yaklaşımlardan birini kullanmanızı öneririz.
Son olarak, Hub'daki entegrasyonu tamamlayan görev simgesi ve widget gibi birkaç kullanıcı arayüzü öğesi ekleyebilirsiniz. 📷
Bazı adımlar birbirinden bağımsızdır; belirli bir sırayla yapılması gerekmez. Simge eklemek için Inference API’sine ihtiyacınız yoktur. Bu, henüz tam bir entegrasyon olmasa bile kullanıcıların belirli bir görevin modellerini aramaya devam edebileceği anlamına gelir.
Hub'a yeni görevler ekleme
Hugging Face transformers kütüphanesini kullanma
Modeliniz transformers-tabanlı bir modelse, Inference API görevi ile pipeline sınıfı arasında 1:1 bir eşleme vardır. transformers kütüphanesinden bazı örnek PR'ler şunlardır:
Pipeline gönderilip dağıtıldıktan sonra, modeliniz için Inference API'yi kullanabileceksiniz.
Desteklenen bir kitaplıkla Topluluk Çıkarım API'sini kullanma
Hub, Community Inference API kapsamında 10'dan fazla açık kaynak kütüphaneyi de destekler.
Yeni bir görev eklemek nispeten basittir ve 2 PR gerektirir:
- PR 1: API'ye yeni görevi ekleme doğrulama. Bu kod, çıkarım girdisinin belirli bir görev için geçerli olduğunu sağlar. Bazı PR örnekleri:
- PR 2: Yeni görevi bir kitaplık docker imajına ekleyin. Diğer kitaplıklara entegrasyonu kolaylaştırmak için bir şablon da eklemelisiniz.
docker_images/common/app/pipelinesİşte bir örnek PR:
Hızlı bir prototip için Topluluk Çıkarım API'si Ekleme
Modelim hiçbir kütüphane tarafından desteklenmiyor. Çaresiz miyim? 😱
Bu kullanım senaryoları için Hugging Face Spaces kullanmanızı öneririz.
Arayüz öğeleri
Hub, kullanıcıların modelleri belirli bir göreve göre filtrelemesine olanak tanır. Bunu yapmak için görevi birkaç yere eklemeniz gerekir. Ayrıca görev için bir simge de seçebilirsiniz!
- Görev türünü
Types.tsdosyasına ekleyin
huggingface.js/packages/tasks/src/pipelines.ts dosyasında birkaç şey yapmanız gerekiyor
- Tipi
PIPELINE_DATAiçine ekleyin. Not: pipeline tipleri farklı kategorilere (NLP, Ses, Bilgisayarlı Görü ve diğerleri) ayrılmıştır. - Ayrıca huggingface.js/packages/tasks/src/tasks/index.ts dosyasındaki küçük değişiklikleri de doldurmanız gerekecektir.
- Bir simge seçin
lib/Icons dizinine bir simge ekleyebilirsiniz. Genellikle https://icones.js.org/collection/carbon adresinden carbon simgeleri seçeriz. Ayrıca simgeyi PipelineIcon bileşenine de ekleyin.
Widget
Görev üretim ortamına alındığında, kullanıcıların tarayıcılarında modellerle doğrudan oynayabilmelerini sağlayacak bir yöntem uygulamaktan daha heyecan verici ne olabilir? 🤩 Tüm widget'ları burada bulabilirsiniz.
Bir widget ile katkıda bulunmak isterseniz, tüm widget'ların uygulamasına göz atabilirsiniz.
Update on GitHub