Amazon SageMaker JumpStart PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টিগুলি সনাক্ত করুন। উল্লম্ব অনুসন্ধান. আ.

Amazon SageMaker JumpStart এর সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টি সনাক্ত করুন

খুচরা, ব্যাঙ্কিং, ফিনান্স, স্বাস্থ্যসেবা, উৎপাদন এবং ঋণদানের মতো শিল্প জুড়ে সংস্থাগুলিকে প্রায়শই সংবাদ, ব্লগ, পণ্য পর্যালোচনা, গ্রাহক সহায়তা চ্যানেল এবং সোশ্যাল মিডিয়ার মতো বিভিন্ন উত্স থেকে প্রচুর পরিমাণে অসংগঠিত পাঠ্য নথির মোকাবিলা করতে হয়। এই নথিগুলিতে গুরুত্বপূর্ণ তথ্য রয়েছে যা গুরুত্বপূর্ণ ব্যবসায়িক সিদ্ধান্ত নেওয়ার চাবিকাঠি। একটি প্রতিষ্ঠানের বৃদ্ধির সাথে সাথে এই নথিগুলি থেকে গুরুত্বপূর্ণ তথ্য বের করা একটি চ্যালেঞ্জ হয়ে দাঁড়ায়। প্রাকৃতিক ভাষা প্রক্রিয়াকরণ (NLP) এবং মেশিন লার্নিং (ML) কৌশলগুলির অগ্রগতির সাথে, আমরা এই পাঠ্য নথিগুলি থেকে দ্রুত এবং উচ্চ নির্ভুলতার সাথে মূল্যবান অন্তর্দৃষ্টি এবং সংযোগগুলি উন্মোচন করতে পারি, যার ফলে কোম্পানিগুলিকে সময়মতো মানসম্পন্ন ব্যবসায়িক সিদ্ধান্ত নিতে সহায়তা করে৷ সম্পূর্ণরূপে পরিচালিত NLP পরিষেবাগুলিও NLP গ্রহণকে ত্বরান্বিত করেছে। অ্যামাজন সমঝোতা একটি সম্পূর্ণরূপে পরিচালিত পরিষেবা যা আপনাকে কাস্টম এনএলপি মডেলগুলি তৈরি করতে সক্ষম করে যা আপনার প্রয়োজনীয়তার সাথে নির্দিষ্ট, কোনো এমএল দক্ষতার প্রয়োজন ছাড়াই৷

In this post, we demonstrate how to utilize state-of-the-art ML techniques to solve five different NLP tasks: document summarization, text classification, question answering, named entity recognition, and relationship extraction. For each of these NLP tasks, we demonstrate how to use আমাজন সেজমেকার নিম্নলিখিত কর্ম সম্পাদন করতে:

  • একটি প্রাক-প্রশিক্ষিত মডেলের উপর অনুমান স্থাপন এবং চালান
  • একটি নতুন কাস্টম ডেটাসেটে প্রাক-প্রশিক্ষিত মডেলটি সূক্ষ্ম-টিউন করুন
  • আরও উন্নত সঙ্গে সূক্ষ্ম-টিউনিং কর্মক্ষমতা সেজমেকার স্বয়ংক্রিয় মডেল টিউনিং
  • বিভিন্ন মূল্যায়ন মেট্রিক্স সহ হোল্ড-আউট পরীক্ষার ডেটাতে মডেলের কার্যকারিতা মূল্যায়ন করুন

যদিও আমরা এই পোস্টে পাঁচটি নির্দিষ্ট NLP টাস্ক কভার করেছি, আপনি এই সমাধানটিকে একটি টেমপ্লেট হিসাবে ব্যবহার করতে পারেন আপনার নিজস্ব ডেটাসেটের সাথে সূক্ষ্ম-টিউনিং প্রাক-প্রশিক্ষিত মডেলগুলিকে সাধারণীকরণ করতে এবং পরবর্তীতে সঠিকতা উন্নত করতে হাইপারপ্যারামিটার অপ্টিমাইজেশান চালাতে পারেন।

জাম্পস্টার্ট সমাধান টেমপ্লেট

আমাজন সেজমেকার জাম্পস্টার্ট অনেক সাধারণ ML ব্যবহারের ক্ষেত্রে এক-ক্লিক, এন্ড-টু-এন্ড সমাধান প্রদান করে। উপলব্ধ সমাধান টেমপ্লেট সম্পর্কে আরও তথ্যের জন্য নিম্নলিখিত ব্যবহারের ক্ষেত্রে অন্বেষণ করুন:

জাম্পস্টার্ট সলিউশন টেমপ্লেটগুলি বিভিন্ন ধরনের ব্যবহারের ক্ষেত্রে কভার করে, যার প্রত্যেকটির অধীনে বেশ কয়েকটি ভিন্ন সমাধান টেমপ্লেট দেওয়া হয় (এই ডকুমেন্ট বোঝার সমাধানটি "ডকুমেন্ট থেকে ডেটা এক্সট্র্যাক্ট এবং বিশ্লেষণ করুন" ব্যবহারের ক্ষেত্রে রয়েছে)।

জাম্পস্টার্ট ল্যান্ডিং পৃষ্ঠা থেকে আপনার ব্যবহারের ক্ষেত্রে সবচেয়ে উপযুক্ত সমাধান টেমপ্লেটটি বেছে নিন। প্রতিটি ব্যবহারের ক্ষেত্রে নির্দিষ্ট সমাধান সম্পর্কে আরও তথ্যের জন্য এবং কীভাবে একটি জাম্পস্টার্ট সমাধান চালু করতে হয়, দেখুন সমাধান টেমপ্লেট.

সমাধান ওভারভিউ

নিম্নলিখিত চিত্রটি দেখায় যে আপনি কীভাবে সেজমেকার উপাদানগুলির সাথে এই সমাধানটি ব্যবহার করতে পারেন। সেজমেকার প্রশিক্ষণের কাজগুলি বিভিন্ন এনএলপি মডেলকে প্রশিক্ষণের জন্য ব্যবহার করা হয়, এবং সেজমেকার এন্ডপয়েন্টগুলি প্রতিটি পর্যায়ে মডেলগুলি স্থাপন করতে ব্যবহৃত হয়। আমরা ব্যাবহার করি আমাজন সিম্পল স্টোরেজ সার্ভিস (Amazon S3) SageMaker-এর পাশাপাশি প্রশিক্ষণের ডেটা এবং মডেল আর্টিফ্যাক্ট সংরক্ষণ করতে, এবং অ্যামাজন ক্লাউডওয়াচ প্রশিক্ষণ এবং শেষ পয়েন্ট আউটপুট লগ করতে.

ডকুমেন্ট বোঝার সমাধান খুলুন

জাম্পস্টার্টে ডকুমেন্ট বোঝার সমাধানে নেভিগেট করুন।

এখন আমরা ডেমো নোটবুক থেকে শুরু করে এই সলিউশনে অন্তর্ভুক্ত কিছু সম্পদের উপর ঘনিষ্ঠভাবে নজর দিতে পারি।

Amazon SageMaker JumpStart PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টিগুলি সনাক্ত করুন। উল্লম্ব অনুসন্ধান. আ.

ডেমো নোটবুক

নথির সারসংক্ষেপ এবং প্রশ্নের উত্তর দেওয়ার কাজগুলির জন্য ইতিমধ্যেই মোতায়েন করা মডেলের শেষ পয়েন্টগুলিতে উদাহরণ ডেটা পাঠাতে আপনি ডেমো নোটবুক ব্যবহার করতে পারেন। ডেমো নোটবুকটি আপনাকে উদাহরণের ডেটা জিজ্ঞাসা করে দ্রুত অভিজ্ঞতা পেতে দেয়।

আপনি ডকুমেন্ট আন্ডারস্ট্যান্ডিং সমাধান চালু করার পরে, নির্বাচন করে ডেমো নোটবুকটি খুলুন নোটবুকে এন্ডপয়েন্ট ব্যবহার করুন.

Amazon SageMaker JumpStart PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টিগুলি সনাক্ত করুন। উল্লম্ব অনুসন্ধান. আ.

আসুন এই সমাধানের জন্য পাঁচটি প্রধান নোটবুকের প্রতিটিতে গভীরভাবে ডুব দেওয়া যাক।

পূর্বশর্ত

In অ্যামাজন সেজমেকার স্টুডিও, ensure you’re using the PyTorch 1.10 Python 3.8 CPU Optimized নোটবুক খুলতে image/kernel. প্রশিক্ষণ পাঁচটি ml.g4dn.2x বৃহৎ দৃষ্টান্ত ব্যবহার করে, তাই আপনার উচিৎ a বাড়াতে হবে পরিষেবা সীমা বৃদ্ধির অনুরোধ যদি আপনার অ্যাকাউন্টের এই ধরনের জন্য বর্ধিত সীমা প্রয়োজন হয়।

পাঠ্য শ্রেণিবিন্যাস

পাঠ্য শ্রেণিবিন্যাস বলতে প্রশিক্ষণ ডেটাসেটের ক্লাস লেবেলের একটিতে একটি ইনপুট বাক্যকে শ্রেণিবদ্ধ করা বোঝায়। এই নোটবুকটি কীভাবে ব্যবহার করতে হয় তা প্রদর্শন করে জাম্পস্টার্ট API পাঠ্য শ্রেণীবিভাগের জন্য।

প্রাক-প্রশিক্ষিত মডেলে অনুমান স্থাপন এবং চালান

টেক্সট ক্লাসিফিকেশন মডেল যেটি আমরা ব্যবহার করার জন্য বেছে নিয়েছি তা একটি টেক্সট এম্বেডিংয়ের উপর নির্মিত (tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2) থেকে মডেল টেনসরফ্লো হাব, যা উইকিপিডিয়া এবং বুককর্পাস ডেটাসেটে প্রাক-প্রশিক্ষিত।

স্থাপনার জন্য উপলব্ধ মডেলটি পাঠ্য এমবেডিং মডেলের আউটপুটে একটি বাইনারি শ্রেণিবিন্যাস স্তর সংযুক্ত করে এবং তারপরে সম্পূর্ণ মডেলটিকে সূক্ষ্ম-টিউনিং করে তৈরি করা হয়। SST-2 ডেটাসেট, যা ইতিবাচক এবং নেতিবাচক মুভি রিভিউ নিয়ে গঠিত।

এই মডেলে অনুমান চালানোর জন্য, আমাদের প্রথমে অনুমান কন্টেইনার ডাউনলোড করতে হবে (deploy_image_uri), অনুমান লিপি (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 ডেটাসেট আপনি এই ডেটাসেটটিকে আপনার আগ্রহের যেকোনো ডেটাসেট দিয়ে প্রতিস্থাপন করতে পারেন৷

We retrieve the training Docker container, training algorithm source, and pre-trained model:

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) is split into training, validation, and test sets, where the training set is used to fit the model, the validation set is used to compute evaluation metrics that can be used for HPO, and the test set is used as hold-out data for evaluating model performance. Next, the train and validation dataset are uploaded to Amazon S3 and used to launch the fine-tuning training job:

# 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 ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টিগুলি সনাক্ত করুন। উল্লম্ব অনুসন্ধান. আ.

SageMaker স্বয়ংক্রিয় মডেল টিউনিংয়ের সাথে সূক্ষ্ম-টিউনিং কর্মক্ষমতা আরও উন্নত করুন

এই ধাপে, আমরা দেখাই কিভাবে আপনি SageMaker স্বয়ংক্রিয় মডেল টিউনিংয়ের মাধ্যমে মডেলটিকে ফাইন-টিউনিং করে মডেলের কার্যক্ষমতা আরও উন্নত করতে পারেন। স্বয়ংক্রিয় মডেল টিউনিং, যা হাইপারপ্যারামিটার অপ্টিমাইজেশান (HPO) নামেও পরিচিত, আপনার নির্দিষ্ট করা হাইপারপ্যারামিটারের একটি পরিসর সহ আপনার ডেটাসেটে একাধিক প্রশিক্ষণের কাজ চালানোর মাধ্যমে একটি মডেলের সেরা সংস্করণ খুঁজে পায়। তারপরে এটি হাইপারপ্যারামিটার মানগুলি বেছে নেয় যার ফলস্বরূপ একটি মডেল যা সর্বোত্তম কার্য সম্পাদন করে, যেমনটি আপনার চয়ন করা একটি মেট্রিক দ্বারা পরিমাপ করা হয়, যা বৈধকরণ ডেটাসেটে।

প্রথমত, আমরা উদ্দেশ্যটিকে বৈধতা ডেটার নির্ভুলতা স্কোর হিসাবে সেট করি (val_accuracy) এবং উদ্দেশ্য মেট্রিক নাম এবং একটি রেগুলার এক্সপ্রেশন (রেজেক্স) উল্লেখ করে টিউনিং কাজের জন্য সংজ্ঞায়িত মেট্রিক্স। রেগুলার এক্সপ্রেশনটি অ্যালগরিদমের লগ আউটপুটের সাথে মেলে এবং মেট্রিক্সের সাংখ্যিক মান ক্যাপচার করতে ব্যবহৃত হয়। এরপরে, সেরা হাইপারপ্যারামিটার মান নির্বাচন করতে আমরা হাইপারপ্যারামিটার রেঞ্জ নির্দিষ্ট করি। আমরা মোট টিউনিং কাজের সংখ্যা ছয় হিসাবে সেট করেছি এবং এই কাজগুলিকে তিনটি আলাদাভাবে বিতরণ করি অ্যামাজন ইলাস্টিক কম্পিউট ক্লাউড (Amazon EC2) সমান্তরাল টিউনিং কাজ চালানোর জন্য উদাহরণ। নিম্নলিখিত কোড দেখুন:

# 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

আমরা পূর্ববর্তী ফাইন-টিউনিং ধাপে যা করেছি তার অনুরূপ একটি সেজমেকার এস্টিমেটর অবজেক্ট ইনস্ট্যান্টিয়েট করতে আমরা সেই মানগুলি পাস করি। কল করার পরিবর্তে 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 ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টিগুলি সনাক্ত করুন। উল্লম্ব অনুসন্ধান. আ.

ফলাফলগুলি দেখায় যে স্বয়ংক্রিয় মডেল টিউনিং দ্বারা নির্বাচিত মডেলটি একটি হোল্ড-আউট টেস্ট ডেটাসেটে পূর্ববর্তী বিভাগে সূক্ষ্মভাবে করা মডেলটিকে উল্লেখযোগ্যভাবে ছাড়িয়ে যায়৷

নামকৃত সত্তার স্বীকৃতি

নামকৃত সত্তা স্বীকৃতি (NER) হল নামকৃত সত্তাকে পূর্বনির্ধারিত শ্রেণীতে সনাক্তকরণ এবং শ্রেণীবদ্ধ করার প্রক্রিয়া, যেমন ব্যক্তি, সংস্থা, অবস্থান এবং পরিমাণের নাম। NER-এর জন্য অনেক বাস্তব-বিশ্ব ব্যবহারের ক্ষেত্রে রয়েছে, যেমন সুপারিশ ইঞ্জিন, শ্রেণীকরণ এবং সঠিক বিভাগে গ্রাহক সহায়তা টিকিট বরাদ্দ করা, স্বাস্থ্যসেবায় রোগীর রিপোর্ট থেকে প্রয়োজনীয় তথ্য বের করা, এবং সংবাদ এবং ব্লগ থেকে বিষয়বস্তু শ্রেণীবিভাগ।

প্রাক-প্রশিক্ষিত মডেলে অনুমান স্থাপন এবং চালান

আমরা স্থাপন En_core_web_md থেকে মডেল spaCy library. spaCy is an open-source NLP library that can be used for various tasks, and has built-in methods for NER. We use an AWS PyTorch Deep Learning Container (DLC) with a script mode and install the spaCy library as a dependency on top of the container.

Next, an entry point for the script (argument entry_point.py) উল্লেখ করা হয়েছে, ডাউনলোড এবং লোড করার জন্য সমস্ত কোড রয়েছে En_core_web_md এন্ডপয়েন্টে পাঠানো ডেটার মডেল এবং অনুমান সঞ্চালন। অবশেষে, আমরা এখনও প্রদান করতে হবে model_data অনুমানের জন্য প্রাক-প্রশিক্ষিত মডেল হিসাবে। কারণ প্রি-ট্রেনড En_core_web_md মডেলটি ফ্লাইতে ডাউনলোড করা হয়, যা এন্ট্রি স্ক্রিপ্টে নির্দিষ্ট করা হয়, আমরা একটি খালি সংরক্ষণাগার ফাইল সরবরাহ করি। এন্ডপয়েন্ট স্থাপন করার পর, আপনি সেজমেকার পাইথন এসডিকে ব্যবহার করে নোটবুক থেকে সরাসরি এন্ডপয়েন্টটি আনতে পারেন 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 indicates the end of the span.

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-বেস-আনকেসড আলিঙ্গন মুখ থেকে ট্রান্সফরমার মডেল.

The dataset is split into training, validation, and test sets.

এর পরে, আমরা মডেলের হাইপারপ্যারামিটারগুলি নির্দিষ্ট করি এবং একটি স্ক্রিপ্ট মোডের সাথে একটি AWS হাগিং ফেস 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
)

ফাইন-টিউনিং কাজটি সম্পূর্ণ হওয়ার পরে, আমরা একটি এন্ডপয়েন্ট স্থাপন করি এবং হোল্ড-আউট পরীক্ষার ডেটা সহ সমাপ্তি বিন্দুতে অনুসন্ধান করি। এন্ডপয়েন্ট জিজ্ঞাসা করার জন্য, প্রতিটি টেক্সট স্ট্রিংকে এক বা একাধিক টোকেনে টোকেনাইজ করতে হবে এবং ট্রান্সফরমার মডেলে পাঠাতে হবে। প্রতিটি টোকেন একটি পূর্বাভাসিত নামযুক্ত সত্তা ট্যাগ পায়। যেহেতু প্রতিটি টেক্সট স্ট্রিংকে এক বা একাধিক টোকেনে টোকেনাইজ করা যেতে পারে, তাই আমাদের স্ট্রিংয়ের গ্রাউন্ড ট্রুথ নামের সত্তা ট্যাগটিকে এর সাথে যুক্ত সমস্ত টোকেনে ডুপ্লিকেট করতে হবে। প্রদত্ত নোটবুকটি আপনাকে এটি অর্জনের পদক্ষেপের মাধ্যমে নিয়ে যায়।

সবশেষে, আমরা Hugging Face বিল্ট-ইন মূল্যায়ন মেট্রিক্স ব্যবহার করি seqeval হোল্ড-আউট পরীক্ষার ডেটাতে মূল্যায়ন স্কোর গণনা করতে। ব্যবহৃত মূল্যায়ন মেট্রিক্স হল সামগ্রিক নির্ভুলতা, সামগ্রিক স্মরণ, সামগ্রিক F1 এবং নির্ভুলতা। নিম্নলিখিত স্ক্রিনশট আমাদের ফলাফল দেখায়.

Amazon SageMaker JumpStart PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং 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 ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টিগুলি সনাক্ত করুন। উল্লম্ব অনুসন্ধান. আ.

We can see that the model with HPO achieves significantly better performance across all metrics.

প্রশ্নের উত্তর

Question answering is useful when you want to query a large amount of text for specific information. It allows a user to express a question in natural language and get an immediate and brief response. Question answering systems powered by NLP can be used in search engines and phone conversational interfaces.

প্রাক-প্রশিক্ষিত মডেলে অনুমান স্থাপন এবং চালান

আমাদের প্রাক-প্রশিক্ষিত মডেল হল এক্সট্রাক্টিভ প্রশ্ন উত্তর (EQA) মডেল bert-বৃহৎ-আনকেস-পুরো-শব্দ-মাস্কিং-সূক্ষ্ম-দল আলিঙ্গন মুখ থেকে একটি ট্রান্সফরমার মডেল নির্মিত. আমরা একটি স্ক্রিপ্ট মোড সহ একটি AWS PyTorch DLC ব্যবহার করি এবং ইনস্টল করি ট্রান্সফরমার কন্টেইনারের উপরে নির্ভরতা হিসাবে লাইব্রেরি। NER টাস্কের মতো, আমরা আর্গুমেন্টে একটি খালি আর্কাইভ ফাইল প্রদান করি model_data কারণ প্রাক-প্রশিক্ষিত মডেল ফ্লাইতে ডাউনলোড করা হয়। এন্ডপয়েন্ট স্থাপন করার পর, আপনি সেজমেকার পাইথন এসডিকে ব্যবহার করে নোটবুক থেকে সরাসরি এন্ডপয়েন্টটি আনতে পারেন 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",
    },
)

এন্ডপয়েন্ট সফলভাবে স্থাপন করার পরে এবং ভবিষ্যদ্বাণীকারী কনফিগার করার পরে, আমরা উদাহরণ ইনপুটগুলিতে প্রশ্নের উত্তর দেওয়ার মডেলটি চেষ্টা করতে পারি। এই মডেল উপর pretrained করা হয়েছে স্ট্যানফোর্ড প্রশ্ন এবং উত্তর ডেটাসেট (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 ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টিগুলি সনাক্ত করুন। উল্লম্ব অনুসন্ধান. আ.

SageMaker স্বয়ংক্রিয় মডেল টিউনিংয়ের সাথে সূক্ষ্ম-টিউনিং কর্মক্ষমতা আরও উন্নত করুন

Similar to the previous sections, we use 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 ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টিগুলি সনাক্ত করুন। উল্লম্ব অনুসন্ধান. আ.

We can see that the model with HPO shows a significantly better performance on the hold-out test data.

সম্পর্ক নিষ্কাশন

রিলেশনশিপ এক্সট্রাকশন হল টেক্সট থেকে শব্দার্থিক সম্পর্ক বের করার কাজ, যা সাধারণত দুই বা ততোধিক সত্তার মধ্যে ঘটে। সম্পর্ক নিষ্কাশন একটি গুরুত্বপূর্ণ ভূমিকা পালন করে অসংগঠিত উত্স থেকে কাঠামোগত তথ্য যেমন কাঁচা পাঠ্য থেকে আহরণে। এই নোটবুকে, আমরা সম্পর্ক নিষ্কাশনের দুটি ব্যবহারের ক্ষেত্রে প্রদর্শন করি।

একটি কাস্টম ডেটাসেটে প্রাক-প্রশিক্ষিত মডেলটি সূক্ষ্ম সুর করুন

আমরা একটি সম্পর্কে নির্মিত একটি সম্পর্ক নিষ্কাশন মডেল ব্যবহার BERT-বেস-আনকেসড থেকে ট্রান্সফরমার ব্যবহার করে মডেল আলিঙ্গন মুখ ট্রান্সফরমার লাইব্রেরি ফাইন-টিউনিংয়ের জন্য মডেলটি একটি রৈখিক শ্রেণিবিন্যাস স্তর সংযুক্ত করে যা পাঠ্য এমবেডিং মডেল দ্বারা আউটপুট করা এক জোড়া টোকেন এম্বেডিং নেয় এবং স্তরের পরামিতিগুলিকে এলোমেলো মানগুলিতে শুরু করে। ফাইন-টিউনিং ধাপটি ইনপুট ডেটাতে ভবিষ্যদ্বাণী ত্রুটি কমাতে মডেলের সমস্ত প্যারামিটারকে সূক্ষ্ম-টিউন করে এবং সূক্ষ্ম-টিউন করা মডেলটি ফেরত দেয়।

আমরা যে ডেটাসেটটি মডেলটি সূক্ষ্ম-টিউন করি তা হল SemEval-2010 টাস্ক 8. ফাইন-টিউনিং দ্বারা প্রত্যাবর্তিত মডেলটি অনুমানের জন্য আরও স্থাপন করা যেতে পারে।

ডেটাসেটে প্রশিক্ষণ, বৈধতা এবং পরীক্ষার সেট রয়েছে।

আমরা SageMaker Python SDK থেকে একটি স্ক্রিপ্ট মোড সহ AWS PyTorch DLC ব্যবহার করি, যেখানে transformers লাইব্রেরি ধারক উপরে নির্ভরতা হিসাবে ইনস্টল করা হয়. আমরা সেজমেকারকে সংজ্ঞায়িত করি PyTorch প্রাক-প্রশিক্ষিত মডেল, শেখার হার, এবং সূক্ষ্ম টিউনিং সম্পাদনের জন্য যুগের সংখ্যার মতো অনুমানকারী এবং হাইপারপ্যারামিটারের একটি সেট। সম্পর্ক নিষ্কাশন মডেল ফাইন-টিউনিং জন্য কোড সংজ্ঞায়িত করা হয়েছে 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 micro স্কোর নিম্নলিখিত স্ক্রিনশট মূল্যায়ন স্কোর দেখায়.

Amazon SageMaker JumpStart PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টিগুলি সনাক্ত করুন। উল্লম্ব অনুসন্ধান. আ.

SageMaker স্বয়ংক্রিয় মডেল টিউনিংয়ের সাথে সূক্ষ্ম-টিউনিং কর্মক্ষমতা আরও উন্নত করুন

Similar to the previous sections, we use a HyperparameterTuner সেজমেকার হাইপারপ্যারামিটার টিউনিং API-এর সাথে ইন্টারঅ্যাক্ট করার জন্য অবজেক্ট। আমরা কল করে হাইপারপ্যারামিটার টিউনিং কাজ শুরু করতে পারি 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 ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টিগুলি সনাক্ত করুন। উল্লম্ব অনুসন্ধান. আ.

আমরা দেখতে পাচ্ছি যে HPO সহ মডেলটি হোল্ড-আউট পরীক্ষার ডেটাতে আরও ভাল পারফরম্যান্স দেখায়।

নথির সারসংক্ষেপ

নথি বা টেক্সট সংক্ষিপ্তকরণ হল মূল বিষয়বস্তুর মধ্যে সবচেয়ে গুরুত্বপূর্ণ বা প্রাসঙ্গিক তথ্য উপস্থাপন করে অর্থপূর্ণ বাক্যগুলির একটি ছোট উপসেটে প্রচুর পরিমাণে পাঠ্য ডেটা ঘনীভূত করার কাজ। নথির সংক্ষিপ্তকরণ হল একটি দরকারী কৌশল যাতে বৃহৎ পরিমাণের পাঠ্য ডেটা থেকে কয়েকটি বাক্যে গুরুত্বপূর্ণ তথ্য পাতন করা যায়। টেক্সট সংক্ষিপ্তকরণ অনেক ব্যবহারের ক্ষেত্রে ব্যবহৃত হয়, যেমন ডকুমেন্ট প্রসেসিং এবং ব্লগ, নিবন্ধ এবং সংবাদ থেকে তথ্য বের করা।

This notebook demonstrates deploying the document summarization model T5-বেস থেকে আলিঙ্গন মুখ ট্রান্সফরমার লাইব্রেরি আমরা একটি পাঠ্য নিবন্ধ ব্যবহার করে নিয়োজিত শেষ পয়েন্টগুলি পরীক্ষা করি এবং আলিঙ্গন মুখ বিল্ট-ইন মূল্যায়ন মেট্রিক ব্যবহার করে ফলাফল মূল্যায়ন করি লাল.

প্রশ্নের উত্তর এবং NER নোটবুকের অনুরূপ, আমরা ব্যবহার করি PyTorchModel SageMaker Python SDK থেকে একটি সহ entry_point.py একটি HTTPS এন্ডপয়েন্টে T5-বেস মডেল লোড করার জন্য স্ক্রিপ্ট। এন্ডপয়েন্ট সফলভাবে মোতায়েন হওয়ার পর, আমরা একটি ভবিষ্যদ্বাণী প্রতিক্রিয়া পেতে এন্ডপয়েন্টে একটি পাঠ্য নিবন্ধ পাঠাতে পারি:

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 মডেল-উত্পাদিত পাঠ্যের মধ্যে (সারাংশ ফলাফল) এবং ক 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))

পরিষ্কার কর

এই সমাধানের জন্য তৈরি সংস্থানগুলি ব্যবহার করে মুছে ফেলা যেতে পারে সমস্ত সংস্থান মুছুন সেজমেকার স্টুডিও আইডিই থেকে বোতাম। প্রতিটি নোটবুক শেষ পয়েন্টগুলি মুছে ফেলার জন্য কোড সহ একটি ক্লিন-আপ বিভাগ সরবরাহ করে।

Amazon SageMaker JumpStart PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টিগুলি সনাক্ত করুন। উল্লম্ব অনুসন্ধান. আ.

উপসংহার

In this post, we demonstrated how to utilize state-of-the-art ML techniques to solve five different NLP tasks: document summarization, text classification, question and answering, named entity recognition, and relationship extraction using Jumpstart. এখনই জাম্পস্টার্ট দিয়ে শুরু করুন!


লেখক সম্পর্কে

Amazon SageMaker JumpStart PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টিগুলি সনাক্ত করুন। উল্লম্ব অনুসন্ধান. আ.ডঃ জিন হুয়াং Amazon SageMaker JumpStart এবং Amazon SageMaker বিল্ট-ইন অ্যালগরিদমের জন্য একজন ফলিত বিজ্ঞানী। তিনি স্কেলেবল মেশিন লার্নিং অ্যালগরিদম বিকাশের দিকে মনোনিবেশ করেন। তার গবেষণার আগ্রহগুলি প্রাকৃতিক ভাষা প্রক্রিয়াকরণ, ট্যাবুলার ডেটার উপর ব্যাখ্যাযোগ্য গভীর শিক্ষা এবং নন-প্যারামেট্রিক স্পেস-টাইম ক্লাস্টারিংয়ের শক্তিশালী বিশ্লেষণের ক্ষেত্রে। তিনি ACL, ICDM, KDD কনফারেন্স এবং রয়্যাল স্ট্যাটিস্টিক্যাল সোসাইটি: সিরিজ এ জার্নালে অনেক গবেষণাপত্র প্রকাশ করেছেন।

Amazon SageMaker JumpStart PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টিগুলি সনাক্ত করুন। উল্লম্ব অনুসন্ধান. আ.বিবেক গঙ্গাসানি is a Senior Machine Learning Solutions Architect at Amazon Web Services. He helps Startups build and operationalize AI/ML applications. He is currently focused on combining his background in Containers and Machine Learning to deliver solutions on MLOps, ML Inference and low-code ML. In his spare time, he enjoys trying new restaurants and exploring emerging trends in AI and deep learning.

Amazon SageMaker JumpStart PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টিগুলি সনাক্ত করুন। উল্লম্ব অনুসন্ধান. আ.গেরেমি কোহেন তিনি AWS-এর সাথে একজন সলিউশন আর্কিটেক্ট যেখানে তিনি গ্রাহকদের অত্যাধুনিক, ক্লাউড-ভিত্তিক সমাধান তৈরি করতে সাহায্য করেন। তার অবসর সময়ে, তিনি সৈকতে ছোট হাঁটা উপভোগ করেন, তার পরিবারের সাথে উপসাগর এলাকা ঘুরে দেখেন, বাড়ির চারপাশে জিনিসপত্র ঠিক করেন, বাড়ির চারপাশের জিনিস ভাঙেন এবং BBQing করেন।

Amazon SageMaker JumpStart PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ফাইন-টিউনিং এবং HPO এর মাধ্যমে পাঠ্য নথি থেকে মূল অন্তর্দৃষ্টিগুলি সনাক্ত করুন। উল্লম্ব অনুসন্ধান. আ.নীলম কোশিয়া AWS-এর একজন এন্টারপ্রাইজ সলিউশন আর্কিটেক্ট। তার বর্তমান ফোকাস হল এন্টারপ্রাইজ গ্রাহকদের কৌশলগত ব্যবসায়িক ফলাফলের জন্য তাদের ক্লাউড গ্রহণের যাত্রায় সহায়তা করা। তার অবসর সময়ে, তিনি পড়া এবং বাইরে থাকা উপভোগ করেন।

সময় স্ট্যাম্প:

থেকে আরো এডাব্লুএস মেশিন লার্নিং

Amazon SageMaker, পার্ট 2 এর সাথে ক্লাসিক্যাল ML এবং LLM সহজে প্যাকেজ করুন এবং স্থাপন করুন: SageMaker স্টুডিওতে ইন্টারেক্টিভ ব্যবহারকারীর অভিজ্ঞতা | আমাজন ওয়েব সার্ভিসেস

উত্স নোড: 1920475
সময় স্ট্যাম্প: নভেম্বর 30, 2023

অ্যামাজন সেজমেকার ফিচার স্টোরে বিদ্যমান বৈশিষ্ট্য গোষ্ঠীগুলিতে বৈশিষ্ট্য যুক্ত করে পুনরাবৃত্তিমূলক মেশিন লার্নিং মডেল বিকাশকে সহজ করুন

উত্স নোড: 1603886
সময় স্ট্যাম্প: আগস্ট 1, 2022

এডব্লিউএস গ্লু ইন্টারেক্টিভ সেশন এবং অ্যামাজন সেজমেকার স্টুডিও ব্যবহার করে সংবেদনশীল ডেটা সুরক্ষা সহ বড় আকারের বৈশিষ্ট্য ইঞ্জিনিয়ারিং

উত্স নোড: 1758879
সময় স্ট্যাম্প: নভেম্বর 17, 2022

AWS-এ স্বয়ংক্রিয়, স্কেলযোগ্য এবং সাশ্রয়ী ML: হাওয়াইয়ান বনে আক্রমণাত্মক অস্ট্রেলিয়ান গাছের ফার্ন সনাক্ত করা

উত্স নোড: 1242834
সময় স্ট্যাম্প: মার্চ 29, 2022