gekro
GitHub LinkedIn
Local LLM

வணக்கம், Ollama: உள்ளூர் அனுமானம் உங்கள் கட்டமைப்புக் காப்பீடு

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

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

சுருக்கமாக

Raspberry Pi-இல் LLM-களை இயக்குவது வெறும் பொழுதுபோக்கு அல்ல; அது அமைப்பின் நெகிழ்திறனுக்கான மாற்றுத் திட்டம்.
உள்ளூர் LLM-களின் சந்தைப்படுத்தல் கோணம் தனியுரிமை, ஆனால் பொறியியல் உண்மை நெகிழ்திறன். கனமான வேலைக்கு நான் Together AI பயன்படுத்துகிறேன், ஆனால் என் Raspberry Pi கிளஸ்டர் செலவில்லாத மாற்றாக Ollama வழியே குவாண்டைஸ் செய்த Llama 3 மாடல்களை இயக்குகிறது. பலகையை உருக்காமல் ARM வன்பொருளில் உண்மையாகவே இயங்கும் குறிப்பிட்ட மாடல்களையும் குவாண்ட் நிலைகளையும் இந்தக் கட்டுரை விளக்குகிறது.

நள்ளிரவு வரை நீண்ட ஒரு பில்ட் அமர்வில் முதன்முறையாக என் இணையம் துண்டிக்கப்பட்டும், என் Raspberry Pi-இல் ஓர் உள்ளூர் Llama 3 நிகழ்வு கேள்விகளுக்குப் பதில் சொல்லிக்கொண்டிருந்தபோது, நாம் ஒரு திருப்புமுனையை எட்டிவிட்டோம் என்பதை உணர்ந்தேன். அடிப்படைக் காரணமறிதல் பணிகளுக்கு பில்லியன் டாலர் தரவு மையத்துடன் நிலையான இணைப்பை இனி நாம் சார்ந்திருக்கவில்லை. Gekro Lab-இல் Ollama என்பது ஒரு வழங்குநர் செயலிழப்பின்போது என் ஏஜென்ட்களைத் தொடர்ந்து இயங்க வைக்கும் கட்டமைப்புக் காப்பீட்டுக் கொள்கை.

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

கட்டமைப்பு

என் அமைப்பு ஒற்றை இயந்திரம் அல்ல; அது பகிர்ந்தளிக்கப்பட்ட அனுமானச் சங்கிலி. அதிகச் சிக்கலான கிளவுட் காரணமறிதலுக்கு Together AI-க்கு முன்னுரிமை தருகிறேன், ஆனால் ஆய்வகத்தின் “நரம்பு மண்டலம்” Ollama-வை இயக்கும் மூன்று-நோட் Raspberry Pi 5 கிளஸ்டரை (ஒவ்வொன்றும் 16GB) நங்கூரமாகக் கொண்டுள்ளது.

மாடல்அளவுகுவாண்ட் நிலைRAM பயன்பாடுடோக்கன்/வினாடி (Pi 5 16GB)சிறந்த பயன்பாடு
Llama-3-8B4.7GBQ4_K_M~5.2GB4-6 t/sபொதுக் காரணமறிதல்
Phi-3-Mini2.3GBQ4_0~2.8GB12-15 t/sவிரைவான வகைப்படுத்தல்
Mistral-7B4.1GBQ4_0~4.5GB3-4 t/sகருவிப் பயன்பாடு / செயல்பாட்டு அழைப்பு

வன்பொருளைவிட வரிசை முக்கியம். OpenRouter-இல் உள்ள இலவச மாடல்கள் முதலில் வருகின்றன, Pi நடுவில் இருக்கிறது, கட்டண OpenRouter கடைசிப் புகலிடம். அந்த நடு இடம் அலங்காரத்துக்கு அல்ல. இலவச அடுக்கு கிடைக்காதபோது, அது கவனிக்கும் அளவுக்கு அடிக்கடி நடக்கிறது, பதில் சொல்வது Pi தான். மாற்று வழி பணம் செலுத்துவதாக இருந்த நாட்களில் அது என்னை உண்மையாகவே வேலை செய்ய வைத்திருக்கிறது.

அங்கு சென்றடைய பல சுற்று முயற்சி-தவறுகள் ஆயின. பொருத்தமான மாடலைக் கண்டுபிடிக்க நான் மாடல்களை மாற்றிக்கொண்டே இருந்தேன், ஒவ்வொரு முறையும் பாடம் ஒன்றுதான்: பெரிய மாடல் மிக மெதுவாக இருந்தபோது, தீர்வு குறைந்த அளவுருக்களும் கனமான குவாண்டைசேஷனும், அதிகப் பொறுமை அல்ல.

ARM64 கட்டமைப்பில் நினைவக அலைவரிசையே தடை. ஒவ்வொரு நோடிலும் 16GB இருப்பதால், இணையத்தில் காணும் வழக்கமான 8GB Pi அமைப்புகளைவிடப் பெரிய மாடல்களை இயக்க எனக்கு இடமுண்டு. 4-பிட் குவாண்டைசேஷன் (Q4) சிறந்த புள்ளி என்று கண்டேன்: அதற்குக் கீழே போனால் மாடல் தன் “பொது அறிவை” இழக்கும், அதற்கு மேலே போனால் குறிப்பிடத்தக்க தர லாபம் இல்லாமல் அமைப்பின் மேல்செலவில் வெட்டுகிறீர்கள்.

உருவாக்கம்

Linux-இல் (WSL2 மற்றும் Raspberry Pi OS உட்பட) Ollama-வை அமைப்பது ஒரே வரிதான், ஆனால் உண்மையான பொறியியல் அதை நீங்கள் எப்படி உறையிடுகிறீர்கள் என்பதில் உள்ளது.

1. தலையற்ற நிறுவல்

என் Pi கிளஸ்டரைத் தலையற்றதாக இயக்குகிறேன். GUI இல்லை, SSH-உம் ஒரு systemd சேவையும் மட்டும்.

# Install Ollama on Linux/Pi
curl -fsSL https://ollama.com/install.sh | sh

# Serve Ollama on all network interfaces (required for cluster access)
sudo systemctl edit ollama.service

உங்கள் முதன்மை பணிநிலையத்திலிருந்து வெளிக் கோரிக்கைகளை அனுமதிக்க, சேவைக் கோப்பில் இந்தச் சூழல் மாறியைச் சேர்க்கவும்:

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

2. அப்ஸ்ட்ராக்ஷன் அடுக்கின் அடிப்படை வார்ப்புரு

உங்கள் சோதனைகளில் மூல Ollama API-ஐ நேரடியாகப் பயன்படுத்தாதீர்கள். மாற்றை அறிந்த கிளையன்ட்டைப் பயன்படுத்துங்கள். ஆய்வகம் முழுவதும் நான் பயன்படுத்தும் தர்க்கத்தின் எளிமைப்படுத்தப்பட்ட பதிப்பு இது.

import ollama
import logging

class LocalBrain:
    def __init__(self, model="llama3:8b"):
        self.model = model
        self.logger = logging.getLogger("GekroLocal")

    def inference(self, prompt: str) -> str:
        try:
            self.logger.info(f"Running local inference on {self.model}...")
            response = ollama.chat(model=self.model, messages=[
                {'role': 'user', 'content': prompt},
            ])
            return response['message']['content']
        except Exception as e:
            self.logger.error(f"Local inference failed: {e}")
            return "ERROR: Brain Offline"

# Running a quantized test on the Pi
if __name__ == "__main__":
    brain = LocalBrain(model="phi3:mini")
    print(brain.inference("What is the current state of the Raspberry Pi cluster?"))

பலகையே சொல்லிவிடும், அது வேலை செய்கிறதென்று

ஒரு Pi சிந்திப்பதை நீங்கள் கேட்கலாம். என்னுடையது சூடாகும், மின்விசிறி வேகமாகச் சுழலும், அதன் பக்கத்தில் அமர்ந்து டெர்மினலைப் பார்க்காமலேயே அது ஒரு ப்ராம்ப்ட்டின் நடுவில் இருப்பதைச் சொல்ல முடிந்தது. இந்த அளவில் வெப்பத்தால் வேகம் குறைவது என்பது விவரக்குறிப்புத் தாளில் ஒரு சுருக்கமான வரி அல்ல; அது உங்கள் மேசையின் மேல் ஒரு சத்தம். வேறு எதற்கும் முன்பு காற்றோட்டத்தைத் திட்டமிடுங்கள்.

WSL2 குறிப்பு

நீங்கள் இதை Windows-இல் WSL2-க்குள் சோதித்தால், Ollama-வுக்கு இப்போது உங்கள் NVIDIA GPU-வைப் பயன்படுத்தும் நேட்டிவ் Windows நிறுவி உள்ளது. Windows செயலியை இயக்கி, அந்த GPU ஆற்றலை உங்கள் Linux சூழலிலிருந்து பெற WSL2-க்குள் OLLAMA_HOST=172.x.x.x (உங்கள் Windows Ethernet அடாப்டரின் IP) என்று அமைக்கவும்.

சமரசங்கள்

Raspberry Pi ஒரு H100 அல்ல. Pi-இல் Llama 3-70B மாடலை இயக்க முயன்றால், அது மெதுவாக மட்டும் இருக்காது; OOM கில்லர் செயல்முறையை முடித்துவிடும். மலிவான SD கார்டில் ஸ்வாப் இயக்கப்பட்டிருந்தால், அலைக்கழிப்பே உங்கள் கோப்பு முறைமையைச் சிதைக்கக்கூடும்.

நான் சந்தித்த மிகப்பெரிய தோல்வி வெப்ப வேகக்குறைப்பு. கனமான தொகுதிச் செயலாக்க வேலையின்போது Pi 5-இன் வெப்பநிலை 85°C-ஐ எட்டி, அனுமான வேகம் வினாடிக்கு 0.5 டோக்கனாகக் குறைந்தது. ஆய்வகச் சூழலில் உள்ளூர் LLM-களுக்கு ஆக்டிவ் குளிர்ச்சி (Argon ONE பெட்டிக்குப் பாராட்டு) விருப்பத்துக்குரியது அல்ல; கட்டாயம்.

மேலும், கிளவுட் அளவிலான “படைப்பாற்றலை” எதிர்பார்க்காதீர்கள். உள்ளூர் குவாண்டைஸ் மாடல்கள் பிரித்தெடுப்பு, சுருக்கம், அடிப்படைத் தர்க்கத்துக்குச் சிறந்தவை. நுணுக்கத்துக்கோ உயர்மட்ட உத்தித் திட்டமிடலுக்கோ அவை மோசம்.

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

தற்போது ஒரேநேர இயக்க-முதன்மை வழிப்படுத்தலுடன் சோதனை செய்து வருகிறேன்: ஒரே மாடலை மூன்று நோடுகளுக்குப் பிரிப்பதற்குப் பதிலாக, மூன்று Pi நோடுகளையும் இணையான அனுமானக் கோரிக்கைகளைக் கையாளப் பயன்படுத்துவது. இலக்கு ஒரு உண்மையான “இறையாண்மை மூளை”, அது வெறும் மாற்றாக அல்லாமல் கிளவுட் மாடல்களின் உள்ளூர்ச் சகாவாகச் செயல்பட்டு, ஒரே நேரத்தில் காரணமறியும் பல ஏஜென்ட்களைக் கையாள முடியும்.

Rohit Burani

எழுதியவர்

Rohit Burani

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