? ️Runhouse?
? Selamat Datang di rumah!
Runhouse memungkinkan pengembangan pembelajaran mesin yang cepat dan hemat biaya di seluruh penelitian dan produksi. Ini memungkinkan Anda untuk mengirimkan fungsi dan kelas Python ke infrastruktur komputasi cloud Anda sendiri, dan memanggilnya dengan penuh semangat seolah -olah mereka adalah lokal. Ini berarti:
- Anda dapat secara alami menjalankan dan men -debug kode Anda pada GPU jarak jauh atau infra kuat lainnya, seperti Ray, Spark, atau Kubernetes, dari laptop Anda. Kode aplikasi Anda kemudian menjalankan apa adanya dalam CI/CD atau produksi, masih mengirimkan pekerjaan ke infra jarak jauh.
- Aplikasi Anda, termasuk langkah -langkah infrastruktur, ditangkap dalam kode dengan cara yang menghilangkan gruntwork manual dan benar -benar dapat direproduksi di seluruh tim Anda dan di seluruh penelitian dan produksi.
- Fleksibilitas Anda untuk mengukur dan mengoptimalkan biaya tidak tertandingi, dengan tim sering melihat penghematan biaya ~ 50%.
Orkestrasi lintas kelompok, daerah, atau awan sepele, seperti halnya logika kompleks seperti penskalaan, toleransi kesalahan, atau alur kerja multi-langkah.
Untuk apa runhouse?
- Ketika penelitian-ke-produksi lambat dan menyakitkan, baik karena penelitian & data/lingkungan produksi yang tidak cocok dan kurangnya pipa pipa orkestra.
- Jika tim membutuhkan cara infra-agnostik untuk mengeksekusi python untuk secara fleksibel menjalankan alur kerja tunggal melintasi komputasi heterogen, bahkan berjalan pada beberapa penyedia cloud.
- Mengakhiri frustrasi di platform-in-a-box seperti Sagemaker atau Vertex, dan pindah ke solusi yang lebih fleksibel untuk mengembangkan dan menggunakan kode ML.
- Menumbuhkan kematangan ML, ketika organisasi beralih dari proyek ML satu kali ke roda gila ML skala.
Highlight:
- Mengirimkan fungsi Python, kelas, dan data ke infra jarak jauh secara instan, dan memanggilnya dengan penuh semangat seolah -olah mereka adalah orang lokal. Penyebaran/pemindahan hampir instan dan log dialirkan kembali, membuat iterasi sangat cepat.
- ? Tidak ada DSL, dekorator, YAML, mantra CLI, atau boilerplate. Hanya ular python biasa Anda, dapat digunakan untuk di mana saja Anda menjalankan ular python.
- ? ? Tidak diperlukan pengemasan atau pemrosesan penyebaran khusus; Kode penelitian dan produksi identik. Hubungi fungsi runhouse yang dikerahkan dari CI/CD, orkestrator, atau aplikasi seperti layanan mikro.
- ? ? Byo-infra dengan dukungan yang luas dan berkembang-Ray, Kubernetes, AWS, GCP, Azure, Lokal, On-Prem, dan banyak lagi.
- ? Reproduksibilitas dan portabilitas yang ekstrem. Tidak ada penguncian, karena ketika Anda ingin menggeser, skala, atau memilih harga termurah, mengubah infra semudah mengubah 1 baris yang menentukan cluster yang berbeda.
- ?
- ? ? Mendukung alur kerja atau layanan yang kompleks dan logika canggih karena komponen Anda tidak ditambah dan infra/modul dapat diinteraksi dengan kode.
API Runhouse sederhana. Kirim modul Anda (fungsi dan kelas) ke lingkungan (proses pekerja) pada infra komputasi, seperti ini:
import runhouse as rh
from diffusers import StableDiffusionPipeline
def sd_generate ( prompt , ** inference_kwargs ):
model = StableDiffusionPipeline . from_pretrained ( "stabilityai/stable-diffusion-2-base" ). to ( "cuda" )
return model ( prompt , ** inference_kwargs ). images
if __name__ == "__main__" :
img = rh . Image ( "sd_image" ). install_packages ([ "torch" , "transformers" , "diffusers" ])
gpu = rh . cluster ( name = "rh-a10x" , instance_type = "A10G:1" , provider = "aws" , image = img ). up_if_not ()
# Deploy the function and environment (syncing over local code changes and installing dependencies)
remote_sd_generate = rh . function ( sd_generate ). to ( gpu )
# This call is actually an HTTP request to the app running on the remote server
imgs = remote_sd_generate ( "A hot dog made out of matcha." )
imgs [ 0 ]. show ()
# You can also call it over HTTP directly, e.g. from other machines or languages
print ( remote_sd_generate . endpoint ()) Dengan struktur sederhana di atas, Anda dapat membangun, menelepon, dan berbagi:
- AI Primitif : preprocessing, pelatihan, penyesuaian, evaluasi, inferensi
- Layanan tingkat tinggi : inferensi multi-langkah, alur kerja E2E, Gauntlets Evaluasi, HPO
- ? UAT Endpoints : Titik akhir instan untuk tim klien untuk menguji dan mengintegrasikan
- ? Utilitas praktik terbaik : Kebingungan PII, moderasi konten, augmentasi data
?
Anda dapat membuka kunci fitur observabilitas dan berbagi yang unik dengan Runhouse Den, produk pelengkap untuk repo ini.
Setelah Anda mengirim fungsi atau kelas untuk menghitung jarak jauh, Runhouse memungkinkan Anda untuk bertahan dan membagikannya sebagai layanan, mengubah aktivitas AI yang berlebihan menjadi komponen modular umum di seluruh tim atau perusahaan Anda.
- Ini membuat sumber daya bersama dapat diamati. Dengan Den, Anda dapat melihat seberapa sering sumber daya disebut (dan oleh siapa), dan apa pemanfaatan GPU kotak itu.
- Ini meningkatkan biaya - pikirkan 10 ml pipa dan peneliti yang menyebut preprocessing, pelatihan, evaluasi, atau layanan inferensi batch bersama yang sama, daripada masing -masing mengalokasikan sumber daya komputasi mereka sendiri
- Ini meningkatkan kecepatan dan reproduktifitas. Hindari menggunakan kode yang sedikit berbeda per pipa, dan sebarkan hasil metode yang ditingkatkan untuk semua orang yang pernah diterbitkan.
Masuk dari mana saja untuk menyimpan, berbagi, dan memuat sumber daya dan mengamati penggunaan, log, dan menghitung pemanfaatan pada satu panel kaca:
atau dari Python:
import runhouse as rh
rh . login ()
Memperluas contoh di atas untuk berbagi dan memuat aplikasi kami melalui DEN:
remote_sd_generate . share ([ "[email protected]" ])
# The service stub can now be reloaded from anywhere, always at yours and your collaborators' fingertips
# Notice this code doesn't need to change if you update, move, or scale the service
remote_sd_generate = rh . function ( "/your_username/sd_generate" )
imgs = remote_sd_generate ( "More matcha hotdogs." )
imgs [ 0 ]. show ()
Infra komputasi yang didukung
Harap hubungi (nama depan di run.house) jika Anda tidak melihat komputasi favorit Anda di sini.
- Lokal - didukung
- Kotak tunggal - didukung
- Ray Cluster - didukung
- Kubernetes - didukung
- Amazon Web Services (AWS)
- EC2 - didukung
- EKS - didukung
- Lambda - Alpha
- Google Cloud Platform (GCP)
- GCE - didukung
- GKE - didukung
- Microsoft Azure
- VM - didukung
- AKS - didukung
- Lambda Labs - didukung
- Modal Labs - Direncanakan
- Slurm - Exploratory
? ? Pelajari lebih lanjut
? Memulai : Instalasi, Pengaturan, dan Walkthrough Cepat.
Dokumen : Referensi API yang terperinci, contoh API dasar dan panduan, tutorial ujung ke ujung, dan tinjauan arsitektur tingkat tinggi.
? Blog : Deep Menyelam ke dalam fitur Runhouse, Kasus Penggunaan, dan Masa Depan AI Infra.
? Perselisihan : Bergabunglah dengan komunitas kami untuk mengajukan pertanyaan, berbagi ide, dan dapatkan bantuan.
? Twitter : Ikuti kami untuk pembaruan dan pengumuman.
? ♂️ Mendapatkan bantuan
Pesan kami di Perselisihan, email kami (nama depan di run.house), atau buat masalah.
? ️ Berkontribusi
Kami menyambut kontribusi! Silakan periksa Kontribusi.