25/01/2025
=========নিজস্ব হোম সার্ভারে LLM deepseek r1=========
ছুটির দিন সকাল সকাল ভাবলাম নতুন এআই(AI) ডিপসিক(DeepSeek) এর সবচেয়ে ছোট মডেলটা দেখি আমার হোম সার্ভারে রান করা যায় কিনা। সমস্যা হলো এই সার্ভারে AI মডেল রান করার জন্য প্রয়োজনীয় GPU নাই। তারপরও ভাবলাম শুধু CPU আছে এমন একটা কম্পিউটারেই রান করে দেখি না কেমন হয়। আমার কাজের জন্য ব্যাবহৃত ম্যাকবুক প্রো তে এই জিনিস ইন্সটল দিতে চাচ্ছিলাম না।
আমার হোম সার্ভর মূলত আমার অফিসের পুরাতন একটা ল্যানেভো ল্যাপটপ, যেটা অফিস কম দামে বিক্রি করে দিয়েছিলো। এটার কনফিগারেশন ১২ জিব র্যাম, ইন্টেলের কোর আই ৫, মনে হয় কোর আছে চারটা। কোন GPU নাই, CPU এর সাথে যেটা(Intel HD Graphics 520) ইন্টিগ্রেট করে করে লাগানো আছে, ঐটা গুনায় ধরার মত না কারণ ঐটা মুলত কম্পিউটারে ভিডিও প্লে করা বা অফিসিয়াল ছোটখাটো কাজ করার জন্য দেওয়া আছে। এআই মডেল রান করার জন্য ঐ GPU কোন কাজে আসবে না। সার্ভারের অপারেটিং সিস্টেম উবন্তু ২৪.০৪।
যায় হোক, শুধু CPU সর্বস্ব কম্পিউটারে এবার তাহলে ডিপসিক এর মডেল ইন্সটল দেওয়া যাক। যেহেতু আমার সার্ভার কম্পিউটারে কোন GPU নাই, তাই আমার টার্গেট ডিকসিক সবচেয়ে ছোট মডেল যেইটা ১.৫ বিলিয়ন প্যারামিটার সাপোর্ট করে, এটার সাইজ ১.১ গিবি এর মত। অন্যান্য এআই মডেলের তুলনায় এর থেকে আহামরি কিছু আসা করা যায় না, তার পরও দেখি কেমন, এর আগে যেহেতু লোকালি কখনো কোন LLM ইন্সটল দেই নাই, তাই নতুন কিছু দেখাও হলোঃ
ধাপ ১(মডেল লোড করার লোডার ইন্সটল দেওয়া):
-----------------------------------------
ডিপসিক এর r1 হলো এইআই মডেল, এই মডেল রান করার জন্য হয় কোন প্রগ্রামিং(সাধারণত পাইথন) কোডে সেই মোডেলকে লোড করে ব্যাবহার করতে হয়। আশার কথা হলো বর্তমানে ollama নামেক একটা ওপেনসোর্স প্রজেক্ট আছে সেখানে এই LLM গুলো চাইলে লোড করে ব্যাবহার করা যায়, কোন প্রোগ্রামিং কোড না লিখেও। তাই প্রথম কাজ হলো ollama ইন্সটল দেওয়া। আমি আমার সার্ভারে সাধারণত সব কিছু ডকারে ইন্সটল দিয়ে সাচ্ছন্দবোধ করি কারণ ডকার কন্টেইনার আপ করা ডাউন করা, রিমুভ করা আমার কাছে সহজ মনে হয়। তো ollama-এরও নিজস্ব ডকার ইমেজ আছে। তাই প্রথমে সেটা অনুসরণ করে ollama ইন্সটল দিলাম। তার মানে এখন আমার কম্পিউটারে এমন একটা প্রোগ্রাম ইন্সটল দেওয়া হয়েছে সেটা LLM কে লোড করে রান করতে পারবে।
ধাপ ২(লোডারে মডেল লোড করা):
------------------------------
এখন ollama তে আমার ডিপসিকের মডেল লোড করতে হবে। আসলে মডেল লোড করা খুবই সহজ, ollama এর ওয়েব সাইটে ইতিমধ্যে বেশিরভাগ ওপেনসোর্স LLM এর-ই লোড করার বিস্তারিত পদ্ধতি দেওয়া আছে। শুধু একটা ছোট্ট কমান্ড রান করলেই কাজ হয়ে যায়। তো আমি যেহেতু ডকারে ollama ইন্সটল দিয়েছি, তাই সেই ডকার কন্টাইনেরের ভিতরে deepkeek r1 মডেল লোড করলাম। ইন্সটল হওয়ার পর পরই আমাকে টার্মানালেই চ্যাট প্রম্পট দেখাচ্ছে। একটু হাই হ্যালো করে বাই জানিয়ে সেখানে থেকে বিদায় নিলাম। টার্মিনালে হাই হ্যালো করার সময় যথেষ্ঠ দ্রুতই মনে হলো। যদিও সেখানে থিকিং ট্রেস দেখাচ্ছিলো না। তবে প্রশ্ন করার পর উত্তর দেওয়ার সময় দেখলাম আমার CPU প্রায় ৬০% ব্যাবহার হচ্ছে, এটা সাধারণত ১৫% এর নিচে থাকে। বেচেরা CPU এর উপর ভালো লোড যাচ্ছে বুঝা যাচ্ছে। আমার সার্ভার ল্যাপটপ অন্য রুমে, তখনো এই রুম থেকে ফ্যানের কোন শব্দ শুনা যাচ্ছে না। সব কিছু ঠিকঠাকই মনে হচ্ছে।
ধাপ ৩(ব্যাবহার করার জন্য ওয়েব ইন্টার্ফেইজ ইন্সটল দেওয়া):
--------------------------------------------------
আমার সার্ভারে এখন ollama আছে, সেই ollama তে ডিপসিক r1 এর সবচেয়ে ছোট সাইজের মডেল ইন্সটলও দেওয়া আছে। সেখন সেটাকে ওয়েব ব্রাউজার এর মাধ্যমে ব্যাবহার করার পালা। এখনেও চিন্তার কোন কারণ নাই, Open WebUI নামে ইতিমধ্যে একটা ওপেনসোর্স প্রজেক্ট আছে, সেটার ইউজার ইন্টার্ফেইজ অনেকটাই চ্যাটজিপিটির মতই। এটা ollama তে কানেক্ট করে ব্যাবহার করার বিস্তারিতও দেওয়া আছে। এটাও ডকারের মাধ্যমে ইন্সটল করা যায়! তবে তাই হোক...... দিয়ে দিলাম ইন্সটল।
ধাপ ৪(ব্যাবহার করে যাচায় করা):
---------------------------
এখন আমার নিজের হোম সার্ভার থেকে আমি চ্যাটজিপিটির মতই একটা LLM কে ব্যাবহার করতে পারব! তার জন্য কাউকে টাকা দিতে হবে না, আমার ড্যাটাও কারও কাছে যাবে না, সব আমার নিজের কম্পিউটারে! এটা ভাবতেই ভালো লাগছিলো, যদিও এটা চ্যাটজিপিটির লেটেস্ট মডেলগুলোর মত শক্তিশালী না কারণ আমার কাছে শক্তিশালী মডেল রান করার মত উপযোক্ত মেশিন তথা কম্পিউটার নাই। আবার আমি যদি মোটামোটি মানের একটা GPU তে রান করিও, সেটা কেনার টাকা লাগবে, সেখানে আমার কম্পিউটারের বিদ্যুৎ বিল কত আসবে সেটাও একটা প্রশ্ন। তাই একবারেই যে কোন টাকা লাগবে না ব্যাপারটা মোটেও তা না। তবে টাকা হয়তো কম লাগবে, এবং আমার ড্যাটাও অন্য কারও কাচ্ছে যাচ্ছে না। যায় হোক, যখনই ওয়েব ব্রাউজারে লোকাল সার্ভারের আইপি আর পোর্ট দিয়ে OpenWebUI এ ঢুকলাম, প্রথমে আমার এডমিন একাউন্ট খুললাম, তারপর আমাকে নিয়ে গেলো চ্যাট ইন্টার্ফেইসে। ইন্টার্ফেইজ দেখতে একদমই চ্যাটজিপিটির মত। যখনি তাকে প্রশ্ন করা শুরু করলাম, সার্ভার লেপটপের ফ্যানের শব্দ শুরু হলো। পাশের রুম থেকে বেশ জোরেশুরেই ফ্যানের শব্দ শোনা যাচ্ছে। যদিও তখনও CPU এর ব্যাবহার ৬০% এর কাছাকাছিই দেখাচ্ছিলো। তাকে প্রশ্ন করলাম, সে আমাকে জাভা প্রোগ্রামিং এ সাহায্য করতে পারবে কিনা, সে দেখলাম অনেকক্ষণ ধরে চিন্তা করেছে, টার্মিনাল থেকে রান করার সময় চিন্তার ট্রেস দেখা যাচ্ছিলো না, তাই হয়তো কম সময় নিয়েছিলো। কিন্তু এখন দেখি ওয়েব ইন্টার্ফেইসে সে কী কী চিন্তা করে আমাকে উত্তর দিচ্ছে তার ট্রেসও দেখাচ্ছে! ব্যাপারটা অনেকটা এমন যে, আপনি কাউকে প্রশ্ন করলেন, প্রশ্ন করার পর সে যে উত্তর দিবে, উত্তর দেওয়ার আগে কি কি চিন্তা করছে সেটাও আপনি শুনতে পাচ্ছেন! এ এক অন্যরকম অভিজ্ঞতা। তবে এখন যে পরিমান সময় নিচ্ছে, এত সময় নিলে আসলে এই সার্ভারে এই ছোট মডেল ব্যাবহার করা খুব একটা কাজের না। যায় হোক, এইটুকু জানার জন্যও এই ছোট এক্সপেরিমেন্টটা দরকার ছিলো। সব কিছু মিলিয়ে আমার সার্ভারের প্রায় ৮জিবি ডিস্ক লেগেছে। আপাতত এটা আনইন্সটল দিচ্ছি না, এভাবেই থাক কিছুদিন, মাঝে মাঝে প্রশ্ন করে দেখব অন্যান্য শক্তিশালী মডেলের তুলনায় এর উত্তর এর মান কেমন।
সবাইকে ধন্যবাদ যারা আমাকে বিভিন্ন তথ্য দিয়ে সাহায্য করেছেন।
বিশেষ ধন্যবাদ Erfan Ahmed Siam এবং Mubin ভাই কে।
#চ্যাটজিপিটি