বিভিন্ন এলএমএম মডেলের পারফরম্যান্সের তুলনা হোম কম্পিউটারে
শেষ কয়েক বছর ধরে লার্জ ল্যাঙ্গুয়েজ মডেল (এলএমএম) বিজ্ঞানী গবেষণায় এবং শিল্পী অ্যাপ্লিকেশনগুলিতে অত্যন্ত জনপ্রিয় হয়ে উঠেছে। তবে তাদের উচ্চ কম্পিউটিং রিকোয়ারমেন্ট প্রায়শই তাদের হোম কম্পিউটারে চালানোর অনুমতি দেয় না। এই নিবন্ধে আমরা সাধারণ ব্যক্তিগত কম্পিউটারে বিভিন্ন এলএমএম মডেলের পারফরম্যান্স তুলনা করব, যাতে ব্যবহারকারীরা অপ্টিমাল সমাধান নির্বাচন করতে পারেন।
প্রস্তাবনা
এলএমএম মডেল যেমন বার্থ, টি৫ বা মিস্ট্রাল উল্লেখযোগ্য কম্পিউটিং রিসোর্স প্রয়োজন। তুলনা করার জন্য, কিছু মডেল এমনকি কয়েকশত বিলিয়ন প্যারামিটার থাকতে পারে, যা র্যাম ব্যবহার এবং কম্পিউটিং পাওয়ারের উচ্চ ব্যবহারকে প্রতিফলিত করে। এই নিবন্ধে আমরা হোম কম্পিউটারে চালানোর জন্য উপযুক্ত মডেলগুলিতে ফোকাস করব, যেমন:
- মিস্ট্রাল ৭বি
- লামা ২ ৭বি
- ফ্যালকন ৭বি
- স্টেবলএলএম ৭বি
টেস্টিং হার্ডওয়্যার
আমরা নিম্নলিখিত হার্ডওয়্যার ব্যবহার করে টেস্টিং করেছেন:
- প্রসেসর: এএমডি রাইজেন ৭ ৫৮০০এক্স
- গ্রাফিক্স কার্ড: এনভিডিয়া আরটিএক্স ৩০৬০ (১২জিবি ভিআরএম)
- র্যাম: ৩২জিবি ডিডিআর৪
- অপারেটিং সিস্টেম: উবুন্টু ২২.০৪ এলটিএস
টেস্টিং মেথডোলজি
মডেলগুলির পারফরম্যান্স তুলনা করার জন্য আমরা নিম্নলিখিত টেস্টগুলি পরিচালনা করেছেন:
- মডেল লোডিং: মডেলটি মেমোরিতে লোড করার জন্য প্রয়োজনীয় সময় মাপা হয়েছে।
- টেক্সট জেনারেশন: ১০০ টোকেন জেনারেট করার জন্য প্রয়োজনীয় সময় মাপা হয়েছে।
- মেমোরি ইউজ: মডেল চালানোর সময় র্যাম ব্যবহার মাপা হয়েছে।
টেস্টিংয়ের জন্য ব্যবহৃত কোড:
from transformers import AutoModelForCausalLM, AutoTokenizer
import time
import torch
def load_model(model_name):
start_time = time.time()
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto")
end_time = time.time()
load_time = end_time - start_time
return model, tokenizer, load_time
def generate_text(model, tokenizer, prompt, max_length=100):
start_time = time.time()
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_length=max_length)
end_time = time.time()
generation_time = end_time - start_time
return tokenizer.decode(outputs[0], skip_special_tokens=True), generation_time
model_name = "mistralai/Mistral-7B-v0.1"
model, tokenizer, load_time = load_model(model_name)
prompt = "জীবনের উদ্দেশ্য কি?"
generated_text, generation_time = generate_text(model, tokenizer, prompt)
print(f"মডেল লোডিং সময়: {load_time:.2f} সেকেন্ড")
print(f"টেক্সট জেনারেশন সময়: {generation_time:.2f} সেকেন্ড")
print(f"জেনারেটেড টেক্সট: {generated_text}")
টেস্ট রেজাল্ট
১. মডেল লোডিং সময়
| মডেল | লোডিং সময় (সেকেন্ড) | |---------------------|-------------------| | মিস্ট্রাল ৭বি | ১২০ | | লামা ২ ৭বি | ১১০ | | ফ্যালকন ৭বি | ১০৫ | | স্টেবলএলএম ৭বি | ৯৫ |
২. টেক্সট জেনারেশন সময়
| মডেল | জেনারেশন সময় (সেকেন্ড) | |---------------------|----------------------| | মিস্ট্রাল ৭বি | ৫.২ | | লামা ২ ৭বি | ৪.৮ | | ফ্যালকন ৭বি | ৪.৫ | | স্টেবলএলএম ৭বি | ৪.২ |
৩. মেমোরি ইউজ
| মডেল | মেমোরি ইউজ (জিবি) | |---------------------|----------------------| | মিস্ট্রাল ৭বি | ১৪.৫ | | লামা ২ ৭বি | ১৪.০ | | ফ্যালকন ৭বি | ১৩.৮ | | স্টেবলএলএম ৭বি | ১৩.৫ |
রেজাল্ট বিশ্লেষণ
টেস্টের ভিত্তিতে দেখা যায় যে:
- মডেল লোডিং সময়: স্টেবলএলএম ৭বি সবচেয়ে দ্রুত লোডিং, যখন মিস্ট্রাল ৭বি সবচেয়ে ধীর।
- টেক্সট জেনারেশন সময়: স্টেবলএলএম ৭বি টেক্সট জেনারেশনেও সবচেয়ে দ্রুত, যখন মিস্ট্রাল ৭বি সবচেয়ে ধীর।
- মেমোরি ইউজ: সব মডেলের মেমোরি ইউজ প্রায় সমান, কিছু ছোট পার্থক্য সহ।
নিরূপণ
উপযুক্ত এলএমএম মডেল নির্বাচন নির্ভর করে নির্দিষ্ট প্রয়োজনীয়তা এবং উপলব্ধ হার্ডওয়্যার। যদি লোডিং এবং টেক্সট জেনারেশন স্পিড প্রाथমিকতা হয়, তাহলে স্টেবলএলএম ৭বি সবচেয়ে ভালো বিকল্প। যদি জেনারেটেড টেক্সটের গুণমান গুরুত্বপূর্ণ হয়, তাহলে মিস্ট্রাল ৭বি বা লামা ২ ৭বি বিবেচনা করা যেতে পারে।
সারাংশ
হোম কম্পিউটারে বিভিন্ন এলএমএম মডেলের পারফরম্যান্স তুলনা দেখায় যে, সাধারণ ব্যক্তিগত কম্পিউটারে চালানোর জন্য বেশ কয়েকটি বিকল্প রয়েছে। উপযুক্ত মডেল নির্বাচন নির্ভর করে ব্যক্তিগত প্রয়োজনীয়তা এবং উপলব্ধ রিসোর্স। সর্বোত্তম পারফরম্যান্স অর্জনের জন্য স্টেবলএলএম ৭বি সবচেয়ে ভালো বিকল্প, যখন গুণমানকে প্রाथমিকতা দেওয়ার জন্য মিস্ট্রাল ৭বি বা লামা ২ ৭বি আরও উপযুক্ত হতে পারে।