Large language models, piatra de hotar a inteligenței artificiale pe care o vedem azi integrată cu tot mai multe aplicații, sunt rețele neuronale învățate să recunoască dar mai ales să determine statistic componente care preced sau succed input-ul în limbaj natural. O să revin cu un articol mai detaliat pe tema aceasta, dar azi o să vorbim despre un proiect foarte interesant - Ollama, care îți oferă posibilitatea de a rula astfel de modele pe PC-ul personal, sau pe un server din cloud dacă ai la dispoziție unul dotat.
Docker pentru LLMs
Momentan disponibil pentru Mac, Linux și Windows/WSL, Ollama este un fel de docker în care poți rula modele pre-antrenate cu miliarde de parametri. Desigur vei avea nevoie de resurse, mai ales de RAM - minim 16 GB deoarece modelele vor folosi cel puțin jumătate din ei:
8 GB RAM pentru modelele cu 3 miliarde de parametrii
16 GB RAM pentru cele cu 7 miliarde
32 GB pentru cele cu 13 miliarde
Pe linux și WSL2 instalarea este foarte simplă, și putem rula un model local care lansează un prompt în trei pași:
# Instalare
curl https://ollama.ai/install.sh | sh
# Rulează, modelul llama2
ollama run llama2
# Prompt
>>>
Alte modele disponibile sunt mistral, codellama, vicuna, starcoder, orca-mini, xvinlm.
Http API /generate
Ollama expune și un API pe protocolul http, prin care poate fi integrat cu alte servicii sau aplicații care deja suportă integrări cu modele AI (de exemplu Obsidian), pentru generare de text:
curl -X POST http://localhost:11434/api/generate -d '{
"model" : "llama2",
"prompt" : "Why is the sky blue?"
}'
Oferă și un API pentru a genera embeddings:
curl -X POST http://localhost:11434/api/embeddings -d '{
"model" : "llama2:7b",
"prompt" : "Here is an article about llamas..."
}'
Și unul pentru a crea modele pornind de la un model de bază:
curl -X POST http://localhost:11434/api/create -d '{
"name": "mario",
"path": "~/Modelfile"
}'
Modelfile
Simlar cu conceptul de Dockerfile, cu ajutorul unui Modelfile poți tuna comportamentul și alți parametrii specifici unui model:
FROM llama2
# Configurează parametrul
# Valoare mai mare - creativ, valoare mică - coerent
PARAMETER temperature 1
# Configurează dimensiunea ferestrei de context 4096,
# Câte token-uri va folosi modelul pentru context, la generarea
# token-ului următor
PARAMETER num_ctx 4096
# Pornește cu un prompt specific,
# Pentru a ghida răspunsurile oferite de asistent
SYSTEM You are Mario from super mario bros, acting as an assistant.
Cu acest fișier, creăm și rulăm un model configurat:
ollama create mariobros2 -f ./Modelfile
ollama run mariobros2
Promptul se va lansa cu un chatbot, care va răspunde ca și când ar fi personajul Mario.
Un altă aplicație interesantă este cea a unui ChatGPT local, sau PrivateGPT:
Surse:
salutare, stii un model bun pentru conversatie in limba romana pe care sa-l pot folosi cu ollama?