? ♀Runhouse?
- ยินดีต้อนรับกลับบ้าน!
Runhouse ช่วยให้การพัฒนาการเรียนรู้ของเครื่องจักรอย่างรวดเร็วและคุ้มค่าในการวิจัยและการผลิต ช่วยให้คุณสามารถส่งฟังก์ชั่น Python และคลาสไปยังโครงสร้างพื้นฐานการคำนวณคลาวด์ของคุณเองและเรียกพวกเขาอย่างกระตือรือร้นราวกับว่าพวกเขาอยู่ในท้องถิ่น หมายความว่า:
- คุณสามารถเรียกใช้และดีบักรหัสของคุณบน GPU ระยะไกลหรืออินฟาที่ทรงพลังอื่น ๆ เช่นเรย์สปาร์กหรือ kubernetes จากแล็ปท็อปของคุณ รหัสแอปพลิเคชันของคุณจะทำงานตาม CI/CD หรือการผลิตยังคงส่งงานไปยัง Infra ระยะไกล
- แอปพลิเคชันของคุณรวมถึงขั้นตอนโครงสร้างพื้นฐานนั้นถูกจับในรหัสในลักษณะที่กำจัดงานทำสงครามด้วยตนเองและสามารถทำซ้ำได้อย่างแน่นอนในทีมของคุณและในการวิจัยและการผลิต
- ความยืดหยุ่นของคุณในการปรับขนาดและการเพิ่มค่าใช้จ่ายนั้นไม่มีใครเทียบได้กับทีมมักจะเห็นการประหยัดต้นทุนประมาณ 50%
การเตรียมการข้ามกลุ่มภูมิภาคหรือเมฆเป็นเรื่องเล็กน้อยเช่นเดียวกับตรรกะที่ซับซ้อนเช่นการปรับขนาดการทนต่อความผิดพลาดหรือเวิร์กโฟลว์หลายขั้นตอน
Runhouse มีไว้เพื่ออะไร?
- เมื่อการวิจัยเพื่อการผลิตช้าและเจ็บปวดทั้งเนื่องจากข้อมูลการวิจัยและการผลิตที่ไม่ตรงกันและสภาพแวดล้อมและการขาดความสามารถในการหักบัญชี
- หากทีมต้องการวิธี Infra-Agnostic ในการดำเนินการ Python เพื่อใช้เวิร์กโฟลว์เดียวอย่างยืดหยุ่นในการคำนวณที่แตกต่างกันแม้จะทำงานบนผู้ให้บริการคลาวด์หลายราย
- การสิ้นสุดความหงุดหงิดที่แพลตฟอร์มในกล่องเช่น Sagemaker หรือ Vertex และย้ายไปยังโซลูชันที่ยืดหยุ่นมากขึ้นในการพัฒนาและปรับใช้รหัส ML
- การเติบโตของ ML วุฒิภาวะในขณะที่องค์กรเปลี่ยนจากโครงการ ML แบบครั้งเดียวไปเป็นมู่เล่ ML ในระดับ
ไฮไลท์:
- การจัดส่งฟังก์ชัน Python คลาสและข้อมูลไปยัง Infra ระยะไกลทันทีและเรียกพวกเขาอย่างกระตือรือร้นราวกับว่าพวกเขาอยู่ในท้องถิ่น การปรับใช้/การปรับใช้เกือบจะทันทีและบันทึกจะถูกสตรีมกลับทำให้การวนซ้ำเร็วมาก
- - ไม่มี DSL, นักตกแต่ง, Yaml, CLI คาถาหรือแผ่นหม้อต้ม เพียงแค่งูหลามปกติของคุณเองสามารถใช้งานได้ทุกที่ที่คุณเรียกใช้ Python
- ?? ไม่จำเป็นต้องใช้บรรจุภัณฑ์พิเศษหรือการประมวลผลการปรับใช้ การวิจัยและรหัสการผลิตเหมือนกัน การโทรหาฟังก์ชั่นการใช้งาน Runhouse จาก CI/CD, Orchestrators หรือแอพพลิเคชั่นเช่นบริการขนาดเล็ก
- ?? BYO-INFRA ที่มีการสนับสนุนที่กว้างขวางและกำลังเติบโต-Ray, Kubernetes, AWS, GCP, Azure, ท้องถิ่น, ในสถานที่และอื่น ๆ
- ? ความสามารถในการทำซ้ำและพกพาอย่างมาก ไม่มีการล็อคอินเพราะเมื่อคุณต้องการเลื่อนปรับขนาดหรือเลือกราคาที่ถูกที่สุดการเปลี่ยนอินฟานั้นง่ายพอ ๆ กับการเปลี่ยน 1 บรรทัดที่ระบุคลัสเตอร์ที่แตกต่างกัน
- ? ♀ แบ่งปันฟังก์ชั่นหรือคลาสของ Python เป็นบริการที่มีประสิทธิภาพรวมถึง HTTPS, Auth, Auth, Auth, การสังเกต, การปรับขนาด, โดเมนที่กำหนดเอง, ความลับ, การกำหนดเวอร์ชันและอื่น ๆ
- ?? รองรับเวิร์กโฟลว์หรือบริการที่ซับซ้อนและตรรกะขั้นสูงเนื่องจากส่วนประกอบของคุณถูกยกเลิกคู่และอินฟา/โมดูลสามารถโต้ตอบกับรหัสได้
Runhouse API นั้นง่าย ส่ง โมดูล ของคุณ (ฟังก์ชั่นและคลาส) ไปยัง สภาพแวดล้อม (กระบวนการทำงาน) ในการคำนวณ 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 ()) ด้วยโครงสร้างที่เรียบง่ายข้างต้นคุณสามารถสร้างโทรและแบ่งปัน:
- AI Primitives : การประมวลผลล่วงหน้าการฝึกอบรมการปรับแต่งการประเมินผลการอนุมาน
- บริการที่มีลำดับสูงกว่า : การอนุมานหลายขั้นตอน, เวิร์กโฟลว์ E2E, Gauntlets ประเมินผล, HPO
- - จุดสิ้นสุดของ UAT : จุดสิ้นสุดทันทีสำหรับทีมลูกค้าในการทดสอบและรวม
- - ยูทิลิตี้แนวปฏิบัติที่ดีที่สุด : การทำให้งงงวย PII, การกลั่นกรองเนื้อหา, การเพิ่มข้อมูล
️การตรวจสอบ Infra การแบ่งปันทรัพยากรและการกำหนดเวอร์ชันกับ Runhouse Den
คุณสามารถปลดล็อกคุณสมบัติการสังเกตและการแบ่งปันที่ไม่ซ้ำกันกับ Runhouse Den ซึ่งเป็นผลิตภัณฑ์เสริมสำหรับ repo นี้
หลังจากที่คุณได้ส่งฟังก์ชั่นหรือคลาสไปยังการคำนวณระยะไกล Runhouse ช่วยให้คุณคงอยู่และแบ่งปันเป็นบริการเปลี่ยนกิจกรรม AI ซ้ำซ้อนเป็นส่วนประกอบโมดูลาร์ทั่วไปทั่วทั้งทีมหรือ บริษัท ของคุณ
- สิ่งนี้ทำให้ทรัพยากรที่ใช้ร่วมกันสามารถสังเกตได้ ด้วย Den คุณจะเห็นว่ามีการเรียกทรัพยากรบ่อยเพียงใด (และโดยผู้ที่) และการใช้ประโยชน์จาก GPU ของกล่องที่มันเปิดอยู่
- สิ่งนี้จะช่วยเพิ่มค่าใช้จ่าย - คิดว่าท่อส่ง 10 มล. และนักวิจัยเรียกการประมวลผลล่วงหน้าการฝึกอบรมการประเมินผลหรือการอนุมานแบทช์แบบเดียวกันแทนที่จะจัดสรรทรัพยากรการคำนวณของตนเอง
- สิ่งนี้ช่วยเพิ่มความเร็วและการทำซ้ำ หลีกเลี่ยงการปรับใช้รหัสที่แตกต่างกันเล็กน้อยต่อไปป์ไลน์และปรับใช้ผลลัพธ์ของวิธีการที่ได้รับการปรับปรุงให้กับทุกคนเมื่อเผยแพร่
เข้าสู่ระบบจากทุกที่เพื่อบันทึกแบ่งปันและโหลดทรัพยากรและสังเกตการใช้งานบันทึกและคำนวณการใช้ประโยชน์ในบานหน้าต่างเดียว:
หรือจาก Python:
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)
- GCE - รองรับ
- GKE - รองรับ
- Microsoft Azure
- VMS - รองรับ
- AKS - รองรับ
- Lambda Labs - รองรับ
- Modal Labs - วางแผน
- Slurm - สำรวจ
?? เรียนรู้เพิ่มเติม
- การเริ่มต้นใช้งาน : การติดตั้งการตั้งค่าและคำแนะนำอย่างรวดเร็ว
เอกสาร : การอ้างอิง API โดยละเอียดตัวอย่าง API พื้นฐานและคำแนะนำการสอนแบบครบวงจรและภาพรวมสถาปัตยกรรมระดับสูง
? บล็อก : การดำน้ำลึกลงไปในคุณสมบัติ Runhouse ใช้เคสและอนาคตของ AI Infra
- Discord : เข้าร่วมชุมชนของเราเพื่อถามคำถามแบ่งปันแนวคิดและรับความช่วยเหลือ
- Twitter : ติดตามเราเพื่อรับการอัปเดตและประกาศ
? ♂ ได้รับความช่วยเหลือ
ส่งข้อความถึงเราเกี่ยวกับ Discord ส่งอีเมลถึงเรา (ชื่อแรกที่ Run.House) หรือสร้างปัญหา
? ♀ มีส่วนร่วม
เรายินดีต้อนรับผลงาน! โปรดตรวจสอบการมีส่วนร่วม