ভূমিকা
বর্তমানের কৃত্রিম বুদ্ধিমত্তা বা AI এর যুগে, লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) আমাদের দৈনন্দিন কাজ থেকে শুরু করে জটিল সফটওয়্যার ডেভেলপমেন্টে বৈপ্লবিক পরিবর্তন এনেছে। আগে এই ধরনের মডেল ব্যবহার করা বেশ কঠিন এবং ব্যয়বহুল ছিল, কিন্তু এখন ওপেন সোর্স কমিউনিটির অবদানের ফলে যে কেউই খুব সহজে এগুলো ব্যবহার করতে পারেন। এই পোস্টে আমরা বিস্তারিতভাবে জানব লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) আসলে কী, কিভাবে Ollama ব্যবহার করে লোকালি মডেল রান করা যায়, Ollama এর পেছনের প্রযুক্তি (যেমন GGUF ও Quantization), এবং Hugging Face ইকোসিস্টেমের খুঁটিনাটি বিষয়গুলো নিয়ে। এছাড়াও আমরা ফাইন-টিউনিং (Fine-tuning) এবং RAG (Retrieval-Augmented Generation) এর মতো উন্নত ধারণাগুলোর সাথেও পরিচিত হব।
লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) কী?
লার্জ ল্যাঙ্গুয়েজ মডেল বা LLM হলো এক ধরনের আর্টিফিশিয়াল ইন্টেলিজেন্স প্রোগ্রাম যা বিশাল পরিমাণের টেক্সট ডেটার উপর ভিত্তি করে মানুষের মতো টেক্সট বুঝতে এবং তৈরি করতে পারে। এরা মূলত ডিপ লার্নিং (Deep Learning) এবং নিউরাল নেটওয়ার্ক (Neural Network) আর্কিটেকচার, বিশেষ করে ট্রান্সফর্মার (Transformer) মডেলের উপর ভিত্তি করে তৈরি।
LLM গুলো কীভাবে কাজ করে? এর মূল কাজ হলো একটি বাক্যের পরবর্তী শব্দটি অনুমান করা। যখন আপনি একটি মডেলকে কিছু ইনপুট বা প্রম্পট দেন, তখন মডেলটি তার শেখা প্যাটার্নগুলো ব্যবহার করে গণনা করে যে এরপর কোন শব্দটি আসার সম্ভাবনা সবচেয়ে বেশি। এভাবে একে একে শব্দ যুক্ত করে এটি সম্পূর্ণ একটি বাক্য বা অনুচ্ছেদ তৈরি করে। GPT-4, Llama 3, Mistral ইত্যাদি হলো কিছু বিখ্যাত LLM এর উদাহরণ।
Ollama: লোকাল মেশিনে AI রান করার জাদুকরী টুল
Ollama হলো এমন একটি টুল বা প্ল্যাটফর্ম যার সাহায্যে আপনি খুব সহজেই আপনার নিজের কম্পিউটারে (লোকাল মেশিনে) Llama 3, Mistral, Gemma এর মতো বড় বড় ওপেন সোর্স মডেল রান করতে পারবেন। এর সবচেয়ে বড় সুবিধা হলো, এর জন্য আপনার কোনো ইন্টারনেটের প্রয়োজন নেই এবং আপনার ডেটা সম্পূর্ণ প্রাইভেট থাকে।
Ollama কীভাবে কাজ করে? (Under the Hood)
Ollama এত সহজে এবং কম মেমোরিতে বড় মডেলগুলো রান করতে পারার পেছনে দুটি মূল প্রযুক্তি কাজ করে: GGUF এবং Quantization।
১. GGUF (GPT-Generated Unified Format)
GGUF হলো একটি ফাইল ফরম্যাট যা মূলত লার্জ ল্যাঙ্গুয়েজ মডেলগুলোকে স্টোর এবং ডিস্ট্রিবিউট করার জন্য ব্যবহৃত হয়। আগে GGML ফরম্যাট ব্যবহৃত হতো, কিন্তু GGUF তার একটি উন্নত সংস্করণ। এই ফরম্যাটের সুবিধা হলো, এটি মডেলের আর্কিটেকচার, মেটাডেটা এবং ওয়েইটস (weights) সবকিছু একটিমাত্র ফাইলে সংরক্ষণ করতে পারে। এর ফলে মডেল লোড করা এবং রান করা অনেক দ্রুত এবং সহজ হয়। Ollama মূলত এই GGUF ফরম্যাটের মডেলগুলোকেই রান করে।
২. Quantization (কোয়ান্টাইজেশন)
সাধারণত একটি মডেলের প্যারামিটারগুলো 16-bit বা 32-bit ফ্লোটিং পয়েন্ট নাম্বারে সংরক্ষিত থাকে। এর ফলে মডেলগুলোর সাইজ অনেক বড় হয় এবং প্রচুর RAM বা VRAM প্রয়োজন হয়। Quantization হলো এমন একটি প্রক্রিয়া যার মাধ্যমে এই প্যারামিটারগুলোর সাইজ কমিয়ে 8-bit, 4-bit বা এমনকি 2-bit এ নামিয়ে আনা হয়। উদাহরণস্বরূপ, একটি 7B (৭ বিলিয়ন) প্যারামিটারের মডেল 16-bit এ প্রায় 14GB স্পেস নিলেও, 4-bit কোয়ান্টাইজেশনের পর সেটি মাত্র 4GB বা 5GB এর মতো জায়গা নেয়। এর ফলে সাধারণ ল্যাপটপ বা কম্পিউটারেও বড় মডেল রান করা সম্ভব হয়। Ollama মডেল ডাউনলোডের সময় স্বয়ংক্রিয়ভাবে এই কোয়ান্টাইজড ভার্সনগুলোই (যেমন Q4_K_M) ব্যবহার করে।
Ollama ইনস্টলেশন ও ব্যবহার
Linux বা macOS এ Terminal এ নিচের কমান্ডটি রান করে সহজেই Ollama ইনস্টল করা যায়:
curl -fsSL https://ollama.com/install.sh | sh
উইন্ডোজ ব্যবহারকারীরা Ollama এর অফিশিয়াল ওয়েবসাইট থেকে সরাসরি ইন্সটলার ডাউনলোড করতে পারবেন।
একটি মডেল (যেমন llama3) রান করতে:
ollama run llama3
এটি মডেলটি ডাউনলোড করবে এবং একটি চ্যাট ইন্টারফেস ওপেন করবে। আপনি ollama list দিয়ে ডাউনলোড করা মডেলগুলো দেখতে পারেন এবং ollama rm <model_name> দিয়ে মুছে ফেলতে পারেন।
Hugging Face: AI এর GitHub
Hugging Face হলো ওপেন সোর্স মেশিন লার্নিং, এআই মডেল এবং ডেটাসেটের বিশ্বের সবচেয়ে বড় সংগ্রহশালা। ডেভেলপার এবং গবেষকরা তাদের তৈরি করা মডেলগুলো এখানে শেয়ার করেন।
Transformers লাইব্রেরি
Hugging Face এর মডেল ব্যবহার করার জন্য সবচেয়ে জনপ্রিয় টুল হলো তাদের transformers লাইব্রেরি। এটি ব্যবহার করে খুব সহজেই হাজার হাজার প্রি-ট্রেইনড মডেল ডাউনলোড এবং ব্যবহার করা যায়।
ইনস্টল করতে:
pip install transformers torch
পাইপলাইন (Pipelines)
Hugging Face এর pipeline API হলো মডেল ব্যবহারের সবচেয়ে সহজ পদ্ধতি। এটি ইনপুট প্রসেসিং থেকে শুরু করে মডেল প্রেডিকশন এবং আউটপুট গঠন সব কাজ একাই করে দেয়।
টেক্সট জেনারেশনের একটি উদাহরণ:
from transformers import pipeline
# GPT-2 মডেল দিয়ে টেক্সট জেনারেটর তৈরি
generator = pipeline('text-generation', model='gpt2')
# টেক্সট তৈরি করা
result = generator("Artificial intelligence will shape the future by", max_length=50)
print(result[0]['generated_text'])
কাস্টম মডেল ও টোকেনাইজার লোড করা (Loading Custom Models)
মাঝেমধ্যে পাইপলাইনের বাইরে আমাদের মডেলের উপর আরও বেশি নিয়ন্ত্রণ দরকার হয়। তখন আমরা সরাসরি মডেল এবং টোকেনাইজার লোড করতে পারি:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "meta-llama/Llama-2-7b-chat-hf"
# টোকেনাইজার লোড
tokenizer = AutoTokenizer.from_pretrained(model_name)
# মডেল লোড
model = AutoModelForCausalLM.from_pretrained(model_name)
inputs = tokenizer("Hello, how are you?", return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=50)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
বিঃদ্রঃ কিছু মডেল ব্যবহারের জন্য Hugging Face এ অ্যাকাউন্ট থাকতে হবে এবং অ্যাক্সেস রিকোয়েস্ট অ্যাপ্রুভ হতে হবে।
Datasets লাইব্রেরি
Hugging Face শুধুমাত্র মডেল নয়, বিভিন্ন ডেটাসেটেরও বিশাল ভাণ্ডার। তাদের datasets লাইব্রেরি ব্যবহার করে সহজেই যেকোনো ডেটাসেট ডাউনলোড ও প্রসেস করা যায়।
pip install datasets
from datasets import load_dataset
# IMDB ডেটাসেট লোড করা
dataset = load_dataset("imdb")
print(dataset['train'][0]) # ট্রেইনিং সেটের প্রথম ডেটা প্রিন্ট করবে
অ্যাডভান্সড টপিক: Fine-tuning এবং RAG
লার্জ ল্যাঙ্গুয়েজ মডেলগুলোকে নিজেদের কাজে আরও উপযুক্ত করতে দুটি জনপ্রিয় পদ্ধতি ব্যবহার করা হয়:
১. ফাইন-টিউনিং (Fine-tuning)
ফাইন-টিউনিং হলো একটি প্রি-ট্রেইনড মডেলকে নতুন কিছু ডেটার উপর পুনরায় ট্রেইন করা, যাতে মডেলটি ঐ নির্দিষ্ট ডোমেইন বা কাজে আরও ভালো পারফর্ম করতে পারে। ধরা যাক, আপনার কাছে একটি সাধারণ মডেল আছে। আপনি চান সেটি মেডিসিন বা ডাক্তারি বিষয় নিয়ে ভালো উত্তর দিক। তখন আপনি মডেলটিকে প্রচুর পরিমাণ ডাক্তারি বই এবং আর্টিকেলের ডেটাসেট দিয়ে ফাইন-টিউন করবেন। ফুল ফাইন-টিউনিং অনেক ব্যয়বহুল, তাই আজকাল PEFT (Parameter-Efficient Fine-Tuning) এবং LoRA (Low-Rank Adaptation) এর মতো পদ্ধতি ব্যবহার করা হয়, যা খুব কম মেমোরি ও খরচে মডেলকে ফাইন-টিউন করতে সাহায্য করে।
২. RAG (Retrieval-Augmented Generation)
RAG হলো এমন একটি পদ্ধতি যেখানে মডেলকে কোনো প্রশ্ন করার আগে, সেই প্রশ্ন সম্পর্কিত কিছু তথ্য একটি ডেটাবেস (সাধারণত ভেক্টর ডেটাবেস) থেকে খুঁজে বের করে (Retrieve) মডেলকে দেওয়া হয়। মডেলগুলোর নলেজ কাটঅফ (Knowledge Cutoff) থাকে, অর্থাৎ একটি নির্দিষ্ট সময়ের পর তারা নতুন কিছু জানে না। এছাড়া তারা ভুল তথ্য বা হ্যালুসিনেশন (Hallucination) তৈরি করতে পারে। RAG এর মাধ্যমে মডেলকে আপনার নিজস্ব পিডিএফ, ডকুমেন্ট বা ওয়েবসাইটের লেটেস্ট তথ্য দেওয়া যায়। ফলে মডেলটি ঐ তথ্যের উপর ভিত্তি করে একদম সঠিক উত্তর তৈরি (Generate) করতে পারে। এটি আজকালকার এআই চ্যাটবট তৈরির সবচেয়ে জনপ্রিয় পদ্ধতি।
উপসংহার
Ollama আমাদের লোকাল মেশিনে, অফলাইনে এবং সম্পূর্ণ ফ্রিতে শক্তিশালী AI মডেল রান করার সুযোগ করে দিয়েছে, যা GGUF এবং কোয়ান্টাইজেশনের মতো প্রযুক্তির কারণে সম্ভব হয়েছে। অন্যদিকে Hugging Face হলো ওপেন সোর্স AI ডেভেলপমেন্টের মূল কেন্দ্রবিন্দু, যেখানে মডেল, ডেটাসেট এবং টুলসের এক বিশাল ইকোসিস্টেম রয়েছে। আপনি যদি AI এবং LLM নিয়ে কাজ শুরু করতে চান, তবে এই টুলগুলোর ব্যবহার জানা অপরিহার্য। পাশাপাশি ফাইন-টিউনিং এবং RAG এর মতো অ্যাডভান্সড কনসেপ্টগুলো আপনাকে বাস্তব জীবনে ব্যবহারযোগ্য AI অ্যাপ্লিকেশন তৈরি করতে সাহায্য করবে।