Hub documentation

Görevler

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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:

  • 🤗 transformers modeli 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:

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!

  1. Görev türünü Types.ts dosyasına ekleyin

huggingface.js/packages/tasks/src/pipelines.ts dosyasında birkaç şey yapmanız gerekiyor

  • Tipi PIPELINE_DATA iç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.
  1. 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