AWS SageMaker ব্যবহার করে একটি Basic Text Generation মডেল তৈরি করতে GPT-2 মডেল ব্যবহার করতে পারেন। SageMaker এর মাধ্যমে প্রি-ট্রেইন্ড মডেলকে ফাইন-টিউন করে নিজের প্রয়োজন অনুযায়ী কাস্টমাইজ করা যায়।
Step-by-Step Guide: SageMaker ব্যবহার করে Basic Text Generation Model তৈরি করা
Step 1: প্রয়োজনীয় লাইব্রেরি এবং SageMaker সেশন সেটআপ
SageMaker এ মডেল ট্রেনিং এবং ডিপ্লয়মেন্ট করার জন্য boto3 এবং sagemaker লাইব্রেরি প্রয়োজন হবে। SageMaker Notebook instance বা SageMaker Studio ব্যবহার করলে সেশন এবং রোল স্বয়ংক্রিয়ভাবে সেটআপ হবে।
import sagemaker
from sagemaker.huggingface import HuggingFace
# SageMaker সেশন এবং রোল সেটআপ
sagemaker_session = sagemaker.Session()
role = sagemaker.get_execution_role()
Step 2: মডেলের কনফিগারেশন এবং ট্রেনিং ইনস্ট্যান্স নির্বাচন
GPT-2 মডেলটি ব্যবহার করে কাস্টমাইজড টেক্সট জেনারেশন করতে SageMaker JumpStart থেকে প্রি-ট্রেইন্ড মডেল নির্বাচন করা যাবে।
কনফিগারেশন সেটআপ:
# মডেল কনফিগারেশন
hub = {
'HF_MODEL_ID': 'gpt2', # প্রি-ট্রেইন্ড মডেল আইডি
'HF_TASK': 'text-generation', # টাস্ক টাইপ
}
Step 3: SageMaker Hugging Face Estimator তৈরি
SageMaker এর Hugging Face Estimator তৈরি করে মডেলকে SageMaker Training Job এ পাঠানো যাবে। এখানে PyTorch ব্যবহার করা হবে, কারণ GPT-2 PyTorch এ ভালো কাজ করে।
from sagemaker.huggingface import HuggingFace
# Hugging Face Estimator সেটআপ
huggingface_estimator = HuggingFace(
entry_point='train.py', # ট্রেনিং স্ক্রিপ্ট
source_dir='.', # ট্রেনিং কোডের লোকেশন
instance_type='ml.p3.2xlarge', # ট্রেনিং ইনস্ট্যান্স টাইপ
instance_count=1,
role=role,
transformers_version="4.6",
pytorch_version="1.7",
py_version="py36",
hyperparameters={'epochs': 3, 'train_batch_size': 8},
)
Step 4: ট্রেনিং ডেটা প্রস্তুতি
আপনার ট্রেনিং ডেটা Amazon S3 বাকার এ আপলোড করতে হবে এবং SageMaker Training Job এ ইনপুট হিসেবে উল্লেখ করতে হবে।
# S3 বাকার এ ডেটা আপলোড
train_data = sagemaker_session.upload_data(path='path/to/your/training-data.csv', bucket='your-s3-bucket', key_prefix='text-generation-data')
Step 5: মডেল ট্রেনিং শুরু করা
fit() মেথড ব্যবহার করে ট্রেনিং শুরু করা যাবে। SageMaker এ মডেল ট্রেনিং হওয়ার পর তা একটি SageMaker Model আকারে সংরক্ষণ করা হয়।
# ট্রেনিং শুরু
huggingface_estimator.fit({'train': train_data})
Step 6: SageMaker Endpoint তৈরি এবং Model Deployment
মডেল ট্রেনিং সম্পন্ন হলে SageMaker Endpoint তৈরি করে মডেলকে ডিপ্লয় করতে হবে, যাতে API কলের মাধ্যমে টেক্সট জেনারেশন করা যায়।
# SageMaker এ মডেল ডিপ্লয়
predictor = huggingface_estimator.deploy(
initial_instance_count=1,
instance_type='ml.m5.large' # ইনফারেন্স ইনস্ট্যান্স টাইপ
)
Step 7: মডেল থেকে টেক্সট জেনারেশন
এন্ডপয়েন্ট তৈরি হলে predict() মেথড ব্যবহার করে ইনপুট প্রম্পট দিয়ে মডেল থেকে টেক্সট জেনারেশন করা যায়।
# টেক্সট জেনারেশনের জন্য ইনপুট প্রম্পট
input_text = "Once upon a time in a distant galaxy"
# টেক্সট জেনারেশন
response = predictor.predict({"inputs": input_text})
print("Generated Text:", response[0]["generated_text"])
Step 8: Endpoint বন্ধ করা
Endpoint তৈরি করা এবং চালু রাখা খরচবহুল হতে পারে। তাই মডেল ব্যবহারের পরে Endpoint বন্ধ করে দিতে হবে।
# Endpoint বন্ধ করা
predictor.delete_endpoint()
সংক্ষেপে
- SageMaker সেশন এবং রোল সেটআপ: SageMaker Studio বা Notebook থেকে সেশন তৈরি করা।
- Model Configuration: GPT-2 মডেল এবং ট্রেনিং সেটআপ।
- Training Data: Amazon S3 বাকার এ ডেটা আপলোড এবং ট্রেনিং স্টার্ট।
- Model Deployment: SageMaker Endpoint তৈরি করে মডেলকে API আকারে উন্মুক্ত করা।
- Text Generation: মডেলে ইনফারেন্স এবং টেক্সট জেনারেশন।
- Endpoint বন্ধ: কাজ শেষে এন্ডপয়েন্ট বন্ধ করা।
AWS SageMaker এ Basic Text Generation Model তৈরি এবং Deploy করার এই প্রক্রিয়াটি অত্যন্ত কার্যকরী এবং দ্রুত। SageMaker এর সাহায্যে সহজে এবং স্কেলেবল ভাবে টেক্সট জেনারেশন মডেল ব্যবহার করা সম্ভব।
Read more