يتوفر الآن مثيل Amazon EC2 DL2q لاستدلال الذكاء الاصطناعي عالي الأداء والفعال من حيث التكلفة | خدمات الويب الأمازون

يتوفر الآن مثيل Amazon EC2 DL2q لاستدلال الذكاء الاصطناعي عالي الأداء والفعال من حيث التكلفة | خدمات الويب الأمازون

هذه مشاركة ضيف بواسطة AK Roy من شركة Qualcomm AI.

Amazon Elastic Compute Cloud (Amazon EC2) يمكن استخدام مثيلات DL2q، المدعومة بمسرعات Qualcomm AI 100 Standard، لنشر أعباء عمل التعلم العميق (DL) في السحابة بكفاءة من حيث التكلفة. ويمكن استخدامها أيضًا لتطوير أداء ودقة أحمال عمل DL التي سيتم نشرها على أجهزة Qualcomm. تعد مثيلات DL2q هي المثيلات الأولى التي تقدم تقنية الذكاء الاصطناعي (AI) من Qualcomm إلى السحابة.

مع ثمانية مسرعات Qualcomm AI 100 Standard و128 جيجا بايت من إجمالي ذاكرة التسريع، يمكن للعملاء أيضًا استخدام مثيلات DL2q لتشغيل تطبيقات الذكاء الاصطناعي التوليدية الشائعة، مثل إنشاء المحتوى وتلخيص النص والمساعدين الافتراضيين، بالإضافة إلى تطبيقات الذكاء الاصطناعي الكلاسيكية لمعالجة اللغة الطبيعية. ورؤية الكمبيوتر. بالإضافة إلى ذلك، تتميز مسرعات Qualcomm AI 100 بنفس تقنية الذكاء الاصطناعي المستخدمة عبر الهواتف الذكية، والقيادة الذاتية، وأجهزة الكمبيوتر الشخصية، وسماعات الواقع الممتد، لذلك يمكن استخدام مثيلات DL2q لتطوير أعباء عمل الذكاء الاصطناعي هذه والتحقق من صحتها قبل النشر.

أبرز مثيلات DL2q الجديدة

يتضمن كل مثيل DL2q ثمانية مسرعات Qualcomm Cloud AI100، مع أداء مجمع يزيد عن 2.8 PetaOps من أداء الاستدلال Int8 و1.4 PetaFlops من أداء الاستدلال FP16. يحتوي المثيل على إجمالي 112 نواة للذكاء الاصطناعي، وسعة ذاكرة تسريع تبلغ 128 جيجابايت وعرض نطاق ترددي للذاكرة يبلغ 1.1 تيرابايت في الثانية.

يحتوي كل مثيل DL2q على 96 وحدة معالجة مركزية افتراضية، وسعة ذاكرة نظام تبلغ 768 جيجابايت ويدعم نطاق ترددي للشبكة يبلغ 100 جيجابايت في الثانية بالإضافة إلى متجر Amazon Elastic Block (Amazon EBS) تخزين 19 جيجابت في الثانية.

اسم المثيل وحدات المعالجة المركزية الافتراضية مسرعات Cloud AI100 ذاكرة تسريع ذاكرة التسريع BW (مجمعة) ذاكرة المثيل مثيل الشبكات عرض النطاق الترددي للتخزين (Amazon EBS).
DL2q.24xlarge 96 8 128 جيجا بايت 1.088 TB / s 768 جيجا بايت 100 جيجابايت في الثانية 19 جيجابايت في الثانية

ابتكار مسرع Qualcomm Cloud AI100

يعد نظام تسريع Cloud AI100 على الرقاقة (SoC) عبارة عن بنية متعددة النواة مصممة خصيصًا وقابلة للتطوير، وتدعم مجموعة واسعة من حالات استخدام التعلم العميق الممتدة من مركز البيانات إلى الحافة. تستخدم شركة SoC النوى الحسابية العددية والمتجهة والموترة مع سعة SRAM الرائدة في الصناعة والتي تبلغ 126 ميجابايت. ترتبط النوى بشبكة على الرقاقة (NoC) ذات نطاق ترددي عالٍ وزمن وصول منخفض.

يدعم مسرع AI100 مجموعة واسعة وشاملة من النماذج وحالات الاستخدام. يسلط الجدول أدناه الضوء على نطاق دعم النموذج.

فئة النموذج عدد من النماذج أمثلة
البرمجة اللغوية العصبية​ 157 بيرت، بارت، فاستر ترانسفورمر، T5، Z-code MOE
الذكاء الاصطناعي التوليدي – البرمجة اللغوية العصبية 40 LLaMA، CodeGen، GPT، OPT، BLOOM، Jais، Luminous، StarCoder، XGen
الذكاء الاصطناعي التوليدي – الصورة 3 نشر مستقر v1.5 وv2.1، OpenAI CLIP
السيرة الذاتية – تصنيف الصور 45 ViT، ResNet، ResNext، MobileNet، EfficientNet
السيرة الذاتية - الكشف عن الأشياء 23 YOLO v2، v3، v4، v5، وv7، SSD-ResNet، RetinaNet
السيرة الذاتية – أخرى 15 LPRNet، الدقة الفائقة/SRGAN، ByteTrack
شبكات السيارات* 53 الإدراك والكشف عن LIDAR والمشاة والحارات وإشارات المرور
المجموع > 300 â € < â € <

* معظم شبكات السيارات عبارة عن شبكات مركبة تتكون من اندماج شبكات فردية.

تتيح ذاكرة SRAM الكبيرة الموجودة على القالب في مسرع DL2q التنفيذ الفعال لتقنيات الأداء المتقدمة مثل دقة MX6 ذات الأس الصغير لتخزين الأوزان ودقة MX9 ذات الأس الصغير للاتصال بين مسرع ومسرع. تم وصف تقنية الأس الصغيرة في إعلان الصناعة التالي لمشروع الحوسبة المفتوحة (OCP): AMD، وArm، وIntel، وMeta، وMicrosoft، وNVIDIA، وQualcomm تعمل على توحيد تنسيقات البيانات الدقيقة للجيل التالي من أجل الذكاء الاصطناعي » مشروع الحوسبة المفتوحة.

يمكن لمستخدم المثيل استخدام الإستراتيجية التالية لزيادة الأداء لكل تكلفة:

  • قم بتخزين الأوزان باستخدام الدقة الدقيقة MX6 في ذاكرة DDR المدمجة. يؤدي استخدام دقة MX6 إلى زيادة الاستفادة من سعة الذاكرة المتاحة وعرض النطاق الترددي للذاكرة لتوفير أفضل إنتاجية ووقت استجابة في فئتها.
  • قم بالحساب في FP16 لتوفير دقة حالة الاستخدام المطلوبة، مع استخدام ذاكرة SRAM الفائقة على الشريحة والأجزاء العلوية الاحتياطية على البطاقة، لتنفيذ نواة MX6 إلى FP16 عالية الأداء ذات زمن وصول منخفض.
  • استخدم إستراتيجية تجميع محسّنة وحجم دفعة أكبر باستخدام ذاكرة SRAM الكبيرة الموجودة على الرقاقة المتوفرة لتحقيق أقصى قدر من إعادة استخدام الأوزان، مع الحفاظ على عمليات التنشيط على الرقاقة إلى أقصى حد ممكن.

DL2q AI المكدس وسلسلة الأدوات

يكون مثيل DL2q مصحوبًا بـ Qualcomm AI Stack الذي يوفر تجربة مطور متسقة عبر Qualcomm AI في السحابة ومنتجات Qualcomm الأخرى. تعمل نفس تقنية Qualcomm AI المكدسة وتقنية AI الأساسية على مثيلات DL2q وأجهزة Qualcomm edge، مما يوفر للعملاء تجربة مطور متسقة، مع واجهة برمجة تطبيقات موحدة عبر بيئات تطوير السحابة والسيارات وأجهزة الكمبيوتر الشخصية والواقع الممتد والهواتف الذكية.

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

Amazon EC2 DL2q instance for cost-efficient, high-performance AI inference is now generally available | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

لمعرفة المزيد حول ضبط أداء النموذج، راجع Cloud AI 100 معلمات الأداء الرئيسية كابل بيانات.

ابدأ مع مثيلات DL2q

في هذا المثال، تقوم بتجميع ونشر ملف تم تدريبه مسبقًا نموذج بيرت تبدأ من وجه يعانق على مثيل EC2 DL2q باستخدام DL2q AMI المتوفر مسبقًا، في أربع خطوات.

يمكنك استخدام إما بنيت مسبقا كوالكوم دلامي على المثيل أو ابدأ باستخدام Amazon Linux2 AMI وقم ببناء DL2q AMI الخاص بك باستخدام Cloud AI 100 Platform وApps SDK المتوفرة في هذا خدمة Amazon Simple Storage (Amazon S3) دلو: s3://ec2-linux-qualcomm-ai100-sdks/latest/.

تستخدم الخطوات التالية DL2q AMI المضمنة مسبقًا، كوالكوم قاعدة AL2 DLAMI.

استخدم SSH للوصول إلى مثيل DL2q الخاص بك باستخدام Qualcomm Base AL2 DLAMI AMI واتبع الخطوات من 1 إلى 4.

الخطوة 1. قم بإعداد البيئة وتثبيت الحزم المطلوبة

  1. قم بتثبيت Python 3.8.
    sudo amazon-linux-extras install python3.8

  2. قم بإعداد بيئة Python 3.8 الافتراضية.
    python3.8 -m venv /home/ec2-user/userA/pyenv

  3. قم بتنشيط بيئة Python 3.8 الافتراضية.
    source /home/ec2-user/userA/pyenv/bin/activate

  4. قم بتثبيت الحزم المطلوبة الموضحة في متطلبات وثيقة txt متاح على موقع كوالكوم جيثب العام.
    pip3 install -r requirements.txt

  5. استيراد المكتبات اللازمة.
    import transformers from transformers import AutoTokenizer, AutoModelForMaskedLM
    import sys
    import qaic
    import os
    import torch
    import onnx
    from onnxsim import simplify
    import argparse
    import numpy as np

الخطوة 2. قم باستيراد النموذج

  1. استيراد النموذج وترميزه.
    model_card = 'bert-base-cased'
    model = AutoModelForMaskedLM.from_pretrained(model_card)
    tokenizer = AutoTokenizer.from_pretrained(model_card)

  2. تحديد إدخال عينة واستخراج inputIds و attentionMask.
    sentence = "The dog [MASK] on the mat."
    encodings = tokenizer(sentence, max_length=128, truncation=True, padding="max_length", return_tensors='pt')
    inputIds = encodings["input_ids"]
    attentionMask = encodings["attention_mask"]

  3. قم بتحويل النموذج إلى ONNX، والذي يمكن بعد ذلك تمريره إلى المترجم.
    # Set dynamic dims and axes.
    dynamic_dims = {0: 'batch', 1 : 'sequence'}
    dynamic_axes = { "input_ids" : dynamic_dims, "attention_mask" : dynamic_dims, "logits" : dynamic_dims
    }
    input_names = ["input_ids", "attention_mask"]
    inputList = [inputIds, attentionMask] torch.onnx.export( model, args=tuple(inputList), f=f"{gen_models_path}/{model_base_name}.onnx", verbose=False, input_names=input_names, output_names=["logits"], dynamic_axes=dynamic_axes, opset_version=11,
    )

  4. ستقوم بتشغيل النموذج بدقة FP16. لذلك، تحتاج إلى التحقق مما إذا كان النموذج يحتوي على أي ثوابت خارج نطاق FP16. تمرير النموذج إلى fix_onnx_fp16 وظيفة لإنشاء ملف ONNX الجديد مع الإصلاحات المطلوبة.
    from onnx import numpy_helper def fix_onnx_fp16( gen_models_path: str, model_base_name: str,
    ) -> str: finfo = np.finfo(np.float16) fp16_max = finfo.max fp16_min = finfo.min model = onnx.load(f"{gen_models_path}/{model_base_name}.onnx") fp16_fix = False for tensor in onnx.external_data_helper._get_all_tensors(model): nptensor = numpy_helper.to_array(tensor, gen_models_path) if nptensor.dtype == np.float32 and ( np.any(nptensor > fp16_max) or np.any(nptensor < fp16_min) ): # print(f'tensor value : {nptensor} above {fp16_max} or below {fp16_min}') nptensor = np.clip(nptensor, fp16_min, fp16_max) new_tensor = numpy_helper.from_array(nptensor, tensor.name) tensor.CopyFrom(new_tensor) fp16_fix = True if fp16_fix: # Save FP16 model print("Found constants out of FP16 range, clipped to FP16 range") model_base_name += "_fix_outofrange_fp16" onnx.save(model, f=f"{gen_models_path}/{model_base_name}.onnx") print(f"Saving modified onnx file at {gen_models_path}/{model_base_name}.onnx") return model_base_name fp16_model_name = fix_onnx_fp16(gen_models_path=gen_models_path, model_base_name=model_base_name)

الخطوة 3. قم بتجميع النموذج

qaic-exec يتم استخدام أداة مترجم واجهة سطر الأوامر (CLI) لتجميع النموذج. الإدخال إلى هذا المترجم هو ملف ONNX الذي تم إنشاؤه في الخطوة 2. يقوم المترجم بإنتاج ملف ثنائي (يسمى QPC، ل حاوية برنامج كوالكوم) في المسار المحدد بواسطة -aic-binary-dir جدال.

في أمر الترجمة أدناه، يمكنك استخدام أربعة نوى حسابية للذكاء الاصطناعي وحجم دفعة واحدة لتجميع النموذج.

/opt/qti-aic/exec/qaic-exec -m=bert-base-cased/generatedModels/bert-base-cased_fix_outofrange_fp16.onnx -aic-num-cores=4 -convert-to-fp16 -onnx-define-symbol=batch,1 -onnx-define-symbol=sequence,128 -aic-binary-dir=bert-base-cased/generatedModels/bert-base-cased_fix_outofrange_fp16_qpc -aic-hw -aic-hw-version=2.0 -compile-only

يتم إنشاء QPC في bert-base-cased/generatedModels/bert-base-cased_fix_outofrange_fp16_qpc المجلد.

الخطوة 4. قم بتشغيل النموذج

قم بإعداد جلسة لتشغيل الاستدلال على مسرع Cloud AI100 Qualcomm في مثيل DL2q.

مكتبة Qualcomm qaic Python عبارة عن مجموعة من واجهات برمجة التطبيقات التي توفر الدعم لتشغيل الاستدلال على مسرع Cloud AI100.

  1. استخدم استدعاء Session API لإنشاء مثيل للجلسة. يعد استدعاء Session API نقطة الدخول لاستخدام مكتبة qaic Python.
    qpcPath = 'bert-base-cased/generatedModels/bert-base-cased_fix_outofrange_fp16_qpc' bert_sess = qaic.Session(model_path= qpcPath+'/programqpc.bin', num_activations=1) bert_sess.setup() # Loads the network to the device. # Here we are reading out all the input and output shapes/types
    input_shape, input_type = bert_sess.model_input_shape_dict['input_ids']
    attn_shape, attn_type = bert_sess.model_input_shape_dict['attention_mask']
    output_shape, output_type = bert_sess.model_output_shape_dict['logits'] #create the input dictionary for given input sentence
    input_dict = {"input_ids": inputIds.numpy().astype(input_type), "attention_mask" : attentionMask.numpy().astype(attn_type)} #run inference on Cloud AI 100
    output = bert_sess.run(input_dict)

  2. إعادة هيكلة البيانات من المخزن المؤقت للإخراج باستخدام output_shape و output_type.
    token_logits = np.frombuffer(output['logits'], dtype=output_type).reshape(output_shape)

  3. فك تشفير الإخراج المنتج.
    mask_token_logits = torch.from_numpy(token_logits[0, mask_token_index, :]).unsqueeze(0)
    top_5_results = torch.topk(mask_token_logits, 5, dim=1)
    print("Model output (top5) from Qualcomm Cloud AI 100:")
    for i in range(5): idx = top_5_results.indices[0].tolist()[i] val = top_5_results.values[0].tolist()[i] word = tokenizer.decode([idx]) print(f"{i+1} :(word={word}, index={idx}, logit={round(val,2)})")

فيما يلي مخرجات جملة الإدخال "The dog [MASK] on mat."

1 :(word=sat, index=2068, logit=11.46)
2 :(word=landed, index=4860, logit=11.11)
3 :(word=spat, index=15732, logit=10.95)
4 :(word=settled, index=3035, logit=10.84)
5 :(word=was, index=1108, logit=10.75)

هذا كل شيء. من خلال بضع خطوات فقط، يمكنك تجميع نموذج PyTorch وتشغيله على مثيل Amazon EC2 DL2q. لمعرفة المزيد حول إعداد النماذج وتجميعها على مثيل DL2q، راجع الوثائق التعليمية لـ Cloud AI100.

لمعرفة المزيد حول بنيات نموذج DL المناسبة تمامًا لمثيلات AWS DL2q ومصفوفة دعم النموذج الحالي، راجع وثائق كوالكوم كلاود AI100.

متوفر الآن

يمكنك إطلاق مثيلات DL2q اليوم في مناطق AWS بغرب الولايات المتحدة (أوريغون) وأوروبا (فرانكفورت) على الطلبمحجوزو بقعة الحالات، أو كجزء من أ خطة الادخار. وكما جرت العادة مع Amazon EC2، فإنك تدفع فقط مقابل ما تستخدمه. لمزيد من المعلومات، راجع تسعير Amazon EC2.

يمكن نشر مثيلات DL2q باستخدام AWS Deep Learning AMIs (DLAMI)، وتتوفر صور الحاويات من خلال الخدمات المُدارة مثل الأمازون SageMaker, خدمة Amazon Elastic Kubernetes (Amazon EKS), Amazon Elastic Container Service (Amazon ECS)و AWS ParallelCluster.

لمعرفة المزيد ، تفضل بزيارة مثيل أمازون EC2 DL2q الصفحة، وإرسال الملاحظات إلى إعادة AWS: نشر لـ EC2 أو من خلال جهات اتصال AWS Support المعتادة.


عن المؤلفين

Amazon EC2 DL2q instance for cost-efficient, high-performance AI inference is now generally available | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.ايه كيه روي يشغل منصب مدير إدارة المنتجات في شركة Qualcomm لمنتجات وحلول Cloud وDatacenter AI. يتمتع بخبرة تزيد عن 20 عامًا في استراتيجية المنتجات وتطويرها، مع التركيز الحالي على الأداء الأفضل في فئته والأداء/الحلول الشاملة بالدولار لاستدلال الذكاء الاصطناعي في السحابة، لمجموعة واسعة من حالات الاستخدام، بما في ذلك GenAI وLLMs وAuto وHybrid AI.

Amazon EC2 DL2q instance for cost-efficient, high-performance AI inference is now generally available | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai. جيانيينغ لانج هو مهندس الحلول الرئيسي في منظمة AWS العالمية المتخصصة (WWSO). تتمتع بخبرة تزيد عن 15 عامًا في مجال الحوسبة عالية الأداء والذكاء الاصطناعي. في AWS، تركز على مساعدة العملاء على نشر أعباء عمل الذكاء الاصطناعي/تعلم الآلة وتحسينها وتوسيع نطاقها في مثيلات الحوسبة المتسارعة. إنها متحمسة للجمع بين التقنيات في مجالات الحوسبة عالية الأداء والذكاء الاصطناعي. حصل جيانيينغ على درجة الدكتوراه في الفيزياء الحاسوبية من جامعة كولورادو في بولدر.

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

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