Exafunction از AWS Inferentia پشتیبانی می کند تا بهترین عملکرد قیمت را برای استنتاج یادگیری ماشینی مبتنی بر هوش داده PlatoBlockchain باز کند. جستجوی عمودی Ai.

Exafunction از AWS Inferentia برای باز کردن بهترین عملکرد قیمت برای استنتاج یادگیری ماشین پشتیبانی می کند

در تمام صنایع، مدل‌های یادگیری ماشین (ML) عمیق‌تر می‌شوند، گردش کار پیچیده‌تر می‌شود، و حجم کاری در مقیاس‌های بزرگ‌تر عمل می‌کند. تلاش و منابع قابل توجهی برای دقیق تر کردن این مدل ها انجام می شود زیرا این سرمایه گذاری مستقیماً منجر به محصولات و تجربیات بهتر می شود. از سوی دیگر، اجرای کارآمد این مدل‌ها در تولید، کاری غیرمعمول است که اغلب نادیده گرفته می‌شود، علی‌رغم اینکه کلید دستیابی به اهداف عملکرد و بودجه است. در این پست نحوه Exafunction و استنتاج AWS برای باز کردن استقرار آسان و مقرون به صرفه برای مدل‌های ML در تولید، با یکدیگر همکاری کنید.

Exafunction یک استارت آپ است که بر روی توانمند ساختن شرکت ها برای انجام ML در مقیاس به بهترین نحو ممکن متمرکز شده است. یکی از محصولات آنها است ExaDeploy، یک راه حل SaaS با استفاده آسان برای ارائه بارهای کاری ML در مقیاس. ExaDeploy بارهای کاری ML شما را در منابع مختلط (CPU و شتابدهنده های سخت افزاری) به طور موثر هماهنگ می کند تا استفاده از منابع را به حداکثر برساند. همچنین برای اطمینان از استقرار کارآمد و قابل اعتماد، از مقیاس‌بندی خودکار، مکان‌یابی محاسبه، مشکلات شبکه، تحمل خطا و موارد دیگر مراقبت می‌کند. مبتنی بر AWS Inferentia نمونه های آمازون EC2 Inf1 به منظور ارائه کمترین هزینه به ازای هر استنتاج در فضای ابری ساخته شده اند. ExaDeploy اکنون از نمونه‌های Inf1 پشتیبانی می‌کند، که به کاربران امکان می‌دهد هم صرفه‌جویی مبتنی بر سخت‌افزار شتاب‌دهنده‌ها و هم صرفه‌جویی مبتنی بر نرم‌افزار مجازی‌سازی منابع بهینه و هماهنگ‌سازی در مقیاس را دریافت کنند.

بررسی اجمالی راه حل

چگونه ExaDeploy برای بهره وری استقرار حل می کند

برای اطمینان از استفاده کارآمد از منابع محاسباتی، باید تخصیص مناسب منابع، مقیاس‌بندی خودکار، هم‌مکانی محاسبه، مدیریت هزینه و تأخیر شبکه، تحمل خطا، نسخه‌سازی و تکرارپذیری و موارد دیگر را در نظر بگیرید. در مقیاس، هرگونه ناکارآمدی بر هزینه‌ها و تأخیر تأثیر می‌گذارد و بسیاری از شرکت‌های بزرگ با ایجاد تیم‌های داخلی و تخصص به رفع این ناکارآمدی‌ها پرداخته‌اند. با این حال، برای اکثر شرکت‌ها عملی نیست که این هزینه‌های مالی و سازمانی را برای ساختن نرم‌افزار تعمیم‌پذیر که شایستگی اصلی مورد نظر شرکت نیست، فرض کنند.

ExaDeploy برای حل این نقاط درد بازدهی استقرار طراحی شده است، از جمله مواردی که در برخی از پیچیده ترین بارهای کاری مانند مواردی که در برنامه های خودکار و پردازش زبان طبیعی (NLP) دیده می شود. در برخی از حجم‌های کاری بزرگ دسته‌ای ML، ExaDeploy هزینه‌ها را تا بیش از 85 درصد بدون کاهش تأخیر یا دقت کاهش داده است، با زمان یکپارچه‌سازی به اندازه یک روز مهندس. ExaDeploy ثابت شده است که به طور خودکار هزاران نمونه منابع شتاب دهنده سخت افزاری را بدون هیچ گونه تخریب سیستم مدیریت می کند.

ویژگی های کلیدی ExaDeploy عبارتند از:

  • در ابر شما اجرا می شود: هیچ یک از مدل ها، ورودی ها یا خروجی های شما هرگز شبکه خصوصی شما را ترک نمی کند. به استفاده از تخفیف های ارائه دهنده ابر خود ادامه دهید.
  • منابع شتاب دهنده مشترک: ExaDeploy شتاب دهنده های مورد استفاده را با فعال کردن چندین مدل یا بار کاری برای به اشتراک گذاشتن منابع شتاب دهنده بهینه می کند. همچنین می‌تواند تشخیص دهد که آیا چندین بار کاری یک مدل را به کار می‌گیرند یا نه، و سپس مدل را در آن بارهای کاری به اشتراک بگذارد، در نتیجه شتاب‌دهنده مورد استفاده را بهینه می‌کند. قابلیت تعادل مجدد خودکار و تخلیه گره آن استفاده را به حداکثر می رساند و هزینه ها را به حداقل می رساند.

Exafunction از AWS Inferentia پشتیبانی می کند تا بهترین عملکرد قیمت را برای استنتاج یادگیری ماشینی مبتنی بر هوش داده PlatoBlockchain باز کند. جستجوی عمودی Ai.

  • مدل استقرار بدون سرور مقیاس پذیر: مقیاس های خودکار ExaDeploy بر اساس اشباع منابع شتاب دهنده. به صورت پویا تا 0 یا تا هزاران منبع را کاهش دهید.
  • پشتیبانی از انواع محاسبات: می‌توانید مدل‌های یادگیری عمیق را از تمام چارچوب‌های اصلی ML و همچنین کد دلخواه C++، هسته‌های CUDA، عملیات سفارشی و توابع پایتون بارگذاری کنید.
  • ثبت و نسخه سازی مدل پویا: مدل های جدید یا نسخه های مدل را می توان بدون نیاز به بازسازی یا استقرار مجدد سیستم ثبت و اجرا کرد.
  • اجرای نقطه به نقطه: مشتریان مستقیماً به منابع شتاب دهنده راه دور متصل می شوند که تأخیر کم و توان عملیاتی بالا را امکان پذیر می کند. آنها حتی می توانند وضعیت را از راه دور ذخیره کنند.
  • اجرای ناهمزمان: ExaDeploy از اجرای ناهمزمان مدل ها پشتیبانی می کند، که به مشتریان اجازه می دهد محاسبات محلی را با کار منابع شتاب دهنده راه دور موازی کنند.
  • خطوط لوله از راه دور مقاوم در برابر خطا: ExaDeploy به مشتریان اجازه می دهد تا به صورت پویا محاسبات از راه دور (مدل ها، پیش پردازش و غیره) را در خطوط لوله با ضمانت تحمل خطا بنویسند. سیستم ExaDeploy با بازیابی و پخش خودکار خرابی‌های غلاف یا گره را کنترل می‌کند، به طوری که توسعه‌دهندگان هرگز مجبور نیستند به اطمینان از تحمل خطا فکر کنند.
  • نظارت خارج از جعبه: ExaDeploy معیارهای Prometheus و داشبوردهای Grafana را برای تجسم استفاده از منابع شتاب دهنده و سایر معیارهای سیستم فراهم می کند.

ExaDeploy از AWS Inferentia پشتیبانی می کند

نمونه‌های Amazon EC2 Inf1 مبتنی بر AWS Inferentia برای بارهای کاری استنتاج خاص یادگیری عمیق طراحی شده‌اند. این نمونه ها در مقایسه با نسل فعلی نمونه های استنتاج GPU تا 2.3 برابر توان عملیاتی و تا 70 درصد در هزینه صرفه جویی می کنند.

ExaDeploy اکنون از AWS Inferentia پشتیبانی می کند و با هم افزایش عملکرد و صرفه جویی در هزینه به دست آمده از طریق شتاب سخت افزاری ساخته شده و هماهنگ سازی منابع بهینه در مقیاس را باز می کند. بیایید به مزایای ترکیبی ExaDeploy و AWS Inferentia با در نظر گرفتن یک بار کاری بسیار رایج مدرن ML نگاهی بیندازیم: بارهای کاری دسته ای و ترکیبی.

مشخصات بار کاری فرضی:

  • 15 میلی‌ثانیه پیش پردازش/پس از پردازش فقط با CPU
  • استنتاج مدل (15 میلی‌ثانیه در GPU، 5 میلی‌ثانیه در استنباط AWS)
  • 10 مشتری، هر کدام هر 20 میلی ثانیه درخواست می دهند
  • هزینه نسبی تقریبی CPU:Inferentia:GPU 1:2:4 است (براساس قیمت‌گذاری درخواستی Amazon EC2 برای c5.xlarge، inf1.xlarge و g4dn.xlarge)

جدول زیر نحوه شکل گیری هر یک از گزینه ها را نشان می دهد:

برپایی منابع مورد نیاز هزینه تاخیر
GPU بدون ExaDeploy 2 CPU، 2 GPU برای هر مشتری (مجموع 20 CPU، 20 GPU) 100 MS 30
GPU با ExaDeploy 8 GPU مشترک بین 10 کلاینت، 1 CPU برای هر کلاینت 42 MS 30
AWS Inferentia بدون ExaDeploy 1 CPU، 1 AWS Inferentia برای هر مشتری (مجموع 10 CPU، 10 Inferentia) 30 MS 20
AWS Inferentia با ExaDeploy 3 AWS Inferentia بین 10 کلاینت به اشتراک گذاشته شده است، 1 CPU برای هر کلاینت 16 MS 20

ExaDeploy در AWS Inferentia مثال

در این بخش، مراحل پیکربندی ExaDeploy را از طریق یک مثال با گره‌های inf1 در مدل BERT PyTorch مرور می‌کنیم. ما میانگین توان عملیاتی 1140 نمونه در ثانیه را برای مدل پایه برت دیدیم، که نشان می‌دهد سربار کمی توسط ExaDeploy برای این سناریوی تک‌مدل، تک‌بار کاری معرفی شده است.

1 گام: راه اندازی یک سرویس الاستیک کوبرنتز آمازون خوشه (Amazon EKS).

یک خوشه آمازون EKS را می توان با ما ایجاد کرد ماژول Terraform AWS. برای مثال ما از یک استفاده کردیم inf1.xlarge برای AWS Inferentia.

2 گام: ExaDepoy را راه اندازی کنید

مرحله دوم راه اندازی ExaDeploy است. به طور کلی، استقرار ExaDeploy در نمونه های inf1 ساده است. راه‌اندازی بیشتر از همان رویه‌ای پیروی می‌کند که در نمونه‌های واحد پردازش گرافیکی (GPU) انجام می‌شود. تفاوت اصلی تغییر تگ مدل از GPU به AWS Inferentia و کامپایل مجدد مدل است. به عنوان مثال، انتقال از g4dn به نمونه‌های inf1 با استفاده از رابط‌های برنامه‌نویسی برنامه ExaDeploy (API) فقط نیاز به تغییر تقریباً 10 خط کد داشت.

  • یک روش ساده استفاده از Exafunction است ماژول Terraform AWS Kubernetes or نمودار هلم. اینها اجزای اصلی ExaDeploy را برای اجرا در خوشه آمازون EKS مستقر می کنند.
  • کامپایل مدل در قالب سریالی (مثلاً TorchScript، مدل‌های ذخیره شده با TF، ONNX و غیره). برای استنتاج AWS، ما دنبال کردیم این آموزش.
  • مدل کامپایل شده را در مخزن ماژول ExaDeploy ثبت کنید.
    with exa.ModuleRepository(MODULE_REPOSITORY_ADDRESS) as repo:
       repo.register_py_module(
           "BertInferentia",
           module_class="TorchModule",
           context_data=BERT_NEURON_TORCHSCRIPT_AS_BYTES,
           config={
               "_torchscript_input_names": ",".join(BERT_INPUT_NAMES).encode(),
               "_torchscript_output_names": BERT_OUTPUT_NAME.encode(),
               "execution_type": "inferentia".encode(),
           },
       )

  • داده ها را برای مدل آماده کنید (یعنی نه ExaDeploy-specific).
    tokenizer = transformers.AutoTokenizer.from_pretrained(
       "bert-base-cased-finetuned-mrpc"
    )
    
    batch_encoding = tokenizer.encode_plus(
       "The company Exafunction is based in the Bay Area",
       "Exafunction’s headquarters are situated in Mountain View",
       max_length=MAX_LENGTH,
       padding="max_length",
       truncation=True,
       return_tensors="pt",
    )

  • مدل را از راه دور از مشتری اجرا کنید.
    with exa.Session(
       scheduler_address=SCHEDULER_ADDRESS,
       module_tag="BertInferentia",
       constraint_config={
           "KUBERNETES_NODE_SELECTORS": "role=runner-inferentia",
           "KUBERNETES_ENV_VARS": "AWS_NEURON_VISIBLE_DEVICES=ALL",
       },
    ) as sess:
       bert = sess.new_module("BertInferentia")
       classification_logits = bert.run(
           **{
               key: value.numpy()
               for key, value in batch_encoding.items()
           }
       )[BERT_OUTPUT_NAME].numpy()
    
       # Assert that the model classifies the two statements as paraphrase.
       assert classification_logits[0].argmax() == 1

ExaDeploy و AWS Inferentia: با هم بهتر است

AWS Inferentia مرزهای توان عملیاتی را برای استنتاج مدل تحت فشار قرار داده و کمترین هزینه به ازای هر استنتاج را در فضای ابری ارائه می کند. همانطور که گفته شد، شرکت ها برای بهره مندی از مزایای قیمت-عملکرد Inf1 در مقیاس به هماهنگی مناسب نیاز دارند. سرویس دهی ML یک مشکل پیچیده است که اگر در داخل به آن رسیدگی شود، نیاز به تخصص دارد که از اهداف شرکت حذف شده و اغلب زمان بندی محصول را به تاخیر می اندازد. ExaDeploy که راه حل نرم افزاری استقرار ML Exafunction است، به عنوان پیشرو در صنعت ظاهر شده است. حتی پیچیده‌ترین حجم‌های کاری ML را ارائه می‌کند، در حالی که تجربیات یکپارچه‌سازی و پشتیبانی یک تیم در سطح جهانی را ارائه می‌دهد. ExaDeploy و AWS Inferentia با هم کارایی و صرفه جویی در هزینه را برای حجم کار استنتاج در مقیاس افزایش می دهند.

نتیجه

در این پست، ما به شما نشان دادیم که چگونه Exafunction از AWS Inferentia برای عملکرد ML پشتیبانی می کند. برای اطلاعات بیشتر در مورد ساخت برنامه‌های کاربردی با Exafunction، به سایت مراجعه کنید Exafunction. برای بهترین شیوه‌ها در زمینه ایجاد بارهای کاری یادگیری عمیق در Inf1، به این سایت مراجعه کنید نمونه های آمازون EC2 Inf1.


درباره نویسنده

نیکلاس جیانگ، مهندس نرم افزار، Exafunction

جاناتان ما، مهندس نرم افزار، Exafunction

Prem Nair، مهندس نرم افزار، Exafunction

Anshul Ramachandran، مهندس نرم افزار، Exafunction

شروتی کوپارکار، مدیر بازاریابی محصول، AWS

تمبر زمان:

بیشتر از آموزش ماشین AWS