Hub documentation
Tugas
Tugas
Apa itu tugas?
Tugas, atau tipe pipeline, menggambarkan “bentuk” dari API masing-masing model (input dan output) dan digunakan untuk menentukan Inference API serta widget mana yang ingin ditampilkan untuk model tertentu.

Klasifikasi ini relatif kasar (Anda selalu dapat menambahkan nama tugas yang lebih rinci dalam tag model Anda), sehingga Anda jarang perlu membuat tugas baru. Jika Anda ingin menambahkan dukungan untuk tugas baru, dokumen ini menjelaskan langkah-langkah yang diperlukan.
Ikhtisar
Adanya tugas baru yang terintegrasi ke dalam Hub berarti:
- Pengguna dapat mencari semua model – dan dataset – untuk tugas tertentu.
- API Inferensi mendukung tugas tersebut.
- Pengguna dapat mencoba model secara langsung dengan widget. 🏆
Perlu dicatat bahwa Anda tidak perlu mengimplementasikan semua langkah sendiri. Menambahkan tugas baru adalah upaya komunitas, dan banyak orang dapat berkontribusi. 🧑🤝🧑
Untuk memulai prosesnya, buka issue baru di repositori huggingface_hub. Silakan gunakan template “Adding a new task”. ⚠️Sebelum melakukan penulisan kode, disarankan untuk membaca dokumen ini terlebih dahulu. ⚠️
Langkah pertama adalah mengunggah model untuk tugas yang Anda usulkan. Setelah Anda memiliki model di Hub untuk tugas baru tersebut, langkah selanjutnya adalah mengaktifkannya di Inference API. Ada tiga jenis dukungan yang dapat Anda pilih:
- 🤗 menggunakan model
transformers - 🐳 menggunakan model dari perpustakaan yang didukung secara resmi
- 🖨️ menggunakan model dengan kode inferensi kustom. Opsi eksperimental ini memiliki kekurangan, sehingga kami merekomendasikan penggunaan salah satu pendekatan lainnya.
Terakhir, Anda dapat menambahkan beberapa elemen UI, seperti ikon tugas dan widget, yang melengkapi integrasi di Hub. 📷
Beberapa langkah bersifat ortogonal; Anda tidak perlu melakukannya secara berurutan. Anda tidak perlu menggunakan Inference API untuk menambahkan ikon. Artinya, meskipun integrasi penuh belum tersedia, pengguna tetap dapat mencari model untuk tugas tertentu.
Menambahkan tugas baru ke Hub
Menggunakan pustaka transformers Hugging Face
Jika model Anda adalah model berbasis transformers, terdapat pemetaan 1:1 antara tugas Inference API dan kelas pipeline. Berikut adalah beberapa contoh PR dari pustaka transformers:
Setelah pipeline dikirim dan di-deploy, Anda seharusnya dapat menggunakan Inference API untuk model Anda.
Menggunakan Community Inference API dengan pustaka yang didukung
Hub juga mendukung lebih dari 10 pustaka sumber terbuka di Community Inference API.
Menambahkan tugas baru relatif mudah dan memerlukan 2 PR:
- PR 1: Tambahkan tugas baru ke API validasi. Kode ini memastikan bahwa input inferensi valid untuk tugas tertentu. Beberapa contoh PR:
- PR 2: Tambahkan tugas baru ke dalam image docker pustaka. Anda juga harus menambahkan template ke
docker_images/common/app/pipelinesuntuk memfasilitasi integrasi tugas di pustaka lain. Berikut adalah contoh PR:
Menambahkan Community Inference API untuk prototipe cepat
Model saya tidak didukung oleh pustaka mana pun. Apakah saya sudah habis harapan? 😱
Kami merekomendasikan penggunaan Hugging Face Spaces untuk kasus penggunaan ini.
Elemen UI
Hub memungkinkan pengguna untuk memfilter model berdasarkan tugas tertentu. Untuk melakukannya, Anda perlu menambahkan tugas tersebut ke beberapa tempat. Anda juga dapat memilih ikon untuk tugas tersebut!
- Tambahkan jenis tugas ke
Types.ts
Di huggingface.js/packages/tasks/src/pipelines.ts, Anda perlu melakukan beberapa hal
- Tambahkan tipe ke
PIPELINE_DATA. Perhatikan bahwa tipe pipeline dikelompokkan ke dalam kategori yang berbeda (NLP, Audio, Computer Vision, dan lainnya). - Anda juga perlu mengisi perubahan kecil di huggingface.js/packages/tasks/src/tasks/index.ts
- Pilih ikon
Anda dapat menambahkan ikon di direktori lib/Icons. Kami biasanya memilih ikon carbon dari https://icones.js.org/collection/carbon. Tambahkan juga ikon tersebut ke PipelineIcon.
Widget
Setelah tugas berjalan di produksi, apa yang lebih seru daripada mengimplementasikan cara agar pengguna dapat berinteraksi langsung dengan model di browser mereka? 🤩 Anda dapat menemukan semua widget di sini.
Jika Anda tertarik untuk berkontribusi dengan sebuah widget, Anda dapat melihat implementasi dari semua widget.
Update on GitHub