Amazon SageMaker میں TensorFlow ٹیکسٹ کی درجہ بندی کے ماڈلز کے لیے سیکھنے کو منتقل کریں۔

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

یہ پوسٹ سیج میکر میں نئے بلٹ ان الگورتھم کی سیریز میں تیسری ہے۔ میں پہلی پوسٹ، ہم نے دکھایا کہ کس طرح SageMaker تصویر کی درجہ بندی کے لیے ایک بلٹ ان الگورتھم فراہم کرتا ہے۔ میں دوسری پوزیشن، ہم نے دکھایا کہ کس طرح سیج میکر آبجیکٹ کا پتہ لگانے کے لیے ایک بلٹ ان الگورتھم فراہم کرتا ہے۔ آج، ہم اعلان کرتے ہیں کہ SageMaker TensorFlow کا استعمال کرتے ہوئے متن کی درجہ بندی کے لیے ایک نیا بلٹ ان الگورتھم فراہم کرتا ہے۔ یہ زیر نگرانی سیکھنے کا الگورتھم دستیاب بہت سے پہلے سے تربیت یافتہ ماڈلز کے لیے ٹرانسفر لرننگ کی حمایت کرتا ہے۔ ٹینسر فلو حب. یہ متن کا ایک ٹکڑا ان پٹ کے طور پر لیتا ہے اور ہر کلاس لیبل کے لیے امکان کو آؤٹ پٹ کرتا ہے۔ آپ ٹرانسفر لرننگ کا استعمال کرتے ہوئے ان پہلے سے تربیت یافتہ ماڈلز کو ٹھیک کر سکتے ہیں یہاں تک کہ جب متن کا ایک بڑا کارپس دستیاب نہ ہو۔ یہ سیج میکر کے ذریعے دستیاب ہے۔ بلٹ ان الگورتھمکے ساتھ ساتھ کے ذریعے سیج میکر جمپ اسٹارٹ UI in ایمیزون سیج میکر اسٹوڈیو. مزید معلومات کے لیے رجوع کریں۔ متن کی درجہ بندی اور مثال نوٹ بک جمپ اسٹارٹ کا تعارف - متن کی درجہ بندی.

SageMaker میں TensorFlow کے ساتھ ٹیکسٹ کی درجہ بندی TensorFlow Hub میں دستیاب بہت سے پہلے سے تربیت یافتہ ماڈلز پر ٹرانسفر لرننگ فراہم کرتی ہے۔ تربیتی ڈیٹا میں کلاس لیبلز کی تعداد کے مطابق، پہلے سے تربیت یافتہ TensorFlow حب ماڈل کے ساتھ درجہ بندی کی ایک تہہ منسلک ہے۔ درجہ بندی کی پرت ایک ڈراپ آؤٹ پرت اور ایک گھنی تہہ پر مشتمل ہے، مکمل طور پر منسلک تہہ، 2-نارم ریگولرائزر کے ساتھ، جس کی ابتدا بے ترتیب وزن کے ساتھ کی جاتی ہے۔ ماڈل ٹریننگ میں ڈراپ آؤٹ پرت کے ڈراپ آؤٹ کی شرح کے لیے ہائپر پیرامیٹرز اور گھنے پرت کے لیے L2 ریگولرائزیشن فیکٹر ہے۔ پھر، یا تو پورا نیٹ ورک، بشمول پہلے سے تربیت یافتہ ماڈل، یا صرف اعلی درجہ بندی کی تہہ کو نئے تربیتی ڈیٹا پر ٹھیک بنایا جا سکتا ہے۔ اس ٹرانسفر لرننگ موڈ میں، چھوٹے ڈیٹا سیٹ کے ساتھ بھی تربیت حاصل کی جا سکتی ہے۔

نیا TensorFlow ٹیکسٹ درجہ بندی الگورتھم کا استعمال کیسے کریں۔

یہ سیکشن بیان کرتا ہے کہ TensorFlow ٹیکسٹ کی درجہ بندی الگورتھم کے ساتھ کیسے استعمال کیا جائے۔ SageMaker Python SDK. اسٹوڈیو UI سے اسے استعمال کرنے کے طریقے کے بارے میں معلومات کے لیے، دیکھیں سیج میکر جمپ اسٹارٹ.

الگورتھم میں درج پہلے سے تربیت یافتہ ماڈلز کے لیے ٹرانسفر لرننگ کی حمایت کرتا ہے۔ ٹینسر فلو ماڈل. ہر ماڈل کی شناخت ایک منفرد سے ہوتی ہے۔ model_id. درج ذیل کوڈ سے پتہ چلتا ہے کہ کس طرح BERT بیس ماڈل کی شناخت کی گئی ہے۔ model_id tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2 کسٹم ٹریننگ ڈیٹاسیٹ پر۔ ہر ایک کے لئے model_idکے ذریعے سیج میکر ٹریننگ جاب شروع کرنے کے لیے تخمینہ SageMaker Python SDK کی کلاس، آپ کو SageMaker میں فراہم کردہ یوٹیلیٹی فنکشنز کے ذریعے Docker امیج URI، ٹریننگ اسکرپٹ URI، اور پہلے سے تربیت یافتہ ماڈل URI لانا ہوگا۔ تربیتی اسکرپٹ URI میں ڈیٹا پروسیسنگ، پہلے سے تربیت یافتہ ماڈل لوڈ کرنے، ماڈل ٹریننگ، اور تربیت یافتہ ماڈل کو اندازہ کے لیے محفوظ کرنے کے لیے تمام ضروری کوڈ شامل ہیں۔ پہلے سے تربیت یافتہ ماڈل URI میں پہلے سے تربیت یافتہ ماڈل فن تعمیر کی تعریف اور ماڈل کے پیرامیٹرز شامل ہیں۔ پہلے سے تربیت یافتہ ماڈل URI مخصوص ماڈل کے لیے مخصوص ہے۔ پہلے سے تربیت یافتہ ماڈل ٹربالز کو TensorFlow سے پہلے سے ڈاؤن لوڈ کیا گیا ہے اور مناسب ماڈل کے دستخط کے ساتھ محفوظ کیا گیا ہے۔ ایمیزون سادہ اسٹوریج سروس (ایمیزون S3) بالٹیاں، تاکہ تربیتی کام نیٹ ورک کی تنہائی میں چل سکے۔ درج ذیل کوڈ دیکھیں:

from sagemaker import image_uris, model_uris, script_urisfrom sagemaker.estimator import Estimator

model_id, model_version = "tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2", "*"
training_instance_type = "ml.p3.2xlarge"
# Retrieve the docker image
train_image_uri = image_uris.retrieve(model_id=model_id,model_version=model_version,image_scope="training",instance_type=training_instance_type,region=None,framework=None)# Retrieve the training script
train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training")# Retrieve the pre-trained model tarball for transfer learning
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

output_bucket = sess.default_bucket()
output_prefix = "jumpstart-example-tensorflow-tc-training"
s3_output_location = f"s3://{output_bucket}/{output_prefix}/output"

ان ماڈل کے ساتھ مخصوص تربیتی نمونے کے ساتھ، آپ ایک آبجیکٹ بنا سکتے ہیں۔ تخمینہ کلاس:

# Create SageMaker Estimator instance
tf_tc_estimator = Estimator(
    role=aws_role,
    image_uri=train_image_uri,
    source_dir=train_source_uri,
    model_uri=train_model_uri,
    entry_point="transfer_learning.py",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,)

اس کے بعد، اپنے حسب ضرورت ڈیٹاسیٹ پر سیکھنے کی منتقلی کے لیے، آپ کو ٹریننگ ہائپر پیرامیٹر کی ڈیفالٹ اقدار کو تبدیل کرنے کی ضرورت پڑسکتی ہے، جو درج ذیل میں درج ہیں۔ ہائپرپیرامیٹر. آپ کال کر کے ان ہائپر پیرامیٹر کی ڈیفالٹ اقدار کے ساتھ ازگر کی لغت حاصل کر سکتے ہیں۔ hyperparameters.retrieve_default، انہیں ضرورت کے مطابق اپ ڈیٹ کریں، اور پھر انہیں تخمینہ لگانے والی کلاس میں منتقل کریں۔ نوٹ کریں کہ کچھ ہائپرپیرامیٹرس کی ڈیفالٹ قدریں مختلف ماڈلز کے لیے مختلف ہیں۔ بڑے ماڈلز کے لیے، پہلے سے طے شدہ بیچ کا سائز چھوٹا ہوتا ہے۔ train_only_top_layer hyperparameter پر سیٹ کیا گیا ہے۔ True. ہائپر پیرامیٹر Train_only_top_layer وضاحت کرتا ہے کہ کون سے ماڈل کے پیرامیٹرز فائن ٹیوننگ کے عمل کے دوران تبدیل ہوتے ہیں۔ اگر train_only_top_layer is True، پھر درجہ بندی کی تہوں کے پیرامیٹرز بدل جاتے ہیں اور باقی پیرامیٹرز فائن ٹیوننگ کے عمل کے دوران مستقل رہتے ہیں۔ دوسری طرف، اگر train_only_top_layer is False، پھر ماڈل کے تمام پیرامیٹرز ٹھیک ہیں۔ درج ذیل کوڈ دیکھیں:

from sagemaker import hyperparameters# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version)# [Optional] Override default hyperparameters with custom values
hyperparameters["epochs"] = "5"

ہم فراہم کرتے ہیں SST2 ماڈلز کو ٹھیک کرنے کے لیے بطور ڈیفالٹ ڈیٹاسیٹ۔ ڈیٹا سیٹ میں مثبت اور منفی فلم کے جائزے شامل ہیں۔ سے ڈاؤن لوڈ کیا گیا ہے۔ TensorFlow کے تحت اپاچی 2.0 لائسنس. درج ذیل کوڈ پہلے سے طے شدہ تربیتی ڈیٹاسیٹ فراہم کرتا ہے جس کی میزبانی S3 بالٹی میں کی گئی ہے۔

# Sample training data is available in this bucket
training_data_bucket = f"jumpstart-cache-prod-{aws_region}"
training_data_prefix = "training-datasets/SST2/"

training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}"

آخر میں، ماڈل کو ٹھیک کرنے کے لیے SageMaker ٹریننگ جاب شروع کرنے کے لیے، ٹریننگ ڈیٹاسیٹ کے Amazon S3 مقام کو پاس کرتے ہوئے، تخمینہ لگانے والے کلاس کے آبجیکٹ پر .fit کو کال کریں:

# Launch a SageMaker Training job by passing s3 path of the training data
tf_od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

کسٹم ڈیٹاسیٹ پر ٹرانسفر لرننگ کے لیے نئے SageMaker TensorFlow ٹیکسٹ کلاسیفکیشن الگورتھم کو استعمال کرنے کے بارے میں مزید معلومات کے لیے، فائن ٹیونڈ ماڈل کو ڈیپلائی کریں، ڈیپلائی شدہ ماڈل پر انفرنس چلائیں، اور پہلے سے تربیت یافتہ ماڈل کو تعینات کریں جیسا کہ پہلی بار فائن ٹیوننگ کے بغیر ہے۔ حسب ضرورت ڈیٹاسیٹ پر، درج ذیل مثال نوٹ بک دیکھیں: جمپ اسٹارٹ کا تعارف - متن کی درجہ بندی.

TensorFlow ٹیکسٹ کی درجہ بندی الگورتھم کے لیے ان پٹ/آؤٹ پٹ انٹرفیس

آپ پہلے سے تربیت یافتہ ماڈلز میں درج ہر ایک کو ٹھیک کر سکتے ہیں۔ ٹینسر فلو ماڈلز کسی بھی دیے گئے ڈیٹاسیٹ کو متنی جملوں سے بنا کسی بھی تعداد میں کلاسز کے ساتھ۔ پہلے سے تربیت یافتہ ماڈل ٹیکسٹ ایمبیڈنگ ماڈل کے ساتھ درجہ بندی کی پرت کو جوڑتا ہے اور پرت کے پیرامیٹرز کو بے ترتیب اقدار سے شروع کرتا ہے۔ درجہ بندی کی پرت کی آؤٹ پٹ ڈائمینشن کا تعین ان پٹ ڈیٹا میں پائے جانے والی کلاسوں کی تعداد کی بنیاد پر کیا جاتا ہے۔ مقصد ان پٹ ڈیٹا پر درجہ بندی کی غلطیوں کو کم کرنا ہے۔ فائن ٹیوننگ کے ذریعے واپس آنے والے ماڈل کو مزید اندازہ لگانے کے لیے تعینات کیا جا سکتا ہے۔

مندرجہ ذیل ہدایات بیان کرتی ہیں کہ ماڈل میں ان پٹ کے لیے ٹریننگ ڈیٹا کو کس طرح فارمیٹ کیا جانا چاہیے:

  • ان پٹ – ایک ڈائریکٹری جس میں data.csv فائل ہوتی ہے۔ پہلے کالم کی ہر قطار میں 0 اور کلاسز کی تعداد کے درمیان انٹیجر کلاس لیبلز ہونے چاہئیں۔ دوسرے کالم کی ہر قطار میں متعلقہ ٹیکسٹ ڈیٹا ہونا چاہیے۔
  • آؤٹ پٹ - ایک ٹھیک ٹیونڈ ماڈل جسے تخمینہ کے لیے تعینات کیا جا سکتا ہے یا اضافی تربیت کا استعمال کرتے ہوئے مزید تربیت دی جا سکتی ہے۔ ایک فائل میپنگ کلاس انڈیکس کو کلاس لیبلز کے ساتھ ماڈلز کے ساتھ محفوظ کیا جاتا ہے۔

درج ذیل ایک ان پٹ CSV فائل کی ایک مثال ہے۔ نوٹ کریں کہ فائل میں کوئی ہیڈر نہیں ہونا چاہیے۔ فائل کو S3 بالٹی میں ہوسٹ کیا جانا چاہئے جس کا راستہ درج ذیل سے ملتا جلتا ہے: s3://bucket_name/input_directory/. یاد رکھیں کہ پیچھے کی طرف / ضرورت ہے

|0 |hide new secretions from the parental units|
|0 |contains no wit , only labored gags|
|1 |that loves its characters and communicates something rather beautiful about human nature|
|...|...|

TensorFlow متن کی درجہ بندی الگورتھم کے ساتھ اندازہ

تیار کردہ ماڈلز کو قیاس اور سپورٹ ٹیکسٹ کے بطور ہوسٹ کیا جا سکتا ہے۔ application/x-text مواد کی قسم. آؤٹ پٹ میں امکانات کی قدریں، تمام کلاسوں کے لیے کلاس لیبلز، اور JSON فارمیٹ میں انکوڈ کردہ سب سے زیادہ امکان کے ساتھ کلاس انڈیکس سے متعلق پیش گوئی کردہ لیبل شامل ہیں۔ ماڈل فی درخواست ایک واحد سٹرنگ پر کارروائی کرتا ہے اور صرف ایک لائن کو آؤٹ پٹ کرتا ہے۔ ذیل میں JSON فارمیٹ کے جواب کی ایک مثال ہے۔

accept: application/json;verbose
{"probabilities": [prob_0, prob_1, prob_2, ...],
 "labels": [label_0, label_1, label_2, ...],
 "predicted_label": predicted_label}

If accept کرنے کے لئے مقرر کیا گیا ہے application/json، پھر ماڈل صرف امکانات کو آؤٹ پٹ کرتا ہے۔ تربیت اور تخمینہ کے بارے میں مزید تفصیلات کے لیے، نمونہ نوٹ بک کا تعارف دیکھیں جمپ اسٹارٹ کا تعارف - متن کی درجہ بندی.

JumpStart UI کے ذریعے SageMaker بلٹ ان الگورتھم استعمال کریں۔

آپ جمپ سٹارٹ UI کے ذریعے چند کلکس کے ساتھ SageMaker TensorFlow ٹیکسٹ کی درجہ بندی اور کسی دوسرے بلٹ ان الگورتھم کو بھی استعمال کر سکتے ہیں۔ جمپ سٹارٹ ایک سیج میکر خصوصیت ہے جو آپ کو گرافیکل انٹرفیس کے ذریعے مختلف ایم ایل فریم ورکس اور ماڈل ہب سے بلٹ ان الگورتھم اور پہلے سے تربیت یافتہ ماڈلز کو تربیت اور تعینات کرنے دیتی ہے۔ مزید برآں، یہ آپ کو مکمل طور پر تیار کردہ ML سلوشنز تعینات کرنے دیتا ہے جو ML ماڈلز اور مختلف دیگر AWS سروسز کو ایک دوسرے کے ساتھ سٹرنگ کرتے ہوئے استعمال کے ہدف کے معاملے کو حل کرتے ہیں۔

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

پہلے سے تربیت یافتہ ماڈل کو ٹھیک بنائیں

یہاں پہلے سے تربیت یافتہ متن کی درجہ بندی کے ماڈل کو ٹھیک کرنے کا عمل ہے۔

نفیس ماڈل تعینات کریں۔

ماڈل ٹریننگ ختم ہونے کے بعد، آپ ایک کلک کے ساتھ ماڈل کو مستقل، ریئل ٹائم اینڈ پوائنٹ پر براہ راست تعینات کر سکتے ہیں۔

نتیجہ

اس پوسٹ میں، ہم نے SageMaker TensorFlow ٹیکسٹ کی درجہ بندی بلٹ ان الگورتھم کے آغاز کا اعلان کیا۔ ہم نے اس الگورتھم کا استعمال کرتے ہوئے TensorFlow حب سے پہلے سے تربیت یافتہ ماڈل کا استعمال کرتے ہوئے کسٹم ڈیٹاسیٹ پر ٹرانسفر لرننگ کرنے کے طریقہ کے لیے مثالی کوڈ فراہم کیا۔

مزید معلومات کے لئے ، چیک کریں۔ دستاویزات اور مثال نوٹ بک جمپ اسٹارٹ کا تعارف - متن کی درجہ بندی.


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

Transfer learning for TensorFlow text classification models in Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.ڈاکٹر وویک مدن کے ساتھ ایک اپلائیڈ سائنٹسٹ ہے۔ ایمیزون سیج میکر جمپ اسٹارٹ ٹیم. انہوں نے Urbana-Champaign میں یونیورسٹی آف الینوائے سے پی ایچ ڈی کی اور جارجیا ٹیک میں پوسٹ ڈاکٹریٹ ریسرچر تھے۔ وہ مشین لرننگ اور الگورتھم ڈیزائن میں ایک فعال محقق ہے اور اس نے EMNLP، ICLR، COLT، FOCS اور SODA کانفرنسوں میں مقالے شائع کیے ہیں۔

Transfer learning for TensorFlow text classification models in Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.جواؤ مورا ایمیزون ویب سروسز میں ایک AI/ML ماہر حل آرکیٹیکٹ ہے۔ وہ زیادہ تر NLP کے استعمال کے معاملات پر توجہ مرکوز کرتا ہے اور صارفین کو گہری سیکھنے کے ماڈل کی تربیت اور تعیناتی کو بہتر بنانے میں مدد کرتا ہے۔ وہ کم کوڈ ایم ایل سلوشنز اور ایم ایل اسپیشلائزڈ ہارڈ ویئر کا ایک فعال حامی بھی ہے۔

Transfer learning for TensorFlow text classification models in Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.ڈاکٹر آشیش کھیتان کے ساتھ ایک سینئر اپلائیڈ سائنٹسٹ ہے۔ ایمیزون سیج میکر بلٹ ان الگورتھم اور مشین لرننگ الگورتھم تیار کرنے میں مدد کرتا ہے۔ انہوں نے یونیورسٹی آف الینوائے اربانا چیمپین سے پی ایچ ڈی کی ڈگری حاصل کی۔ وہ مشین لرننگ اور شماریاتی اندازہ میں ایک فعال محقق ہے اور اس نے NeurIPS، ICML، ICLR، JMLR، ACL، اور EMNLP کانفرنسوں میں بہت سے مقالے شائع کیے ہیں۔

ٹائم اسٹیمپ:

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