حقق أقصى قدر من أداء الانتشار المستقر وخفض تكاليف الاستدلال باستخدام AWS Inferentia2 | خدمات أمازون ويب

حقق أقصى قدر من أداء الانتشار المستقر وخفض تكاليف الاستدلال باستخدام AWS Inferentia2 | خدمات أمازون ويب

شهدت نماذج الذكاء الاصطناعي التوليدية نموًا سريعًا في الأشهر الأخيرة نظرًا لقدراتها الرائعة في إنشاء نصوص وصور ورموز وصوت واقعية. من بين هذه النماذج ، تبرز نماذج Stable Diffusion لقوتها الفريدة في إنشاء صور عالية الجودة بناءً على مطالبات النص. يمكن لـ Stable Diffusion إنشاء مجموعة متنوعة من الصور عالية الجودة ، بما في ذلك الصور الشخصية الواقعية والمناظر الطبيعية وحتى الفن التجريدي. ومثل نماذج الذكاء الاصطناعي التوليدية الأخرى ، تتطلب نماذج الانتشار المستقر حوسبة قوية لتوفير استنتاج منخفض زمن الوصول.

في هذا المنشور ، نوضح كيف يمكنك تشغيل نماذج Stable Diffusion وتحقيق أداء عالٍ بأقل تكلفة في الأمازون الحوسبة المرنة السحابية (Amazon EC2) باستخدام حالات Amazon EC2 Inf2 مدعوم من AWS الاستدلال 2. نحن ننظر إلى بنية نموذج الانتشار المستقر ونسير عبر خطوات تجميع نموذج الانتشار المستقر باستخدام AWS نيورون ونشره في مثيل Inf2. نناقش أيضًا التحسينات التي تجريها Neuron SDK تلقائيًا لتحسين الأداء. يمكنك تشغيل الإصدارين 2.1 و 1.5 من Stable Diffusion على AWS Inferentia2 بتكلفة فعالة. أخيرًا ، نوضح كيف يمكنك نشر نموذج Stable Diffusion على مثيل Inf2 باستخدام الأمازون SageMaker.

حجم نموذج الانتشار المستقر 2.1 في النقطة العائمة 32 (FP32) هو 5 جيجابايت و 2.5 جيجابايت في bfoat16 (BF16). يحتوي مثيل inf2.xlarge واحد على مسرع AWS Inferentia2 واحد بسعة 32 جيجابايت من ذاكرة HBM. يمكن أن يتلاءم نموذج Stable Diffusion 2.1 مع مثيل inf2.xlarge واحد. الانتشار المستقر هو نموذج نص إلى صورة يمكنك استخدامه لإنشاء صور ذات أنماط ومحتويات مختلفة ببساطة عن طريق توفير موجه نص كمدخل. لمعرفة المزيد حول بنية نموذج الانتشار المستقر ، ارجع إلى أنشئ صورًا عالية الجودة باستخدام نماذج Stable Diffusion وانشرها بتكلفة فعالة مع Amazon SageMaker.

كيف تعمل حزمة Neuron SDK على تحسين أداء الانتشار المستقر

قبل أن نتمكن من نشر نموذج Stable Diffusion 2.1 على مثيلات AWS Inferentia2 ، نحتاج إلى تجميع مكونات النموذج باستخدام الخلايا العصبية SDK. تعمل حزمة Neuron SDK ، التي تتضمن مترجمًا للتعلم العميق ووقت تشغيل وأدوات ، على تجميع نماذج التعلم العميق وتحسينها تلقائيًا حتى تتمكن من العمل بكفاءة على مثيلات Inf2 واستخراج الأداء الكامل لمسرع AWS Inferentia2. لدينا أمثلة متاحة لنموذج Stable Diffusion 2.1 على جيثب ريبو. يقدم هذا الكمبيوتر الدفتري مثالاً شاملاً حول كيفية تجميع نموذج الانتشار المستقر وحفظ نماذج Neuron المجمعة وتحميله في وقت التشغيل للاستدلال.

نستخدم StableDiffusionPipeline من وجه المعانقة diffusers مكتبة لتحميل النموذج وتجميعه. نقوم بعد ذلك بتجميع جميع مكونات النموذج لاستخدام Neuron torch_neuronx.trace() وحفظ النموذج الأمثل باسم TorchScript. يمكن أن تكون عمليات الترجمة كثيفة الذاكرة ، وتتطلب قدرًا كبيرًا من ذاكرة الوصول العشوائي. للتحايل على هذا ، قبل تتبع كل نموذج ، نقوم بإنشاء ملف deepcopy من جزء خط الأنابيب الذي يتم تتبعه. بعد ذلك ، نحذف كائن خط الأنابيب من الذاكرة باستخدام del pipe. هذه التقنية مفيدة بشكل خاص عند التجميع في المثيلات ذات ذاكرة الوصول العشوائي المنخفضة.

بالإضافة إلى ذلك ، نقوم أيضًا بإجراء تحسينات على نماذج الانتشار المستقر. تمتلك UNet الجانب الأكثر كثافة من الناحية الحسابية في الاستدلال. يعمل مكون UNet على موتر الإدخال الذي يحتوي على حجم دفعة من اثنين ، مما يؤدي إلى إنشاء موتر إخراج مطابق أيضًا بحجم دفعة من اثنين ، لإنتاج صورة واحدة. العناصر الموجودة في هذه المجموعات مستقلة تمامًا عن بعضها البعض. يمكننا الاستفادة من هذا السلوك للحصول على زمن انتقال مثالي من خلال تشغيل دفعة واحدة على كل نواة من الخلايا العصبية. نقوم بتجميع UNet لدفعة واحدة (باستخدام موترات الإدخال مع دفعة واحدة) ، ثم نستخدم torch_neuronx.DataParallel API لتحميل نموذج الدفعة الواحدة هذا على كل نواة. ناتج واجهة برمجة التطبيقات هذه عبارة عن وحدة نمطية سلسة مكونة من دفعتين: يمكننا أن نمرر إلى UNet مدخلات دفعتين ، ويتم إرجاع ناتج من دفعتين ، ولكن داخليًا ، يعمل النموذجان أحادي الدفعة على نواة Neuron . تعمل هذه الإستراتيجية على تحسين استخدام الموارد وتقليل زمن الوصول.

قم بتجميع ونشر نموذج الانتشار المستقر على مثيل Inf2 EC2

لتجميع ونشر نموذج الانتشار المستقر على مثيل Inf2 EC2 ، قم بالتوقيع على وحدة تحكم إدارة AWS وإنشاء مثيل inf2.8xlarge. لاحظ أن مثيل inf2.8xlarge مطلوب فقط لتجميع النموذج لأن التجميع يتطلب ذاكرة مضيف أعلى. يمكن استضافة نموذج الانتشار المستقر على مثيل inf2.xlarge. يمكنك العثور على أحدث إصدار من AMI مع مكتبات Neuron باستخدام ما يلي واجهة سطر الأوامر AWS أمر (AWS CLI):

aws ec2 describe-images --region us-east-1 --owners amazon --filters 'Name=name,Values=Deep Learning AMI Neuron PyTorch 1.13.? (Amazon Linux 2) ????????' 'Name=state,Values=available' --query 'reverse(sort_by(Images, &CreationDate))[:1].ImageId' --output text

في هذا المثال ، أنشأنا مثيل EC2 باستخدام Deep Learning AMI Neuron PyTorch 1.13 (Ubuntu 20.04). يمكنك بعد ذلك إنشاء بيئة مختبر JupyterLab عن طريق الاتصال بالمثيل وتشغيل الخطوات التالية:

run source /opt/aws_neuron_venv_pytorch/bin/activate
pip install jupyterlab
jupyter-lab

يوجد دفتر ملاحظات يحتوي على جميع خطوات تجميع النموذج واستضافته GitHub جيثب:.

لنلقِ نظرة على خطوات التجميع لإحدى كتل تشفير النص. يمكن تجميع الكتل الأخرى التي تعد جزءًا من خط أنابيب الانتشار المستقر بالمثل.

الخطوة الأولى هي تحميل النموذج المدرب مسبقًا من Hugging Face. ال StableDiffusionPipeline.from_pretrained طريقة تحميل النموذج المدرب مسبقًا في كائن خط الأنابيب لدينا ، pipe. ثم نقوم بإنشاء ملف deepcopy من برنامج ترميز النص من خط الأنابيب الخاص بنا ، مما يؤدي إلى استنساخه بشكل فعال. ال del pipe ثم يتم استخدام الأمر لحذف كائن خط الأنابيب الأصلي ، مما يؤدي إلى تحرير الذاكرة التي استهلكها. هنا ، نقوم بقياس النموذج إلى أوزان BF16:

model_id = "stabilityai/stable-diffusion-2-1-base"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.bfloat16)
text_encoder = copy.deepcopy(pipe.text_encoder)
del pipe

تتضمن هذه الخطوة تغليف برنامج ترميز النص بامتداد NeuronTextEncoder غلاف. سيكون ناتج وحدة ترميز النص المترجمة من dict. نقوم بتحويله إلى ملف list اكتب باستخدام هذا الغلاف:

text_encoder = NeuronTextEncoder(text_encoder)

نقوم بتهيئة موتر PyTorch emb مع بعض القيم. ال emb يتم استخدام الموتر كمثال للإدخال لـ torch_neuronx.trace وظيفة. تتعقب هذه الوظيفة برنامج تشفير النص لدينا وتجمعه في تنسيق محسّن لـ Neuron. يتم إنشاء مسار الدليل للنموذج المترجم من خلال الانضمام COMPILER_WORKDIR_ROOT مع الدليل الفرعي text_encoder:

emb = torch.tensor([...])
text_encoder_neuron = torch_neuronx.trace(
        text_encoder.neuron_text_encoder,
        emb,
        compiler_workdir=os.path.join(COMPILER_WORKDIR_ROOT, 'text_encoder'),
        )

يتم حفظ برنامج ترميز النص المترجم باستخدام torch.jit.save. يتم تخزينه تحت اسم الملف model.pt في ملف text_encoder دليل مساحة عمل المترجم لدينا:

text_encoder_filename = os.path.join(COMPILER_WORKDIR_ROOT, 'text_encoder/model.pt')
torch.jit.save(text_encoder_neuron, text_encoder_filename)

مفكرة يتضمن خطوات مماثلة لتجميع المكونات الأخرى للنموذج: UNet و VAE decoder و VAE post_quant_conv. بعد تجميع جميع النماذج ، يمكنك تحميل النموذج وتشغيله باتباع الخطوات التالية:

  1. حدد مسارات النماذج المترجمة.
  2. تحميل مدربة مسبقًا StableDiffusionPipeline النموذج ، مع تكوينه المحدد لاستخدام نوع البيانات bfloat16.
  3. قم بتحميل نموذج UNet على قلبين من الخلايا العصبية باستخدام ملف torch_neuronx.DataParallel API. يسمح ذلك بإجراء الاستدلال المتوازي للبيانات ، مما قد يؤدي إلى تسريع أداء النموذج بشكل كبير.
  4. قم بتحميل الأجزاء المتبقية من النموذج (text_encoder, decoderو post_quant_conv) على نواة عصبية واحدة.

يمكنك بعد ذلك تشغيل خط الأنابيب من خلال توفير نص الإدخال كمطالبات. فيما يلي بعض الصور التي تم إنشاؤها بواسطة النموذج للمطالبات:

  • صورة لرينود سيشان ، بالقلم والحبر ، رسومات خطية معقدة ، بقلم كريج مولينز ، روان جيا ، كينتارو ميورا ، جريج روتكوفسكي ، لوندراو

تعظيم أداء النشر المستقر وخفض تكاليف الاستدلال باستخدام AWS Inferentia2 | أمازون ويب سيرفيسز PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

  • صورة لعمال مناجم فحم قديم في القرن التاسع عشر ، لوحة جميلة مع لوحة وجه مفصلة للغاية من قبل جريج روتكوفسكي

تعظيم أداء النشر المستقر وخفض تكاليف الاستدلال باستخدام AWS Inferentia2 | أمازون ويب سيرفيسز PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

  • قلعة في وسط غابة

تعظيم أداء النشر المستقر وخفض تكاليف الاستدلال باستخدام AWS Inferentia2 | أمازون ويب سيرفيسز PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

Host Stable Diffusion 2.1 على AWS Inferentia2 و SageMaker

تتطلب استضافة نماذج الانتشار المستقر باستخدام SageMaker أيضًا التجميع باستخدام Neuron SDK. يمكنك إكمال التجميع في وقت مبكر أو أثناء وقت التشغيل باستخدام حاويات استدلال النماذج الكبيرة (LMI). يسمح التجميع المسبق بأوقات تحميل أسرع للنموذج وهو الخيار المفضل.

توفر حاويات SageMaker LMI طريقتين لنشر النموذج:

  • خيار بدون رمز حيث نقدم فقط ملف serving.properties ملف مع التكوينات المطلوبة
  • أحضر نص الاستدلال الخاص بك

نحن ننظر إلى كلا الحلين ونستعرض التكوينات ونص الاستدلال (model.py). في هذا المنشور ، نوضح النشر باستخدام نموذج مُجمَّع مسبقًا مُخزَّن في ملف خدمة تخزين أمازون البسيطة (Amazon S3) دلو. يمكنك استخدام هذا النموذج المجمع مسبقًا لعمليات النشر الخاصة بك.

قم بتكوين النموذج باستخدام برنامج نصي تم توفيره

في هذا القسم ، نوضح كيفية تكوين حاوية LMI لاستضافة نماذج الانتشار المستقر. يتوفر الكمبيوتر المحمول SD2.1 على جيثب. تتمثل الخطوة الأولى في إنشاء حزمة تكوين النموذج وفقًا لهيكل الدليل التالي. هدفنا هو استخدام الحد الأدنى من تكوينات النموذج اللازمة لاستضافة النموذج. هيكل الدليل المطلوب هو كما يلي:

<config-root-directory> / 
    ├── serving.properties
    │   
    └── model.py [OPTIONAL]

بعد ذلك ، نقوم بإنشاء ملف خدمة ملف مع المعلمات التالية:

%%writefile code_sd/serving.properties
engine=Python
option.entryPoint=djl_python.transformers-neuronx
option.use_stable_diffusion=True
option.model_id=s3url
option.tensor_parallel_degree=2
option.dtype=bf16

تحدد المعلمات ما يلي:

  • option.model_id - تستخدم حاويات LMI s5cmd لتحميل النموذج من موقع S3 وبالتالي نحتاج إلى تحديد موقع مكان الأوزان المجمعة لدينا.
  • option.entryPoint - لاستخدام المعالجات المدمجة ، نحدد فئة المحولات العصبية. إذا كان لديك نص برمجي مخصص للاستدلال ، فأنت بحاجة إلى تقديمه بدلاً من ذلك.
  • option.dtype - يحدد هذا تحميل الأوزان بحجم معين. في هذا المنشور ، نستخدم BF16 ، مما يقلل بشكل أكبر من متطلبات الذاكرة لدينا مقابل FP32 ويقلل من زمن الوصول بسبب ذلك.
  • option.tensor_parallel_degree - تحدد هذه المعلمة عدد المسرّعات التي نستخدمها لهذا النموذج. يحتوي مسرع رقاقة AWS Inferentia2 على نواتين من الخلايا العصبية ، وبالتالي فإن تحديد قيمة 2 يعني أننا نستخدم مسرعًا واحدًا (مركزان). هذا يعني أنه يمكننا الآن إنشاء عدة عمال لزيادة إنتاجية نقطة النهاية.
  • option.engine - تم تعيين هذا على Python للإشارة إلى أننا لن نستخدم برامج تجميع أخرى مثل DeepSpeed ​​أو Faster Transformer لهذه الاستضافة.

أحضر البرنامج النصي الخاص بك

إذا كنت تريد إحضار برنامج الاستدلال المخصص الخاص بك ، فأنت بحاجة إلى إزالة ملف option.entryPoint تبدأ من serving.properties. ستبحث حاوية LMI في هذه الحالة عن ملف model.py الملف في نفس موقع ملف serving.properties واستخدم ذلك لتشغيل الاستنتاج.

قم بإنشاء نص الاستدلال الخاص بك (model.py)

يعد إنشاء البرنامج النصي للاستدلال الخاص بك أمرًا سهلاً نسبيًا باستخدام حاوية LMI. تتطلب الحاوية الخاصة بك model.py ملف لتنفيذ الطريقة التالية:

def handle(inputs: Input) which returns an object of type Outputs

دعنا نفحص بعض المجالات الحرجة في دفتر ملاحظات مرفق، مما يدل على إحضار وظيفة البرنامج النصي الخاص بك.

استبدال cross_attention وحدة مع الإصدار الأمثل:

# Replace original cross-attention module with custom cross-attention module for better performance
    CrossAttention.get_attention_scores = get_attention_scores
Load the compiled weights for the following
text_encoder_filename = os.path.join(COMPILER_WORKDIR_ROOT, 'text_encoder.pt')
decoder_filename = os.path.join(COMPILER_WORKDIR_ROOT, 'vae_decoder.pt')
unet_filename = os.path.join(COMPILER_WORKDIR_ROOT, 'unet.pt')
post_quant_conv_filename =. os.path.join(COMPILER_WORKDIR_ROOT, 'vae_post_quant_conv.pt')

هذه هي أسماء ملفات الأوزان المترجمة التي استخدمناها عند إنشاء التجميعات. لا تتردد في تغيير أسماء الملفات ، ولكن تأكد من تطابق أسماء ملفات الأوزان مع ما تحدده هنا.

ثم نحتاج إلى تحميلها باستخدام Neuron SDK وتعيينها في أوزان النموذج الفعلية. عند تحميل أوزان UNet المُحسَّنة ، لاحظ أننا نحدد أيضًا عدد نوى الخلايا العصبية التي نحتاج إلى تحميلها عليها. هنا ، نقوم بالتحميل إلى مسرّع واحد ذي قلبين:

# Load the compiled UNet onto two neuron cores.
    pipe.unet = NeuronUNet(UNetWrap(pipe.unet))
    logging.info(f"Loading model: unet:created")
    device_ids = [idx for idx in range(tensor_parallel_degree)]
   
    pipe.unet.unetwrap = torch_neuronx.DataParallel(torch.jit.load(unet_filename), device_ids, set_dynamic_batching=False)
   
 
    # Load other compiled models onto a single neuron core.
 
    # - load encoders
    pipe.text_encoder = NeuronTextEncoder(pipe.text_encoder)
    clip_compiled = torch.jit.load(text_encoder_filename)
    pipe.text_encoder.neuron_text_encoder = clip_compiled
    #- load decoders
    pipe.vae.decoder = torch.jit.load(decoder_filename)
    pipe.vae.post_quant_conv = torch.jit.load(post_quant_conv_filename)

يؤدي تشغيل الاستدلال بموجه إلى استدعاء كائن الأنبوب لتوليد صورة.

قم بإنشاء نقطة نهاية SageMaker

نستخدم Boto3 APIs لإنشاء نقطة نهاية SageMaker. أكمل الخطوات التالية:

  1. اصنع كرة القطران بالخدمة والاختياري فقط model.py الملفات وتحميلها إلى Amazon S3.
  2. قم بإنشاء النموذج باستخدام حاوية الصورة ونموذج القطران الذي تم تحميله مسبقًا.
  3. قم بإنشاء تهيئة نقطة النهاية باستخدام المعلمات الرئيسية التالية:
    1. استخدم ml.inf2.xlarge حتة.
    2. المجموعات ContainerStartupHealthCheckTimeoutInSeconds إلى 240 لضمان بدء الفحص الصحي بعد نشر النموذج.
    3. المجموعات VolumeInGB إلى قيمة أكبر بحيث يمكن استخدامه لتحميل أوزان النموذج التي يبلغ حجمها 32 جيجابايت.

قم بإنشاء نموذج SageMaker

بعد إنشاء ملف model.tar.gz وتحميله إلى Amazon S3 ، نحتاج إلى إنشاء نموذج SageMaker. نستخدم حاوية LMI ونموذج الأداة من الخطوة السابقة لإنشاء نموذج SageMaker. يسمح لنا SageMaker بتخصيص وحقن متغيرات البيئة المختلفة. بالنسبة لسير العمل هذا ، يمكننا ترك كل شيء افتراضيًا. انظر الكود التالي:

inference_image_uri = (
    f"763104351884.dkr.ecr.{region}.amazonaws.com/djl-inference:0 djl-serving-inf2"
)

قم بإنشاء كائن النموذج ، والذي يقوم بشكل أساسي بإنشاء حاوية تأمين يتم تحميلها على المثيل واستخدامها للاستدلال:

model_name = name_from_base(f"inf2-sd")
create_model_response = boto3_sm_client.create_model(
    ModelName=model_name,
    ExecutionRoleArn=role,
    PrimaryContainer={"Image": inference_image_uri, "ModelDataUrl": s3_code_artifact},
)

قم بإنشاء نقطة نهاية SageMaker

في هذا العرض التوضيحي ، نستخدم مثيل ml.inf2.xlarge. نحن بحاجة إلى ضبط VolumeSizeInGB المعلمات لتوفير مساحة القرص اللازمة لتحميل النموذج والأوزان. هذه المعلمة قابلة للتطبيق على الحالات التي تدعم متجر أمازون مطاط بلوك مرفق وحدة تخزين (Amazon EBS). يمكننا ترك مهلة تنزيل النموذج والتحقق من صحة بدء تشغيل الحاوية بقيمة أعلى ، مما يمنح الحاوية وقتًا كافيًا لسحب الأوزان من Amazon S3 وتحميلها في مسرعات AWS Inferentia2. لمزيد من التفاصيل ، يرجى الرجوع إلى إنشاء نقطة النهاية.

endpoint_config_response = boto3_sm_client.create_endpoint_config( EndpointConfigName=endpoint_config_name,
    ProductionVariants=[
        {
            "VariantName": "variant1",
            "ModelName": model_name,
            "InstanceType": "ml.inf2.xlarge", # - 
            "InitialInstanceCount": 1,
            "ContainerStartupHealthCheckTimeoutInSeconds": 360, 
            "VolumeSizeInGB": 400
        },
    ],
)

أخيرًا ، قمنا بإنشاء نقطة نهاية SageMaker:

create_endpoint_response = boto3_sm_client.create_endpoint(
    EndpointName=f"{endpoint_name}", EndpointConfigName=endpoint_config_name
)

استدعاء نقطة نهاية النموذج

هذا نموذج توليدي ، لذلك نمرر المطالبة التي يستخدمها النموذج لإنشاء الصورة. الحمولة من النوع JSON:

response_model = boto3_sm_run_client.invoke_endpoint( EndpointName=endpoint_name,
    Body=json.dumps(
        {
            "prompt": "Mountain Landscape", 
            "parameters": {} # 
        }
    ), 
    ContentType="application/json",
)

قياس نموذج الانتشار المستقر على Inf2

أجرينا بعض الاختبارات لقياس نموذج الانتشار المستقر بنوع بيانات BF 16 على Inf2 ، ونحن قادرون على اشتقاق أرقام زمن الوصول التي تنافس أو تتجاوز بعض المسرعات الأخرى للانتشار المستقر. هذا ، إلى جانب التكلفة المنخفضة لرقائق AWS Inferentia2 ، يجعل هذا عرضًا قيمًا للغاية.

الأرقام التالية مأخوذة من نموذج الانتشار المستقر الذي تم نشره على مثيل inf2.xl. لمزيد من المعلومات حول التكاليف ، يرجى الرجوع إلى مثيلات Amazon EC2 Inf2.

الموديل دقة الشاشة نوع البيانات التكرارات الكمون P95 (مللي ثانية) Inf2.xl تكلفة الساعة عند الطلب Inf2.xl (التكلفة لكل صورة)
الانتشار المستقر 1.5 512 × 512 bf16 50 2,427.4 $0.76 $0.0005125
الانتشار المستقر 1.5 768 × 768 bf16 50 8,235.9 $0.76 $0.0017387
الانتشار المستقر 1.5 512 × 512 bf16 30 1,456.5 $0.76 $0.0003075
الانتشار المستقر 1.5 768 × 768 bf16 30 4,941.6 $0.76 $0.0010432
الانتشار المستقر 2.1 512 × 512 bf16 50 1,976.9 $0.76 $0.0004174
الانتشار المستقر 2.1 768 × 768 bf16 50 6,836.3 $0.76 $0.0014432
الانتشار المستقر 2.1 512 × 512 bf16 30 1,186.2 $0.76 $0.0002504
الانتشار المستقر 2.1 768 × 768 bf16 30 4,101.8 $0.76 $0.0008659

وفي الختام

في هذا المنشور ، تعمقنا في تجميع وتحسين ونشر نموذج Stable Diffusion 2.1 باستخدام مثيلات Inf2. أظهرنا أيضًا نشر نماذج الانتشار المستقر باستخدام SageMaker. توفر مثيلات Inf2 أيضًا أداء سعرًا رائعًا لـ Stable Diffusion 1.5. لمعرفة المزيد حول سبب كون مثيلات Inf2 رائعة بالنسبة للذكاء الاصطناعي التوليدي ونماذج اللغات الكبيرة ، يرجى الرجوع إلى تتوفر الآن مثيلات Amazon EC2 Inf2 لاستدلال الذكاء الاصطناعي التوليدي منخفض التكلفة وعالي الأداء بشكل عام. للحصول على تفاصيل الأداء ، يرجى الرجوع إلى أداء Inf2. تحقق من أمثلة إضافية على جيثب ريبو.

شكر خاص لماثيو مكلين ، وبني هيجيدوس ، وكمران خان ، وشروتي كوباركار ، وتشينغ لان على المراجعة وتقديم المدخلات القيمة.


حول المؤلف

تعظيم أداء النشر المستقر وخفض تكاليف الاستدلال باستخدام AWS Inferentia2 | أمازون ويب سيرفيسز PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.فيفيك جانجاساني هو كبير مهندسي حلول التعلم الآلي في Amazon Web Services. يعمل مع الشركات الناشئة في مجال التعلم الآلي لبناء ونشر تطبيقات AI / ML على AWS. يركز حاليًا على تقديم حلول لـ MLOps ، واستدلال ML ، و ML منخفض الكود. لقد عمل في مشاريع في مجالات مختلفة ، بما في ذلك معالجة اللغة الطبيعية ورؤية الكمبيوتر.

تعظيم أداء النشر المستقر وخفض تكاليف الاستدلال باستخدام AWS Inferentia2 | أمازون ويب سيرفيسز PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.كيه سي تونغ هو مهندس حلول أول في مختبرات AWS Annapurna. إنه متخصص في التدريب على نموذج التعلم العميق الكبير ونشره على نطاق واسع في السحابة. حاصل على دكتوراه. في الفيزياء الحيوية الجزيئية من جامعة تكساس ساوثويسترن ميديكال سنتر في دالاس. لقد تحدث في AWS Summit و AWS Reinvent. واليوم يساعد العملاء على تدريب ونشر نماذج PyTorch و TensorFlow الكبيرة في سحابة AWS. له كتابان: تعلم TensorFlow Enterprise و مرجع الجيب TensorFlow 2.

تعظيم أداء النشر المستقر وخفض تكاليف الاستدلال باستخدام AWS Inferentia2 | أمازون ويب سيرفيسز PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.روبيندر جريوال هو مهندس حلول متخصص في الذكاء الإصطناعي / ML مع AWS. يركز حاليًا على خدمة النماذج و MLOps على SageMaker. قبل توليه هذا المنصب ، عمل كمهندس لتعلم الآلة ونماذج البناء والاستضافة. خارج العمل يستمتع بلعب التنس وركوب الدراجات على المسارات الجبلية.

الطابع الزمني:

اكثر من التعلم الآلي من AWS