GPU ব্যবহার করে XGBoost মডেল ট্রেনিং করলে মডেলটি দ্রুত ট্রেনিং হয়, বিশেষ করে বড় ডেটাসেটের ক্ষেত্রে। XGBoost GPU সাপোর্ট করে, যা NVIDIA GPU ব্যবহার করে কম্পিউটেশনাল কাজগুলি আরও দ্রুত সম্পন্ন করতে সহায়তা করে। নিচে GPU ব্যবহার করে XGBoost মডেল ট্রেনিং করার একটি উদাহরণ দেওয়া হল।
উদাহরণ: GPU ব্যবহার করে Model Training
১. প্রয়োজনীয় লাইব্রেরি ইনস্টল এবং ইমপোর্ট করা
pip install xgboost scikit-learn
import xgboost as xgb
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
২. ডেটাসেট লোড এবং ট্রেন-টেস্ট স্প্লিট করা
# Iris ডেটাসেট লোড করা
data = load_iris()
X = data.data
y = data.target
# ডেটা ট্রেন এবং টেস্ট সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
৩. XGBoost ডেটা ম্যাট্রিক্স তৈরি করা
# ডেটা ম্যাট্রিক্স তৈরি করা
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)
৪. XGBoost প্যারামিটার সেট করা (GPU ব্যবহার করার জন্য)
# XGBoost প্যারামিটার সেট করা
params = {
'objective': 'multi:softmax', # ক্লাসিফিকেশনের জন্য
'num_class': 3, # Iris ডেটাসেটে ৩টি ক্লাস আছে
'eval_metric': 'mlogloss', # মাল্টি-ক্লাস লগ লস
'tree_method': 'gpu_hist', # GPU ব্যবহার করার জন্য প্যারামিটার
'predictor': 'gpu_predictor' # GPU-তে প্রেডিকশন করার জন্য
}
# মডেল ট্রেনিং করা
num_rounds = 50
model = xgb.train(params, dtrain, num_rounds)
৫. প্রেডিকশন এবং মডেল ইভ্যালুয়েশন
# টেস্ট সেটে প্রেডিকশন করা
y_pred = model.predict(dtest)
# একুরেসি স্কোর গণনা করা
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy with GPU: {accuracy * 100:.2f}%")
পুরো কোড
import xgboost as xgb
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# Iris ডেটাসেট লোড করা
data = load_iris()
X = data.data
y = data.target
# ডেটা ট্রেন এবং টেস্ট সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# ডেটা ম্যাট্রিক্স তৈরি করা
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)
# XGBoost প্যারামিটার সেট করা (GPU ব্যবহার করার জন্য)
params = {
'objective': 'multi:softmax', # ক্লাসিফিকেশনের জন্য
'num_class': 3, # Iris ডেটাসেটে ৩টি ক্লাস আছে
'eval_metric': 'mlogloss', # মাল্টি-ক্লাস লগ লস
'tree_method': 'gpu_hist', # GPU ব্যবহার করার জন্য প্যারামিটার
'predictor': 'gpu_predictor' # GPU-তে প্রেডিকশন করার জন্য
}
# মডেল ট্রেনিং করা
num_rounds = 50
model = xgb.train(params, dtrain, num_rounds)
# টেস্ট সেটে প্রেডিকশন করা
y_pred = model.predict(dtest)
# একুরেসি স্কোর গণনা করা
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy with GPU: {accuracy * 100:.2f}%")
ব্যাখ্যা
tree_method: আমরা এখানে 'gpu_hist' ব্যবহার করেছি, যা GPU তে ট্রেনিং করার জন্য উপযুক্ত। এটি GPU-তে হিস্টোগ্রাম-ভিত্তিক অ্যালগরিদম ব্যবহার করে, যা CPU-র তুলনায় দ্রুত কাজ করে।
predictor: 'gpu_predictor' প্যারামিটারটি ব্যবহার করে আমরা GPU-তে প্রেডিকশন করব।
মডেল ইভ্যালুয়েশন
উপরের উদাহরণে, আমরা GPU ব্যবহার করে XGBoost মডেল ট্রেনিং করেছি। একুরেসি এবং অন্যান্য ইভ্যালুয়েশন মেট্রিক্স ব্যবহার করে আমরা মডেলের কার্যকারিতা পরীক্ষা করেছি। যদি আপনার সিস্টেমে NVIDIA GPU এবং CUDA ইনস্টল করা থাকে, তাহলে এই প্রক্রিয়া GPU-তে দ্রুত কাজ করবে।
সারসংক্ষেপ
এই উদাহরণে আমরা দেখিয়েছি কিভাবে XGBoost মডেল ট্রেনিং করতে GPU ব্যবহার করা যায়। বড় ডেটাসেট বা মডেলের ক্ষেত্রে GPU ব্যবহার করে ট্রেনিং করলে সময় বাঁচে এবং মডেলের কার্যকারিতা বৃদ্ধি পায়।
Read more