पहचान हमारे अपने कंप्यूटरों पर स्थानीय स्तर पर ओपन-सोर्स एआई मॉडल चलाने से हमें गोपनीयता, छेड़छाड़ की अनंत संभावनाएं और बड़े निगमों से मुक्ति मिलती है। यह लगभग मुक्त भाषण का मामला है। हालाँकि, हमारे लिए GPU-गरीब, अपना खुद का AI कंप्यूटर रखना एक महँगा सपना लगता है। ? $3200, आउच! ? $1850; यदि आप एक भी प्राप्त कर सकें तो भी दुख होता है। ? 1200 डॉलर से शुरू, फिर भी बहुत ज़्यादा। मैकबुक एम3 मैक्स एनवीडिया 4090 माइक्रोसॉफ्ट सर्फेस लैपटॉप 6 क्या होगा यदि मैं आपसे कहूं कि आप $300 में एक उपयोगी AI कंप्यूटर प्राप्त कर सकते हैं? इच्छुक? आपको अपना स्वयं का मॉनिटर, कीबोर्ड और माउस उपलब्ध कराना होगा। और आपको लिनक्स ऑपरेटिंग सिस्टम, ड्राइवर, मिडलवेयर और कॉन्फ़िगरेशन के आसपास थोड़ा बदलाव करने की आवश्यकता है। स्पष्ट करने के लिए, हम बड़े जेनरेटर एआई मॉडल के "प्रशिक्षण" या "फाइन-ट्यूनिंग" के बारे में बात नहीं कर रहे हैं। हम इस बात पर ध्यान केंद्रित करेंगे कि ओपन-सोर्स एलएलएम (जैसे बड़े भाषा मॉडल) कैसे चलाया जाए 7बी) स्थानीय रूप से, साथ ही छवियों का उपयोग करके उत्पन्न करना . लामा 2 स्थिर प्रसार अब, चलिए जारी रखें। एक अच्छा (और सस्ता) AI कंप्यूटर क्या बनता है? आइए मान लें कि होम एआई कंप्यूटर के लिए मुख्य उपयोग मामलों में से एक चल रहा है या एलएलएम अनुमान। इस कार्य के लिए वास्तव में किसी GPU की आवश्यकता नहीं है क्योंकि यह सब CPU में किया जा सकता है। एक ओपन-सोर्स सॉफ़्टवेयर है जो सामान्य सीपीयू का उपयोग करके बहुत तेज़ एलएलएम अनुमान सक्षम बनाता है। इसे मूल रूप से ऐप्पल एम-सीरीज़ सीपीयू के साथ मैकबुक के लिए डिज़ाइन किया गया था, लेकिन यह इंटेल/एएमडी सीपीयू पर भी काम करता है। बड़े भाषा मॉडल लामा.सीपीपी हालाँकि, तेज़ अनुमान गति के लिए आपको निम्नलिखित की आवश्यकता है। अन्यथा, आप अपनी हथेली पर बाल उगते हुए देखने जैसे होंगे जबकि एलएलएम एक समय में एक टोकन उगलता है। मेमोरी बैंडविड्थ के लिए तेज़ सीपीयू तेज़ DRAM (कम से कम DDR4, DDR5 और भी बेहतर होगा) बहुत सारी मेमोरी (जैसे न्यूनतम 16 जीबी), खासकर यदि आप बड़े मॉडल (7बी से अधिक) चलाना चाहते हैं स्थिर प्रसार के साथ छवि निर्माण के लिए, आपको GPU शक्ति की आवश्यकता होती है। हालाँकि, इसके लिए आपके पास बहुत फैंसी जीपीयू होना जरूरी नहीं है। आप अपने घरेलू कंप्यूटर में पहले से मौजूद एकीकृत जीपीयू का लाभ उठा सकते हैं: एम1/एम2/एम3 सीपीयू वाले सभी मैक, जो सीपीयू, जीपीयू और हाई-स्पीड मेमोरी को एकीकृत करते हैं (वे वास्तव में अच्छे हैं, लेकिन कीमत के कारण इस विशेष लेख से बाहर रखा गया है) AMD APU (उदाहरण के लिए, Ryzen 7 5700U), जो बजट-अनुकूल मिनी-पीसी के लिए CPU और GPU को एकीकृत करता है। इस लेख का फोकस इसी पर होगा. इंटेल सीपीयू (उदाहरण के लिए, कोर i5-1135G7), जो सीपीयू और जीपीयू को भी एकीकृत करता है। वे पूरे मिनी-पीसी के लिए $300 के बजट से थोड़ा ऊपर हैं, लेकिन पाठकों का उन्हें स्वयं और अधिक जानने के लिए स्वागत है। और $300 का AI कंप्यूटर है? निम्नलिखित विशिष्टताओं वाला एएमडी-आधारित मिनी पीसी आमतौर पर $300 से कम में बिकता है। मैं किसी विशेष ब्रांड का समर्थन नहीं करना चाहता, इसलिए आप स्वयं खोज सकते हैं: 5800H (8C/16T, 4.4GHz तक) एएमडी रायज़ेन 7 16GB रैम DDR4 (32GB अनुशंसित) 512 जीबी एनवीएमई एम.2 एसएसडी मैंने थोड़ा खर्च किया और 32 जीबी रैम और 1 टीबी एसएसडी (बाकी सब बराबर) के साथ $400 मॉडल का विकल्प चुना। मुख्य कारण यह है कि मैं ओपन-सोर्स एलएलएम पर शोध करता हूं और स्टेबल डिफ्यूजन चलाने के अलावा बड़े मॉडल भी चलाना चाहता हूं। लेकिन आपको इस लेख में $300 के कंप्यूटर के साथ लगभग सब कुछ करने में सक्षम होना चाहिए। तैयारी 1: पर्याप्त आईजीपीयू मेमोरी आवंटित करें AMD APUs के लिए जैसे , मेमोरी सीपीयू और आईजीपीयू (एकीकृत जीपीयू) के बीच साझा की जाती है। मेरे मामले में, मेरे पास कुल 32 जीबी रैम है, लेकिन आईजीपीयू के लिए डिफ़ॉल्ट आवंटन केवल 3 जीबी था! यह कंप्यूटर से कंप्यूटर में भिन्न होता है और विनिर्माण के दौरान BIOS में कॉन्फ़िगर किया जाता है। रायज़ेन 7 5800एच आपको अपने मुख्य उपयोग के मामले के आधार पर इसे बदलना होगा: यदि आपको केवल एलएलएम अनुमान चलाने की आवश्यकता है, तो आप इस संपूर्ण तैयारी चरण को छोड़ सकते हैं। चूँकि एलएलएम अनुमान के लिए केवल सीपीयू का उपयोग करने की आवश्यकता होगी, और आपको सीपीयू के लिए अधिकांश रैम बचानी चाहिए ताकि आप बड़े एलएलएम मॉडल चला सकें। अगर आपको दौड़ने की जरूरत है , विशेष रूप से (1024x1024), आपको आईजीपीयू के लिए उतनी रैम आवंटित करने की आवश्यकता है जितनी सिस्टम अनुमति देता है (आमतौर पर कुल रैम का आधा) स्थिर प्रसार एसडीएक्सएल मेरे मामले में, मैं स्टेबल डिफ्यूजन एक्सएल और एलएलएम इंट्रेंस दोनों को एक ही मिनी पीसी पर चलाना चाहता हूं। इसलिए, मैं GPU के लिए 16GB (कुल 32GB में से) आवंटित करना चाहूंगा। आप BIOS में सेटिंग्स बदलकर इसे प्राप्त कर सकते हैं। आमतौर पर, एक ऊपरी सीमा होती है, और डिफ़ॉल्ट सेटिंग ऊपरी सीमा से बहुत कम हो सकती है। मेरे कंप्यूटर पर, ऊपरी सीमा 16जीबी थी, या कुल उपलब्ध रैम का आधा। अच्छा बायोस यदि आपके कंप्यूटर का BIOS ऐसी सेटिंग्स का समर्थन करता है, तो आगे बढ़ें और अपने इच्छित नंबर में बदलें। मेरे BIOS में ऐसी कोई सेटिंग नहीं है. ख़राब BIOS: यूनिवर्सल AMD टूल का उपयोग करें यदि आपके BIOS में यह सेटिंग नहीं है, तो कृपया अच्छे निर्देश "AMD Ryzen™ APU पर GPU मेमोरी आवंटन को अनलॉक करना?" का पालन करें। विंस्टन मा द्वारा. मैंने इसे आज़माया और इसने अच्छा काम किया, इसलिए अब मेरे पास 16GB VRAM है। https://winstonhyypia.medium.com/amd-apu-how-to-modify-the-dedicated-gpu-memory-e27b75905056 तैयारी 2: ड्राइवर और मिडलवेयर स्थापित करें तारों को संरेखित करें एएमडी का (रेडॉन ओपन कंप्यूट प्लेटफॉर्म), एनवीडिया से तुलनीय , डेवलपर्स को एडीएम के जीपीयू की शक्ति का उपयोग करने में सक्षम बनाने के लिए ड्राइवरों और मिडलवेयर का एक सूट है। और आमतौर पर, AI अनुप्रयोगों को GPU त्वरण प्राप्त करने के लिए ROCm की आवश्यकता होती है। आरओसीएम CUDA एएमडी के आरओसीएम को स्थापित करने और काम करने के लिए, आपको यह सुनिश्चित करना होगा कि जीपीयू हार्डवेयर, लिनक्स डिस्ट्रो, कर्नेल, पायथन, एचआईपी ड्राइवर, आरओसीएम लाइब्रेरी और पाइटोरच के संस्करण संगत हैं। यदि आप कम से कम दर्द और पहली बार सफलता की अधिकतम संभावना चाहते हैं, तो अनुशंसित और सत्यापित संयोजनों पर टिके रहें। शर्त संगत लिनक्स ओएस और कर्नेल संस्करण प्राप्त करने और उन्हें स्थापित करने के लिए कृपया निम्नलिखित लिंक देखें। प्रारंभ में, मैंने अपने पसंदीदा लिनक्स ओएस और डिफ़ॉल्ट लिनक्स कर्नेल को स्थापित करने की गलती की, और संगतता समस्याओं को हल करने के लिए पीछे की ओर चलना एक बड़ा दर्द था। आप केवल आधिकारिक तौर पर समर्थित संयोजनों का उपयोग करके इस दर्द से बच सकते हैं। https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html आरओसीएम स्थापना https://rocm.docs.amd.com/en/latest/deploy/linux/os-native/install.html यदि संपूर्ण इंस्टॉलेशन अच्छी तरह से समाप्त हो जाता है, तो आप टाइप कर सकते हैं, और कुछ इस तरह दिखाई देगा (मैंने केवल सबसे प्रासंगिक भागों को हाइलाइट किए गए पीले रंग में काटा है): 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 पाइटोरच https://pytorch.org/get-started/locally/ 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 होने का "दिखावा" कर रहा है। https://rocm.docs.amd.com/en/latest/how_to/pytorch_install/pytorch_install.html#test-the-pytorch-installation python3 -c 'import torch' 2> /dev/null && echo 'Success' || echo 'Failure' Success python3 -c 'import torch; print(torch.cuda.is_available())' True एलएलएम अनुमान आइए हमारे नए कॉन्फ़िगर किए गए $300 AI कंप्यूटर के लिए कुछ आसान चीज़ से शुरुआत करें: स्थानीय स्तर पर एक बड़ा भाषा मॉडल चलाना। हम लोकप्रिय ओपन-सोर्स मोड में से एक चुन सकते हैं: 7B पैरामीटर के साथ जो चैट के लिए अनुकूलित है। एलएलएएमए 2 इसके अलावा, आप छोटे एलएलएम भी आज़मा सकते हैं , , , और . अधिक अच्छी गुणवत्ता वाले एलएलएम यहां यूसी बर्कले के बहुत उपयोगी "चैटबॉट एरेना लीडरबोर्ड" पर पाए जा सकते हैं। . मिस्ट्राल Qवेन हलकी हवा विकग्ना एलएमएसवाईएस प्रयोगशालाएँ https://huggingface.co/spaces/lmsys/chatbot-arena-leaderboard लामा.सीपीपी हम प्रयोग करेंगे , जो शुरू में सीपीयू के लिए अनुकूलित है और बाद में जीपीयू का भी समर्थन करता है। मेरे अनुभव में, एलएलएम अनुमान सीपीयू पर अच्छा काम करता है, और $300 एआई मशीन के अंदर एकीकृत जीपीयू जैसे मामूली जीपीयू से कुछ हासिल नहीं होता है। लामा.सीपीपी https://github.com/ggerganov/llama.cpp सबसे पहले, आपको और इंस्टॉल करना होगा। और फिर llama.cpp को संकलित और स्थापित करने के लिए चरणों का पालन करें। wget git 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 रैम में फिट हो सकता है। साथ ही, फ़ाइल प्रारूप होना चाहिए . इसलिए। हमारे उदाहरण में, आपको इस फ़ाइल में वज़न डाउनलोड करना होगा: gguf https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF/blob/main/llama-2-7b-chat.Q4_0.gguf एएमडी मिनी पीसी पर परीक्षण करें सबसे पहले, हमने इसे एएमडी मिनी पीसी पर परीक्षण किया, और हमने प्रति सेकंड लगभग 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) स्थिर प्रसार इंस्टालेशन https://github.com/AUTOMATIC1111/stable-difuse-webui और AMD ROCm के संबंध में इस पृष्ठ पर भी ध्यान दें https://github.com/AUTOMATIC1111/stable-dif Fusion-webui/wiki/Install-and-Run-on-AMD-GPUs जल्दी शुरू 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 और एएमडी/डायरेक्टएमएल हालाँकि यह लेख लिनक्स ऑपरेटिंग सिस्टम पर केंद्रित है, आप विंडोज़ में भी स्टेबल डिफ्यूज़न काम कर सकते हैं। यहाँ मेरे प्रयोग हैं: https://github.com/lshqqytiger/stable-diffusion-webui-directml सबसे पहले, आपको 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 को सपोर्ट करता है) और एआई, ओपन सोर्स और ऑन-डिवाइस के साथ छेड़छाड़ करके खुश हूं!