؟ ♀runhouse؟
؟ مرحبا بكم!
يتيح Runhouse تطوير التعلم الآلي السريع والفعال من حيث التكلفة عبر البحث والإنتاج. يسمح لك بإرسال وظائف Python والفصول إلى أي من البنية التحتية لحساب السحابة الخاصة بك ، والاتصال بها بشغف كما لو كانت محلية. هذا يعنى:
- يمكنك تشغيل وتصحيح رمزك على وحدات معالجة الرسومات عن بُعد أو غيرها من Infra ، مثل Ray أو Spark أو Kubernetes ، من الكمبيوتر المحمول. يتم تشغيل رمز التطبيق الخاص بك بعد ذلك في CI/CD أو الإنتاج ، ولا يزال يرسل العمل إلى INFRA عن بعد.
- يتم التقاط طلبك ، بما في ذلك خطوات البنية التحتية ، في الكود بطريقة تزيل التنبه اليدوي ويمكن استنساخها تمامًا عبر فريقك وعبر البحث والإنتاج.
- لا مثيل لها ، فإن مرونتك في التوسيع والتحسين التكلفة لا مثيل لها ، حيث تشهد الفرق في كثير من الأحيان وفورات في التكاليف بنسبة 50 ٪ تقريبًا.
يعد التنسيق عبر المجموعات أو المناطق أو السحب تافهة ، كما هو منطق معقد مثل التحجيم أو التسامح مع الأخطاء أو سير العمل متعدد الخطوات.
ما هو Runhouse ل؟
- عندما يكون البحث إلى الإنتاج بطيئًا ومؤلمًا ، سواء بسبب عدم وجود بيانات/بيئات البحث والإنتاج غير المتطابق وافتقار خطوط أنابيب أوركسترا إلى قابلية التصريف.
- إذا كانت الفرق تحتاج إلى طريقة غير محدودة لتنفيذ Python لتشغيل سير عمل واحد بمرونة عبر حساب غير متجانس ، حتى يعمل على مقدمي الخدمات السحابية المتعددة.
- إنهاء الإحباط في منصات في صندوق مثل Sagemaker أو Vertex ، والانتقال إلى حل أكثر مرونة لتطوير ونشر رمز ML.
- النضج المتزايد ML ، مع انتقال المنظمات من مشاريع ML لمرة واحدة إلى دولاب الموازنة ML على نطاق واسع.
أبرز:
- إرسال وظائف Python ، والفئات ، والبيانات إلى INFRA عن بعد على الفور ، واتصل بها بشغف كما لو كانت محلية. النشر/إعادة النشر تقريبًا فوري ويتم بث السجلات مرة أخرى ، مما يجعل التكرار سريعًا للغاية.
- ؟ لا DSL ، ديكور ، yaml ، CLI التعويذات ، أو الغلاية. فقط Python العادية الخاصة بك ، قابلة للنشر في أي مكان تقوم بتشغيل Python.
- ؟ ؟ لا توجد حاجة إلى معالجة خاصة للتغليف أو النشر ؛ رمز البحث والإنتاج متطابق. استدعاء وظائف Runhouse التي تم نشرها من CI/CD أو أوركستورات أو تطبيقات مثل الخدمة الصغيرة.
- ؟ ؟ Byo-Infra بدعم واسع النطاق ومتزايد-Ray ، Kubernetes ، AWS ، GCP ، Azure ، محلي ، على أساس ، وأكثر من ذلك.
- ؟ استنساخ متطرف وقابلية النقل. لا يوجد قفل ، لأنه عندما تريد تغيير أو توسيع أو اختيار أرخص أسعار ، فإن تغيير INFRA سهل مثل تغيير خط واحد يحدد مجموعة مختلفة.
- ؟ ♀ مشاركة وظائف Python أو فئات كخدمات قوية ، بما في ذلك HTTPs ، Auth ، قابلية الملاحظة ، التحجيم ، المجالات المخصصة ، الأسرار ، الإصدار ، وأكثر من ذلك.
- ؟ ؟ دعم سير العمل أو الخدمات المعقدة والمنطق المتقدم نظرًا لأن مكوناتك غير مقترنة ويتم تفاعل INFRA/الوحدات النمطية مع التعليمات البرمجية.
API Runhouse بسيط. أرسل الوحدات النمطية (وظائف وفئات) إلى بيئات (عمليات العمال) على حساب INFRA ، مثل هذا:
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 ()) مع الهيكل البسيط أعلاه ، يمكنك إنشاء واتصال ومشاركة:
- بدائل منظمة العفو الدولية : المعالجة المسبقة ، التدريب ، التقييم ، التقييم ، الاستدلال
- الخدمات ذات الترتيب العالي : الاستدلال متعدد الخطوات ، وسير العمل E2E ، و Gaintlets التقييم ، HPO
- ؟ نقاط نهاية UAT : نقاط النهاية الفورية لفرق العميل لاختبار ودمج
- ؟ أفضل الأدوات المساعدة للتمثيل
مراقبة Infra وتبادل الموارد والإصدار مع Runhouse Den
يمكنك إلغاء قفل الملاحظة الفريدة وميزات المشاركة مع Runhouse Den ، وهو منتج تكميلي لهذا الريبو.
بعد أن أرسلت وظيفة أو فئة إلى حساب عن بُعد ، يتيح لك Runhouse الاستمرار ومشاركتها كخدمة ، وتحول أنشطة الذكاء الاصطناعى المتكررة إلى مكونات معيارية مشتركة عبر فريقك أو شركتك.
- هذا يجعل المورد المشترك يمكن ملاحظته. مع دن ، يمكنك أن ترى عدد المرات التي تم فيها استدعاء المورد (ومن قبل من) ، وما هو استخدام وحدة معالجة الرسومات في الصندوق.
- هذا يحسن التكلفة - فكر في 10 مل من خطوط الأنابيب والباحثين الذين يطلقون نفس المعالجة المسبقة المشتركة أو التدريب أو التقييم أو خدمة الاستدلال الدُفعات ، بدلاً من تخصيص موارد حسابهم الخاصة
- هذا يحسن السرعة والتكاثر. تجنب نشر رمز مختلف قليلاً لكل خط أنابيب ، ونشر نتائج طريقة محسّنة للجميع بمجرد نشرها.
قم بتسجيل الدخول من أي مكان لحفظ الموارد ومشاركتها وتحميلها ومراقبة الاستخدام والسجلات وحساب الاستخدام على جزء واحد من الزجاج:
أو من بيثون:
import runhouse as rh
rh . login ()
تمديد المثال أعلاه لمشاركة تطبيقنا وتحميله عبر 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
يرجى التواصل (الاسم الأول في Run.house) إذا كنت لا ترى حسابك المفضل هنا.
- محلي - مدعوم
- صندوق واحد - مدعوم
- Ray Cluster - مدعوم
- Kubernetes - مدعوم
- Amazon Web Services (AWS)
- EC2 - مدعوم
- EKS - مدعومة
- لامدا - ألفا
- منصة Google Cloud (GCP)
- Microsoft Azure
- Lambda Labs - مدعوم
- مختبرات مشروطة - مخطط لها
- slurm - الاستكشاف
؟ ؟ يتعلم أكثر
؟ البدء : التثبيت ، الإعداد ، وتجول سريع.
مستندات : مراجع واجهة برمجة التطبيقات المفصلة ، وأمثلة API الأساسية والتجول ، والدروس التعليمية من طرف إلى طرف ، ونظرة عامة على الهندسة المعمارية عالية المستوى.
المدونة : الغطس العميق في ميزات Runhouse ، وحالات الاستخدام ، ومستقبل AI Infra.
؟ Discord : انضم إلى مجتمعنا لطرح الأسئلة وتبادل الأفكار والحصول على المساعدة.
؟ Twitter : اتبعنا للحصول على التحديثات والإعلانات.
؟ الحصول على المساعدة
أرسل لنا على Discord ، أو إرسال بريد إلكتروني إلينا (الاسم الأول في Run.house) ، أو إنشاء مشكلة.
؟ ♀ المساهمة
نرحب بالمساهمات! يرجى التحقق من المساهمة.