Hugging Face এবং DeepSpeed এর ইন্টিগ্রেশন মডেল প্রশিক্ষণের সময় দক্ষতা এবং দ্রুততার সাথে প্রশিক্ষণ দেওয়ার জন্য অত্যন্ত কার্যকরী। Hugging Face এর Transformers লাইব্রেরি ডীপ লার্নিং মডেল তৈরিতে ব্যবহৃত হয় এবং DeepSpeed এর অপ্টিমাইজেশন ফিচারগুলি মডেল প্রশিক্ষণকে আরো উন্নত করে। এখানে আমরা দেখব কিভাবে Hugging Face এর মডেলকে DeepSpeed এর সাথে ইন্টিগ্রেট করা যায়।
ধাপ ১: প্রয়োজনীয় লাইব্রেরি ইনস্টল করা
প্রথমে, আপনাকে Hugging Face এবং DeepSpeed এর জন্য প্রয়োজনীয় লাইব্রেরিগুলো ইনস্টল করতে হবে।
pip install transformers deepspeed
ধাপ ২: মডেল এবং ডেটাসেট লোড করা
Hugging Face থেকে একটি মডেল এবং ডেটাসেট লোড করুন। এখানে আমরা BERT মডেল ব্যবহার করব।
from transformers import BertForSequenceClassification, BertTokenizer
from datasets import load_dataset
# BERT মডেল এবং টোকেনাইজার লোড করা
model_name = "bert-base-uncased"
model = BertForSequenceClassification.from_pretrained(model_name, num_labels=2)
tokenizer = BertTokenizer.from_pretrained(model_name)
# ডেটাসেট লোড করা
dataset = load_dataset("glue", "mrpc") # MRPC dataset
ধাপ ৩: ডেটা প্রিপ্রসেসিং
ডেটা প্রিপ্রসেসিং করে ডেটাসেট তৈরি করুন।
# ডেটাসেট টোকেনাইজেশন
def tokenize_function(examples):
return tokenizer(examples["sentence1"], examples["sentence2"], truncation=True)
tokenized_datasets = dataset.map(tokenize_function, batched=True)
# Train-test split করা
train_dataset = tokenized_datasets["train"].shuffle(seed=42).select([i for i in list(range(200))]) # উদাহরণস্বরূপ কিছু ডেটা ব্যবহার করা
test_dataset = tokenized_datasets["validation"].shuffle(seed=42)
ধাপ ৪: DeepSpeed কনফিগারেশন ফাইল তৈরি করা
একটি কনফিগারেশন ফাইল তৈরি করুন যেখানে আপনি DeepSpeed এর অপ্টিমাইজেশন সেটিংস উল্লেখ করবেন।
{
"train_batch_size": 32,
"fp16": {
"enabled": true # Mixed Precision Training
},
"zero_optimization": {
"stage": 2 # ZeRO Stage 2
},
"optimizer": {
"type": "AdamW",
"params": {
"lr": 5e-5
}
}
}
ধাপ ৫: DeepSpeed ব্যবহার করে মডেল ট্রেনিং করা
Hugging Face ট্রেনিং লুপ এবং DeepSpeed এর সংযোগের মাধ্যমে মডেল ট্রেনিং করুন।
import deepspeed
import torch
from transformers import Trainer, TrainingArguments
# DeepSpeed কনফিগারেশন ফাইল লোড করা
deepspeed_config = "deepspeed_config.json"
# Training arguments তৈরি করা
training_args = TrainingArguments(
output_dir="./results",
evaluation_strategy="epoch",
learning_rate=5e-5,
per_device_train_batch_size=32,
per_device_eval_batch_size=64,
num_train_epochs=3,
weight_decay=0.01,
save_strategy="epoch",
deepspeed=deepspeed_config # DeepSpeed কনফিগারেশন যুক্ত করা
)
# Trainer তৈরি করা
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=test_dataset
)
# মডেল ট্রেনিং করা
trainer.train()
ধাপ ৬: মডেল মূল্যায়ন করা
মডেল প্রশিক্ষণের পর, মূল্যায়ন করুন।
# মূল্যায়ন করা
results = trainer.evaluate()
print(f"Evaluation results: {results}")
উপসংহার
Hugging Face এবং DeepSpeed এর সংযোগ বড় মডেলগুলোর প্রশিক্ষণকে আরও কার্যকরী এবং দক্ষ করে তোলে। এই ইন্টিগ্রেশন এর মাধ্যমে বড় ডেটাসেট এবং মডেলগুলোকে সহজে এবং দ্রুত প্রশিক্ষণ দেওয়া যায়, যা compute resources এর সঠিক ব্যবহার নিশ্চিত করে।
এখন আপনি Hugging Face এর মডেলগুলোর সাথে DeepSpeed এর অপ্টিমাইজেশন সুবিধাগুলো ব্যবহার করতে পারবেন, যা প্রশিক্ষণের সময় memory efficiency এবং training speed বৃদ্ধি করবে।
Read more