gekro
GitHub LinkedIn
Infrastructure

Linux-இன் முனை: AI ஏன் கெர்னலில் நன்றாக மூச்சுவிடுகிறது

8 நிமிட வாசிப்பு

இது ஆங்கில மூலக் கட்டுரையின் இயந்திர மொழிபெயர்ப்பு. சில நுணுக்கங்கள் விடுபடலாம், எனவே ஆங்கிலப் பதிப்பே அடிப்படை ஆதாரம். மூலக் கட்டுரையை ஆங்கிலத்தில் படியுங்கள்

சுருக்கமாக

நான் ஏன் Windows பதிவகப் பிழைகளுடன் போராடுவதை நிறுத்தி, என் முழு AI பொறியியல் ஆய்வகத்தையும் WSL2 மற்றும் Ubuntu Server-க்கு மாற்றினேன்.
Windows மனிதர்களுக்கு சிறந்த இயங்குதளம், ஆனால் ஏஜென்ட்களுக்கு மூச்சுத் திணறவைக்கும் சூழல். AI நூலகங்கள் POSIX-இணக்கமான இதயத்தை எதிர்பார்ப்பதால் Gekro-வை WSL2/Ubuntu மையத்துக்கு மாற்றினேன். இந்தக் கட்டுரை CUDA-பாஸ்த்ரூ அமைப்பை விளக்குகிறது, மேலும் வளரும் தன்னாட்சிச் சேவைகளின் தொகுப்பை நிர்வகிக்க Linux-இல் Docker ஏன் ஒரே வழி என்பதையும் சொல்கிறது.

நுகர்வோர் இயங்குதளத்தில் 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 இயக்கி. முழு மெய்நிகர் இயந்திரச் சுமை இல்லாமல் உங்கள் PC-யின் GPU-வை Linux கெர்னல் “பார்க்க” அது அனுமதிக்கிறது.

# 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 முழுவதையும் விழுங்க முயலும். Windows-இல் உள்ள என் Tesla டெலிமெட்ரி ஸ்கிரிப்ட்கள் செயலிழக்காமல் இருக்க அதை 16GB-க்குள் கட்டுப்படுத்துகிறேன். உங்கள் பயனர் கோப்புறையில் ஒரு .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-ஐத் திருடுகிறது. கலப்புச் சூழலில் நினைவகத்தை இரக்கமின்றிச் சேகரிப்பவராக மாறக் கற்றுக்கொள்ள வேண்டும்.

இது எங்கே செல்கிறது

நான் ஒற்றைக் கண்ணாடிப் பலகை மேலாண்மை அடுக்கை நோக்கி நகர்கிறேன்: என் எல்லா Linux நோடுகளின் (Pi-கள் மற்றும் PC-கள்) CPU/GPU வெப்பநிலையையும் RAM பயன்பாட்டையும் நிகழ்நேரத்தில் கண்காணிக்கும் Astro-வில் உருவான தனிப்பயன் டாஷ்போர்டு. என் வீட்டு நெட்வொர்க்கை ஒரு மினி-AWS பகுதியாகக் கருதுவதே இலக்கு; அங்கே OS ஒரு சிறு விவரம், ஏஜென்ட்கள்தான் முதன்மைக் குடிமக்கள்.

Rohit Burani

எழுதியவர்

Rohit Burani

AI பொறியாளர். ஆய்வகத்திலிருந்து லோக்கல்-ஃபர்ஸ்ட் அமைப்புகள், சுயமாக ஹோஸ்ட் செய்யப்படும் உள்கட்டமைப்பு, தன்னாட்சிக் கருவிகளை உருவாக்குகிறார்.