? ♀️Runhouse?
? Willkommen zu Hause!
Runhouse ermöglicht eine schnelle, kostengünstige Entwicklung des maschinellen Lernens in Forschung und Produktion. Sie können Python -Funktionen und Klassen in eine Ihrer eigenen Cloud -Computerinfrastrukturen senden und sie eifrig so nennen, als wären sie lokal. Das heisst:
- Sie können Ihren Code im Remote -GPUs oder eines anderen leistungsstarken Infra, wie Ray, Spark oder Kubernetes, von Ihrem Laptop nativ ausführen und debuggen. Ihr Anwendungscode wird dann in CI/CD oder Produktion ausgeführt, wobei die Arbeiten weiterhin in die Remote-Infra versandt werden.
- Ihre Anwendung, einschließlich der Infrastrukturschritte, wird in Code auf eine Weise erfasst, die manuelles Grunzwerk beseitigt und genau in Ihrem Team und in der gesamten Forschung und Produktion reproduzierbar ist.
- Ihre Flexibilität zu skalieren und kostenoptimiert ist unübertroffen, da Teams häufig Kosteneinsparungen von ~ 50%erzielen.
Das Orchestrieren zwischen Clustern, Regionen oder Wolken ist trivial, ebenso wie Skalierung, Fehlertoleranz oder mehrstufige Workflows.
Wofür ist Runhouse?
- Wenn die Forschung zu Produkte langsam und schmerzhaft ist, beide aufgrund nicht übereinstimmender Forschungs- und Produktionsdaten/-umgebungen und der mangelnden Debugierbarkeit von Orchestrator-Pipelines.
- Wenn Teams eine Infrara-agnostische Möglichkeit benötigen, um Python auszuführen, um einen einzigen Workflow über heterogene Berechnungen über flexibel durchzuführen und sogar auf mehreren Cloud-Anbietern zu laufen.
- Beenden Sie die Frustration auf Plattformen-in-a-Boxen wie Sagemaker oder Vertex und wechseln zu einer flexibleren Lösung, um ML-Code zu entwickeln und bereitzustellen.
- Wachsende ML-Reife, wenn Organisationen von einmaligen ML-Projekten zu ML-Schwungrad im Bereich des im Bereiche staatlichen ML wechseln.
Highlights:
- Entsenden Sie Python -Funktionen, Klassen und Daten sofort an die Remote -Infra und nennen Sie sie eifrig, als wären sie lokal. Der Einsatz/die Umsetzung ist nahezu sofort und Protokolle werden zurückgeführt, wodurch die Iteration extrem schnell wird.
- ? Keine DSL, Dekorateure, Yaml, Cli -Zeiger oder Kesselplatten. Nur Ihre eigene reguläre Python, die für überall, wo Sie Python ausführen, eingesetzt werden können.
- ? ? Es ist keine spezielle Verpackung oder Bereitstellungsverarbeitung erforderlich. Forschungs- und Produktionscode sind identisch. Rufen Sie Runhouse-deployed-Funktionen von CI/CD, Orchestern oder Anwendungen wie einem Mikroservice an.
- ? ? BYO-INFRA mit umfangreicher und wachsender Unterstützung-Ray, Kubernetes, AWS, GCP, Azure, Lokal, On-Prem und mehr.
- ? Extreme Reproduzierbarkeit und Portabilität. Es gibt kein Lock-In, denn wenn Sie die günstigsten Preise verschieben, skalieren oder auswählen möchten, ist das Ändern von Infra so einfach wie die Änderung der 1-Zeile, die einen anderen Cluster angibt.
- ? ♀️ Teilen Sie Python -Funktionen oder Klassen als robuste Dienste, einschließlich HTTPS, Auth, Beobachtbarkeit, Skalierung, benutzerdefinierten Domänen, Geheimnisse, Versionen und vielem mehr.
- ? ? Unterstützen Sie komplexe Workflows oder Dienste und erweiterte Logik, da Ihre Komponenten entkoppelt sind und Infra/Module mit Code interaktiv sind.
Die Runhouse -API ist einfach. Senden Sie Ihre Module (Funktionen und Klassen) in Umgebungen (Arbeitsprozesse) auf Recheninfra wie folgt:
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 ()) Mit der obigen einfachen Struktur können Sie erstellen, anrufen und teilen:
- AI-Primitive : Vorverarbeitung, Training, Feinabstimmung, Bewertung, Inferenz
- Dienste höherer Ordnung : Mehrschritt-Inferenz, E2E-Workflows, Bewertungsstufe, HPO
- ? UAT -Endpunkte : Sofortige Endpunkte für Kundenteams zum Testen und Integrieren
- ? Best-Practice-Dienstprogramme : PII-Verschleierung, Inhalts Moderation, Datenvergrößerung
? ️ Infra -Überwachung, Ressourcenfreigabe und Versioning mit Runhouse Den
Sie können eine einzigartige Beobachtbarkeit und die Freigabe von Funktionen mit Runhouse Den, einem komplementären Produkt für dieses Repo, freischalten.
Nachdem Sie eine Funktion oder Klasse an einen Remote -Computer gesendet haben, können Sie Runhouse als Service bestehen und als Service weitergeben und ansonsten redundante KI -Aktivitäten in gemeinsame modulare Komponenten in Ihrem Team oder in Ihrem Unternehmen verwandeln.
- Dies macht die gemeinsame Ressource beobachtbar. Mit Den können Sie sehen, wie oft eine Ressource aufgerufen wurde (und von wem) und wie oft die GPU -Nutzung der Box war, auf der sie sich befand.
- Dies verbessert die Kosten.
- Dies verbessert die Geschwindigkeit und Reproduzierbarkeit. Vermeiden Sie es, einen leicht unterschiedlichen Code pro Pipeline bereitzustellen, und stellen Sie die Ergebnisse einer verbesserten Methode für alle nach veröffentlichten Bereitstellung bereit.
Melden Sie sich von überall an, um Ressourcen zu speichern, zu teilen und zu laden, die Verwendung, Protokolle und Berechnung der Auslastung in einem einzigen Glasscheiben zu beobachten:
oder aus Python:
import runhouse as rh
rh . login ()
Erweitern Sie das obige Beispiel, um unsere App über Den zu teilen und zu laden:
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 ()
Unterstützte Berechnung infra
Bitte greifen Sie nach (Vorname bei Run.house), wenn Sie hier Ihren Lieblingsberechnen nicht sehen.
- Lokal - unterstützt
- Single Box - unterstützt
- Ray Cluster - unterstützt
- Kubernetes - unterstützt
- Amazon Web Services (AWS)
- EC2 - unterstützt
- Eks - unterstützt
- Lambda - Alpha
- Google Cloud Platform (GCP)
- GCE - unterstützt
- GKE - unterstützt
- Microsoft Azure
- VMS - unterstützt
- AKs - unterstützt
- Lambda Labs - unterstützt
- Modale Labors - geplant
- Slurm - Erkundig
? ? Erfahren Sie mehr
? Erste Schritte : Installation, Setup und eine kurze Exemplar.
Dokumente : Detaillierte API-Referenzen, grundlegende API-Beispiele und -Verweiterungen, End-to-End-Tutorials und hochrangige Architekturübersicht.
?
? Discord : Treten Sie unserer Community bei, um Fragen zu stellen, Ideen auszutauschen und Hilfe zu erhalten.
? Twitter : Folgen Sie uns für Updates und Ankündigungen.
? Eitung Hilfe bekommen
Melden Sie uns über Discord, senden Sie uns eine E -Mail (Vorname bei Run.house) oder erstellen Sie ein Problem.
? ♀️ beitragen
Wir begrüßen Beiträge! Bitte überprüfen Sie den Beitrag.