पहचान
हमारे अपने कंप्यूटरों पर स्थानीय स्तर पर ओपन-सोर्स एआई मॉडल चलाने से हमें गोपनीयता, छेड़छाड़ की अनंत संभावनाएं और बड़े निगमों से मुक्ति मिलती है। यह लगभग मुक्त भाषण का मामला है।
हालाँकि, हमारे लिए GPU-गरीब, अपना खुद का AI कंप्यूटर रखना एक महँगा सपना लगता है।
क्या होगा यदि मैं आपसे कहूं कि आप $300 में एक उपयोगी AI कंप्यूटर प्राप्त कर सकते हैं? इच्छुक? आपको अपना स्वयं का मॉनिटर, कीबोर्ड और माउस उपलब्ध कराना होगा। और आपको लिनक्स ऑपरेटिंग सिस्टम, ड्राइवर, मिडलवेयर और कॉन्फ़िगरेशन के आसपास थोड़ा बदलाव करने की आवश्यकता है।
स्पष्ट करने के लिए, हम बड़े जेनरेटर एआई मॉडल के "प्रशिक्षण" या "फाइन-ट्यूनिंग" के बारे में बात नहीं कर रहे हैं। हम इस बात पर ध्यान केंद्रित करेंगे कि ओपन-सोर्स एलएलएम (जैसे बड़े भाषा मॉडल) कैसे चलाया जाए
अब, चलिए जारी रखें।
एक अच्छा (और सस्ता) AI कंप्यूटर क्या बनता है?
आइए मान लें कि होम एआई कंप्यूटर के लिए मुख्य उपयोग मामलों में से एक चल रहा है
हालाँकि, तेज़ अनुमान गति के लिए आपको निम्नलिखित की आवश्यकता है। अन्यथा, आप अपनी हथेली पर बाल उगते हुए देखने जैसे होंगे जबकि एलएलएम एक समय में एक टोकन उगलता है।
- मेमोरी बैंडविड्थ के लिए तेज़ सीपीयू
- तेज़ DRAM (कम से कम DDR4, DDR5 और भी बेहतर होगा)
- बहुत सारी मेमोरी (जैसे न्यूनतम 16 जीबी), खासकर यदि आप बड़े मॉडल (7बी से अधिक) चलाना चाहते हैं
स्थिर प्रसार के साथ छवि निर्माण के लिए, आपको GPU शक्ति की आवश्यकता होती है। हालाँकि, इसके लिए आपके पास बहुत फैंसी जीपीयू होना जरूरी नहीं है। आप अपने घरेलू कंप्यूटर में पहले से मौजूद एकीकृत जीपीयू का लाभ उठा सकते हैं:
एम1/एम2/एम3 सीपीयू वाले सभी मैक, जो सीपीयू, जीपीयू और हाई-स्पीड मेमोरी को एकीकृत करते हैं (वे वास्तव में अच्छे हैं, लेकिन कीमत के कारण इस विशेष लेख से बाहर रखा गया है)
AMD APU (उदाहरण के लिए, Ryzen 7 5700U), जो बजट-अनुकूल मिनी-पीसी के लिए CPU और GPU को एकीकृत करता है। इस लेख का फोकस इसी पर होगा.
इंटेल सीपीयू (उदाहरण के लिए, कोर i5-1135G7), जो सीपीयू और जीपीयू को भी एकीकृत करता है। वे पूरे मिनी-पीसी के लिए $300 के बजट से थोड़ा ऊपर हैं, लेकिन पाठकों का उन्हें स्वयं और अधिक जानने के लिए स्वागत है।
और $300 का AI कंप्यूटर है?
निम्नलिखित विशिष्टताओं वाला एएमडी-आधारित मिनी पीसी आमतौर पर $300 से कम में बिकता है। मैं किसी विशेष ब्रांड का समर्थन नहीं करना चाहता, इसलिए आप स्वयं खोज सकते हैं:
एएमडी रायज़ेन 7 5800H (8C/16T, 4.4GHz तक)- 16GB रैम DDR4 (32GB अनुशंसित)
- 512 जीबी एनवीएमई एम.2 एसएसडी
मैंने थोड़ा खर्च किया और 32 जीबी रैम और 1 टीबी एसएसडी (बाकी सब बराबर) के साथ $400 मॉडल का विकल्प चुना। मुख्य कारण यह है कि मैं ओपन-सोर्स एलएलएम पर शोध करता हूं और स्टेबल डिफ्यूजन चलाने के अलावा बड़े मॉडल भी चलाना चाहता हूं। लेकिन आपको इस लेख में $300 के कंप्यूटर के साथ लगभग सब कुछ करने में सक्षम होना चाहिए।
तैयारी 1: पर्याप्त आईजीपीयू मेमोरी आवंटित करें
AMD APUs के लिए जैसे
आपको अपने मुख्य उपयोग के मामले के आधार पर इसे बदलना होगा:
यदि आपको केवल एलएलएम अनुमान चलाने की आवश्यकता है, तो आप इस संपूर्ण तैयारी चरण को छोड़ सकते हैं। चूँकि एलएलएम अनुमान के लिए केवल सीपीयू का उपयोग करने की आवश्यकता होगी, और आपको सीपीयू के लिए अधिकांश रैम बचानी चाहिए ताकि आप बड़े एलएलएम मॉडल चला सकें।
अगर आपको दौड़ने की जरूरत है
स्थिर प्रसार , विशेष रूप सेएसडीएक्सएल (1024x1024), आपको आईजीपीयू के लिए उतनी रैम आवंटित करने की आवश्यकता है जितनी सिस्टम अनुमति देता है (आमतौर पर कुल रैम का आधा)
मेरे मामले में, मैं स्टेबल डिफ्यूजन एक्सएल और एलएलएम इंट्रेंस दोनों को एक ही मिनी पीसी पर चलाना चाहता हूं। इसलिए, मैं GPU के लिए 16GB (कुल 32GB में से) आवंटित करना चाहूंगा।
आप BIOS में सेटिंग्स बदलकर इसे प्राप्त कर सकते हैं। आमतौर पर, एक ऊपरी सीमा होती है, और डिफ़ॉल्ट सेटिंग ऊपरी सीमा से बहुत कम हो सकती है। मेरे कंप्यूटर पर, ऊपरी सीमा 16जीबी थी, या कुल उपलब्ध रैम का आधा।
अच्छा बायोस
यदि आपके कंप्यूटर का BIOS ऐसी सेटिंग्स का समर्थन करता है, तो आगे बढ़ें और अपने इच्छित नंबर में बदलें। मेरे BIOS में ऐसी कोई सेटिंग नहीं है.
ख़राब BIOS: यूनिवर्सल AMD टूल का उपयोग करें
यदि आपके BIOS में यह सेटिंग नहीं है, तो कृपया अच्छे निर्देश "AMD Ryzen™ APU पर GPU मेमोरी आवंटन को अनलॉक करना?" का पालन करें। विंस्टन मा द्वारा. मैंने इसे आज़माया और इसने अच्छा काम किया, इसलिए अब मेरे पास 16GB VRAM है।
तैयारी 2: ड्राइवर और मिडलवेयर स्थापित करें
तारों को संरेखित करें
एएमडी का
एएमडी के आरओसीएम को स्थापित करने और काम करने के लिए, आपको यह सुनिश्चित करना होगा कि जीपीयू हार्डवेयर, लिनक्स डिस्ट्रो, कर्नेल, पायथन, एचआईपी ड्राइवर, आरओसीएम लाइब्रेरी और पाइटोरच के संस्करण संगत हैं। यदि आप कम से कम दर्द और पहली बार सफलता की अधिकतम संभावना चाहते हैं, तो अनुशंसित और सत्यापित संयोजनों पर टिके रहें।
शर्त
संगत लिनक्स ओएस और कर्नेल संस्करण प्राप्त करने और उन्हें स्थापित करने के लिए कृपया निम्नलिखित लिंक देखें। प्रारंभ में, मैंने अपने पसंदीदा लिनक्स ओएस और डिफ़ॉल्ट लिनक्स कर्नेल को स्थापित करने की गलती की, और संगतता समस्याओं को हल करने के लिए पीछे की ओर चलना एक बड़ा दर्द था। आप केवल आधिकारिक तौर पर समर्थित संयोजनों का उपयोग करके इस दर्द से बच सकते हैं।
आरओसीएम स्थापना
यदि संपूर्ण इंस्टॉलेशन अच्छी तरह से समाप्त हो जाता है, तो आप 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 बाइट्स) द्वारा दर्शाया गया है।
- फ्लोट 16: 14बी बाइट्स या 14जीबी जो हमारी 8जीबी रैम में फिट नहीं होगा।
- 4-बिट में परिमाणित: 3.5B बाइट्स या 3.5GB जो अब हमारी 8GB रैम में फिट हो सकता है।
साथ ही, फ़ाइल प्रारूप होना चाहिए
एएमडी मिनी पीसी पर परीक्षण करें
सबसे पहले, हमने इसे एएमडी मिनी पीसी पर परीक्षण किया, और हमने प्रति सेकंड लगभग 10 टोकन हासिल किए। यह वास्तव में काफी अच्छा है, और आप बहुत अधिक प्रतीक्षा किए बिना एलएलएम के साथ बातचीत जारी रख सकते हैं।
सिस्टम कॉन्फ़िगरेशन:
- एएमडी रायज़ेन 5800H
- 32 जीबी रैम
कमांड लाइन निर्देश:
./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) का उपयोग करते हैं तो आपको तुलनीय परिणाम प्राप्त होने चाहिए। कृपया नीचे टिप्पणी में अपने निष्कर्ष बताएं।
सिस्टम कॉन्फ़िगरेशन:
- 11वीं पीढ़ी के 4 कोर N5105 (2.9Ghz तक) 4 कोर और 4 थ्रेड
- 16 जीबी रैम (आईजीपीयू के लिए 2 जीबी वीआरएएम)
./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
परीक्षण 1
- संकेत: "जंगल में घोड़ा"
- चरण: 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, नमूना: डीडीआईएम, सीएफजी स्केल: 7, बीज: 1102941451, आकार: 1024x768, मॉडल हैश: 31e35c80fc, मॉडल: sd_xl_base_1.0, संस्करण: v1.6.0
- लगने वाला समय: 7 मिनट. 41 सेकंड
परीक्षण 2:
- संकेत: "युवा टेलर लाल हुडी में जंगल में घोड़े की सवारी कर रहा है"
- नकारात्मक संकेत: विकृति, विकृति, विकृत आंखें, विकृत दांत, विकृत उंगलियां, विकृत चेहरा, विकृत हाथ, विकृत
- चरण: 20, नमूना: डीडीआईएम, सीएफजी स्केल: 7, बीज: 2960206663, आकार: 1024x1024, मॉडल हैश: 31e35c80fc, मॉडल: sd_xl_base_1.0, संस्करण: v1.6.0
- लगने वाला समय: 6 मिनट. 12.3 सेकंड.
विंडोज़ 11 और एएमडी/डायरेक्टएमएल
हालाँकि यह लेख लिनक्स ऑपरेटिंग सिस्टम पर केंद्रित है, आप विंडोज़ में भी स्टेबल डिफ्यूज़न काम कर सकते हैं। यहाँ मेरे प्रयोग हैं:
- सबसे पहले, आपको Python 3.10.6 इंस्टॉल करना होगा।
- PATH में Python 3.10.6 डायरेक्टर जोड़ें।
- महत्वपूर्ण: पायथन पथ को शीर्ष पथ होना चाहिए
- https://realpython.com/add-python-to-path/
- गिट और गिट क्लोन रेपो स्थापित करें
- फ़ाइल एक्सप्लोरर से webui-user.bat चलाएँ
परीक्षण 1:
- संकेत: "जंगल में घोड़ा"
- सेटिंग्स: DPM++ 2M कर्रास, 512x512, नमूनाकरण चरण 20
- लिया गया समय: 1m19s
निष्कर्ष
तो, क्या आप अपने नए $300 मिनी पीसी पर अपने स्वयं के जेनरेटिव एआई मॉडल चलाने में आनंद ले रहे हैं? मुझे उम्मीद है कि तुम करोगे।
व्यक्तिगत उपकरणों पर चलने वाले ओपन-सोर्स एआई मॉडल टिंकर के लिए सबसे रोमांचक क्षेत्रों में से एक है क्योंकि हममें से किसी के पास वास्तव में एक मूलभूत मॉडल को प्रशिक्षित करने के लिए विशाल जीपीयू पूल नहीं होगा। यह नई पीढ़ी के ऐप्स को सक्षम करेगा जो हमारी डेटा गोपनीयता को संरक्षित करते हुए सुपर स्मार्ट भी हैं।
आगे क्या?
- इसे और भी छोटे एम्बेडेड डिवाइस पर चलाएँ: उदाहरण के लिए, रास्पबेरी पाई
- इसे अपने स्मार्टफोन पर चलाएं (llama.cpp iOS और Android को सपोर्ट करता है)
और एआई, ओपन सोर्स और ऑन-डिवाइस के साथ छेड़छाड़ करके खुश हूं!