Linux ची आघाडी: AI कर्नेलमध्ये अधिक चांगला श्वास का घेतो
हा इंग्रजी मूळ लेखाचा यांत्रिक अनुवाद आहे. काही बारकावे हरवू शकतात, म्हणून संदर्भासाठी इंग्रजी आवृत्तीच ग्राह्य धरावी. मूळ लेख इंग्रजीत वाचा
थोडक्यात
तुम्ही ग्राहक ऑपरेटिंग सिस्टीमवर AI लॅब बांधत असाल, तर तुम्ही दोन आघाड्यांवर युद्ध लढत आहात: तुमचा कोड आणि तुमचा OS. AI च्या युगात Linux ही बुद्धिमत्तेची मातृभाषा आहे. मी सहा महिने क्लिष्ट Python डिपेंडन्सींना Windows च्या पाथ आणि DLL शी जुळवण्याचा प्रयत्न केला, आणि मग शेवटी सत्य स्वीकारले: मॉडेलचे वेट्स Linux क्लस्टरवर ट्रेन झाले असतील, तर इन्फरन्सही Linux कर्नेलवरच व्हायला हवे. DFW मध्ये हेडलेस Ubuntu वर्कफ्लो स्वीकारल्याच्या क्षणापासून माझ्या कोडऐवजी माझ्या ऑपरेटिंग सिस्टीमबद्दल असणारे डीबगिंग जवळजवळ पूर्णपणे थांबले.
निर्णायक ठरलेली गोष्ट म्हणजे AI ने तयार केलेला PowerShell अयशस्वी होताना, पुन्हा प्रयत्न करताना, पुन्हा अयशस्वी होताना आणि त्यात टोकन जाळताना पाहणे. एकदा नव्हे, एक पॅटर्न म्हणून. हे आजही घडते, आणि म्हणूनच मी ते दुरुस्त करण्याचा प्रयत्न करण्याऐवजी एजंटच्या कामासाठी PowerShell सोडून दिले.
आर्किटेक्चर
माझ्या लॅबमधील “Edge” म्हणजे हार्डवेअरपर्यंत थेट, मध्यस्थांशिवाय पोहोच. Windows तुमचा कोड आणि तुमचा GPU यांच्यामध्ये “Desktop Window Manager” (DWM) च्या गोंगाटाचा एक थर घालतो. Linux हार्डवेअर पासथ्रू देते, जे बेअर मेटलसारखे वाटते.
| वैशिष्ट्य | Windows (नेटिव्ह) | WSL2 (Ubuntu 22.04+) | Ubuntu Server (बेअर मेटल) |
|---|---|---|---|
| GPU प्रवेश | DirectX / CUDA (जड) | CUDA पासथ्रू (जवळजवळ नेटिव्ह) | थेट CUDA (सर्वात वेगवान) |
| I/O कामगिरी | वेगवान (NTFS) | वेगवान (VHDX च्या आत) | अत्यंत वेगवान (ext4/zfs) |
| Docker इंजिन | Hyper-V VM (संथ) | WSL2 बॅकएंड (कार्यक्षम) | नेटिव्ह Cgroups (तात्काळ) |
| स्थिरता | स्वयंचलित अपडेट (धोका) | वापरकर्त्याद्वारे व्यवस्थापित | 99.9% अपटाइम |
माझ्या लॅबमध्ये मी WSL2 हे “ऑपरेटर कन्सोल” म्हणून आणि माझ्या Raspberry Pi क्लस्टरवर Ubuntu Server हे “प्रोडक्शन Edge” म्हणून वापरतो.
बांधणी
उच्च-वेगवान AI वातावरण उभे करण्यासाठी फक्त apt install पुरेसे नाही. तुम्हाला Windows चे हार्डवेअर आणि Linux चे लॉजिक यांच्यात पूल बांधावा लागतो.
1. WSL2 मध्ये CUDA सुरू करणे
Windows-आधारित लॅबची “सिक्रेट सॉस” म्हणजे NVIDIA चा WSL ड्रायव्हर. तो Linux कर्नेलला तुमच्या PC चा GPU “पाहू” देतो, पूर्ण व्हर्च्युअल मशीनच्या ओझ्याशिवाय.
# Verify GPU visibility inside WSL2
nvidia-smi
# If you see your GPU here, you're ready for local LLMs
# If not, you need to install the 'NVIDIA Game Ready' or 'Studio' driver on the Windows host.
2. Docker-AI स्टॅक
मी होस्टवर कधीही pip पॅकेजेस इन्स्टॉल करत नाही. प्रत्येक मॉडेलसाठी मी Docker कंटेनर वापरतो. यामुळे “डिपेंडन्सी हेल” टळतो, जिथे एका एजंटला Python 3.10 हवे असते आणि दुसऱ्याला 3.12.
स्थानिक Gekro नोडसाठी docker-compose.yml:
services:
ollama:
image: ollama/ollama
volumes:
- ./ollama_data:/root/.ollama
ports:
- "11434:11434"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
summarizer-agent:
build: ./agents/summarizer
environment:
- OLLAMA_HOST=http://ollama:11434
depends_on:
- ollama
3. WSL2 टीप: मेमरी व्यवस्थापन
डिफॉल्टनुसार WSL2 तुमची सर्व Windows RAM खाण्याचा प्रयत्न करते. मी ते 16GB वर मर्यादित ठेवतो, म्हणजे Windows मधील माझ्या Tesla टेलिमेट्री स्क्रिप्ट क्रॅश होत नाहीत. तुमच्या युजर फोल्डरमध्ये एक .wslconfig तयार करा:
[wsl2]
memory=16GB
processors=8
तडजोडी
वेदनेबद्दल बोलूया: सिमलिंक आणि फाइल कामगिरी. तुम्ही तुमचा कोड Windows च्या C: ड्राइव्हवर ठेवला पण तो WSL2 च्या आत चालवायचा प्रयत्न केला, तर 9P प्रोटोकॉलच्या भाषांतरामुळे तो 10 पट संथ असेल. माझा व्हेक्टर डेटाबेस इतका रेंगाळतोय का याचा विचार करत मी उत्पादकतेचा एक आठवडा गमावला, आणि मग लक्षात आले की मला संपूर्ण प्रोजेक्ट फोल्डर Linux फाइल सिस्टीमच्या आत (/home/rohit/gkro) हलवावा लागेल.
मला ज्याची उणीव भासते ती म्हणजे इंटरऑपरेबिलिटी. Windows वर मी स्क्रीनच्या एका बाजूला अपडेट्स चालू देऊन दुसऱ्या बाजूला काम करू शकत होतो, किंवा एखादा जनरेटर चालू ठेवून दुसरे काहीतरी करायला जाऊ शकत होतो. ते आता मोठ्या प्रमाणात गेले आहे, आणि मला त्याला स्वच्छ पर्याय सापडलेला नाही.
स्थलांतर स्वतः मी अपेक्षिले होते त्यापेक्षा सौम्य होते. नवी प्रणाली मला आपटेल या तयारीत मी होतो, आणि बहुतेक वेळा तसे झाले नाही. इतर कशापेक्षाही खूप जास्त वेळ गेला तो फाइल सिंकमध्ये: OneDrive ला नीट वागायला लावणे आणि फाइल्स Raspberry Pi वर विश्वासार्हपणे पोहोचवणे. अजूनही ज्याची उणीव भासते ती म्हणजे स्नायूंची स्मृती. Windows कमांडची दोन दशके गेली, आणि Linux मध्ये सहज वावरता येऊनही ती परत मिळत नाहीत.
तसेच, VRAM हे मर्यादित संसाधन आहे. Windows मध्ये माझ्याकडे Chrome चे 50 टॅब उघडे असतील, तर ते WSL2 मधील माझ्या Llama 3 इन्स्टन्समधून VRAM चोरत आहे. संकरित वातावरणात तुम्हाला मेमरीचे निर्दयी स्कॅव्हेंजर व्हायला शिकावे लागते.
पुढे काय
मी सिंगल-पेन-ऑफ-ग्लास व्यवस्थापन लेयरकडे वाटचाल करत आहे: Astro मधील एक कस्टम डॅशबोर्ड, जो माझ्या सर्व Linux नोड्सचे (Pi आणि PC) CPU/GPU तापमान आणि RAM वापर रिअल-टाइममध्ये पाहतो. उद्दिष्ट आहे माझ्या घरच्या नेटवर्कला मिनी-AWS रिजनसारखे वागवणे, जिथे OS हा केवळ एक तपशील असेल आणि एजंट हे मुख्य नागरिक.
लेखक
Rohit BuraniAI इंजिनिअर, जे लॅबमधून लोकल-फर्स्ट सिस्टीम, सेल्फ-होस्टेड इन्फ्रास्ट्रक्चर आणि स्वायत्त टूल्स तयार करतात.