ایمیزون سیج میکر جمپ اسٹارٹ پر جی پی ٹی اور بلوم ماڈلز کے ساتھ ٹیکسٹ جنریشن چلائیں۔

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

یہ پوسٹ ایم ایل کے مخصوص کاموں کے لیے جمپ اسٹارٹ استعمال کرنے کے سلسلے میں چوتھی پوسٹ ہے۔ میں پہلی پوسٹ، ہم نے جمپ سٹارٹ پر تصویر کی درجہ بندی کے استعمال کے کیسز کو کیسے چلانا ہے دکھایا۔ میں دوسری پوزیشن، ہم نے ظاہر کیا کہ ٹیکسٹ کی درجہ بندی کے استعمال کے کیسز کو کیسے چلایا جائے۔ میں تیسری پوسٹ، ہم نے امیج سیگمنٹیشن کے استعمال کے معاملات چلائے۔

اس پوسٹ میں، ہم پہلے سے تربیت یافتہ ٹیکسٹ جنریشن ماڈلز کو تعینات کرنے کے بارے میں ایک قدم بہ قدم واک تھرو فراہم کرتے ہیں۔ ہم ایک ہی نتیجہ حاصل کرنے کے دو طریقے تلاش کرتے ہیں: جمپ اسٹارٹ کے گرافیکل انٹرفیس کے ذریعے ایمیزون سیج میکر اسٹوڈیو، اور پروگرام کے ذریعے جمپ اسٹارٹ APIs.

اگر آپ جمپ اسٹارٹ API کوڈ میں براہ راست کودنا چاہتے ہیں جس کے ذریعے ہم اس پوسٹ میں جاتے ہیں، تو آپ درج ذیل نمونہ Jupyter نوٹ بک کا حوالہ دے سکتے ہیں: جمپ اسٹارٹ کا تعارف - ٹیکسٹ جنریشن.

جمپ اسٹارٹ کا جائزہ

جمپ اسٹارٹ آپ کو کوڈ کی ایک لائن لکھے بغیر متعدد کاموں کے لیے ایم ایل ماڈلز کے ساتھ شروع کرنے میں مدد کرتا ہے۔ فی الحال، جمپ اسٹارٹ آپ کو درج ذیل کام کرنے کے قابل بناتا ہے:

  • عام ایم ایل کاموں کے لیے پہلے سے تربیت یافتہ ماڈلز کا تعین کریں۔ - جمپ سٹارٹ آپ کو بڑے، عوامی طور پر دستیاب ڈیٹا سیٹس پر پہلے سے تربیت یافتہ ماڈلز کی آسانی سے تعیناتی فراہم کرکے بغیر کسی ترقیاتی کوشش کے عام ML کاموں کو حل کرنے کے قابل بناتا ہے۔ ایم ایل ریسرچ کمیونٹی نے حال ہی میں تیار کردہ زیادہ تر ماڈلز کو عوامی طور پر استعمال کے لیے دستیاب کرنے کے لیے بہت زیادہ کوششیں کی ہیں۔ جمپ سٹارٹ 300 سے زیادہ ماڈلز کے مجموعے کی میزبانی کرتا ہے، جس میں 15 مقبول ترین ML کاموں جیسے آبجیکٹ کا پتہ لگانا، ٹیکسٹ کی درجہ بندی، اور ٹیکسٹ جنریشن شامل ہے، جس سے ابتدائی افراد کے لیے انہیں استعمال کرنا آسان ہو جاتا ہے۔ یہ ماڈل مشہور ماڈل ہب جیسے TensorFlow، PyTorch، Hugging Face، اور MXNet سے تیار کیے گئے ہیں۔
  • پہلے سے تربیت یافتہ ماڈلز کو ٹھیک بنائیں - جمپ سٹارٹ آپ کو اپنے تربیتی الگورتھم کو لکھنے کی ضرورت کے بغیر پہلے سے تربیت یافتہ ماڈلز کو ٹھیک کرنے کی اجازت دیتا ہے۔ ایم ایل میں، ایک ڈومین میں سیکھے گئے علم کو دوسرے ڈومین میں منتقل کرنے کی صلاحیت کو کہا جاتا ہے۔ منتقلی سیکھنے. آپ اپنے چھوٹے ڈیٹا سیٹس پر درست ماڈلز تیار کرنے کے لیے ٹرانسفر لرننگ کا استعمال کر سکتے ہیں، جس میں اصل ماڈل کی تربیت میں شامل افراد کی نسبت بہت کم تربیتی لاگت آتی ہے۔ JumpStart میں LightGBM، CatBoost، XGBoost، اور Scikit-learn پر مبنی مشہور ٹریننگ الگورتھم بھی شامل ہیں، جنہیں آپ ٹیبلر ریگریشن اور درجہ بندی کے لیے شروع سے تربیت دے سکتے ہیں۔
  • پہلے سے تیار کردہ حل استعمال کریں۔ - جمپ سٹارٹ عام ML استعمال کے معاملات کے لیے 17 حل فراہم کرتا ہے، جیسے ڈیمانڈ کی پیشن گوئی اور صنعتی اور مالیاتی ایپلی کیشنز، جنہیں آپ صرف چند کلکس کے ساتھ تعینات کر سکتے ہیں۔ سولیوشنز اینڈ ٹو اینڈ ایم ایل ایپلی کیشنز ہیں جو مختلف AWS سروسز کو ایک ساتھ جوڑ کر کسی خاص کاروباری استعمال کے معاملے کو حل کرتی ہیں۔ وہ استعمال کرتے ہیں AWS کلاؤڈ فارمیشن فوری تعیناتی کے لیے ٹیمپلیٹس اور ریفرنس آرکیٹیکچرز، جس کا مطلب ہے کہ وہ مکمل طور پر حسب ضرورت ہیں۔
  • SageMaker الگورتھم کے لیے نوٹ بک کی مثالوں سے رجوع کریں۔ - SageMaker ڈیٹا سائنسدانوں اور ML پریکٹیشنرز کو ML ماڈلز کو تیزی سے تربیت اور تعینات کرنے کے ساتھ شروع کرنے میں مدد کرنے کے لیے بلٹ ان الگورتھم کا ایک مجموعہ فراہم کرتا ہے۔ جمپ سٹارٹ نمونہ نوٹ بک فراہم کرتا ہے جسے آپ ان الگورتھم کو تیزی سے استعمال کرنے کے لیے استعمال کر سکتے ہیں۔
  • تربیتی ویڈیوز اور بلاگز کا جائزہ لیں۔ - جمپ سٹارٹ متعدد بلاگ پوسٹس اور ویڈیوز بھی فراہم کرتا ہے جو آپ کو سیج میکر کے اندر مختلف فنکشنلٹیز کو استعمال کرنے کا طریقہ سکھاتے ہیں۔

جمپ سٹارٹ اپنی مرضی کے مطابق VPC ترتیبات کو قبول کرتا ہے اور AWS کلیدی انتظام کی خدمت (AWS KMS) انکرپشن کیز، تاکہ آپ اپنے انٹرپرائز ماحول میں دستیاب ماڈلز اور حل محفوظ طریقے سے استعمال کر سکیں۔ آپ اپنی حفاظتی ترتیبات کو اسٹوڈیو کے اندر یا SageMaker Python SDK کے ذریعے جمپ اسٹارٹ پر منتقل کر سکتے ہیں۔

ٹیکسٹ جنریشن، GPT-2، اور بلوم

ٹیکسٹ جنریشن ایسے متن کو تیار کرنے کا کام ہے جو روانی سے ہو اور انسان کے لکھے ہوئے متن سے الگ نہ ہو۔ کے نام سے بھی جانا جاتا ہے۔ قدرتی زبان کی نسل.

GPT-2 ایک مقبول ٹرانسفارمر پر مبنی ٹیکسٹ جنریشن ماڈل ہے۔ یہ خام انگریزی متن کے ایک بڑے کارپس پر پہلے سے تربیت یافتہ ہے جس میں کوئی انسانی لیبلنگ نہیں ہے۔ اسے اس کام پر تربیت دی جاتی ہے جہاں جزوی ترتیب (جملہ یا متن کا ٹکڑا) دیتے ہوئے، ماڈل کو ترتیب میں اگلے لفظ یا ٹوکن کی پیشن گوئی کرنے کی ضرورت ہوتی ہے۔

بلوم ایک ٹرانسفارمر پر مبنی ٹیکسٹ جنریشن ماڈل بھی ہے اور GPT-2 کی طرح تربیت یافتہ ہے۔ تاہم، بلوم 46 مختلف زبانوں اور 13 پروگرامنگ زبانوں پر پہلے سے تربیت یافتہ ہے۔ مندرجہ ذیل بلوم ماڈل کے ساتھ ٹیکسٹ جنریشن چلانے کی ایک مثال ہے۔

Input: "Some people like dogs, some people like cats"
Output: "Some people like dogs, some people like cats some people like birds, some people like fish,"

حل جائزہ

مندرجہ ذیل حصے اسٹوڈیو UI اور JumpStart APIs کے ذریعے اندازہ لگانے کے لیے مرحلہ وار ڈیمو فراہم کرتے ہیں۔ ہم درج ذیل مراحل سے گزرتے ہیں:

  1. اسٹوڈیو UI کے ذریعے جمپ سٹارٹ تک رسائی حاصل کریں تاکہ پہلے سے تربیت یافتہ ماڈل پر اندازہ لگایا جا سکے۔
  2. پہلے سے تربیت یافتہ ماڈل کی تعیناتی اور تخمینہ چلانے کے لیے SageMaker Python SDK کے ساتھ JumpStart پروگرام کے مطابق استعمال کریں۔

اسٹوڈیو UI کے ذریعے جمپ اسٹارٹ تک رسائی حاصل کریں اور پہلے سے تربیت یافتہ ماڈل کے ساتھ انفرنس چلائیں۔

اس سیکشن میں، ہم اسٹوڈیو UI کے ذریعے جمپ سٹارٹ ماڈلز کو تربیت اور تعینات کرنے کا طریقہ دکھاتے ہیں۔

درج ذیل ویڈیو آپ کو دکھاتی ہے کہ جمپ سٹارٹ پر پہلے سے تربیت یافتہ ٹیکسٹ جنریشن ماڈل کو کیسے تلاش کیا جائے اور اسے کیسے لگایا جائے۔ ماڈل صفحہ ماڈل کے بارے میں قیمتی معلومات اور اسے استعمال کرنے کے طریقہ پر مشتمل ہے۔ آپ JumpStart میں دستیاب پہلے سے تربیت یافتہ ماڈلز میں سے کسی کو بھی تعینات کر سکتے ہیں۔ تخمینہ کے لیے، ہم ml.p3.2xlarge مثال کی قسم کا انتخاب کرتے ہیں، کیونکہ یہ کم قیمت والے مقام پر کم تخمینہ میں تاخیر کے لیے درکار GPU سرعت فراہم کرتا ہے۔ سیج میکر ہوسٹنگ مثال کو ترتیب دینے کے بعد، منتخب کریں۔ تعینات. اس میں 20-25 منٹ لگ سکتے ہیں جب تک کہ آپ کا مستقل اختتامی نقطہ تیار نہ ہو اور چلتا ہو۔

ایک بار جب آپ کا اختتامی نقطہ فعال ہو جائے تو، یہ تخمینہ کی درخواستوں کا جواب دینے کے لیے تیار ہے!

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

SageMaker SDK کے ساتھ JumpStart پروگرام کے مطابق استعمال کریں۔

پچھلے حصے میں، ہم نے دکھایا کہ آپ جمپ سٹارٹ UI کو کس طرح استعمال کر سکتے ہیں تاکہ پہلے سے تربیت یافتہ ماڈل کو انٹرایکٹو طریقے سے، چند کلکس میں تعینات کیا جا سکے۔ تاہم، آپ SageMaker SDK میں مربوط APIs کا استعمال کرکے JumpStart کے ماڈلز کو پروگرام کے مطابق بھی استعمال کرسکتے ہیں۔

اس سیکشن میں، ہم اس کی ایک فوری مثال دیکھتے ہیں کہ آپ کس طرح SageMaker SDK کے ساتھ سابقہ ​​عمل کو نقل کر سکتے ہیں۔ ہم جمپ سٹارٹ میں ایک مناسب پہلے سے تربیت یافتہ ماڈل کا انتخاب کرتے ہیں، اس ماڈل کو سیج میکر کے اختتامی نقطہ پر تعینات کرتے ہیں، اور تعیناتی اختتامی نقطہ پر تخمینہ چلاتے ہیں۔ اس ڈیمو کے تمام مراحل ساتھ والی نوٹ بک میں دستیاب ہیں۔ جمپ اسٹارٹ کا تعارف - ٹیکسٹ جنریشن.

پہلے سے تربیت یافتہ ماڈل تعینات کریں۔

سیج میکر ایک ایسا پلیٹ فارم ہے جو ڈوکر کنٹینرز کو تعمیر اور رن ٹائم کاموں کے لیے وسیع پیمانے پر استعمال کرتا ہے۔ جمپ اسٹارٹ دستیاب فریم ورک مخصوص استعمال کرتا ہے۔ سیج میکر ڈیپ لرننگ کنٹینرز (DLCs)۔ ہم سب سے پہلے کسی بھی اضافی پیکج کے ساتھ ساتھ منتخب کردہ کام کے لیے تربیت اور تخمینہ کو سنبھالنے کے لیے اسکرپٹس لاتے ہیں۔ آخر میں، پہلے سے تربیت یافتہ ماڈل کے نمونے الگ سے لائے گئے ہیں۔ model_uris، جو پلیٹ فارم کو لچک فراہم کرتا ہے۔ آپ ایک ہی انفرنس اسکرپٹ کے ساتھ ایک ہی کام پر پہلے سے تربیت یافتہ ماڈلز کی تعداد استعمال کر سکتے ہیں۔ درج ذیل کوڈ دیکھیں:

model_id, model_version = "huggingface-textgeneration-bloom-560m", "*"

# Retrieve the inference docker container uri
deploy_image_uri = image_uris.retrieve(
    region=None,
    framework=None,  # automatically inferred from model_id
    image_scope="inference",
    model_id=model_id,
    model_version=model_version,
    instance_type=inference_instance_type,
)

# Retrieve the inference script uri
deploy_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="inference")

base_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="inference")

بلوم ایک بہت بڑا ماڈل ہے اور اسے لگانے میں 20-25 منٹ لگ سکتے ہیں۔ آپ ایک چھوٹا ماڈل بھی استعمال کر سکتے ہیں جیسے GPT-2۔ پہلے سے تربیت یافتہ GPT-2 ماڈل کو تعینات کرنے کے لیے، آپ سیٹ کر سکتے ہیں۔ model_id = huggingface-textgeneration-gpt2. جمپ سٹارٹ میں دستیاب دیگر ماڈلز کی فہرست کے لیے رجوع کریں۔ جمپ سٹارٹ دستیاب ماڈل ٹیبل.

اگلا، ہم وسائل کو a میں فیڈ کرتے ہیں۔ سیج میکر ماڈل مثال کے طور پر اور ایک اختتامی نقطہ تعینات کریں:

# Create the SageMaker model instance
model = Model(
    image_uri=deploy_image_uri,
    source_dir=deploy_source_uri,
    model_data=base_model_uri,
    entry_point="inference.py",  # entry point file in source_dir and present in deploy_source_uri
    role=aws_role,
    predictor_cls=Predictor,
    name=endpoint_name,
)

# deploy the Model. Note that we need to pass Predictor class when we deploy model through Model class,
# for being able to run inference through the sagemaker API.
base_model_predictor = model.deploy(
    initial_instance_count=1,
    instance_type=inference_instance_type,
    predictor_cls=Predictor,
    endpoint_name=endpoint_name,
)

ہمارے ماڈل کے تعینات ہونے کے بعد، ہم اس سے حقیقی وقت میں پیشین گوئیاں حاصل کر سکتے ہیں!

تخمینہ چلائیں۔

مندرجہ ذیل کوڈ کا ٹکڑا آپ کو اس بات کی ایک جھلک دیتا ہے کہ آؤٹ پٹس کیسا نظر آتا ہے۔ تعینات کردہ ماڈل کو درخواستیں بھیجنے کے لیے، ان پٹ ٹیکسٹ کو a میں فراہم کرنے کی ضرورت ہے۔ utf-8 انکوڈ شدہ فارمیٹ

def query(model_predictor, text):
    """Query the model predictor."""

    encoded_text = json.dumps(text).encode("utf-8")

    query_response = model_predictor.predict(
        encoded_text,
        {
            "ContentType": "application/x-text",
            "Accept": "application/json",
        },
    )
    return query_response

اختتامی جواب ایک JSON آبجیکٹ ہے جس میں ان پٹ ٹیکسٹ ہوتا ہے جس کے بعد تیار کردہ ٹیکسٹ ہوتا ہے:

def parse_response(query_response):
    """Parse response and return the generated text."""

    model_predictions = json.loads(query_response)
    generated_text = model_predictions["generated_text"]
    return generated_text
    
text = "Some people like dogs, some people like cats"
query_response = query(model_predictor, text)
parse_response(query_response)

ہماری پیداوار مندرجہ ذیل ہے:

"Some people like dogs, some people like cats some people like birds, some people like fish,"

نتیجہ

اس پوسٹ میں، ہم نے دکھایا کہ جمپ اسٹارٹ کا استعمال کرتے ہوئے پہلے سے تربیت یافتہ ٹیکسٹ جنریشن ماڈل کو کیسے تعینات کیا جائے۔ آپ کوڈ لکھنے کی ضرورت کے بغیر اسے پورا کر سکتے ہیں۔ خود ہی حل آزمائیں اور ہمیں اپنی رائے بھیجیں۔ جمپ اسٹارٹ کے بارے میں مزید جاننے کے لیے اور آپ اوپن سورس پری ٹرینڈ ماڈلز کو مختلف قسم کے دیگر ایم ایل کاموں کے لیے کیسے استعمال کر سکتے ہیں، درج ذیل کو دیکھیں AWS re: Invent 2020 ویڈیو.


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

Run text generation with GPT and Bloom models on Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertical Search. Ai.ڈاکٹر وویک مدن Amazon SageMaker جمپ سٹارٹ ٹیم کے ساتھ ایک اپلائیڈ سائنٹسٹ ہے۔ انہوں نے Urbana-Champaign میں یونیورسٹی آف الینوائے سے پی ایچ ڈی کی اور جارجیا ٹیک میں پوسٹ ڈاکٹریٹ ریسرچر تھے۔ وہ مشین لرننگ اور الگورتھم ڈیزائن میں ایک فعال محقق ہے اور اس نے EMNLP، ICLR، COLT، FOCS، اور SODA کانفرنسوں میں مقالے شائع کیے ہیں۔

Run text generation with GPT and Bloom models on Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertical Search. Ai.سنتوش کلکرنی Amazon Web Services میں ایک انٹرپرائز سلوشنز آرکیٹیکٹ ہے جو آسٹریلیا میں کھیلوں کے صارفین کے ساتھ کام کرتا ہے۔ وہ AI/ML، بڑے ڈیٹا، اور سافٹ ویئر ڈویلپمنٹ میں اپنے علم کا استعمال کرتے ہوئے کاروباری مسائل کو حل کرنے کے لیے بڑے پیمانے پر تقسیم شدہ ایپلی کیشنز بنانے کا پرجوش ہے۔

Run text generation with GPT and Bloom models on Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertical Search. Ai.ڈاکٹر آشیش کھیتان Amazon SageMaker بلٹ ان الگورتھم کے ساتھ ایک سینئر اپلائیڈ سائنٹسٹ ہے اور مشین لرننگ الگورتھم تیار کرنے میں مدد کرتا ہے۔ انہوں نے یونیورسٹی آف الینوائے اربانا چیمپین سے پی ایچ ڈی کی ڈگری حاصل کی۔ وہ مشین لرننگ اور شماریاتی اندازہ میں ایک فعال محقق ہے اور اس نے NeurIPS، ICML، ICLR، JMLR، ACL، اور EMNLP کانفرنسوں میں بہت سے مقالے شائع کیے ہیں۔

ٹائم اسٹیمپ:

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