Pradžia / Programavimas / Lokalus DI savame kompiuteryje

Lokalus DI savame kompiuteryje

Kodėl apskritai verta paleisti DI pas save?

Kalbant apie dirbtinį intelektą, dauguma žmonių iš karto galvoja apie ChatGPT, Claude ar Gemini – paslaugas, kurios veikia kažkur debesyje, o tu tiesiog siunti užklausas ir gauni atsakymus. Patogu, greita, nereikia nieko diegti. Bet yra vienas didelis „bet” – viskas, ką rašai, keliauja į serverius, kurie priklauso korporacijoms. Ir nors jos teigia, kad tavo duomenys saugūs, realybė tokia, kad tu neturi jokios kontrolės.

Lokalus DI – tai visiškai kitas reikalas. Modelis veikia tavo kompiuteryje, tavo tinkle, ir nė vienas paketas su tavo tekstais niekur nekeliauja. Tai ypač aktualu, jei dirbi su konfidencialiais dokumentais, klientų duomenimis ar tiesiog nenori, kad tavo pokalbiai apie verslo strategiją būtų kažkieno mokymo duomenų dalis.

Be privatumo, yra ir kitas aspektas – kaina. Kai naudoji API, moki už kiekvieną tokeną. Jei generuoji daug teksto, koduoji, analizuoji dokumentus – sąskaitos gali išaugti gerokai. Lokalus modelis, kai jau įdiegtas, veikia nemokamai. Elektra, žinoma, kainuoja, bet tai visai kita skalė.

Kokio geležies reikia ir ar tavo kompiuteris tikrai pajėgs?

Čia daugelis sustoja ir galvoja, kad jiems reikia kažkokio NASA superkompiuterio. Iš tikrųjų – ne. Bet reikalavimai tikrai egzistuoja, ir juos verta suprasti, prieš pradedant.

Svarbiausia – RAM. Modeliai yra dideli failai, ir jie turi tilpti į atmintį. Štai grubi orientacija:

  • 8 GB RAM – galima paleisti mažus modelius (1B–3B parametrų). Veiks, bet lėtai, ir galimybės ribotos.
  • 16 GB RAM – jau rimčiau. 7B modeliai veikia normaliai, galima dirbti produktyviai.
  • 32 GB RAM ir daugiau – čia jau galima žaisti su 13B, 30B modeliais. Rezultatai artėja prie komercinių sprendimų.

GPU klausimas – atskira tema. Jei turi NVIDIA vaizdo plokštę su CUDA palaikymu (RTX serija), tai labai padeda. Modeliai gali būti įkelti į GPU atmintį (VRAM), ir greitis išauga kelis kartus. Apple Silicon (M1, M2, M3) čia turi unikalų pranašumą – jų vieningos atminties architektūra leidžia GPU ir CPU dalintis RAM, todėl MacBook Pro su 16–32 GB atminties veikia puikiai lokaliam DI.

Windows vartotojai su integruota Intel ar AMD grafika – irgi ne viskas prarasta. Modeliai veiks CPU režimu, tiesiog lėčiau. 7B modelis ant vidutinio i7 procesoriaus generuos gal 5–10 tokenų per sekundę. Skaityti spėsi, bet realaus laiko pokalbio jausmo nebus.

Ollama – paprasčiausias kelias pradėti

Jei nori greitai ir be galvos skausmo, Ollama yra tavo draugas. Tai įrankis, kuris supakuoja visą modelių valdymo infrastruktūrą į paprastą komandinės eilutės sąsają. Diegimas užtrunka minutę, modelio atsisiuntimas – kelias minutes (priklausomai nuo interneto greičio ir modelio dydžio).

Diegimas elementarus – eini į ollama.com, parsisiunti instaliatorių savo OS, įdiegiamas kaip bet kuri programa. Po to terminale:

ollama run llama3.2

Viskas. Ollama pati parsisiunčia modelį ir paleidžia interaktyvų pokalbį terminale. Pirmą kartą tai atrodo beveik magiškai – rašai klausimą, ir po kelių sekundžių gauni atsakymą, o interneto ryšys visiškai nenaudojamas (tik pirmam parsisiuntimui).

Ollama palaiko daugybę modelių: Llama 3.2, Mistral, Gemma 2, Phi-3, Qwen 2.5, DeepSeek ir dar daugiau. Kiekvienas turi savo stipriąsias puses – vieni geresni kodui, kiti – ilgų tekstų analizei, treti – daugiakalbystei.

Praktinis patarimas: pradėk nuo llama3.2:3b (apie 2 GB), kad pamatytum, kaip viskas veikia. Kai susipažinsi su procesu, pereik prie llama3.1:8b arba mistral:7b – jau žymiai galingesni modeliai.

Grafinės sąsajos – nes ne visi myli terminalą

Terminalas yra puikus, bet jei nori kažko panašaus į ChatGPT sąsają, yra keletas variantų, kurie veikia kartu su Ollama ar tiesiogiai su modeliais.

Open WebUI (anksčiau žinomas kaip Ollama WebUI) – tai bene populiariausias pasirinkimas. Paleidžiamas per Docker, atrodo ir veikia kaip ChatGPT, palaiko kelių modelių perjungimą, pokalbių istoriją, failų įkėlimą, net RAG (Retrieval-Augmented Generation) funkcionalumą. Jei turi Docker įdiegtą:

docker run -d -p 3000:80 --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  --name open-webui ghcr.io/open-webui/open-webui:main

Po to atsidarai naršyklę, eini į localhost:3000, ir turi pilnavertę DI sąsają savo kompiuteryje.

LM Studio – kitas puikus variantas, ypač pradedantiesiems. Tai grafinė programa (ne web), kuri leidžia naršyti modelius, juos parsisiųsti ir naudoti be jokio terminalo. Turi integruotą serverio režimą, kuris imituoja OpenAI API – tai reiškia, kad bet kuri programa, kuri moka kalbėtis su OpenAI, gali būti nukreipta į tavo lokalų modelį.

Msty – naujesnis žaidėjas, bet labai švaraus dizaino. Tinka tiems, kuriems svarbu estetika ir paprastumas.

Modelių pasaulis – ką rinktis ir kodėl

Modelių yra šimtai, ir pradžioje gali pasijusti kaip parduotuvėje su per daug pasirinkimų. Štai praktinis vadovas, kas ką daro:

Llama 3.1 / 3.2 (Meta) – vienas geriausių bendrosios paskirties modelių. 8B versija yra puikus balansas tarp greičio ir kokybės. Gerai supranta lietuvių kalbą (ne puikiai, bet pakenčiamai). Tinka pokalbiams, teksto generavimui, klausimų atsakymams.

Mistral 7B / Mixtral – prancūzų kompanijos modelis, labai efektyvus. Puikiai tinka kodui, loginiams uždaviniams. Mixtral yra „mixture of experts” architektūros modelis – techniškai didesnis, bet veikia efektyviau nei jo dydis leistų manyti.

DeepSeek Coder / DeepSeek R1 – jei rašai kodą, DeepSeek Coder yra vienas geriausių lokalių variantų. R1 modelis turi grandininio mąstymo (chain-of-thought) galimybes, panašiai kaip OpenAI o1.

Phi-3 / Phi-3.5 (Microsoft) – mažas, bet labai galingas. 3.8B parametrų modelis, kuris lenkia daugelį 7B modelių. Idealus, jei turi ribotus resursus.

Gemma 2 (Google) – geras bendrosios paskirties modelis, ypač 9B versija. Stabilus, patikimas, gerai supranta instrukcijas.

Praktinis patarimas: nenaudok tik vieno modelio. Skirtingi modeliai geriau tinka skirtingoms užduotims. Kodui – DeepSeek arba Mistral, kūrybiniam rašymui – Llama 3.1, greitam atsakymui – Phi-3.

RAG ir dokumentų analizė – tai kur lokalus DI tikrai šviečia

Vienas įdomiausių lokalaus DI panaudojimo atvejų – tai RAG (Retrieval-Augmented Generation). Idėja paprasta: tu turi krūvą dokumentų (PDF, Word, tekstiniai failai), ir nori, kad DI galėtų atsakyti į klausimus remdamasis tuo turiniu.

Tai ypač vertinga versle. Įsivaizduok: turi 500 puslapių teisinių dokumentų, techninių specifikacijų ar klientų susirašinėjimo archyvą. Vietoj to, kad pats ieškotum, tiesiog klausi: „Kokios buvo sutarties sąlygos su klientu X?” – ir gauni atsakymą su konkrečiomis ištraukomis.

Ir svarbiausia – visa tai vyksta lokaliai. Jokie konfidencialūs dokumentai niekur nekeliauja.

Kaip tai padaryti praktiškai? Keletas įrankių:

  • AnythingLLM – turbūt paprasčiausias sprendimas. Grafinė programa, leidžianti sukurti „workspace”, įkelti dokumentus ir kalbėtis su jais. Palaiko Ollama kaip backend.
  • Open WebUI su RAG funkcija – jau minėtas įrankis turi integruotą dokumentų įkėlimą.
  • LlamaIndex arba LangChain – jei esi programuotojas ir nori pilnos kontrolės, šios Python bibliotekos leidžia sukurti savo RAG sistemas.

Integravimas į darbo eigą – DI kaip įrankis, ne žaislas

Lokalų DI galima integruoti į realų darbo procesą, ir čia jis tampa tikrai naudingas, o ne tik techninis eksperimentas.

Kodo redaktoriai. VS Code turi plėtinius, kurie gali kalbėtis su lokaliu Ollama serveriu. Continue plėtinys yra vienas populiariausių – jis veikia kaip GitHub Copilot, tik naudoja tavo lokalų modelį. Kodo papildymas, paaiškinimai, refaktoringas – viskas lokaliai.

Automatizavimas. Ollama turi REST API, todėl galima rašyti skriptus, kurie automatiškai apdoroja tekstus. Pavyzdžiui, Python skriptas, kuris kiekvieną rytą paima naujus el. laiškus, siunčia juos lokaliam modeliui ir grąžina trumpą santrauką.

Obsidian ir užrašai. Jei naudoji Obsidian žinių bazei, yra plėtinių, kurie integruoja lokalų DI tiesiai į redaktorių. Gali klausinėti apie savo užrašus, generuoti turinį, ieškoti ryšių tarp idėjų.

Terminalas ir skriptai. Galima sukurti paprastą shell funkciją, kuri leidžia klausinėti DI tiesiai iš terminalo. Labai patogu, kai koduoji ir nori greito atsakymo neatidarinėjant naršyklės.

Vienas praktinis pavyzdys – sukurti lokalų „asistentą” specifinei sričiai. Jei esi gydytojas, teisininkas, buhalteris – gali „paruošti” modelį su sisteminiu pranešimu, kuris nurodo jo vaidmenį ir kontekstą. Kiekvieną kartą paleidžiant tą profilį, modelis elgiasi kaip domeno ekspertas.

Kai lokalus DI tampa tikru įrankiu, o ne tik eksperimentu

Lokalus DI nėra tobulas. Reikia būti sąžiningam – 7B ar net 13B parametrų modeliai nekonkuruoja su GPT-4 ar Claude 3.5 Sonnet sudėtingose užduotyse. Jei reikia rašyti labai sudėtingą analitinį tekstą, spręsti kompleksines matematines problemas ar dirbti su labai niuansuotu kontekstu – komerciniai modeliai vis dar lenkia.

Bet tai nėra teisingas palyginimas. Lokalus DI nėra skirtas pakeisti komercinius sprendimus visur. Jis skirtas tam, kur privatumas, kaina ir kontrolė svarbiau už absoliučią kokybę. O tokių situacijų darbo eigoje yra labai daug.

Technologija šioje srityje juda neįtikėtinu greičiu. Prieš dvejus metus 7B modeliai buvo gana silpni. Dabar Llama 3.1 8B ar Mistral 7B kokybe artėja prie to, ką GPT-3.5 darė prieš porą metų. Ir ši trajektorija tęsiasi. Phi-3 Mini parodė, kad modelio dydis nėra vienintelis kokybės rodiklis – efektyvi architektūra ir geras duomenų rinkinys gali padaryti stebuklus.

Jei dar nepradėjai eksperimentuoti – pradėk nuo Ollama ir llama3.2:3b. Tai užtruks 15 minučių ir nieko nekainuos. Pažiūrėk, kaip tai veikia tavo kompiuteryje, pajusk greitį, išbandyk kelis klausimus. Tada spręsk, ar verta gilintis toliau. Dažniausiai – verta.