ভূমিকা
আমাদের নিজস্ব কম্পিউটারে স্থানীয়ভাবে ওপেন-সোর্স AI মডেলগুলি চালানো আমাদের গোপনীয়তা, টিঙ্কারিংয়ের অফুরন্ত সম্ভাবনা এবং বড় কর্পোরেশন থেকে স্বাধীনতা দেয়। এটা প্রায় বাকস্বাধীনতার ব্যাপার।
আমাদের জন্য GPU-দরিদ্র, তবে, আমাদের নিজস্ব AI কম্পিউটার থাকা একটি দামী স্বপ্ন বলে মনে হয়।
যদি আমি আপনাকে বলি যে আপনি $300 এর জন্য একটি দরকারী AI কম্পিউটার পেতে পারেন? আগ্রহী? আপনাকে আপনার নিজস্ব মনিটর, কীবোর্ড এবং মাউস সরবরাহ করতে হবে। এবং আপনাকে লিনাক্স অপারেটিং সিস্টেম, ড্রাইভার, মিডলওয়্যার এবং কনফিগারেশনের চারপাশে কিছুটা টিংকারিং করতে হবে।
স্পষ্ট করার জন্য, আমরা "প্রশিক্ষণ" বা "ফাইন-টিউনিং" বড় জেনারেটিভ এআই মডেলের কথা বলছি না। আমরা কীভাবে ওপেন সোর্স এলএলএম (বড় ভাষার মডেল যেমন
এখন, এর চালিয়ে যাওয়া যাক.
কি একটি ভাল (এবং সস্তা) এআই কম্পিউটার তৈরি করে?
আসুন ধরে নেওয়া যাক একটি হোম এআই কম্পিউটারের জন্য প্রধান ব্যবহারের ক্ষেত্রে একটি চলছে
যাইহোক, দ্রুত অনুমান গতির জন্য আপনার নিম্নলিখিতগুলি প্রয়োজন। অন্যথায়, আপনি আপনার হাতের তালুতে চুল গজাতে দেখার মতো হবেন যখন এলএলএম একবারে একটি টোকেন বের করে দেয়।
- মেমরি ব্যান্ডউইথ দ্রুত CPU
- দ্রুততর DRAM (অন্তত DDR4, DDR5 আরও ভাল হবে)
- অনেক মেমরি (যেমন 16GB ন্যূনতম), বিশেষ করে যদি আপনি বড় মডেল চালাতে চান (7B এর বাইরে)
স্টেবল ডিফিউশন সহ ইমেজ জেনারেশনের জন্য আপনার জিপিইউ পাওয়ার দরকার। যাইহোক, এর জন্য আপনার খুব অভিনব জিপিইউ থাকতে হবে না। আপনি ইতিমধ্যেই আপনার বাড়ির কম্পিউটারে সমন্বিত GPU ব্যবহার করতে পারেন:
M1/M2/M3 CPU সহ সমস্ত Mac, যা CPU, GPU এবং উচ্চ-গতির মেমরিকে একীভূত করে (এগুলি সত্যিই ভাল, কিন্তু দামের কারণে এই বিশেষ নিবন্ধ থেকে বাদ দেওয়া হয়েছে)
AMD APU (যেমন, Ryzen 7 5700U), যা বাজেট-বান্ধব মিনি-পিসির জন্য CPU এবং GPU একীভূত করে। এটি এই নিবন্ধের ফোকাস হবে.
ইন্টেল সিপিইউ (যেমন, কোর i5-1135G7), যা সিপিইউ এবং জিপিইউকেও একীভূত করে। এগুলি সম্পূর্ণ মিনি-পিসির জন্য $300 বাজেটের সামান্য উপরে, তবে পাঠকদের স্বাগত জানাই যে তারা নিজেরাই সেগুলি আরও অন্বেষণ করতে পারে৷
আর ৩০০ ডলারের এআই কম্পিউটার কি?
নিম্নলিখিত চশমা সহ একটি AMD-ভিত্তিক মিনি পিসি সাধারণত $300-এর কম দামে বিক্রি হয়। আমি কোনো নির্দিষ্ট ব্র্যান্ড অনুমোদন করতে চাই না, তাই আপনি নিজেকে অনুসন্ধান করতে পারেন:
AMD Ryzen 7 5800H (8C/16T, 4.4GHz পর্যন্ত)- 16GB RAM DDR4 (32GB প্রস্তাবিত)
- 512GB NVME M.2 SSD
আমি একটু স্প্লার্জ করেছি এবং 32GB RAM এবং 1TB SSD সহ $400 মডেলটি বেছে নিয়েছি (অন্য সবকিছু সমান)। মূল কারণ হল আমি ওপেন সোর্স এলএলএম নিয়ে গবেষণা করি এবং স্টেবল ডিফিউশন চালানোর পাশাপাশি আরও বড় মডেল চালাতে চাই। কিন্তু আপনি $300 কম্পিউটার দিয়ে এই নিবন্ধে প্রায় সবকিছু করতে সক্ষম হবেন।
প্রস্তুতি 1: পর্যাপ্ত iGPU মেমরি বরাদ্দ করুন
AMD APU এর জন্য
আপনার প্রধান ব্যবহারের ক্ষেত্রে আপনাকে এটি পরিবর্তন করতে হবে:
আপনার যদি শুধুমাত্র LLM অনুমান চালানোর প্রয়োজন হয়, তাহলে আপনি এই সম্পূর্ণ প্রস্তুতির ধাপটি এড়িয়ে যেতে পারেন। যেহেতু LLM অনুমানের জন্য শুধুমাত্র CPU ব্যবহার করতে হবে, এবং আপনার CPU-এর জন্য বেশিরভাগ RAM সংরক্ষণ করা উচিত যাতে আপনি বড় LLM মডেলগুলি চালাতে পারেন।
প্রয়োজন হলে দৌড়াতে হবে
স্থিতিশীল বিস্তার বিশেষ করেএসডিএক্সএল (1024x1024), আপনাকে iGPU এর জন্য যতটা RAM বরাদ্দ করতে হবে সিস্টেমটি অনুমতি দেয় (সাধারণত মোট RAM এর অর্ধেক)
আমার ক্ষেত্রে, আমি একই মিনি পিসিতে স্ট্যাবল ডিফিউশন এক্সএল এবং এলএলএম অনুমান উভয়ই চালাতে চাই। অতএব, আমি GPU-এর জন্য 16GB (মোট 32GB এর মধ্যে) বরাদ্দ করতে চাই।
আপনি BIOS-এ সেটিংস পরিবর্তন করে এটি অর্জন করতে পারেন। সাধারণত, একটি উচ্চ সীমা আছে, এবং ডিফল্ট সেটিং উপরের সীমা থেকে অনেক কম হতে পারে। আমার কম্পিউটারে, উপরের সীমাটি ছিল 16GB, বা উপলব্ধ মোট RAM এর অর্ধেক।
ভাল BIOS
যদি আপনার কম্পিউটারের BIOS এই ধরনের সেটিংস সমর্থন করে, এগিয়ে যান এবং আপনার পছন্দসই নম্বরে পরিবর্তন করুন৷ আমার BIOS এর কোন সেটিং নেই।
দুর্বল BIOS: ইউনিভার্সাল AMD টুল ব্যবহার করুন
যদি আপনার BIOS-এ এই সেটিং না থাকে, তাহলে অনুগ্রহ করে সুন্দর নির্দেশ অনুসরণ করুন "AMD Ryzen™ APU-তে GPU মেমরি বরাদ্দ আনলক করা হচ্ছে?" উইনস্টন মা দ্বারা। আমি এটি চেষ্টা করেছি এবং এটি ভাল কাজ করেছে, তাই এখন আমার কাছে 16GB VRAM আছে।
প্রস্তুতি 2: ড্রাইভার এবং মিডলওয়্যার ইনস্টল করুন
তারা সারিবদ্ধ
AMD এর
AMD-এর ROCm কাজ ইনস্টল এবং করতে, আপনাকে নিশ্চিত করতে হবে যে GPU হার্ডওয়্যার, Linux ডিস্ট্রো, কার্নেল, পাইথন, HIP ড্রাইভার, ROCm লাইব্রেরি এবং পাইটর্চের সংস্করণগুলি সামঞ্জস্যপূর্ণ। আপনি যদি সর্বনিম্ন ব্যথা এবং প্রথমবারের সাফল্যের সর্বাধিক সম্ভাবনা চান তবে প্রস্তাবিত এবং যাচাইকৃত সংমিশ্রণগুলির সাথে থাকুন।
পূর্বশর্ত
সামঞ্জস্যপূর্ণ লিনাক্স ওএস এবং কার্নেল সংস্করণগুলি পেতে অনুগ্রহ করে নিম্নলিখিত লিঙ্কটি দেখুন এবং সেগুলি ইনস্টল করুন। প্রাথমিকভাবে, আমি শুধু আমার প্রিয় লিনাক্স ওএস এবং ডিফল্ট লিনাক্স কার্নেল ইনস্টল করার ভুল করেছিলাম, এবং সামঞ্জস্যের সমস্যাগুলি সমাধান করার জন্য পিছনে হাঁটা একটি বড় ব্যথা ছিল। আপনি শুধুমাত্র আনুষ্ঠানিকভাবে সমর্থিত সমন্বয় ব্যবহার করে এই ব্যথা এড়াতে পারেন।
ROCm ইনস্টলেশন
যদি সম্পূর্ণ ইনস্টলেশনটি ভালভাবে শেষ হয়, আপনি rocminfo
টাইপ করতে পারেন, এবং এইরকম কিছু দেখাবে (আমি শুধুমাত্র হাইলাইট করা হলুদে সবচেয়ে প্রাসঙ্গিক অংশগুলি কেটেছি):
ROCk module is loaded
=====================
HSA System Attributes
=====================
Runtime Version: 1.1
System Timestamp Freq.: 1000.000000MHz
Sig. Max Wait Duration: 18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count)
Machine Model: LARGE
System Endianness: LITTLE
Mwaitx: DISABLED
DMAbuf Support: YES
==========
HSA Agents
==========
*******
Agent 1
*******
Name: AMD Ryzen 7 5800H with Radeon Graphics
Uuid: CPU-XX
Marketing Name: AMD Ryzen 7 5800H with Radeon Graphics
Vendor Name: CPU
Pool Info:
Pool 1
Segment: GLOBAL; FLAGS: COARSE GRAINED
Size: 16777216(0x1000000) KB
পাইথন পরিবেশ
পাইথন নির্ভরতা বেশ চতুর হতে পারে, তাই একটি সঠিক পরিবেশ সেট আপ করা ভাল অনুশীলন। আপনি উভয় ব্যবহার করতে পারেন
-
source venv/bin/activate
-
conda activate llm
পাইটর্চ
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.7
HSA ওভাররাইট করুন
নিম্নলিখিতটি সমন্বিত গ্রাফিক্স সহ APU এর জন্য নির্দিষ্ট। যদিও তারা আনুষ্ঠানিকভাবে ROCm দ্বারা সমর্থিত নয়, নিম্নলিখিতগুলি কাজ করে প্রমাণিত হয়েছে।
export HSA_OVERRIDE_GFX_VERSION=9.0.0
কিভাবে যাচাই করবেন
এখন, সমস্ত জটিল পদক্ষেপের পরে, ROCm টর্চের সাথে কাজ করছে কিনা তা পরীক্ষা করা যাক। এবং আপনি দেখতে পাচ্ছেন যে ROCm পাইটর্চের উদ্দেশ্যে CUDA হওয়ার "ভান" করছে।
python3 -c 'import torch' 2> /dev/null && echo 'Success' || echo 'Failure'
Success
python3 -c 'import torch; print(torch.cuda.is_available())'
True
এলএলএম ইনফারেন্স
আমাদের নতুন কনফিগার করা $300 এআই কম্পিউটারের জন্য সহজ কিছু দিয়ে শুরু করা যাক: স্থানীয়ভাবে একটি বড় ভাষা মডেল চালানো। আমরা জনপ্রিয় ওপেন সোর্স মোডগুলির মধ্যে একটি বেছে নিতে পারি:
উপরন্তু, আপনি থেকে ছোট LLM চেষ্টা করতে পারেন
Llama.cpp
আমরা ব্যবহার করা হবে
প্রথমে, আপনাকে wget
এবং git
ইনস্টল করতে হবে। এবং তারপর llama.cpp কম্পাইল এবং ইন্সটল করার ধাপগুলি অনুসরণ করুন।
sudo apt-get install build-essential
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
make
মডেল ওজন ডাউনলোড করুন
দামী GPU সহ ক্লাউড সার্ভারের পরিবর্তে আমাদের সস্তা মেশিনে LLM চালানোর জন্য, আমাদের মডেলগুলির একটি "সংকুচিত" সংস্করণ ব্যবহার করতে হবে যাতে তারা RAM এর জায়গায় ফিট করতে পারে। একটি সাধারণ উদাহরণের জন্য, একটি LLaMA-2 7B মডেলের 7B প্যারামিটার রয়েছে, প্রতিটি float16 (2 বাইট) দ্বারা উপস্থাপিত।
- ফ্লোট 16: 14B বাইট বা 14GB যা আমাদের 8GB RAM-তে ফিট হবে না।
- 4-বিট পর্যন্ত কোয়ান্টাইজ করা হয়েছে: 3.5B বাইট বা 3.5GB যা এখন আমাদের 8GB RAM-তে ফিট হতে পারে।
এছাড়াও, ফাইল ফরম্যাট হওয়া উচিত
এএমডি মিনি পিসিতে পরীক্ষা করুন
প্রথমত, আমরা এটি এএমডি মিনি পিসিতে পরীক্ষা করেছি এবং আমরা প্রতি সেকেন্ডে প্রায় 10টি টোকেন অর্জন করেছি। এটি আসলে বেশ শালীন, এবং আপনি খুব বেশি অপেক্ষা না করেই এলএলএম-এর সাথে চ্যাট চালিয়ে যেতে পারেন।
সিস্টেম কনফিগারেশন:
- AMD Ryzen 5800H
- 32GB RAM
কমান্ড লাইন নির্দেশ:
./main -m models/llama-2-7b-chat.Q4_0.gguf --color -ins -n 512 --mlock
llama_print_timings: load time = 661.10 ms
llama_print_timings: sample time = 234.73 ms / 500 runs ( 0.47 ms per token, 2130.14 tokens per second)
llama_print_timings: prompt eval time = 1307.11 ms / 32 tokens ( 40.85 ms per token, 24.48 tokens per second)
llama_print_timings: eval time = 50090.22 ms / 501 runs ( 99.98 ms per token, 10.00 tokens per second)
llama_print_timings: total time = 64114.27 ms
ইন্টেল মিনি পিসিতে পরীক্ষা করুন
এরপরে, আমরা একটি ইন্টেল মিনি পিসিতে পরীক্ষা করেছি, এবং আমরা প্রতি সেকেন্ডে প্রায় 1.5 টোকেন অর্জন করেছি। এটি একটি ফলপ্রসূ চ্যাট সেশনের জন্য একটু ধীরগতির। এটি একটি ন্যায্য তুলনা নয়, যেহেতু Intel N5105 AMD 5800H এর চেয়ে স্পষ্টভাবে দুর্বল। কিন্তু আমার দখলে থাকা একমাত্র ইন্টেল মিনি পিসি। আপনি যদি আরও শক্তিশালী ইন্টেল সিপিইউ (যেমন, কোর i5-1135G7) ব্যবহার করেন তবে আপনার তুলনামূলক ফলাফল পাওয়া উচিত। নীচের মন্তব্যে আপনার ফলাফল রিপোর্ট করুন.
সিস্টেম কনফিগারেশন:
- 11th Gen 4 Cores N5105 (2.9Ghz পর্যন্ত) 4 কোর এবং 4 থ্রেড
- 16GB RAM (iGPU-এর জন্য 2GB VRAM)
./main -m models/llama-2-7b-chat.Q4_0.gguf -ins --color -n 512 --mlock
llama_print_timings: load time = 14490.05 ms
llama_print_timings: sample time = 171.53 ms / 97 runs ( 1.77 ms per token, 565.49 tokens per second)
llama_print_timings: prompt eval time = 21234.29 ms / 33 tokens ( 643.46 ms per token, 1.55 tokens per second)
llama_print_timings: eval time = 75754.03 ms / 98 runs ( 773.00 ms per token, 1.29 tokens per second)
স্থিতিশীল বিস্তার
স্থাপন
এবং AMD ROCm এর ক্ষেত্রেও এই পৃষ্ঠায় মনোযোগ দিন
দ্রুত শুরু
export HSA_OVERRIDE_GFX_VERSION=9.0.0
source venv/bin/activate
./webui.sh --upcast-sampling --skip-torch-cuda-test --precision full --no-half
স্থিতিশীল বিস্তার 1.5 পরীক্ষা
./webui.sh --upcast-sampling --skip-torch-cuda-test --precision full --no-half
পরীক্ষা ১
- প্রম্পট: "বনে ঘোড়া"
- ধাপ: 20, স্যাম্পলার: ডিডিআইএম, সিএফজি স্কেল: 7, বীজ: 519288240, আকার: 512x512, মডেল হ্যাশ: 6ce0161689, মডেল: v1-5-প্রুনড-ইমাওনলি, সংস্করণ: v1.6.0
- সময় নিয়েছে: 1 মিনিট। 8.3 সেকেন্ড।
স্টেবল ডিফিউশন এক্সএল 1.0 টেস্ট
SDXL (সর্বোচ্চ রেজোলিউশন 1024x1024) কমপক্ষে 12GB VRAM সুপারিশ করে, তাই iGPU-এর জন্য 16GB VRAM বরাদ্দ করার জন্য আপনাকে অবশ্যই প্রস্তুতি 1 ধাপটি সম্পন্ন করতে হবে। সুতরাং, এই কাজটি শুধুমাত্র $400 মিনি পিসি দিয়েই সম্ভব।
./webui.sh --upcast-sampling
পরীক্ষা 1:
- প্রম্পট: "বনে ঘোড়া"
- ধাপ: 20, নমুনা: DDIM, CFG স্কেল: 7, বীজ: 1102941451, আকার: 1024x768, মডেল হ্যাশ: 31e35c80fc, মডেল: sd_xl_base_1.0, সংস্করণ: v1.6.0
- সময় নিয়েছে: 7 মিনিট। 41 সেকেন্ড
পরীক্ষা 2:
- প্রম্পট: "অরণ্যে ঘোড়ায় চড়ে লাল হুডি পরা তরুণ টেলর সুইফ্ট"
- নেতিবাচক প্রম্পট: বিকৃতি, বিকৃতি, বিকৃত চোখ, বিকৃত দাঁত, বিকৃত আঙ্গুল, বিকৃত মুখ, বিকৃত হাত, বিকৃত
- ধাপ: 20, নমুনা: DDIM, CFG স্কেল: 7, বীজ: 2960206663, আকার: 1024x1024, মডেল হ্যাশ: 31e35c80fc, মডেল: sd_xl_base_1.0, সংস্করণ: v1.6.0
- সময় নিয়েছে: 6 মিনিট। 12.3 সেকেন্ড
Windows 11 এবং AMD/directml
যদিও এই নিবন্ধটি লিনাক্স অপারেটিং সিস্টেমের উপর দৃষ্টি নিবদ্ধ করে, আপনি উইন্ডোজেও স্টেবল ডিফিউশন কাজ করতে পারেন। এখানে আমার পরীক্ষা আছে:
- প্রথমে, আপনাকে পাইথন 3.10.6 ইনস্টল করতে হবে।
- PATH-এ Python 3.10.6 ডিরেক্টর যোগ করুন।
- গুরুত্বপূর্ণ: পাইথন পথটি শীর্ষ পথ হতে হবে
- https://realpython.com/add-python-to-path/
- গিট এবং গিট ক্লোন রেপো ইনস্টল করুন
- ফাইল এক্সপ্লোরার থেকে webui-user.bat চালান
পরীক্ষা 1:
- প্রম্পট: "বনে ঘোড়া"
- সেটিংস: DPM++ 2M Karras, 512x512, স্যাম্পলিং ধাপ 20
- সময় নেওয়া: 1m19s
উপসংহার
তাহলে, আপনি কি আপনার নতুন $300 মিনি পিসিতে আপনার নিজস্ব জেনারেটিভ এআই মডেল চালাতে মজা পাচ্ছেন? আমি আশা করি আপনি করবেন.
ব্যক্তিগত ডিভাইসে চলমান ওপেন-সোর্স এআই মডেলগুলি টিঙ্কারদের জন্য সবচেয়ে উত্তেজনাপূর্ণ ক্ষেত্রগুলির মধ্যে একটি কারণ আমাদের কারও কাছেই একটি মৌলিক মডেলকে প্রশিক্ষণ দেওয়ার জন্য বিশাল GPU পুল থাকবে না। এটি একটি নতুন প্রজন্মের অ্যাপগুলিকে সক্ষম করবে যা আমাদের ডেটা গোপনীয়তা রক্ষা করার পাশাপাশি উভয়ই সুপার স্মার্ট।
এরপর কী?
- এটি আরও ছোট এমবেডেড ডিভাইসে চালান: যেমন, রাস্পবেরি পাই৷
- এটি আপনার স্মার্টফোনে চালান (llama.cpp iOS এবং Android সমর্থন করে)
এবং AI, ওপেন সোর্স এবং অন-ডিভাইসের সাথে হ্যাপি টিংকারিং!