Amazon SageMaker-এ TensorFlow টেক্সট ক্লাসিফিকেশন মডেলের জন্য ট্রান্সফার লার্নিং

আমাজন সেজমেকার এর একটি স্যুট প্রদান করে অন্তর্নির্মিত অ্যালগরিদম, প্রাক-প্রশিক্ষিত মডেল, এবং প্রাক-নির্মিত সমাধান টেমপ্লেট ডেটা সায়েন্টিস্ট এবং মেশিন লার্নিং (ML) অনুশীলনকারীদের সাহায্য করার জন্য প্রশিক্ষণ শুরু করা এবং দ্রুত ML মডেল স্থাপন করা। আপনি এই অ্যালগরিদম এবং মডেলগুলিকে তত্ত্বাবধানে এবং তত্ত্বাবধানহীন শিক্ষার জন্য ব্যবহার করতে পারেন। তারা ট্যাবুলার, চিত্র এবং পাঠ্য সহ বিভিন্ন ধরণের ইনপুট ডেটা প্রক্রিয়া করতে পারে।

এই পোস্টটি SageMaker-এ নতুন বিল্ট-ইন অ্যালগরিদমের সিরিজের তৃতীয়। মধ্যে প্রথম পোস্ট, আমরা দেখিয়েছি কিভাবে SageMaker ছবির শ্রেণীবিভাগের জন্য একটি অন্তর্নির্মিত অ্যালগরিদম প্রদান করে। মধ্যে দ্বিতীয় পোস্ট, আমরা দেখিয়েছি কিভাবে SageMaker বস্তু সনাক্তকরণের জন্য একটি অন্তর্নির্মিত অ্যালগরিদম প্রদান করে। আজ, আমরা ঘোষণা করছি যে SageMaker TensorFlow ব্যবহার করে পাঠ্য শ্রেণীবিভাগের জন্য একটি নতুন বিল্ট-ইন অ্যালগরিদম প্রদান করে। এই তত্ত্বাবধানে লার্নিং অ্যালগরিদম উপলব্ধ অনেক প্রাক-প্রশিক্ষিত মডেলের জন্য ট্রান্সফার লার্নিং সমর্থন করে টেনসরফ্লো হাব. এটি ইনপুট হিসাবে পাঠ্যের একটি অংশ নেয় এবং প্রতিটি শ্রেণীর লেবেলের জন্য সম্ভাব্যতা আউটপুট করে। আপনি ট্রান্সফার লার্নিং ব্যবহার করে এই প্রাক-প্রশিক্ষিত মডেলগুলিকে সূক্ষ্ম-টিউন করতে পারেন এমনকি যখন পাঠ্যের একটি বড় সংগ্রহ উপলব্ধ না হয়। এটি সেজমেকারের মাধ্যমে উপলব্ধ অন্তর্নির্মিত অ্যালগরিদম, সেইসাথে মাধ্যমে সেজমেকার জাম্পস্টার্ট UI in অ্যামাজন সেজমেকার স্টুডিও. আরো তথ্যের জন্য, পড়ুন পাঠ্য শ্রেণিবিন্যাস এবং উদাহরণ নোটবুক জাম্পস্টার্টের ভূমিকা - পাঠ্য শ্রেণিবিন্যাস.

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

নতুন TensorFlow টেক্সট ক্লাসিফিকেশন অ্যালগরিদম কীভাবে ব্যবহার করবেন

এই বিভাগে টেনসরফ্লো টেক্সট ক্লাসিফিকেশন অ্যালগরিদম কীভাবে ব্যবহার করবেন তা বর্ণনা করে সেজমেকার পাইথন এসডিকে. স্টুডিও UI থেকে এটি কীভাবে ব্যবহার করবেন সে সম্পর্কে তথ্যের জন্য, দেখুন সেজমেকার জাম্পস্টার্ট.

অ্যালগরিদম তালিকাভুক্ত প্রাক-প্রশিক্ষিত মডেলগুলির জন্য স্থানান্তর শিক্ষাকে সমর্থন করে টেনসরফ্লো মডেল. প্রতিটি মডেল একটি অনন্য দ্বারা চিহ্নিত করা হয় model_id. নিম্নলিখিত কোড দেখায় কিভাবে BERT বেস মডেল দ্বারা চিহ্নিত করা ফাইন-টিউন করা যায় model_id tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2 একটি কাস্টম প্রশিক্ষণ ডেটাসেটে। প্রতিটির জন্য model_id, মাধ্যমে একটি SageMaker প্রশিক্ষণ কাজ চালু করতে মূল্নির্ধারক SageMaker Python SDK-এর ক্লাস, আপনাকে SageMaker-এ প্রদত্ত ইউটিলিটি ফাংশনের মাধ্যমে ডকার ইমেজ URI, ট্রেনিং স্ক্রিপ্ট URI, এবং প্রাক-প্রশিক্ষিত মডেল URI আনতে হবে। প্রশিক্ষণ স্ক্রিপ্ট URI-তে ডেটা প্রক্রিয়াকরণ, পূর্ব-প্রশিক্ষিত মডেল লোড করা, মডেল প্রশিক্ষণ এবং অনুমানের জন্য প্রশিক্ষিত মডেল সংরক্ষণের জন্য প্রয়োজনীয় সমস্ত কোড রয়েছে। প্রাক-প্রশিক্ষিত মডেল URI-তে প্রাক-প্রশিক্ষিত মডেল আর্কিটেকচারের সংজ্ঞা এবং মডেল প্যারামিটার রয়েছে। প্রাক-প্রশিক্ষিত মডেল URI নির্দিষ্ট মডেলের জন্য নির্দিষ্ট। প্রাক-প্রশিক্ষিত মডেল টারবলগুলি টেনসরফ্লো থেকে প্রি-ডাউনলোড করা হয়েছে এবং উপযুক্ত মডেল স্বাক্ষর সহ সংরক্ষণ করা হয়েছে আমাজন সিম্পল স্টোরেজ সার্ভিস (Amazon S3) বালতি, যাতে প্রশিক্ষণের কাজ নেটওয়ার্ক বিচ্ছিন্নতায় চলে। নিম্নলিখিত কোড দেখুন:

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

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

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

এই মডেল-নির্দিষ্ট প্রশিক্ষণ আর্টিফ্যাক্টগুলির সাথে, আপনি এর একটি বস্তু তৈরি করতে পারেন মূল্নির্ধারক শ্রেণী:

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

এরপরে, আপনার কাস্টম ডেটাসেটে ট্রান্সফার শেখার জন্য, আপনাকে প্রশিক্ষণের হাইপারপ্যারামিটারের ডিফল্ট মান পরিবর্তন করতে হতে পারে, যা তালিকাভুক্ত হাইপারপ্যারামিটার. আপনি কল করে এই হাইপারপ্যারামিটারগুলির ডিফল্ট মান সহ একটি পাইথন অভিধান আনতে পারেন hyperparameters.retrieve_default, প্রয়োজন অনুযায়ী তাদের আপডেট করুন, এবং তারপর এস্টিমেটর ক্লাসে পাস করুন। উল্লেখ্য যে কিছু হাইপারপ্যারামিটারের ডিফল্ট মান বিভিন্ন মডেলের জন্য আলাদা। বড় মডেলের জন্য, ডিফল্ট ব্যাচ আকার ছোট এবং train_only_top_layer hyperparameter সেট করা হয় True. হাইপারপ্যারামিটার Train_only_top_layer ফাইন-টিউনিং প্রক্রিয়া চলাকালীন কোন মডেলের প্যারামিটারগুলি পরিবর্তিত হয় তা নির্ধারণ করে। যদি train_only_top_layer is True, তারপর শ্রেণীবিন্যাস স্তরগুলির পরামিতিগুলি পরিবর্তিত হয় এবং বাকী প্যারামিটারগুলি সূক্ষ্ম-টিউনিং প্রক্রিয়ার সময় স্থির থাকে। অন্যদিকে, যদি train_only_top_layer is False, তারপর মডেলের সমস্ত পরামিতি সূক্ষ্ম-টিউন করা হয়। নিম্নলিখিত কোড দেখুন:

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

আমরা সরবরাহ SST2 মডেলগুলিকে সূক্ষ্ম-টিউন করার জন্য একটি ডিফল্ট ডেটাসেট হিসাবে। ডেটাসেটে ইতিবাচক এবং নেতিবাচক চলচ্চিত্র পর্যালোচনা রয়েছে। থেকে ডাউনলোড করা হয়েছে TensorFlow অধীনে Apache 2.0 লাইসেন্স. নিম্নলিখিত কোডটি S3 বালতিতে হোস্ট করা ডিফল্ট প্রশিক্ষণ ডেটাসেট প্রদান করে।

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

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

অবশেষে, মডেলটিকে সূক্ষ্ম-টিউন করার জন্য সেজমেকার প্রশিক্ষণের কাজটি চালু করতে, প্রশিক্ষণ ডেটাসেটের Amazon S3 অবস্থান পাস করার সময় এস্টিমেটর ক্লাসের অবজেক্টে .fit কল করুন:

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

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

টেনসরফ্লো টেক্সট ক্লাসিফিকেশন অ্যালগরিদমের জন্য ইনপুট/আউটপুট ইন্টারফেস

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

মডেলে ইনপুট দেওয়ার জন্য প্রশিক্ষণের ডেটা কীভাবে ফর্ম্যাট করা উচিত তা নিম্নলিখিত নির্দেশাবলী বর্ণনা করে:

  • ইনপুট - একটি ডাটা.সিএসভি ফাইল ধারণকারী একটি ডিরেক্টরি। প্রথম কলামের প্রতিটি সারিতে 0 এবং ক্লাসের সংখ্যার মধ্যে পূর্ণসংখ্যা শ্রেণীর লেবেল থাকা উচিত। দ্বিতীয় কলামের প্রতিটি সারিতে সংশ্লিষ্ট পাঠ্য ডেটা থাকা উচিত।
  • আউটপুট - একটি সূক্ষ্ম সুরযুক্ত মডেল যা অনুমানের জন্য স্থাপন করা যেতে পারে বা ক্রমবর্ধমান প্রশিক্ষণ ব্যবহার করে আরও প্রশিক্ষিত করা যেতে পারে। ক্লাস লেবেলে একটি ফাইল ম্যাপিং ক্লাস সূচী মডেলের সাথে সংরক্ষিত হয়।

নিম্নলিখিত একটি ইনপুট CSV ফাইলের একটি উদাহরণ. মনে রাখবেন যে ফাইলটিতে কোনও হেডার থাকা উচিত নয়। ফাইলটি একটি S3 বালতিতে হোস্ট করা উচিত এবং নিম্নলিখিতগুলির মতো একটি পাথ রয়েছে: s3://bucket_name/input_directory/. উল্লেখ্য যে ট্রেলিং / দরকার.

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

TensorFlow টেক্সট ক্লাসিফিকেশন অ্যালগরিদমের সাথে অনুমান

উত্পন্ন মডেলগুলি অনুমান এবং সমর্থন পাঠ্য হিসাবে হোস্ট করা যেতে পারে application/x-text বিষয়বস্তুর প্রকার. আউটপুটে সম্ভাব্যতার মান, সমস্ত ক্লাসের জন্য ক্লাস লেবেল এবং JSON ফর্ম্যাটে এনকোড করা সর্বোচ্চ সম্ভাবনা সহ ক্লাস সূচকের সাথে সম্পর্কিত পূর্বাভাসিত লেবেল রয়েছে। মডেলটি প্রতি অনুরোধে একটি একক স্ট্রিং প্রক্রিয়া করে এবং শুধুমাত্র একটি লাইন আউটপুট করে। নিম্নলিখিত একটি JSON ফর্ম্যাট প্রতিক্রিয়া একটি উদাহরণ:

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

If accept তৈরি application/json, তারপর মডেল শুধুমাত্র সম্ভাব্যতা আউটপুট. প্রশিক্ষণ এবং অনুমান সম্পর্কে আরও বিশদ বিবরণের জন্য, নমুনা নোটবুকের ভূমিকা দেখুন জাম্পস্টার্টের ভূমিকা - পাঠ্য শ্রেণিবিন্যাস.

JumpStart UI এর মাধ্যমে SageMaker বিল্ট-ইন অ্যালগরিদম ব্যবহার করুন

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

নিম্নলিখিত দুটি ভিডিও রয়েছে যা দেখায় যে আপনি কীভাবে একই ফাইন-টিউনিং এবং ডিপ্লোয়মেন্ট প্রক্রিয়ার প্রতিলিপি করতে পারেন যা আমরা জাম্পস্টার্ট UI এর মাধ্যমে কয়েকটি ক্লিকের মাধ্যমে করেছি।

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

এখানে একই প্রাক-প্রশিক্ষিত পাঠ্য শ্রেণিবিন্যাসের মডেলটি সূক্ষ্ম-টিউন করার প্রক্রিয়া রয়েছে।

সুন্দর মডেল স্থাপন করুন

মডেল প্রশিক্ষণ শেষ হওয়ার পরে, আপনি একটি ক্লিকের মাধ্যমে একটি স্থায়ী, রিয়েল-টাইম এন্ডপয়েন্টে মডেলটিকে সরাসরি স্থাপন করতে পারেন।

উপসংহার

এই পোস্টে, আমরা SageMaker TensorFlow টেক্সট ক্লাসিফিকেশন বিল্ট-ইন অ্যালগরিদম চালু করার ঘোষণা করেছি। আমরা এই অ্যালগরিদম ব্যবহার করে TensorFlow হাব থেকে একটি প্রাক-প্রশিক্ষিত মডেল ব্যবহার করে একটি কাস্টম ডেটাসেটে ট্রান্সফার লার্নিং কীভাবে করতে হয় তার উদাহরণ কোড দিয়েছি।

আরও তথ্যের জন্য, দেখুন ডকুমেন্টেশন এবং উদাহরণ নোটবুক জাম্পস্টার্টের ভূমিকা - পাঠ্য শ্রেণিবিন্যাস.


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

Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্সে TensorFlow টেক্সট ক্লাসিফিকেশন মডেলের জন্য ট্রান্সফার লার্নিং। উল্লম্ব অনুসন্ধান. আ.বিবেক মদন ড সঙ্গে একজন ফলিত বিজ্ঞানী অ্যামাজন সেজমেকার জাম্পস্টার্ট দল. তিনি আরবানা-চ্যাম্পেইনের ইলিনয় বিশ্ববিদ্যালয় থেকে তার পিএইচডি পেয়েছিলেন এবং জর্জিয়া টেকের পোস্ট ডক্টরাল গবেষক ছিলেন। তিনি মেশিন লার্নিং এবং অ্যালগরিদম ডিজাইনের একজন সক্রিয় গবেষক এবং EMNLP, ICLR, COLT, FOCS এবং SODA কনফারেন্সে গবেষণাপত্র প্রকাশ করেছেন।

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

Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্সে TensorFlow টেক্সট ক্লাসিফিকেশন মডেলের জন্য ট্রান্সফার লার্নিং। উল্লম্ব অনুসন্ধান. আ.আশিস খেতান ড সঙ্গে একজন সিনিয়র ফলিত বিজ্ঞানী Amazon SageMaker বিল্ট-ইন অ্যালগরিদম এবং মেশিন লার্নিং অ্যালগরিদম বিকাশে সহায়তা করে। তিনি ইউনিভার্সিটি অফ ইলিনয় আরবানা চ্যাম্পেইন থেকে পিএইচডি লাভ করেন। তিনি মেশিন লার্নিং এবং পরিসংখ্যানগত অনুমানের একজন সক্রিয় গবেষক এবং NeurIPS, ICML, ICLR, JMLR, ACL, এবং EMNLP সম্মেলনে অনেক গবেষণাপত্র প্রকাশ করেছেন।

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

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

AWS Inferentia এবং AWS Trainium অ্যামাজন সেজমেকার জাম্পস্টার্টে লামা 3 মডেল স্থাপনের জন্য সর্বনিম্ন খরচ সরবরাহ করে | আমাজন ওয়েব সার্ভিসেস

উত্স নোড: 1970432
সময় স্ট্যাম্প: 2 পারে, 2024

অ্যামাজন বেডরক এবং AWS স্টেপ ফাংশন ব্যবহার করে ইমেজ ব্যাকগ্রাউন্ড পরিবর্তন করার প্রক্রিয়া স্বয়ংক্রিয় করুন আমাজন ওয়েব সার্ভিসেস

উত্স নোড: 1954431
সময় স্ট্যাম্প: মার্চ 7, 2024