Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عی

Amazon SageMaker JumpStart کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔

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

اس پوسٹ میں، ہم یہ ظاہر کرتے ہیں کہ پانچ مختلف NLP کاموں کو حل کرنے کے لیے جدید ترین ML تکنیکوں کو کیسے استعمال کیا جائے: دستاویز کا خلاصہ، متن کی درجہ بندی، سوال کا جواب، نام کی ہستی کی شناخت، اور رشتہ نکالنا۔ ان میں سے ہر ایک NLP کام کے لیے، ہم یہ ظاہر کرتے ہیں کہ کس طرح استعمال کیا جائے۔ ایمیزون سیج میکر درج ذیل اعمال انجام دینے کے لیے:

  • پہلے سے تربیت یافتہ ماڈل پر تخمینہ لگائیں اور چلائیں۔
  • ایک نئے کسٹم ڈیٹاسیٹ پر پہلے سے تربیت یافتہ ماڈل کو ٹھیک بنائیں
  • مزید کے ساتھ ٹھیک ٹیوننگ کارکردگی کو بہتر بنانے کے سیج میکر خودکار ماڈل ٹیوننگ
  • مختلف تشخیصی میٹرکس کے ساتھ ہولڈ آؤٹ ٹیسٹ ڈیٹا پر ماڈل کی کارکردگی کا اندازہ کریں۔

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

جمپ اسٹارٹ حل ٹیمپلیٹس

ایمیزون سیج میکر جمپ اسٹارٹ بہت سے عام ML استعمال کے معاملات کے لیے ایک کلک، اینڈ ٹو اینڈ حل فراہم کرتا ہے۔ دستیاب حل ٹیمپلیٹس کے بارے میں مزید معلومات کے لیے درج ذیل استعمال کے معاملات کو دریافت کریں:

جمپ سٹارٹ سلوشن ٹیمپلیٹس مختلف قسم کے استعمال کے کیسز کا احاطہ کرتے ہیں، جن میں سے ہر ایک کے تحت کئی مختلف حل ٹیمپلیٹس پیش کیے جاتے ہیں (دستاویزی تفہیم کا یہ حل "دستاویزات سے ڈیٹا نکالیں اور تجزیہ کریں" کے استعمال کے کیس کے تحت ہے)۔

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

حل جائزہ

درج ذیل تصویر سے پتہ چلتا ہے کہ آپ اس حل کو SageMaker اجزاء کے ساتھ کیسے استعمال کر سکتے ہیں۔ سیج میکر ٹریننگ جابز کا استعمال مختلف NLP ماڈل کی تربیت کے لیے کیا جاتا ہے، اور SageMaker اینڈ پوائنٹس کو ہر مرحلے میں ماڈلز کی تعیناتی کے لیے استعمال کیا جاتا ہے۔ ہم استعمال کرتے ہیں ایمیزون سادہ اسٹوریج سروس (ایمیزون S3) سیج میکر کے ساتھ تربیتی ڈیٹا اور نمونے کے نمونے کو ذخیرہ کرنے کے لیے، اور ایمیزون کلاؤڈ واچ ٹریننگ اور اینڈ پوائنٹ آؤٹ پٹس کو لاگ کرنے کے لیے۔

دستاویز کو سمجھنے کا حل کھولیں۔

جمپ اسٹارٹ میں دستاویز کو سمجھنے کے حل پر جائیں۔

اب ہم ڈیمو نوٹ بک سے شروع ہونے والے کچھ اثاثوں کو قریب سے دیکھ سکتے ہیں جو اس حل میں شامل ہیں۔

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عی

ڈیمو نوٹ بک

آپ ڈیمو نوٹ بک کا استعمال دستاویز کے خلاصے اور سوالوں کے جواب دینے کے کاموں کے لیے پہلے سے تعینات ماڈل اینڈ پوائنٹس پر مثال کا ڈیٹا بھیجنے کے لیے کر سکتے ہیں۔ ڈیمو نوٹ بک آپ کو مثال کے اعداد و شمار سے استفسار کر کے فوری تجربہ حاصل کرنے کی اجازت دیتی ہے۔

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

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عی

آئیے اس حل کے لیے پانچ اہم نوٹ بک میں سے ہر ایک میں گہرائی میں غوطہ لگائیں۔

شرائط

In ایمیزون سیج میکر اسٹوڈیو، یقینی بنائیں کہ آپ استعمال کر رہے ہیں۔ PyTorch 1.10 Python 3.8 CPU Optimized نوٹ بک کھولنے کے لیے امیج/کرنل۔ ٹریننگ پانچ ml.g4dn.2x بڑی مثالوں کا استعمال کرتی ہے، لہذا آپ کو a بڑھانا چاہیے۔ سروس کی حد میں اضافے کی درخواست اگر آپ کے اکاؤنٹ کو اس قسم کے لیے بڑھتی ہوئی حدود کی ضرورت ہے۔

متن کی درجہ بندی

متن کی درجہ بندی سے مراد تربیتی ڈیٹاسیٹ کے کلاس لیبلز میں سے کسی ایک ان پٹ جملے کی درجہ بندی کرنا ہے۔ یہ نوٹ بک ظاہر کرتی ہے کہ کس طرح استعمال کیا جائے۔ جمپ اسٹارٹ API متن کی درجہ بندی کے لیے۔

پہلے سے تربیت یافتہ ماڈل پر تخمینہ لگائیں اور چلائیں۔

ٹیکسٹ کی درجہ بندی کا جو ماڈل ہم نے استعمال کرنے کے لیے منتخب کیا ہے وہ ٹیکسٹ ایمبیڈنگ پر بنایا گیا ہے (tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2) سے ماڈل ٹینسر فلو حب، جو ویکیپیڈیا اور بک کارپس ڈیٹاسیٹس پر پہلے سے تربیت یافتہ ہے۔

تعیناتی کے لیے دستیاب ماڈل ٹیکسٹ ایمبیڈنگ ماڈل کے آؤٹ پٹ میں بائنری درجہ بندی کی پرت کو جوڑ کر، اور پھر پورے ماڈل کو ٹھیک ٹیوننگ کے ذریعے بنایا گیا ہے۔ SST-2 ڈیٹا سیٹ، جو مثبت اور منفی فلمی جائزوں پر مشتمل ہے۔

اس ماڈل پر قیاس چلانے کے لیے، ہمیں پہلے انفرنس کنٹینر کو ڈاؤن لوڈ کرنا ہوگا (deploy_image_uri, inference اسکرپٹ (deploy_source_uri)، اور پہلے سے تربیت یافتہ ماڈل (base_model_uri)۔ اس کے بعد ہم سیج میکر ماڈل آبجیکٹ کو فوری بنانے کے لیے ان کو پیرامیٹر کے طور پر پاس کرتے ہیں، جسے ہم پھر تعینات کر سکتے ہیں:

model = Model(
    image_uri=deploy_image_uri,
    source_dir=deploy_source_uri,
    model_data=base_model_uri,
    entry_point="inference.py",
    role=aws_role,
    predictor_cls=Predictor,
    name=endpoint_name_tc,
)
# deploy the Model.
base_model_predictor = model.deploy(
    initial_instance_count=1,
    instance_type=inference_instance_type,
    endpoint_name=endpoint_name_tc,
)

ماڈل کو تعینات کرنے کے بعد، ہم کچھ مثال کے ان پٹ جمع کرتے ہیں اور اختتامی نقطہ سے استفسار کرتے ہیں:

text1 = "astonishing ... ( frames ) profound ethical and philosophical questions in the form of dazzling pop entertainment" 
text2 = "simply stupid , irrelevant and deeply , truly , bottomlessly cynical "

درج ذیل کوڈ ہمارے جوابات کو ظاہر کرتا ہے:

Inference:
Input text: 'astonishing ... ( frames ) profound ethical and philosophical questions in the form of dazzling pop entertainment'
Model prediction: [0.000452966779, 0.999547064]
Labels: [0, 1]
Predicted Label: 1 # value 0 means negative sentiment and value 1 means positive sentiment

Inference:
Input text: 'simply stupid , irrelevant and deeply , truly , bottomlessly cynical '
Model prediction: [0.998723, 0.00127695734]
Labels: [0, 1]
Predicted Label: 0

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

ہم نے ابھی پہلے سے تربیت یافتہ BERT ماڈل پر چلتے ہوئے اندازہ لگایا، جو SST-2 ڈیٹاسیٹ

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

ہم ٹریننگ ڈوکر کنٹینر، ٹریننگ الگورتھم سورس، اور پہلے سے تربیت یافتہ ماڈل بازیافت کرتے ہیں:

from sagemaker import image_uris, model_uris, script_uris, hyperparameters

model_id, model_version = model_id, "*" # all the other options of model_id are the same as the one in Section 2.
training_instance_type = config.TRAINING_INSTANCE_TYPE

# Retrieve the docker image
train_image_uri = image_uris.retrieve(
    region=None,
    framework=None,
    model_id=model_id,
    model_version=model_version,
    image_scope="training",
    instance_type=training_instance_type,
)
# 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 to further fine-tune
train_model_uri = model_uris.retrieve(
    model_id=model_id, model_version=model_version, model_scope="training"
)

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

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["batch-size"] = "64"
hyperparameters["adam-learning-rate"] = "1e-6"

ڈیٹاسیٹ (SST-2) کو تربیت، توثیق اور ٹیسٹ سیٹ میں تقسیم کیا جاتا ہے، جہاں ٹریننگ سیٹ کو ماڈل میں فٹ کرنے کے لیے استعمال کیا جاتا ہے، توثیق سیٹ کا استعمال تشخیصی میٹرکس کی گنتی کے لیے کیا جاتا ہے جو HPO کے لیے استعمال کیا جا سکتا ہے، اور ٹیسٹ سیٹ کو ہولڈ آؤٹ ڈیٹا کے طور پر استعمال کیا جاتا ہے۔ ماڈل کی کارکردگی کا جائزہ لینے کے لیے۔ اس کے بعد، ٹرین اور توثیق کا ڈیٹاسیٹ Amazon S3 پر اپ لوڈ کیا جاتا ہے اور فائن ٹیوننگ ٹریننگ جاب شروع کرنے کے لیے استعمال کیا جاتا ہے:

# Create SageMaker Estimator instance
tc_estimator = Estimator(
    role=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,
    tags=[{'Key': config.TAG_KEY, 'Value': config.SOLUTION_PREFIX}],
    base_job_name=training_job_name,
)

training_data_path_updated = f"s3://{config.S3_BUCKET}/{prefix}/train"
# Launch a SageMaker Training job by passing s3 path of the training data
tc_estimator.fit({"training": training_data_path_updated}, logs=True)

فائن ٹیوننگ کا کام مکمل ہونے کے بعد، ہم ماڈل کو تعینات کرتے ہیں، ہولڈ آؤٹ ٹیسٹ ڈیٹاسیٹ پر تخمینہ چلاتے ہیں، اور تشخیصی میٹرکس کی گنتی کرتے ہیں۔ کیونکہ یہ ایک بائنری درجہ بندی کا کام ہے، ہم استعمال کرتے ہیں۔ درستگی سکور اور F1 سکور تشخیص میٹرکس کے طور پر. ایک بڑی قدر بہتر کارکردگی کی نشاندہی کرتی ہے۔ درج ذیل اسکرین شاٹ ہمارے نتائج کو ظاہر کرتا ہے۔

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عی

SageMaker آٹومیٹک ماڈل ٹیوننگ کے ساتھ فائن ٹیوننگ کارکردگی کو مزید بہتر کریں۔

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

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

# Define objective metric per framework, based on which the best model will be selected.
metric_definitions_per_model = {
    "tensorflow": {
        "metrics": [{"Name": "val_accuracy", "Regex": "val_accuracy: ([0-9.]+)"}],
        "type": "Maximize",
    }
}

# You can select from the hyperparameters supported by the model, and configure ranges of values to be searched for training the optimal model.(https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html)
hyperparameter_ranges = {
    "adam-learning-rate": ContinuousParameter(0.00001, 0.01, scaling_type="Logarithmic")
}

# Increase the total number of training jobs run by AMT, for increased accuracy (and training time).
max_jobs = 6
# Change parallel training jobs run by AMT to reduce total training time, constrained by your account limits.
# if max_jobs=max_parallel_jobs then Bayesian search turns to Random.
max_parallel_jobs = 3

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

hp_tuner = HyperparameterTuner(
    tc_estimator,
    metric_definitions["metrics"][0]["Name"],
    hyperparameter_ranges,
    metric_definitions["metrics"],
    max_jobs=max_jobs,
    max_parallel_jobs=max_parallel_jobs,
    objective_type=metric_definitions["type"],
    base_tuning_job_name=tuning_job_name,
)

# Launch a SageMaker Tuning job to search for the best hyperparameters
hp_tuner.fit({"training": training_data_path_updated})

ٹیوننگ جابز مکمل ہونے کے بعد، ہم اس ماڈل کو تعینات کرتے ہیں جو توثیق ڈیٹاسیٹ پر بہترین تشخیصی میٹرک اسکور دیتا ہے، اسی ہولڈ آؤٹ ٹیسٹ ڈیٹاسیٹ پر تخمینہ لگاتے ہیں جو ہم نے پچھلے حصے میں کیا تھا، اور تشخیصی میٹرکس کی گنتی کرتے ہیں۔

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عی

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

نام شدہ ہستی کی شناخت

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

پہلے سے تربیت یافتہ ماڈل پر تخمینہ لگائیں اور چلائیں۔

ہم تعینات کرتے ہیں۔ En_core_web_md سے ماڈل spaCy کتب خانہ. spaCy ایک اوپن سورس NLP لائبریری ہے جسے مختلف کاموں کے لیے استعمال کیا جا سکتا ہے، اور اس میں NER کے لیے بلٹ ان طریقے ہیں۔ ہم اسکرپٹ موڈ کے ساتھ AWS PyTorch ڈیپ لرننگ کنٹینر (DLC) استعمال کرتے ہیں اور کنٹینر کے اوپر انحصار کے طور پر spaCy لائبریری کو انسٹال کرتے ہیں۔

اگلا، اسکرپٹ کے لیے ایک انٹری پوائنٹ (دلیل entry_point.py) کی وضاحت کی گئی ہے، جس میں ڈاؤن لوڈ اور لوڈ کرنے کے لیے تمام کوڈ موجود ہیں۔ En_core_web_md ماڈل بنائیں اور اس ڈیٹا کا اندازہ کریں جو اختتامی نقطہ پر بھیجا جاتا ہے۔ آخر میں، ہمیں اب بھی فراہم کرنے کی ضرورت ہے model_data اندازہ لگانے کے لیے پہلے سے تربیت یافتہ ماڈل کے طور پر۔ کیونکہ پہلے سے تربیت یافتہ En_core_web_md ماڈل فلائی پر ڈاؤن لوڈ کیا جاتا ہے، جو کہ اندراج اسکرپٹ میں بیان کیا گیا ہے، ہم ایک خالی آرکائیو فائل فراہم کرتے ہیں۔ اختتامی نقطہ کے تعینات ہونے کے بعد، آپ SageMaker Python SDK کا استعمال کرتے ہوئے نوٹ بک سے براہ راست اختتامی نقطہ کو طلب کر سکتے ہیں۔ Predictor. درج ذیل کوڈ دیکھیں:

model = PyTorchModel(
    model_data=f"{config.SOURCE_S3_PATH}/artifacts/models/empty.tar.gz",
    entry_point="entry_point.py",
    source_dir="../containers/entity_recognition",
    role=config.IAM_ROLE,
    framework_version="1.5.0",
    py_version="py3",
    code_location="s3://" + config.S3_BUCKET + "/code",
    env={
        "MMS_DEFAULT_RESPONSE_TIMEOUT": "3000"
    }
)
predictor = model.deploy(
    endpoint_name=endpoint_name,
    instance_type=config.HOSTING_INSTANCE_TYPE,
    initial_instance_count=1,
    serializer=JSONSerializer(),
    deserializer=JSONDeserializer()
)

ماڈل کے لیے ان پٹ ڈیٹا ایک متنی دستاویز ہے۔ نامزد ہستی کا ماڈل متنی دستاویز میں اسم کے ٹکڑوں اور نامزد اداروں کو نکالتا ہے اور انہیں متعدد مختلف اقسام میں درجہ بندی کرتا ہے (جیسے کہ لوگ، مقامات اور تنظیمیں)۔ مثال کے طور پر ان پٹ اور آؤٹ پٹ کو درج ذیل کوڈ میں دکھایا گیا ہے۔ دی start_char پیرامیٹر اسپین کے آغاز کے لیے کریکٹر آفسیٹ کی نشاندہی کرتا ہے، اور end_char مدت کے اختتام کی طرف اشارہ کرتا ہے۔

data = {'text': 'Amazon SageMaker is a fully managed service that provides every developer and data scientist with the ability to build, train, and deploy machine learning (ML) models quickly.'}
response = predictor.predict(data=data)

print(response['entities'])
print(response['noun_chunks'])

[{'text': 'Amazon SageMaker', 'start_char': 0, 'end_char': 16, 'label': 'ORG'}]
[{'text': 'Amazon SageMaker', 'start_char': 0, 'end_char': 16}, {'text': 'a fully managed service', 'start_char': 20, 'end_char': 43}, {'text': 'that', 'start_char': 44, 'end_char': 48}, {'text': 'every developer and data scientist', 'start_char': 58, 'end_char': 92}, {'text': 'the ability', 'start_char': 98, 'end_char': 109}, {'text': 'ML', 'start_char': 156, 'end_char': 158}]

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

اس مرحلے میں، ہم یہ ظاہر کرتے ہیں کہ آپ کے اپنے ڈیٹاسیٹ پر NER کے لیے پہلے سے تربیت یافتہ زبان کے ماڈلز کو کیسے ٹھیک کیا جائے۔ فائن ٹیوننگ مرحلہ آپ کے اپنے ڈیٹا کی خصوصیت کو حاصل کرنے اور درستگی کو بہتر بنانے کے لیے ماڈل پیرامیٹرز کو اپ ڈیٹ کرتا ہے۔ ہم استعمال کرتے ہیں وکی اے این این (PAN-X) ڈیٹاسیٹ کو ٹھیک کرنے کے لیے DistilBERT-base-uncased گلے لگانے والے چہرے سے ٹرانسفارمر ماڈل۔

ڈیٹاسیٹ کو تربیت، توثیق اور ٹیسٹ سیٹ میں تقسیم کیا گیا ہے۔

اس کے بعد، ہم ماڈل کے ہائپر پیرامیٹر کی وضاحت کرتے ہیں، اور اسکرپٹ موڈ کے ساتھ AWS Hugging Face DLC استعمال کرتے ہیں (دلیل entry_point) فائن ٹیوننگ کام کو متحرک کرنے کے لیے:

hyperparameters = {
    "pretrained-model": "distilbert-base-uncased",
    "learning-rate": 2e-6,
    "num-train-epochs": 2,
    "batch-size": 16,
    "weight-decay": 1e-5,
    "early-stopping-patience": 2,
}

ner_estimator = HuggingFace(
    pytorch_version='1.10.2',
    py_version='py38',
    transformers_version="4.17.0",
    entry_point='training.py',
    source_dir='../containers/entity_recognition/finetuning',
    hyperparameters=hyperparameters,
    role=aws_role,
    instance_count=1,
    instance_type=training_instance_type,
    output_path=f"s3://{bucket}/{prefix}/output",
    code_location=f"s3://{bucket}/{prefix}/output",
    tags=[{'Key': config.TAG_KEY, 'Value': config.SOLUTION_PREFIX}],
    sagemaker_session=sess,
    volume_size=30,
    env={
        'MMS_DEFAULT_RESPONSE_TIMEOUT': '500'
    },
    base_job_name = training_job_name
)

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

آخر میں، ہم Hugging Face بلٹ ان تشخیصی میٹرکس استعمال کرتے ہیں۔ seqeval ہولڈ آؤٹ ٹیسٹ کے اعداد و شمار پر تشخیص کے اسکور کی گنتی کرنے کے لیے۔ استعمال شدہ تشخیصی میٹرکس مجموعی درستگی، مجموعی طور پر یاد، مجموعی F1، اور درستگی ہیں۔ درج ذیل اسکرین شاٹ ہمارے نتائج کو ظاہر کرتا ہے۔

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عی

SageMaker آٹومیٹک ماڈل ٹیوننگ کے ساتھ فائن ٹیوننگ کارکردگی کو مزید بہتر کریں۔

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

hyperparameters_range = {
    "learning-rate": ContinuousParameter(1e-5, 0.1, scaling_type="Logarithmic"),
    "weight-decay": ContinuousParameter(1e-6, 1e-2, scaling_type="Logarithmic"),
}

tuner = HyperparameterTuner(
    estimator,
    "f1",
    hyperparameters_range,
    [{"Name": "f1", "Regex": "'eval_f1': ([0-9.]+)"}],
    max_jobs=6,
    max_parallel_jobs=3,
    objective_type="Maximize",
    base_tuning_job_name=tuning_job_name,
)

tuner.fit({
    "train": f"s3://{bucket}/{prefix}/train/",
    "validation": f"s3://{bucket}/{prefix}/validation/",
}, logs=True)

ٹیوننگ جابز مکمل ہونے کے بعد، ہم اس ماڈل کو تعینات کرتے ہیں جو توثیق ڈیٹاسیٹ پر بہترین تشخیصی میٹرک اسکور دیتا ہے، اسی ہولڈ آؤٹ ٹیسٹ ڈیٹاسیٹ پر تخمینہ لگاتے ہیں جو ہم نے پچھلے حصے میں کیا تھا، اور تشخیصی میٹرکس کی گنتی کرتے ہیں۔

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عی

ہم دیکھ سکتے ہیں کہ HPO والا ماڈل تمام میٹرکس میں نمایاں طور پر بہتر کارکردگی حاصل کرتا ہے۔

سوال جواب

جب آپ مخصوص معلومات کے لیے متن کی ایک بڑی مقدار سے استفسار کرنا چاہتے ہیں تو سوال کا جواب دینا مفید ہے۔ یہ صارف کو فطری زبان میں سوال کا اظہار کرنے اور فوری اور مختصر جواب حاصل کرنے کی اجازت دیتا ہے۔ NLP کے ذریعے چلنے والے سوالوں کے جواب دینے والے نظام کو سرچ انجنوں اور فون پر بات چیت کے انٹرفیس میں استعمال کیا جا سکتا ہے۔

پہلے سے تربیت یافتہ ماڈل پر تخمینہ لگائیں اور چلائیں۔

ہمارا پہلے سے تربیت یافتہ ماڈل ایکسٹریکٹیو سوال جواب دینے والا (EQA) ماڈل ہے۔ bert-large-uncased-full-word-masking-finetuned-squad ہگنگ فیس سے ٹرانسفارمر ماڈل پر بنایا گیا۔ ہم اسکرپٹ موڈ کے ساتھ AWS PyTorch DLC استعمال کرتے ہیں اور انسٹال کرتے ہیں۔ ٹرانسفارمرز کنٹینر کے اوپر ایک انحصار کے طور پر لائبریری۔ NER کام کی طرح، ہم دلیل میں ایک خالی آرکائیو فائل فراہم کرتے ہیں۔ model_data کیونکہ پہلے سے تربیت یافتہ ماڈل پرواز پر ڈاؤن لوڈ کیا جاتا ہے۔ اختتامی نقطہ کے تعینات ہونے کے بعد، آپ SageMaker Python SDK کا استعمال کرتے ہوئے نوٹ بک سے براہ راست اختتامی نقطہ کو طلب کر سکتے ہیں۔ Predictor. درج ذیل کوڈ دیکھیں:

model = PyTorchModel(
    model_data=f"{config.SOURCE_S3_PATH}/artifacts/models/empty.tar.gz",
    entry_point="entry_point.py",
    source_dir="../containers/question_answering",
    role=config.IAM_ROLE,
    framework_version="1.5.0",
    py_version="py3",
    code_location="s3://" + config.S3_BUCKET + "/code",
    env={
        "MODEL_ASSETS_S3_BUCKET": config.SOURCE_S3_BUCKET,
        "MODEL_ASSETS_S3_PREFIX": f"{config.SOURCE_S3_PREFIX}/artifacts/models/question_answering/",
        "MMS_DEFAULT_RESPONSE_TIMEOUT": "3000",
    },
)

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

ہمیں صرف دو کلیدوں کے ساتھ ایک لغت آبجیکٹ بنانے کی ضرورت ہے۔ context وہ متن ہے جس سے ہم معلومات حاصل کرنا چاہتے ہیں۔ question فطری زبان کا استفسار ہے جو بتاتا ہے کہ ہم کون سی معلومات نکالنے میں دلچسپی رکھتے ہیں۔ ہم کال کرتے ہیں۔ predict ہمارے پیش گو پر، اور ہمیں اختتامی نقطہ سے جواب ملنا چاہیے جس میں سب سے زیادہ ممکنہ جوابات ہوں:

data = {'question': 'what is my name?', 'context': "my name is thom"}
response = predictor.predict(data=data)

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

print(response['answers'])
[{'score': 0.9793591499328613, 'start': 11, 'end': 15, 'answer': 'thom'}, 
{'score': 0.02019440196454525, 'start': 0, 'end': 15, 'answer': 'my name is thom'}, 
{'score': 4.349117443780415e-05, 'start': 3, 'end': 15, 'answer': 'name is thom'}]

اب ہم بہتر نتائج حاصل کرنے کے لیے اس ماڈل کو اپنی مرضی کے مطابق ڈیٹاسیٹ کے ساتھ ٹھیک کرتے ہیں۔

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

اس مرحلے میں، ہم یہ ظاہر کرتے ہیں کہ آپ کے اپنے ڈیٹا سیٹ پر EQA کے لیے پہلے سے تربیت یافتہ زبان کے ماڈلز کو کیسے ٹھیک کیا جائے۔ فائن ٹیوننگ مرحلہ آپ کے اپنے ڈیٹا کی خصوصیت کو حاصل کرنے اور درستگی کو بہتر بنانے کے لیے ماڈل پیرامیٹرز کو اپ ڈیٹ کرتا ہے۔ ہم استعمال کرتے ہیں SQuAD2.0 ٹیکسٹ ایمبیڈنگ ماڈل کو ٹھیک کرنے کے لیے ڈیٹا سیٹ bert-base-uncased گلے ملنے والے چہرے سے۔ فائن ٹیوننگ کے لیے دستیاب ماڈل ٹیکسٹ ایمبیڈنگ ماڈل کے ساتھ ایک جواب نکالنے والی پرت کو جوڑتا ہے اور پرت کے پیرامیٹرز کو بے ترتیب اقدار سے شروع کرتا ہے۔ فائن ٹیوننگ کا مرحلہ ان پٹ ڈیٹا پر پیشین گوئی کی غلطی کو کم کرنے کے لیے ماڈل کے تمام پیرامیٹرز کو ٹھیک کرتا ہے اور فائن ٹیونڈ ماڈل کو واپس کرتا ہے۔

متن کی درجہ بندی کے کام کی طرح، ڈیٹاسیٹ (SQuAD2.0) کو تربیت، توثیق، اور ٹیسٹ سیٹ میں تقسیم کیا گیا ہے۔

اگلا، ہم ماڈل کے ہائپرپیرامیٹر کی وضاحت کرتے ہیں، اور استعمال کرتے ہیں۔ جمپ اسٹارٹ API ٹھیک ٹیوننگ کام کو متحرک کرنے کے لیے:

hyperparameters = {'epochs': '3', 'adam-learning-rate': '2e-05', 'batch-size': '16'}

eqa_estimator = Estimator(
    role=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,
    tags=[{'Key': config.TAG_KEY, 'Value': config.SOLUTION_PREFIX}],
    base_job_name=training_job_name,
    debugger_hook_config=False,
)

training_data_path_updated = f"s3://{config.S3_BUCKET}/{prefix}/train"
# Launch a SageMaker Training job by passing s3 path of the training data
eqa_estimator.fit({"training": training_data_path_updated}, logs=True)

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

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عی

SageMaker آٹومیٹک ماڈل ٹیوننگ کے ساتھ فائن ٹیوننگ کارکردگی کو مزید بہتر کریں۔

پچھلے حصوں کی طرح، ہم استعمال کرتے ہیں a HyperparameterTuner ٹیوننگ جابز شروع کرنے پر اعتراض:

hyperparameter_ranges = {
    "adam-learning-rate": ContinuousParameter(0.00001, 0.01, scaling_type="Logarithmic"),
    "epochs": IntegerParameter(3, 10),
    "train-only-top-layer": CategoricalParameter(["True", "False"]),
}

hp_tuner = HyperparameterTuner(
    eqa_estimator,
    metric_definitions["metrics"][0]["Name"],
    hyperparameter_ranges,
    metric_definitions["metrics"],
    max_jobs=max_jobs,
    max_parallel_jobs=max_parallel_jobs,
    objective_type=metric_definitions["type"],
    base_tuning_job_name=training_job_name,
)

# Launch a SageMaker Tuning job to search for the best hyperparameters
hp_tuner.fit({"training": training_data_path_updated})

ٹیوننگ جابز مکمل ہونے کے بعد، ہم اس ماڈل کو تعینات کرتے ہیں جو توثیق ڈیٹاسیٹ پر بہترین تشخیصی میٹرک اسکور دیتا ہے، اسی ہولڈ آؤٹ ٹیسٹ ڈیٹاسیٹ پر تخمینہ لگاتے ہیں جو ہم نے پچھلے حصے میں کیا تھا، اور تشخیصی میٹرکس کی گنتی کرتے ہیں۔

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عی

ہم دیکھ سکتے ہیں کہ HPO والا ماڈل ہولڈ آؤٹ ٹیسٹ ڈیٹا پر نمایاں طور پر بہتر کارکردگی دکھاتا ہے۔

رشتہ نکالنا

رشتہ نکالنا متن سے معنوی رشتوں کو نکالنے کا کام ہے، جو عام طور پر دو یا زیادہ اداروں کے درمیان ہوتا ہے۔ غیر ساختہ ذرائع جیسے کہ خام متن سے سٹرکچرڈ معلومات نکالنے میں رشتہ نکالنا اہم کردار ادا کرتا ہے۔ اس نوٹ بک میں، ہم رشتہ نکالنے کے دو استعمال کے معاملات کو ظاہر کرتے ہیں۔

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

ہم ایک رشتہ نکالنے کا ماڈل استعمال کرتے ہیں جو a پر بنایا گیا ہے۔ BERT-base-uncased سے ٹرانسفارمرز کا استعمال کرتے ہوئے ماڈل گلے لگانا چہرہ ٹرانسفارمر کتب خانہ. فائن ٹیوننگ کا ماڈل ایک لکیری درجہ بندی کی پرت کو جوڑتا ہے جو ٹیکسٹ ایمبیڈنگ ماڈل کے ذریعہ آؤٹ پٹ ٹوکن ایمبیڈنگس کا ایک جوڑا لیتا ہے اور پرت کے پیرامیٹرز کو بے ترتیب اقدار پر شروع کرتا ہے۔ فائن ٹیوننگ کا مرحلہ ان پٹ ڈیٹا پر پیشین گوئی کی غلطی کو کم کرنے کے لیے ماڈل کے تمام پیرامیٹرز کو ٹھیک کرتا ہے اور فائن ٹیونڈ ماڈل کو واپس کرتا ہے۔

ڈیٹاسیٹ جس کو ہم ماڈل کو ٹھیک بناتے ہیں۔ SemEval-2010 ٹاسک 8. فائن ٹیوننگ کے ذریعے واپس آنے والے ماڈل کو مزید اندازہ لگانے کے لیے تعینات کیا جا سکتا ہے۔

ڈیٹاسیٹ میں تربیت، توثیق اور ٹیسٹ سیٹ شامل ہیں۔

ہم AWS PyTorch DLC کو SageMaker Python SDK سے اسکرپٹ موڈ کے ساتھ استعمال کرتے ہیں، جہاں transformers لائبریری کنٹینر کے اوپری حصے پر انحصار کے طور پر انسٹال ہے۔ ہم سیج میکر کی تعریف کرتے ہیں۔ PyTorch تخمینہ لگانے والا اور ہائپر پیرامیٹرز کا ایک سیٹ جیسے کہ پہلے سے تربیت یافتہ ماڈل، سیکھنے کی شرح، اور epoch نمبرز کو ٹھیک کرنے کے لیے۔ رشتہ نکالنے کے ماڈل کو ٹھیک کرنے کے کوڈ کی وضاحت میں کی گئی ہے۔ entry_point.py. درج ذیل کوڈ دیکھیں:

hyperparameters = {
    "pretrained-model": "bert-base-uncased",
    "learning-rate": 0.0002,
    "max-epoch": 2,
    "weight-decay": 0,
    "batch-size": 16,
    "accumulate-grad-batches": 2,
    "gradient-clip-val": 1.0
}

re_estimator = PyTorch(
    framework_version='1.5.0',
    py_version='py3',
    entry_point='entry_point.py',
    source_dir='../containers/relationship_extraction',
    hyperparameters=hyperparameters,
    role=aws_role,
    instance_count=1,
    instance_type=train_instance_type,
    output_path=f"s3://{bucket}/{prefix}/output",
    code_location=f"s3://{bucket}/{prefix}/output",
    base_job_name=training_job_name,
    tags=[{'Key': config.TAG_KEY, 'Value': config.SOLUTION_PREFIX}],
    sagemaker_session=sess,
    volume_size=30,
    env={
        'MMS_DEFAULT_RESPONSE_TIMEOUT': '500'
    },
    debugger_hook_config=False
)

re_estimator.fit(
    {
        "train": f"s3://{bucket}/{prefix}/train/",
        "validation": f"s3://{bucket}/{prefix}/validation/",
    }
)

تربیتی کام کو مکمل ہونے میں تقریباً 31 منٹ لگتے ہیں۔ ہم اس ماڈل کا استعمال ہولڈ آؤٹ ٹیسٹ سیٹ پر تخمینہ لگانے اور استعمال کرتے ہوئے نتائج کا اندازہ کرنے کے لیے کرتے ہیں۔ درستگی, F1 میکرو، اور F1 مائیکرو سکور مندرجہ ذیل اسکرین شاٹ تشخیص کے اسکور دکھاتا ہے۔

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عی

SageMaker آٹومیٹک ماڈل ٹیوننگ کے ساتھ فائن ٹیوننگ کارکردگی کو مزید بہتر کریں۔

پچھلے حصوں کی طرح، ہم استعمال کرتے ہیں a HyperparameterTuner سیج میکر ہائپر پیرامیٹر ٹیوننگ APIs کے ساتھ تعامل کرنے پر اعتراض۔ ہم کال کرکے ہائپرپیرامیٹر ٹیوننگ کا کام شروع کر سکتے ہیں۔ fit طریقہ:

hyperparameters = {
    "max-epoch": 2,
    "weight-decay": 0,
    "batch-size": 16,
    "accumulate-grad-batches": 2,
    "gradient-clip-val": 1.0
}

estimator = PyTorch(
    framework_version='1.5.0',
    py_version='py3',
    entry_point='entry_point.py',
    source_dir='../containers/relationship_extraction',
    hyperparameters=hyperparameters,
    role=aws_role,
    instance_count=1,
    instance_type=train_instance_type,
    output_path=f"s3://{bucket}/{prefix}/output",
    code_location=f"s3://{bucket}/{prefix}/output",
    base_job_name=tuning_job_name,
    tags=[{'Key': config.TAG_KEY, 'Value': config.SOLUTION_PREFIX}],
    sagemaker_session=sess,
    volume_size=30,
    env={
        'MMS_DEFAULT_RESPONSE_TIMEOUT': '500'
    },
    debugger_hook_config=False
    
    re_tuner = HyperparameterTuner(
    estimator,
    metric_definitions["metrics"][0]["Name"],
    hyperparameter_ranges,
    metric_definitions["metrics"],
    max_jobs=max_jobs,
    max_parallel_jobs=max_parallel_jobs,
    objective_type=metric_definitions["type"],
    base_tuning_job_name=tuning_job_name,
)

re_tuner.fit({
    "train": f"s3://{bucket}/{prefix}/train/",
    "validation": f"s3://{bucket}/{prefix}/validation/",
})

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

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عی

ہم دیکھ سکتے ہیں کہ HPO والا ماڈل ہولڈ آؤٹ ٹیسٹ ڈیٹا پر بہتر کارکردگی دکھاتا ہے۔

دستاویز کا خلاصہ

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

یہ نوٹ بک دستاویز کے خلاصے کے ماڈل کی تعیناتی کو ظاہر کرتی ہے۔ T5-بیس سے گلے لگانا چہرہ ٹرانسفارمر کتب خانہ. ہم ایک ٹیکسٹ آرٹیکل کا استعمال کرتے ہوئے تعینات اختتامی پوائنٹس کی جانچ بھی کرتے ہیں اور ہیگنگ فیس بلٹ ان ایویلیویشن میٹرک کا استعمال کرتے ہوئے نتائج کا جائزہ لیتے ہیں۔ RED.

سوال جواب اور NER نوٹ بک کی طرح، ہم استعمال کرتے ہیں۔ PyTorchModel SageMaker Python SDK سے ایک کے ساتھ entry_point.py T5-بیس ماڈل کو HTTPS اینڈ پوائنٹ پر لوڈ کرنے کے لیے اسکرپٹ۔ اختتامی نقطہ کے کامیابی کے ساتھ تعینات ہونے کے بعد، ہم پیشین گوئی کا جواب حاصل کرنے کے لیے اختتامی نقطہ پر ایک متنی مضمون بھیج سکتے ہیں:

ARTICLE = """ Documents are a primary tool for communication,
collaboration, record keeping, and transactions across industries,
including financial, medical, legal, and real estate. The format of data
can pose an extra challenge in data extraction, especially if the content
is typed, handwritten, or embedded in a form or table. Furthermore,
extracting data from your documents is manual, error-prone, time-consuming,
expensive, and does not scale. Amazon Textract is a machine learning (ML)
service that extracts printed text and other data from documents as well as
tables and forms. We’re pleased to announce two new features for Amazon
Textract: support for handwriting in English documents, and expanding
language support for extracting printed text from documents typed in
Spanish, Portuguese, French, German, and Italian. Many documents, such as
medical intake forms or employment applications, contain both handwritten
and printed text. The ability to extract text and handwriting has been a
need our customers have asked us for. Amazon Textract can now extract
printed text and handwriting from documents written in English with high
confidence scores, whether it’s free-form text or text embedded in tables
and forms. Documents can also contain a mix of typed text or handwritten
text. The following image shows an example input document containing a mix
of typed and handwritten text, and its converted output document.."""

data = {'text': ARTICLE}
response = predictor.predict(data=data)
print(response['summary'])

"""Amazon Textract is a machine learning (ML) service that extracts printed text 
and other data from documents as well as tables and forms . 
customers can now extract and process documents in more languages .
support for handwriting in english documents and expanding language support for extracting 
printed text ."""

اس کے بعد، ہم ROUGE میٹرک کا استعمال کرتے ہوئے متن کے مضمون اور خلاصہ نتیجہ کا جائزہ اور موازنہ کرتے ہیں۔ تین تشخیصی میٹرکس کا حساب لگایا جاتا ہے: rougeN, rougeL، اور rougeLsum. rougeN مماثلت کی تعداد کی پیمائش کرتا ہے۔ n-grams ماڈل سے تیار کردہ متن (خلاصہ نتیجہ) اور a کے درمیان reference (ان پٹ ٹیکسٹ)۔ میٹرکس rougeL اور rougeLsum تیار کردہ اور حوالہ جات کے خلاصوں میں سب سے طویل عام ذیلی اسٹرنگز کو تلاش کرکے الفاظ کے سب سے طویل مماثل سلسلے کی پیمائش کریں۔ ہر میٹرک کے لیے، درستگی، یاد کرنے، اور F1 سکور کے لیے اعتماد کے وقفوں کا حساب لگایا جاتا ہے۔ درج ذیل کوڈ کو دیکھیں:

results = rouge.compute(predictions=[response['summary']], references=[ARTICLE])

rouge1: AggregateScore(low=Score(precision=1.0, recall=0.1070615034168565, fmeasure=0.1934156378600823), 
mid=Score(precision=1.0, recall=0.1070615034168565, fmeasure=0.1934156378600823), high=Score(precision=1.0, recall=0.1070615034168565, fmeasure=0.1934156378600823))

rouge2: AggregateScore(low=Score(precision=0.9565217391304348, recall=0.1004566210045662, fmeasure=0.18181818181818182), 
mid=Score(precision=0.9565217391304348, recall=0.1004566210045662, fmeasure=0.18181818181818182), high=Score(precision=0.9565217391304348, recall=0.1004566210045662, 
fmeasure=0.18181818181818182))

rougeL: AggregateScore(low=Score(precision=0.8085106382978723, recall=0.08656036446469248, fmeasure=0.15637860082304528), 
mid=Score(precision=0.8085106382978723, recall=0.08656036446469248, fmeasure=0.15637860082304528), high=Score(precision=0.8085106382978723, recall=0.08656036446469248, 
fmeasure=0.15637860082304528))

rougeLsum: AggregateScore(low=Score(precision=0.9787234042553191, recall=0.10478359908883828, fmeasure=0.18930041152263374), 
mid=Score(precision=0.9787234042553191, recall=0.10478359908883828, fmeasure=0.18930041152263374), high=Score(precision=0.9787234042553191, recall=0.10478359908883828, 
fmeasure=0.18930041152263374))

صاف کرو

اس حل کے لیے بنائے گئے وسائل کو استعمال کرکے حذف کیا جا سکتا ہے۔ تمام وسائل کو حذف کریں۔ سیج میکر اسٹوڈیو IDE سے بٹن۔ ہر نوٹ بک اختتامی نکات کو حذف کرنے کے لیے کوڈ کے ساتھ کلین اپ سیکشن بھی فراہم کرتی ہے۔

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عی

نتیجہ

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


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

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عیڈاکٹر ژن ہوانگ Amazon SageMaker JumpStart اور Amazon SageMaker بلٹ ان الگورتھم کے لیے ایک اپلائیڈ سائنٹسٹ ہے۔ وہ اسکیل ایبل مشین لرننگ الگورتھم تیار کرنے پر توجہ مرکوز کرتا ہے۔ اس کی تحقیقی دلچسپیاں قدرتی لینگویج پروسیسنگ، ٹیبلر ڈیٹا پر قابل وضاحت گہرائی سے سیکھنے، اور نان پیرامیٹرک اسپیس ٹائم کلسٹرنگ کے مضبوط تجزیہ کے شعبے میں ہیں۔ انہوں نے ACL، ICDM، KDD کانفرنسز، اور رائل سٹیٹسٹیکل سوسائٹی: سیریز A جرنل میں بہت سے مقالے شائع کیے ہیں۔

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عیوویک گنگاسنی۔ ایمیزون ویب سروسز میں ایک سینئر مشین لرننگ سلوشنز آرکیٹیکٹ ہیں۔ وہ سٹارٹ اپس کو AI/ML ایپلیکیشنز بنانے اور چلانے میں مدد کرتا ہے۔ فی الحال وہ کنٹینرز اور مشین لرننگ میں اپنے پس منظر کو یکجا کرنے پر توجہ مرکوز کر رہے ہیں تاکہ MLOps، ML Inference اور Low-code ML پر حل فراہم کر سکیں۔ اپنے فارغ وقت میں، وہ نئے ریستوراں آزمانے اور AI اور گہری سیکھنے میں ابھرتے ہوئے رجحانات کو تلاش کرنے سے لطف اندوز ہوتا ہے۔

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عیجیریمی کوہن AWS کے ساتھ ایک سولیوشن آرکیٹیکٹ ہے جہاں وہ صارفین کو جدید، کلاؤڈ بیسڈ حل بنانے میں مدد کرتا ہے۔ اپنے فارغ وقت میں، وہ ساحل سمندر پر مختصر سیر سے لطف اندوز ہوتا ہے، اپنے خاندان کے ساتھ خلیج کے علاقے کو تلاش کرتا ہے، گھر کے ارد گرد چیزیں ٹھیک کرتا ہے، گھر کے ارد گرد چیزیں توڑتا ہے، اور BBQing کرتا ہے۔

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence کے ساتھ فائن ٹیوننگ اور HPO کے ذریعے ٹیکسٹ دستاویزات سے کلیدی بصیرت کی شناخت کریں۔ عمودی تلاش۔ عینیلم کوشیا۔ AWS میں ایک انٹرپرائز حل آرکیٹیکٹ ہے۔ اس کی موجودہ توجہ انٹرپرائز کے صارفین کی حکمت عملی سے متعلق کاروباری نتائج کے لیے کلاؤڈ اپنانے کے سفر میں مدد کرنا ہے۔ اپنے فارغ وقت میں، وہ پڑھنے اور باہر رہنے سے لطف اندوز ہوتی ہے۔

ٹائم اسٹیمپ:

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