Hub Python Library documentation
Paradigma Git vs HTTP
Paradigma Git vs HTTP
Perpustakaan huggingface_hub adalah perpustakaan untuk berinteraksi dengan Hugging Face Hub, yaitu kumpulan repositori berbasis git (model, dataset, atau Spaces). Ada dua cara utama untuk mengakses Hub menggunakan huggingface_hub.
Pendekatan pertama, yang disebut pendekatan “berbasis git”, mengandalkan penggunaan perintah git standar secara langsung di terminal. Metode ini memungkinkan Anda untuk mengkloning repositori, membuat commit, dan mendorong perubahan secara manual. Opsi kedua, yang disebut pendekatan “berbasis HTTP”, melibatkan pembuatan permintaan HTTP menggunakan klien HfApi. Mari kita periksa kelebihan dan kekurangan dari masing-masing pendekatan.
Git: pendekatan berbasis CLI historis
Pada awalnya, sebagian besar pengguna berinteraksi dengan Hugging Face Hub menggunakan perintah git biasa seperti git clone, git add, git commit, git push, git tag, atau git checkout.
Pendekatan ini memungkinkan Anda bekerja dengan salinan lokal lengkap dari repositori di mesin Anda, persis seperti dalam pengembangan perangkat lunak tradisional. Hal ini bisa menjadi keuntungan ketika Anda memerlukan akses offline atau ingin bekerja dengan riwayat lengkap sebuah repositori. Namun, hal ini juga memiliki kekurangan: Anda bertanggung jawab untuk menjaga repositori tetap terkini secara lokal, mengelola kredensial, dan mengelola file besar (melalui git-lfs), yang bisa menjadi merepotkan saat bekerja dengan model machine learning atau dataset berukuran besar.
Dalam banyak alur kerja machine learning, Anda mungkin hanya perlu mengunduh beberapa file untuk inferensi atau mengonversi bobot tanpa perlu mengkloning seluruh repositori. Dalam kasus seperti itu, menggunakan git bisa berlebihan dan memperkenalkan kompleksitas yang tidak perlu.
HfApi: klien HTTP yang fleksibel dan praktis
Kelas HfApi dikembangkan untuk menyediakan alternatif dari penggunaan repositori git lokal, yang dapat merepotkan untuk dipelihara, terutama saat menangani model atau dataset berukuran besar. Kelas HfApi menawarkan fungsionalitas yang sama dengan alur kerja berbasis git -seperti mengunduh dan mendorong file serta membuat cabang dan tag- tetapi tanpa kebutuhan akan folder lokal yang harus disinkronkan.
Selain fungsionalitas yang sudah disediakan oleh git, kelas HfApi menawarkan fitur tambahan, seperti kemampuan untuk mengelola repositori, mengunduh file menggunakan caching untuk penggunaan ulang yang efisien, mencari repositori dan metadata di Hub, mengakses fitur komunitas seperti diskusi, PR, dan komentar, serta mengonfigurasi hardware dan secrets Spaces.
Apa yang harus saya gunakan? Dan kapan?
Secara keseluruhan, pendekatan berbasis HTTP adalah cara yang direkomendasikan untuk menggunakan huggingface_hub dalam semua kasus. HfApi memungkinkan Anda untuk menarik dan mendorong perubahan, bekerja dengan PR, tag, dan cabang, berinteraksi dengan diskusi, dan banyak lagi.
Namun, tidak semua perintah git tersedia melalui HfApi. Beberapa mungkin tidak akan pernah diimplementasikan, tetapi kami selalu berusaha untuk meningkatkan dan menutup kesenjangan tersebut. Jika Anda tidak melihat kasus penggunaan Anda tercakup, silakan buka isu di GitHub! Kami menyambut umpan balik untuk membantu membangun ekosistem HF bersama dan untuk pengguna kami.
Preferensi terhadap HfApi berbasis HTTP di atas perintah git langsung tidak berarti bahwa versioning git akan hilang dari Hugging Face Hub dalam waktu dekat. Selalu dimungkinkan untuk menggunakan git secara lokal dalam alur kerja yang memang membutuhkannya.