हमारे अपने कंप्यूटरों पर स्थानीय स्तर पर ओपन-सोर्स एआई मॉडल चलाने से हमें गोपनीयता, छेड़छाड़ की अनंत संभावनाएं और बड़े निगमों से मुक्ति मिलती है। यह लगभग मुक्त भाषण का मामला है।
हालाँकि, हमारे लिए GPU-गरीब, अपना खुद का AI कंप्यूटर रखना एक महँगा सपना लगता है।
क्या होगा यदि मैं आपसे कहूं कि आप $300 में एक उपयोगी AI कंप्यूटर प्राप्त कर सकते हैं? इच्छुक? आपको अपना स्वयं का मॉनिटर, कीबोर्ड और माउस उपलब्ध कराना होगा। और आपको लिनक्स ऑपरेटिंग सिस्टम, ड्राइवर, मिडलवेयर और कॉन्फ़िगरेशन के आसपास थोड़ा बदलाव करने की आवश्यकता है।
स्पष्ट करने के लिए, हम बड़े जेनरेटर एआई मॉडल के "प्रशिक्षण" या "फाइन-ट्यूनिंग" के बारे में बात नहीं कर रहे हैं। हम इस बात पर ध्यान केंद्रित करेंगे कि ओपन-सोर्स एलएलएम (जैसे बड़े भाषा मॉडल) कैसे चलाया जाए
अब, चलिए जारी रखें।
आइए मान लें कि होम एआई कंप्यूटर के लिए मुख्य उपयोग मामलों में से एक चल रहा है
हालाँकि, तेज़ अनुमान गति के लिए आपको निम्नलिखित की आवश्यकता है। अन्यथा, आप अपनी हथेली पर बाल उगते हुए देखने जैसे होंगे जबकि एलएलएम एक समय में एक टोकन उगलता है।
स्थिर प्रसार के साथ छवि निर्माण के लिए, आपको GPU शक्ति की आवश्यकता होती है। हालाँकि, इसके लिए आपके पास बहुत फैंसी जीपीयू होना जरूरी नहीं है। आप अपने घरेलू कंप्यूटर में पहले से मौजूद एकीकृत जीपीयू का लाभ उठा सकते हैं:
एम1/एम2/एम3 सीपीयू वाले सभी मैक, जो सीपीयू, जीपीयू और हाई-स्पीड मेमोरी को एकीकृत करते हैं (वे वास्तव में अच्छे हैं, लेकिन कीमत के कारण इस विशेष लेख से बाहर रखा गया है)
AMD APU (उदाहरण के लिए, Ryzen 7 5700U), जो बजट-अनुकूल मिनी-पीसी के लिए CPU और GPU को एकीकृत करता है। इस लेख का फोकस इसी पर होगा.
इंटेल सीपीयू (उदाहरण के लिए, कोर i5-1135G7), जो सीपीयू और जीपीयू को भी एकीकृत करता है। वे पूरे मिनी-पीसी के लिए $300 के बजट से थोड़ा ऊपर हैं, लेकिन पाठकों का उन्हें स्वयं और अधिक जानने के लिए स्वागत है।
निम्नलिखित विशिष्टताओं वाला एएमडी-आधारित मिनी पीसी आमतौर पर $300 से कम में बिकता है। मैं किसी विशेष ब्रांड का समर्थन नहीं करना चाहता, इसलिए आप स्वयं खोज सकते हैं:
मैंने थोड़ा खर्च किया और 32 जीबी रैम और 1 टीबी एसएसडी (बाकी सब बराबर) के साथ $400 मॉडल का विकल्प चुना। मुख्य कारण यह है कि मैं ओपन-सोर्स एलएलएम पर शोध करता हूं और स्टेबल डिफ्यूजन चलाने के अलावा बड़े मॉडल भी चलाना चाहता हूं। लेकिन आपको इस लेख में $300 के कंप्यूटर के साथ लगभग सब कुछ करने में सक्षम होना चाहिए।
AMD APUs के लिए जैसे
आपको अपने मुख्य उपयोग के मामले के आधार पर इसे बदलना होगा:
यदि आपको केवल एलएलएम अनुमान चलाने की आवश्यकता है, तो आप इस संपूर्ण तैयारी चरण को छोड़ सकते हैं। चूँकि एलएलएम अनुमान के लिए केवल सीपीयू का उपयोग करने की आवश्यकता होगी, और आपको सीपीयू के लिए अधिकांश रैम बचानी चाहिए ताकि आप बड़े एलएलएम मॉडल चला सकें।
अगर आपको दौड़ने की जरूरत है
मेरे मामले में, मैं स्टेबल डिफ्यूजन एक्सएल और एलएलएम इंट्रेंस दोनों को एक ही मिनी पीसी पर चलाना चाहता हूं। इसलिए, मैं GPU के लिए 16GB (कुल 32GB में से) आवंटित करना चाहूंगा।
आप BIOS में सेटिंग्स बदलकर इसे प्राप्त कर सकते हैं। आमतौर पर, एक ऊपरी सीमा होती है, और डिफ़ॉल्ट सेटिंग ऊपरी सीमा से बहुत कम हो सकती है। मेरे कंप्यूटर पर, ऊपरी सीमा 16जीबी थी, या कुल उपलब्ध रैम का आधा।
यदि आपके कंप्यूटर का BIOS ऐसी सेटिंग्स का समर्थन करता है, तो आगे बढ़ें और अपने इच्छित नंबर में बदलें। मेरे BIOS में ऐसी कोई सेटिंग नहीं है.
यदि आपके BIOS में यह सेटिंग नहीं है, तो कृपया अच्छे निर्देश "AMD Ryzen™ APU पर GPU मेमोरी आवंटन को अनलॉक करना?" का पालन करें। विंस्टन मा द्वारा. मैंने इसे आज़माया और इसने अच्छा काम किया, इसलिए अब मेरे पास 16GB VRAM है।
एएमडी का
एएमडी के आरओसीएम को स्थापित करने और काम करने के लिए, आपको यह सुनिश्चित करना होगा कि जीपीयू हार्डवेयर, लिनक्स डिस्ट्रो, कर्नेल, पायथन, एचआईपी ड्राइवर, आरओसीएम लाइब्रेरी और पाइटोरच के संस्करण संगत हैं। यदि आप कम से कम दर्द और पहली बार सफलता की अधिकतम संभावना चाहते हैं, तो अनुशंसित और सत्यापित संयोजनों पर टिके रहें।
संगत लिनक्स ओएस और कर्नेल संस्करण प्राप्त करने और उन्हें स्थापित करने के लिए कृपया निम्नलिखित लिंक देखें। प्रारंभ में, मैंने अपने पसंदीदा लिनक्स ओएस और डिफ़ॉल्ट लिनक्स कर्नेल को स्थापित करने की गलती की, और संगतता समस्याओं को हल करने के लिए पीछे की ओर चलना एक बड़ा दर्द था। आप केवल आधिकारिक तौर पर समर्थित संयोजनों का उपयोग करके इस दर्द से बच सकते हैं।
यदि संपूर्ण इंस्टॉलेशन अच्छी तरह से समाप्त हो जाता है, तो आप 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
निम्नलिखित एकीकृत ग्राफ़िक्स वाले APU के लिए विशिष्ट है। भले ही वे आधिकारिक तौर पर आरओसीएम द्वारा समर्थित नहीं हैं, निम्नलिखित काम करने में सिद्ध हुए।
export HSA_OVERRIDE_GFX_VERSION=9.0.0
अब, सभी जटिल चरणों के बाद, आइए परीक्षण करें कि क्या आरओसीएम टॉर्च के साथ काम कर रहा है। और आप देख सकते हैं कि ROCm Pytorch के उद्देश्य के लिए CUDA होने का "दिखावा" कर रहा है।
python3 -c 'import torch' 2> /dev/null && echo 'Success' || echo 'Failure'
Success
python3 -c 'import torch; print(torch.cuda.is_available())'
True
आइए हमारे नए कॉन्फ़िगर किए गए $300 AI कंप्यूटर के लिए कुछ आसान चीज़ से शुरुआत करें: स्थानीय स्तर पर एक बड़ा भाषा मॉडल चलाना। हम लोकप्रिय ओपन-सोर्स मोड में से एक चुन सकते हैं:
इसके अलावा, आप छोटे एलएलएम भी आज़मा सकते हैं
हम प्रयोग करेंगे
सबसे पहले, आपको wget
और git
इंस्टॉल करना होगा। और फिर llama.cpp को संकलित और स्थापित करने के लिए चरणों का पालन करें।
sudo apt-get install build-essential
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
make
महंगे जीपीयू वाले क्लाउड सर्वर के बजाय हमारी सस्ती मशीन पर एलएलएम चलाने के लिए, हमें मॉडलों के "संपीड़ित" संस्करण का उपयोग करने की आवश्यकता है ताकि वे रैम स्पेस में फिट हो सकें। एक सरल उदाहरण के लिए, LLaMA-2 7B मॉडल में 7B पैरामीटर हैं, प्रत्येक को फ्लोट16 (2 बाइट्स) द्वारा दर्शाया गया है।
साथ ही, फ़ाइल प्रारूप होना चाहिए
सबसे पहले, हमने इसे एएमडी मिनी पीसी पर परीक्षण किया, और हमने प्रति सेकंड लगभग 10 टोकन हासिल किए। यह वास्तव में काफी अच्छा है, और आप बहुत अधिक प्रतीक्षा किए बिना एलएलएम के साथ बातचीत जारी रख सकते हैं।
सिस्टम कॉन्फ़िगरेशन:
कमांड लाइन निर्देश:
./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 से कमज़ोर है। लेकिन वह मेरे पास एकमात्र इंटेल मिनी पीसी है। यदि आप अधिक शक्तिशाली Intel CPU (उदाहरण के लिए, Core i5-1135G7) का उपयोग करते हैं तो आपको तुलनीय परिणाम प्राप्त होने चाहिए। कृपया नीचे टिप्पणी में अपने निष्कर्ष बताएं।
सिस्टम कॉन्फ़िगरेशन:
./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
./webui.sh --upcast-sampling --skip-torch-cuda-test --precision full --no-half
परीक्षण 1
SDXL (अधिकतम रिज़ॉल्यूशन 1024x1024) कम से कम 12GB VRAM की अनुशंसा करता है, इसलिए आपको iGPU के लिए 16GB VRAM आवंटित करने के लिए निश्चित रूप से तैयारी 1 चरण पूरा करने की आवश्यकता है। तो, यह कार्य केवल $400 मिनी पीसी के साथ ही संभव है।
./webui.sh --upcast-sampling
परीक्षण 1:
परीक्षण 2:
हालाँकि यह लेख लिनक्स ऑपरेटिंग सिस्टम पर केंद्रित है, आप विंडोज़ में भी स्टेबल डिफ्यूज़न काम कर सकते हैं। यहाँ मेरे प्रयोग हैं:
परीक्षण 1:
तो, क्या आप अपने नए $300 मिनी पीसी पर अपने स्वयं के जेनरेटिव एआई मॉडल चलाने में आनंद ले रहे हैं? मुझे उम्मीद है कि तुम करोगे।
व्यक्तिगत उपकरणों पर चलने वाले ओपन-सोर्स एआई मॉडल टिंकर के लिए सबसे रोमांचक क्षेत्रों में से एक है क्योंकि हममें से किसी के पास वास्तव में एक मूलभूत मॉडल को प्रशिक्षित करने के लिए विशाल जीपीयू पूल नहीं होगा। यह नई पीढ़ी के ऐप्स को सक्षम करेगा जो हमारी डेटा गोपनीयता को संरक्षित करते हुए सुपर स्मार्ट भी हैं।
आगे क्या?
और एआई, ओपन सोर्स और ऑन-डिवाइस के साथ छेड़छाड़ करके खुश हूं!