ایمیزون سرچ نے کس طرح AWS Inferentia کے ساتھ ML inference لاگت کو 85% کم کیا۔

Amazon کا پروڈکٹ سرچ انجن اربوں پروڈکٹس کو انڈیکس کرتا ہے، دنیا بھر میں کروڑوں صارفین کی خدمت کرتا ہے، اور دنیا میں سب سے زیادہ استعمال ہونے والی خدمات میں سے ایک ہے۔ ایمیزون سرچ ٹیم مشین لرننگ (ML) ٹیکنالوجی تیار کرتی ہے جو Amazon.com سرچ انجن اور صارفین کو آسانی سے تلاش کرنے میں مدد کرتا ہے۔ ایک بہترین کسٹمر کا تجربہ فراہم کرنے اور بڑے پیمانے پر کام کرنے کے لیے جس کی ضرورت ہے۔ Amazon.com سرچ انجن، یہ ٹیم ہمیشہ ریئل ٹائم لیٹنسی اور تھرو پٹ کی ضروریات کے ساتھ زیادہ سرمایہ کاری مؤثر نظام بنانے کے طریقوں کی تلاش میں رہتی ہے۔ ٹیم پورے بورڈ میں آپریشنل اخراجات کو کم کرتے ہوئے ماڈل ٹریننگ اور انفرنس کو تیز کرنے کے لیے گہری سیکھنے کے لیے موزوں ہارڈ ویئر اور کمپائلرز کو مسلسل تلاش کرتی ہے۔

اس پوسٹ میں، ہم بیان کرتے ہیں کہ ایمیزون سرچ کس طرح استعمال کرتا ہے۔ AWS Inferentia، ایک اعلی کارکردگی کا سرعت کار مقصد ہے جو AWS کے ذریعہ بنایا گیا ہے تاکہ سیکھنے کے گہرے اندازے کے کام کے بوجھ کو تیز کیا جاسکے۔ ٹیم AWS Inferentia کی بنیاد پر ٹرانسفارمر پر مبنی NLP ماڈلز کے ساتھ کم لیٹنسی ML inference چلاتی ہے ایمیزون لچکدار کمپیوٹ کلاؤڈ (Amazon EC2) Inf1 مثالیں، اور مضبوط تھرو پٹ اور تاخیر کی کارکردگی کو برقرار رکھتے ہوئے بنیادی ڈھانچے کے اخراجات میں 85% تک کی بچت کرتا ہے۔

ڈپلیکیٹ اور استفسار کے ارادے کی پیشن گوئی کے لیے گہری تعلیم

ایمیزون مارکیٹ پلیس کو تلاش کرنا ایک ملٹی ٹاسک، ملٹی موڈل مسئلہ ہے، جس میں ASINs (ایمیزون اسٹینڈرڈ آئیڈینٹیفیکیشن نمبر، 10 ہندسوں کا حروف عددی نمبر جو پروڈکٹس کی منفرد شناخت کرتا ہے)، پروڈکٹ کی تصاویر، متنی وضاحتیں، اور استفسارات جیسے کئی ان پٹس سے نمٹنا ہے۔ ایک موزوں صارف کا تجربہ بنانے کے لیے، تلاش کے مختلف پہلوؤں کے لیے بہت سے ماڈلز کی پیشین گوئیاں استعمال کی جاتی ہیں۔ یہ ایک چیلنج ہے کیونکہ سرچ سسٹم کے پاس ہزاروں ماڈلز ہیں جن میں دسیوں ہزار ٹرانزیکشن فی سیکنڈ (TPS) زیادہ بوجھ پر ہوتے ہیں۔ ہم اس تجربے کے دو اجزاء پر توجہ مرکوز کرتے ہیں:

  • گاہک کی سمجھی جانے والی ڈپلیکیٹ پیشین گوئیاں - صارف کے استفسار سے مماثل پروڈکٹس کی سب سے زیادہ متعلقہ فہرست دکھانے کے لیے، ان مصنوعات کی شناخت کرنا ضروری ہے جن کے درمیان فرق کرنے میں صارفین کو مشکل پیش آتی ہے۔
  • استفسار کے ارادے کی پیشن گوئی - تلاش کے صفحے اور پروڈکٹ کی ترتیب کو صارف کی تلاش کے مطابق بہتر بنانے کے لیے، صارف کے استفسار کے ارادے اور قسم کی پیشین گوئی کرنا ضروری ہے (مثال کے طور پر، میڈیا سے متعلق استفسار، مدد کے سوال، اور دیگر سوالات کی اقسام)

یہ دونوں پیشین گوئیاں ٹرانسفارمر ماڈل آرکیٹیکچرز یعنی BERT پر مبنی ماڈلز کا استعمال کرتے ہوئے کی گئی ہیں۔ درحقیقت، دونوں ایک ہی BERT پر مبنی ماڈل کو ایک بنیاد کے طور پر شیئر کرتے ہیں، اور ہر ایک اس ریڑھ کی ہڈی کے اوپر ایک درجہ بندی/رجعت کا سر لگاتا ہے۔

ڈپلیکیٹ پیشین گوئی مختلف متنی خصوصیات کو لے کر جانچی گئی مصنوعات کے ایک جوڑے کے لیے بطور ان پٹ (جیسے پروڈکٹ کی قسم، عنوان، تفصیل وغیرہ) اور بڑے ڈیٹا سیٹس کے لیے وقتاً فوقتاً شمار کی جاتی ہے۔ یہ ماڈل ایک ملٹی ٹاسک فیشن میں آخر سے آخر تک تربیت یافتہ ہے۔ ایمیزون سیج میکر پروسیسنگ نوکریاں ان بیچ کے کام کے بوجھ کو وقتاً فوقتاً چلانے کے لیے استعمال کیا جاتا ہے تاکہ ان کے لانچ کو خودکار بنایا جا سکے اور صرف استعمال ہونے والے پروسیسنگ وقت کی ادائیگی کی جا سکے۔ اس بیچ کے کام کے بوجھ کے استعمال کے کیس کے لیے، انفرنس تھرو پٹ کی ضرورت کل 8,800 TPS تھی۔

ارادے کی پیشن گوئی صارف کے متنی استفسار کو بطور ان پٹ لیتی ہے اور روزمرہ کی ٹریفک کو متحرک طور پر پیش کرنے اور ایمیزون مارکیٹ پلیس پر صارف کے تجربے کو بڑھانے کے لیے حقیقی وقت میں درکار ہے۔ ماڈل کو کثیر طبقے کی درجہ بندی کے مقصد پر تربیت دی جاتی ہے۔ اس ماڈل کو پھر تعینات کیا جاتا ہے۔ ایمیزون لچکدار کنٹینر سروس (ایمیزون ای سی ایس)، جو فوری آٹو اسکیلنگ کو قابل بناتا ہے اور آسان تعیناتی کی تعریف اور انتظام. چونکہ یہ حقیقی وقت میں استعمال کا معاملہ ہے، اس کے لیے صارف کے خوشگوار تجربے کو یقینی بنانے کے لیے P99 میں تاخیر کا 10 ملی سیکنڈ سے کم ہونا ضروری ہے۔

AWS Inferentia اور AWS نیوران SDK

EC2 Inf1 مثالیں۔ AWS Inferentia کے ذریعے تقویت یافتہ ہیں، پہلا ML ایکسلریٹر مقصد ہے جو AWS کے ذریعے بنایا گیا ہے تاکہ گہرے سیکھنے کے انفرنس ورک بوجھ کو تیز کیا جا سکے۔ Inf1 مثالیں موازنہ GPU پر مبنی EC2.3 مثالوں کے مقابلے میں 70 گنا زیادہ تھرو پٹ اور 2% تک کم لاگت فراہم کرتی ہیں۔ آپ اپنی پسند کے فریم ورک (PyTorch، TensorFlow، MXNet) کا استعمال کرتے ہوئے اپنے ماڈلز کی تربیت جاری رکھ سکتے ہیں، اور پھر بلٹ ان پرفارمنس آپٹیمائزیشن سے فائدہ اٹھانے کے لیے انہیں آسانی سے AWS Inferentia پر تعینات کر سکتے ہیں۔ آپ تصویر کی شناخت، آبجیکٹ کا پتہ لگانے، قدرتی زبان کی پروسیسنگ (NLP)، اور جدید تجویز کنندہ ماڈلز سے لے کر Inf1 مثالوں کا استعمال کرتے ہوئے ماڈل کی اقسام کی ایک وسیع رینج تعینات کر سکتے ہیں۔

AWS نیوران ایک سافٹ ویئر ڈویلپمنٹ کٹ (SDK) ہے جو ایک کمپائلر، رن ٹائم، اور پروفائلنگ ٹولز پر مشتمل ہے جو EC2 Inf1 مثالوں کی ML inference کارکردگی کو بہتر بناتے ہیں۔ نیوران مقامی طور پر مشہور ML فریم ورک جیسے TensorFlow اور PyTorch کے ساتھ مربوط ہے۔ لہذا، آپ AWS Inferentia پر اپنے پسند کے فریم ورک کے ذریعہ فراہم کردہ اسی مانوس APIs کے ساتھ گہری سیکھنے کے ماڈلز کو تعینات کر سکتے ہیں، اور کارکردگی میں اضافے اور کلاؤڈ میں سب سے کم قیمت فی تخمینہ سے فائدہ اٹھا سکتے ہیں۔

اپنے آغاز کے بعد سے، نیوران SDK نے کارکردگی کو بہتر بنانے اور تخمینہ لاگت کو کم کرتے ہوئے اپنے سپورٹ کردہ ماڈلز کی وسعت میں اضافہ کرنا جاری رکھا ہے۔ اس میں NLP ماڈلز (BERTs)، امیج کی درجہ بندی کے ماڈلز (ResNet، VGG) اور آبجیکٹ کا پتہ لگانے والے ماڈلز (اوپن پوز اور SSD) شامل ہیں۔

کم تاخیر، زیادہ تھرو پٹ، اور لاگت کی بچت کے لیے Inf1 مثالوں پر تعینات کریں۔

ایمیزون سرچ ٹیم ڈپلیکیشن پیشین گوئی پر اپنی اعلی تھرو پٹ کی ضرورت کو پورا کرتے ہوئے اخراجات کو بچانا چاہتی تھی، اور استفسار کے ارادے کی پیشن گوئی پر کم تاخیر کی ضرورت کو پورا کرتے ہوئے انہوں نے AWS Inferentia پر مبنی Inf1 مثالوں پر تعینات کرنے کا انتخاب کیا اور نہ صرف اعلی کارکردگی کے تقاضوں کو پورا کیا بلکہ تخمینہ لاگت میں 85% تک کی بچت بھی کی۔

گاہک کی سمجھی جانے والی ڈپلیکیٹ پیشین گوئیاں

Inf1 کے استعمال سے پہلے، ایک وقف ایمیزون ای ایم آر CPU پر مبنی مثالوں کا استعمال کرتے ہوئے کلسٹر چل رہا تھا۔ ہارڈویئر ایکسلریشن پر بھروسہ کیے بغیر، 8,800 کل لین دین فی سیکنڈ کی اعلی تھرو پٹ ضرورت کو پورا کرنے کے لیے بڑی تعداد میں مثالیں ضروری تھیں۔ ٹیم نے 1.6 AWS Inferentia accelerators اور 4 NeuronCores (16 cores per AWS Inferentia chip) کے ساتھ inf4x بڑے واقعات پر سوئچ کیا۔ انہوں نے ایک واحد نیورون کور کے لیے ٹرانسفارمر پر مبنی ماڈل کا پتہ لگایا اور تھرو پٹ کو زیادہ سے زیادہ کرنے کے لیے فی نیورون کور پر ایک موڈ لوڈ کیا۔ 16 دستیاب نیورون کورس سے فائدہ اٹھاتے ہوئے، انہوں نے تخمینہ لاگت میں 85٪ کمی کی (موجودہ عوامی ایمیزون EC2 آن ڈیمانڈ قیمتوں کی بنیاد پر)۔

استفسار کے ارادے کی پیشن گوئی

99 ملی سیکنڈ یا اس سے کم کی P10 لیٹینسی کی ضرورت کو دیکھتے ہوئے، ٹیم نے ماڈل کو ہر دستیاب نیورون کور پر inf1.6x بڑی مثالوں پر لوڈ کیا۔ آپ یہ آسانی سے PyTorch نیوران کے ساتھ کر سکتے ہیں۔ torch.neuron.Data Parallel API Inf1 کی تعیناتی کے ساتھ، ماڈل میں لیٹنسی 3 ملی سیکنڈ تھی، اینڈ ٹو اینڈ لیٹینسی تقریباً 10 ملی سیکنڈ تھی، اور چوٹی کے لوڈ پر زیادہ سے زیادہ تھرو پٹ 16,000 TPS تک پہنچ گیا۔

نمونے کی تالیف اور تعیناتی کوڈ کے ساتھ شروع کریں۔

ذیل میں کچھ نمونہ کوڈ ہے جو آپ کو Inf1 مثالوں پر شروع کرنے میں مدد کرتا ہے اور Amazon تلاش ٹیم کی طرح کارکردگی اور لاگت کے فوائد کا احساس کرتا ہے۔ ہم دکھاتے ہیں کہ PyTorch ماڈل کا استعمال کرتے ہوئے اندازہ کیسے مرتب کرنا اور انجام دینا ہے۔ پائی ٹارچ نیوران.

سب سے پہلے، ماڈل کے ساتھ مرتب کیا جاتا ہے torch.neuron.trace():

m = torch.jit.load(f="./cpu_model.pt", map_location=torch.device('cpu'))
m.eval()
model_neuron = torch.neuron.trace(
    m,
    inputs,
    compiler_workdir="work_" + str(cores) + "_" + str(batch_size),
    compiler_args=[
        '--fp32-cast=all', '--neuroncore-pipeline-cores=' + str(cores)
    ])
model_neuron.save("m5_batch" + str(batch_size) + "_cores" + str(cores) +
                  "_with_extra_op_and_fp32cast.pt")

ممکنہ دلائل کی مکمل فہرست کے لیے trace طریقہ، حوالہ دیتے ہیں PyTorch-Neuron ٹریس Python API. جیسا کہ آپ دیکھ سکتے ہیں ، مرتب دلائل کو منتقل کیا جا سکتا ہے۔ torch.neuron API براہ راست۔ تمام FP32 آپریٹرز کو کاسٹ کیا گیا ہے۔ BF16 with --fp32-cast=allمتحرک حد کو محفوظ رکھتے ہوئے اعلیٰ ترین کارکردگی فراہم کرنا۔ کاسٹنگ کے مزید اختیارات دستیاب ہیں تاکہ آپ کارکردگی کو درست طریقے سے ٹریڈ آف ماڈل پر کنٹرول کر سکیں۔ دونوں استعمال کے معاملات کے لیے استعمال ہونے والے ماڈلز کو ایک ہی نیورون کور (نمبر) کے لیے مرتب کیا گیا تھا۔ پائپ لائننگ).

اس کے بعد ہم ماڈل کو Inferentia پر لوڈ کرتے ہیں۔ torch.jit.load، اور اسے پیشن گوئی کے لیے استعمال کریں۔ دی نیوران رن ٹائم خود بخود ماڈل کو نیورون کور پر لوڈ کرتا ہے۔

cm_cpd_preprocessing_jit = torch.jit.load(f=CM_CPD_PROC,
                                          map_location=torch.device('cpu'))
cm_cpd_preprocessing_jit.eval()
m5_model = torch.jit.load(f=CM_CPD_M5)
m5_model.eval()

input = get_input()
with torch.no_grad():
    batch_cm_cpd = cm_cpd_preprocessing_jit(input)
    input_ids, attention_mask, position_ids, valid_length, token_type_ids = (
        batch_cm_cpd['input_ids'].type(torch.IntTensor),
        batch_cm_cpd['attention_mask'].type(torch.HalfTensor),
        batch_cm_cpd['position_ids'].type(torch.IntTensor),
        batch_cm_cpd['valid_length'].type(torch.IntTensor),
        batch_cm_cpd['token_type_ids'].type(torch.IntTensor))
    model_res = m5_model(input_ids, attention_mask, position_ids, valid_length,
                         token_type_ids)

نتیجہ

ایمیزون سرچ ٹیم بھاری ٹریفک اور کارکردگی کے تقاضوں کے تحت AWS Inferentia پر مبنی Inf85 مثالوں کا استعمال کرتے ہوئے اپنی تخمینہ لاگت کو 1% تک کم کرنے میں کامیاب رہی۔ AWS Inferentia اور Neuron SDK نے ٹیم کو تربیت سے علیحدہ طور پر تعیناتی کے عمل کو بہتر بنانے کے لیے لچک فراہم کی، اور اچھی طرح سے گول ٹولز اور واقف فریم ورک APIs کے ذریعے سیکھنے کا کم وکر پیش کیا۔

آپ اس پوسٹ میں فراہم کردہ نمونہ کوڈ کے ساتھ شروع کر کے کارکردگی اور لاگت کے فوائد کو غیر مقفل کر سکتے ہیں۔ اس کے علاوہ، آخر سے آخر تک چیک کریں۔ سبق کے ساتھ Inferentia پر ML ماڈل چلانے کے لیے پی ٹورچ اور TensorFlow.


مصنفین کے بارے میں

ایمیزون سرچ نے کس طرح AWS Inferentia PlatoBlockchain ڈیٹا انٹیلی جنس کے ساتھ ML تخمینہ لاگت کو 85% تک کم کیا۔ عمودی تلاش۔ عیجواؤ مورا ایمیزون ویب سروسز میں ایک AI/ML ماہر حل آرکیٹیکٹ ہے۔ وہ زیادہ تر NLP کے استعمال کے معاملات پر توجہ مرکوز کرتا ہے اور صارفین کو گہری سیکھنے کے ماڈل کی تربیت اور تعیناتی کو بہتر بنانے میں مدد کرتا ہے۔ وہ ایم ایل اسپیشلائزڈ ہارڈویئر اور کم کوڈ ایم ایل سلوشنز کا ایک فعال حامی بھی ہے۔

ایمیزون سرچ نے کس طرح AWS Inferentia PlatoBlockchain ڈیٹا انٹیلی جنس کے ساتھ ML تخمینہ لاگت کو 85% تک کم کیا۔ عمودی تلاش۔ عیویکی ژانگ سرچ M5 میں سافٹ ویئر انجینئرنگ مینیجر ہے، جہاں وہ ایمیزون مشین لرننگ ایپلی کیشنز کے لیے بڑے پیمانے پر ماڈلز تیار کرنے پر کام کرتا ہے۔ اس کی دلچسپیوں میں معلومات کی بازیافت اور مشین سیکھنے کا بنیادی ڈھانچہ شامل ہے۔

ایمیزون سرچ نے کس طرح AWS Inferentia PlatoBlockchain ڈیٹا انٹیلی جنس کے ساتھ ML تخمینہ لاگت کو 85% تک کم کیا۔ عمودی تلاش۔ عیجیسن کارلسن مشین لرننگ پائپ لائنز تیار کرنے کے لیے ایک سافٹ ویئر انجینئر ہے تاکہ کسٹمر کے سمجھے جانے والے ڈپلیکیٹس کی وجہ سے چوری شدہ تلاش کے نقوش کی تعداد کو کم کرنے میں مدد ملے۔ وہ زیادہ تر Apache Spark، AWS، اور PyTorch کے ساتھ کام کرتا ہے تاکہ ML ماڈلز کے لیے ڈیٹا کی تعیناتی اور فیڈ/پروسیسنگ میں مدد کی جا سکے۔ اپنے فارغ وقت میں وہ پڑھنا اور رن پر جانا پسند کرتا ہے۔

ایمیزون سرچ نے کس طرح AWS Inferentia PlatoBlockchain ڈیٹا انٹیلی جنس کے ساتھ ML تخمینہ لاگت کو 85% تک کم کیا۔ عمودی تلاش۔ عیشاہوئی الیون تلاش سوال کو سمجھنے والی انفرا ٹیم میں ایک SDE ہے۔ وہ کم تاخیر اور زیادہ دستیابی کے ساتھ بڑے پیمانے پر گہری سیکھنے والی آن لائن انفرنس سروسز بنانے کی کوششوں کی رہنمائی کرتا ہے۔ کام سے باہر، وہ اسکیئنگ اور اچھے کھانوں کی تلاش سے لطف اندوز ہوتا ہے۔

ایمیزون سرچ نے کس طرح AWS Inferentia PlatoBlockchain ڈیٹا انٹیلی جنس کے ساتھ ML تخمینہ لاگت کو 85% تک کم کیا۔ عمودی تلاش۔ عیZhuoqi Zhang تلاش سوال کو سمجھنے والی انفرا ٹیم میں سافٹ ویئر ڈویلپمنٹ انجینئر ہے۔ وہ ڈیپ لرننگ آن لائن انفرنس سروسز کے لیے تاخیر اور تھرو پٹ کو بہتر بنانے کے لیے ماڈل سرونگ فریم ورک بنانے پر کام کرتا ہے۔ کام سے باہر، وہ باسکٹ بال، سنو بورڈنگ اور ڈرائیونگ کھیلنا پسند کرتا ہے۔

ایمیزون سرچ نے کس طرح AWS Inferentia PlatoBlockchain ڈیٹا انٹیلی جنس کے ساتھ ML تخمینہ لاگت کو 85% تک کم کیا۔ عمودی تلاش۔ عیہاوئی سن تلاش سوال کو سمجھنے والی انفرا ٹیم میں سافٹ ویئر انجینئر ہے۔ وہ APIs اور بنیادی ڈھانچے کو ڈیزائن کرنے پر کام کرتی ہے جو گہری سیکھنے والی آن لائن انفرنس سروسز کو سپورٹ کرتی ہے۔ اس کی دلچسپیوں میں سروس API ڈیزائن، انفراسٹرکچر سیٹ اپ، اور دیکھ بھال شامل ہے۔ کام سے باہر، وہ دوڑنے، پیدل سفر کرنے اور سفر کرنے سے لطف اندوز ہوتی ہے۔

ایمیزون سرچ نے کس طرح AWS Inferentia PlatoBlockchain ڈیٹا انٹیلی جنس کے ساتھ ML تخمینہ لاگت کو 85% تک کم کیا۔ عمودی تلاش۔ عیجسپریت سنگھ M5 ٹیم میں ایک اپلائیڈ سائنٹسٹ ہے، جہاں وہ صارفین کے خریداری کے تجربے کو بہتر بنانے کے لیے بڑے پیمانے پر فاؤنڈیشن ماڈلز پر کام کرتا ہے۔ اس کی تحقیقی دلچسپیوں میں ملٹی ٹاسک لرننگ، معلومات کی بازیافت، اور نمائندگی کی تعلیم شامل ہے۔

ایمیزون سرچ نے کس طرح AWS Inferentia PlatoBlockchain ڈیٹا انٹیلی جنس کے ساتھ ML تخمینہ لاگت کو 85% تک کم کیا۔ عمودی تلاش۔ عیشروتی کوپارکر AWS میں ایک سینئر پروڈکٹ مارکیٹنگ مینیجر ہے۔ وہ صارفین کو ان کی مشین لرننگ کی ضروریات کے لیے EC2 ایکسلریٹڈ کمپیوٹنگ انفراسٹرکچر کو دریافت کرنے، جانچنے اور اپنانے میں مدد کرتی ہے۔

ٹائم اسٹیمپ:

سے زیادہ AWS مشین لرننگ