Ollama – zbuduj chatGPT na własnym komputrze. Za darmo.

Opublikowane:

Czym jest Ollama?

Ollama to platforma, która umożliwia użytkownikom łatwe uruchamianie modeli sztucznej inteligencji lokalnie, bez potrzeby korzystania z chmury. Umożliwia to szybkie testowanie i rozwijanie aplikacji opartych na AI, takich jak generowanie tekstu, analiza danych czy inne zadania związane z przetwarzaniem języka naturalnego. Ollama obsługuje różnorodne modele AI, w tym te opracowane przez OpenAI, co pozwala programistom na swobodne eksperymentowanie z ich funkcjonalnościami w bezpieczny sposób.

Co cechuje Ollama?

Ollama cechuje się kilkoma istotnymi właściwościami, które sprawiają, że jest użytecznym narzędziem dla programistów i specjalistów zajmujących się sztuczną inteligencją:

  1. Lokalne uruchamianie modeli: Umożliwia uruchamianie modeli AI na lokalnym komputerze, co eliminuje problemy związane z opóźnieniami i ograniczeniami wydajności związanymi z chmurą.
  2. Łatwość użycia: Ollama oferuje prosty interfejs i narzędzia do zarządzania modelami, co ułatwia ich instalację i konfigurację. Dzięki temu nawet osoby z ograniczonym doświadczeniem w AI mogą szybko zacząć korzystać z modeli.
  3. Różnorodność modeli: Obsługuje wiele różnych modeli AI, co daje użytkownikom możliwość wyboru najbardziej odpowiedniego narzędzia do ich konkretnych zadań.
  4. Bezpieczeństwo danych: Dzięki lokalnemu uruchamianiu modeli, użytkownicy mogą lepiej kontrolować swoje dane i unikać przesyłania wrażliwych informacji do chmury.
  5. Eksperymentowanie i rozwój: Ollama pozwala na szybkie testowanie różnych modeli i ich funkcjonalności, co sprzyja innowacjom i efektywnemu rozwijaniu aplikacji opartych na AI.

Jak Ollama może pomóc?

  • Generowanie treści: Może być używane do tworzenia tekstu, takich jak artykuły, posty w mediach społecznościowych czy skrypty.
  • Analiza danych: Umożliwia przetwarzanie i analizę dużych zbiorów danych, co może być przydatne w badaniach i raportach.
  • Interaktywne aplikacje: Pomaga w tworzeniu chatbotów i innych aplikacji interaktywnych, które wymagają zrozumienia i generowania języka naturalnego.
  • Personalizacja: Użytkownicy mogą dostosować modele do swoich potrzeb, co pozwala na tworzenie bardziej spersonalizowanych rozwiązań.

Ollama może zatem stanowić wartościowe narzędzie zarówno dla programistów, jak i firm poszukujących efektywnych rozwiązań w zakresie sztucznej inteligencji.

Najważniejsze różnice między OpenAI i Ollama

KryteriumChatGPTOllama
TwórcyOpenAIOllama Inc.
DostępnośćChmura (web, API), aplikacje mobilneLokalne uruchamianie na komputerach
CenaModel freemium, płatne plany (np. ChatGPT Plus)Płatności za dostęp do niektórych modeli
Modele językoweWiele modeli (np. GPT-3.5, GPT-4)Obsługuje różne modele AI, w tym te od OpenAI
JęzykiGłównie angielski, ale wspiera wiele innychGłównie angielski, ale również inne języki
InterfejsInteraktywny interfejs użytkownika w przeglądarceInterfejs linii poleceń do uruchamiania modeli
BezpieczeństwoDane przesyłane do chmury; polityka prywatnościLokalna kontrola nad danymi, brak przesyłania do chmury
ZastosowanieGenerowanie tekstu, chatboty, pomoc w nauceGenerowanie treści, analiza danych, personalizacja
DostosowanieOgraniczone (przez API)Możliwość lokalnego dostosowywania modeli
WydajnośćWydajność zależna od serwerów OpenAIWydajność zależna od zasobów lokalnych

Jakie modele językowe obsługuje

Oto przykładowe, najpopularniejsze modele obsługiwane przez Ollama wraz z komendami terminal wywołującymi dany model:

ModelParametrRozmiar modeluJak pobrać/użyć
Llama 3.23B2.0GBollama run llama3.2
Llama 3.21B1.3GBollama run llama3.2:1b
Llama 3.18B4.7GBollama run llama3.1
Llama 3.170B40GBollama run llama3.1:70b
Llama 3.1405B231GBollama run llama3.1:405b
Phi 3 Mini3.8B2.3GBollama run phi3
Phi 3 Medium14B7.9GBollama run phi3:medium
Gemma 22B1.6GBollama run gemma2:2b
Gemma 29B5.5GBollama run gemma2
Gemma 227B16GBollama run gemma2:27b
Mistral7B4.1GBollama run mistral
Moondream 21.4B829MBollama run moondream
Neural Chat7B4.1GBollama run neural-chat
Starling7B4.1GBollama run starling-lm
Code Llama7B3.8GBollama run codellama
Llama 2 Uncensored7B3.8GBollama run llama2-uncensored
LLaVA7B4.5GBollama run llava
Solar10.7B6.1GBollama run solar

Zwróć uwagę, że uruchomienie modeli określonych jako 7B wymaga nie mniej niż 8GB RAM, modelu 13B wymaga już 16GB RAMu a modele oznaczone jako 33B to wymaganie posiadania nie mniej niż 32GB RAMu!

Model językowy Llama (Large Language Model)

Model Llama jest rozwijany przez Meta (Facebook) i jest częścią rodziny dużych modeli językowych. Oferuje różne rozmiary, co pozwala na dostosowanie go do różnych zastosowań i zasobów obliczeniowych.

Cechy Llama

Model Llama dostępny jest w różnych wariantach, takich jak 1B, 3B, 8B, 70B i 405B parametrów. Dzięki temu użytkownicy mają możliwość wyboru modelu najlepiej odpowiadającego ich potrzebom i wymaganiom.

Llama jest wykorzystywana do generowania tekstu oraz rozumienia języka naturalnego. Znajduje zastosowanie w wielu aplikacjach, takich jak chatboty, generatory treści, tłumaczenia czy systemy rekomendacji, co czyni ją wszechstronnym narzędziem w dziedzinie przetwarzania języka.

Jedną z kluczowych zalet modeli Llama jest wysoka jakość generowanego tekstu oraz kontekstu. Co więcej, większe modele zapewniają lepsze wyniki w bardziej skomplikowanych zadaniach, co sprawia, że są one odpowiednie do zastosowań wymagających zaawansowanej analizy i generacji treści.

Model językowy Google Gemma

Gemma to model językowy, który również jest częścią rodziny dużych modeli językowych, rozwijany z myślą o elastyczności i różnych zastosowaniach.

Cechy Gemma

Gemma oferuje różne warianty, w tym modele z 2B, 9B oraz 27B parametrów. Taki wybór pozwala użytkownikom dostosować wybór modelu do dostępnych zasobów, co czyni je elastycznym narzędziem w różnych środowiskach.

Podobnie jak Llama, Gemma jest wykorzystywana do generowania tekstu oraz analizy danych. Ponadto znajduje zastosowanie w obszarach związanych z obsługą klienta, takich jak chatboty, a także w personalizacji treści, co zwiększa jej użyteczność w różnych branżach.

Jedną z kluczowych zalet modeli Gemma jest ich zbalansowane podejście do wydajności i jakości generowanego tekstu. Modele te są w stanie dostarczać odpowiedzi w naturalny sposób, co sprawia, że są atrakcyjne zarówno dla firm, jak i programistów, poszukujących efektywnych rozwiązań do komunikacji i analizy danych.

Model językowy Mistral

Mistral to model językowy stworzony z myślą o wydajności i szybkości przetwarzania. Jest dostosowany do zadań wymagających intensywnego przetwarzania języka naturalnego.

Cechy Mistral

Mistral jest dostępny w wersji 7B parametrów, co czyni go stosunkowo małym modelem w porównaniu do innych dużych modeli. Ta kompaktowa forma sprawia, że jest odpowiedni dla użytkowników, którzy potrzebują efektywnego rozwiązania bez potrzeby angażowania znacznych zasobów obliczeniowych.

Model Mistral idealnie sprawdza się w zadaniach, które wymagają szybkiej odpowiedzi i niskiego opóźnienia. Dzięki temu jest często wykorzystywany w aplikacjach takich jak chatboty, asystenci głosowi oraz inne rozwiązania działające w czasie rzeczywistym, gdzie liczy się błyskawiczna reakcja na zapytania użytkowników.

Jedną z kluczowych zalet modelu Mistral jest jego wydajność przy mniejszych wymaganiach zasobów. Dzięki temu staje się on bardziej dostępny dla mniejszych firm oraz projektów, które nie dysponują dużymi zasobami obliczeniowymi. To sprawia, że Mistral jest atrakcyjnym wyborem dla szerokiego grona użytkowników, poszukujących efektywnych rozwiązań do swoich zastosowań.

Podsumowanie najpopularniejszych modeli językowych Open Source

  • Llama: Wysoka jakość generacji tekstu, dostępność w różnych rozmiarach, szerokie zastosowania.
  • Gemma: Zrównoważony model o elastycznych rozmiarach, skoncentrowany na generowaniu treści i analizy.
  • Mistral: Model wydajny, skoncentrowany na szybkości przetwarzania, idealny do aplikacji w czasie rzeczywistym.

Każdy z tych modeli ma swoje unikalne cechy, co sprawia, że są użyteczne w różnych kontekstach i dla różnych potrzeb. Jeśli potrzebujesz więcej informacji lub masz pytania dotyczące konkretnego zastosowania, daj znać!

Jak zainstalować Ollama na komputerze

Instalacja Ollama na Windows

Ollama działa płynnie na systemach Windows, Mac i Linux. W tym przewodniku krok po kroku pokażemy, jak zainstalować Ollama na systemie Windows 11. Po zakończeniu instalacji program zajmie około 384 MB, jednak pamiętaj, że pobrane modele mogą zajmować więcej miejsca. Nawet kilka gigabajtów każdy!

Jeśli wolisz uruchomić Ollama w kontenerze Docker, możesz pominąć poniższy opis instalacji i przejść do dokumentacji tutaj:

➡️ Ollama jako oficjalny obraz Docker

Krok 1: Pobierz Ollama

  1. Odwiedź stronę Ollama: Wejdź na stronę ollama.com.
  2. Pobierz plik .exe: Kliknij na link do pobrania pliku instalacyjnego Ollama, który jest w formacie .exe.

Krok 2: Zainstaluj Ollama na Windows

  1. Uruchom instalator: Po pobraniu pliku .exe, kliknij na niego, aby uruchomić instalator. Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.
  2. Wybór ścieżki zapisu modeli: Podczas instalacji będziesz miał możliwość wyboru domyślnej ścieżki, w której będą przechowywane modele. Domyślnie jest to:makefileSkopiuj kodC:\Users\twoja_nazwa_użytkownika\.ollama Jeśli jednak na dysku C: brakuje miejsca, zaleca się zmianę tej lokalizacji na inny katalog. Jeśli posiadasz inny dysk, na przykład D:, wykonaj następujące kroki:
    • Kliknij prawym przyciskiem myszy na ikonę Komputer na pulpicie.
    • Wybierz Właściwości, a następnie przejdź do Zaawansowane ustawienia systemu.
    • Kliknij na Zmienna środowiskowa.
    • W sekcji Zmienne użytkownika dla… wprowadź absolutną ścieżkę do katalogu, w którym zamierzasz przechowywać wszystkie modele. Na przykład:
      • Zmienna: OLLAMA_MODELS
      • Wartość: D:\twoj_katalog\models
    Upewnij się, że nie zmieniasz nazwy zmiennej OLLAMA_MODELS, ponieważ Ollama będzie jej szukać dokładnie w tej formie.

Krok 3: Uruchom Ollama

Po zakończeniu instalacji, na dolnym pasku zadań systemu Windows powinien pojawić się ikonka Ollama. Jeśli program nie uruchomi się automatycznie, możesz go znaleźć w programach Windows i uruchomić stamtąd. Ollama domyślnie będzie uruchamiać się wraz ze startem systemu. Miej to na uwadze.

Gotowe do użycia!

Teraz jesteś gotowy, aby uruchomić Ollama i pobrać kilka modeli! Ciesz się nowymi możliwościami, jakie oferuje Ollama. Jeśli napotkasz jakiekolwiek trudności podczas instalacji, nie wahaj się szukać wsparcia w dokumentacji lub społeczności użytkowników.

Instalacja na systemach unixowych to jest MacOS czy Linux jest tak samo prosta. Pobieramy archiwum, przechodzimy przez instalator i już. Nie musimy nic dodatkowo wpisywać czy ustawiać. Oczywiście użytkownicy linuxa mogą samodzielnie skompilować archiwum i przystosować instalację do własnych potrzeb.

Przykłady wykorzystania modeli w Ollama

1. Llama

Zastosowanie: Generowanie tekstu, asystenci wirtualni, chatbota.

Przykład:

ollama run llama3.2

Opis: Uruchamia model Llama 3.2, który może generować teksty na podstawie wprowadzonego kontekstu. Może być użyty do tworzenia kreatywnych treści, jak opowiadania, artykuły lub pomoc w pisaniu e-maili.

Scenariusz użycia:

Tworzenie treści marketingowych: „Napisz artykuł na bloga na temat najnowszych trendów w technologii VR”.

2. Gemma

Zastosowanie: Odpowiedzi na pytania, analiza danych, personalizacja treści.

Przykład:

ollama run gemma2:9b

Opis: Uruchamia model Gemma w wersji 9B, który potrafi odpowiadać na pytania użytkowników i dostosowywać odpowiedzi do ich potrzeb.

Scenariusz użycia:

System FAQ dla strony internetowej: Użytkownik może zadawać pytania dotyczące produktów, a model Gemma dostarczy odpowiedzi w naturalny sposób.

3. Mistral

Zastosowanie: Aplikacje w czasie rzeczywistym, asystenci głosowi, chatboty.

Przykład:

ollama run mistral

Opis: Uruchamia model Mistral, który jest zoptymalizowany pod kątem szybkości przetwarzania i niskiego opóźnienia. Może być idealny do zadań wymagających szybkich reakcji.

Scenariusz użycia:

Asystent głosowy: Użytkownik mówi: „Jakie jest dzisiaj pogoda?” a Mistral natychmiast dostarcza aktualną prognozę.

Inne przykłady zastosowań

  • Tworzenie chatbotów: Możesz wykorzystać Llama lub Gemma do budowy chatbotów, które będą odpowiadać na pytania użytkowników lub prowadzić rozmowy w sposób naturalny.
  • Personalizacja treści: Modele mogą być używane do analizy zachowań użytkowników i generowania dostosowanych rekomendacji lub treści.
  • Tworzenie gier: Modele mogą pomóc w tworzeniu dialogów i narracji w grach, co zwiększa ich immersyjność.

Modele Ollama, takie jak Llama, Gemma i Mistral, oferują szeroki zakres zastosowań w różnych dziedzinach, od marketingu po technologie interaktywne. Dzięki nim można znacznie ułatwić procesy tworzenia treści, komunikacji i analizy danych. Wykorzystanie tych modeli w praktyce może przynieść znaczące korzyści, zarówno dla firm, jak i dla indywidualnych użytkowników.

Jak wykorzystać Ollama w swoim skrypcie?

Oto przetłumaczony i lepiej wyjaśniony opis funkcji generowania odpowiedzi w czacie za pomocą API Ollama.

Generowanie odpowiedzi w czacie

Endpoint: POST /api/chat

Ten endpoint umożliwia generowanie kolejnej wiadomości w czacie przy użyciu wybranego modelu. Obsługuje on streaming, co oznacza, że odpowiedzi są przesyłane w serii. Można jednak wyłączyć streaming, ustawiając parametr "stream" na false. Ostateczny obiekt odpowiedzi zawiera statystyki oraz dodatkowe dane dotyczące żądania.

Parametry

  • model: (wymagany) nazwa modelu, którego chcesz użyć do generowania odpowiedzi.
  • messages: wiadomości czatu, które mogą być używane do zachowania pamięci o czacie. Umożliwia to kontynuowanie rozmowy na podstawie wcześniejszych wiadomości.
  • tools: narzędzia, które model może wykorzystać, jeśli są obsługiwane. Wymaga, aby parametr stream był ustawiony na false.

Obiekt wiadomości

Obiekt wiadomości zawiera następujące pola:

  • role: rola wiadomości, może to być system, user, assistant lub tool.
  • content: treść wiadomości.
  • images (opcjonalnie): lista obrazów do dołączenia do wiadomości (dotyczy modeli multimodalnych, takich jak LLaVA).
  • tool_calls (opcjonalnie): lista narzędzi, które model chce użyć.

Zaawansowane parametry (opcjonalne):

  • format: format, w którym ma zostać zwrócona odpowiedź. Aktualnie jedyną akceptowaną wartością jest json.
  • options: dodatkowe parametry modelu wymienione w dokumentacji Modelfile, takie jak temperatura.
  • stream: jeśli ustawione na false, odpowiedź zostanie zwrócona jako jeden obiekt odpowiedzi, a nie jako strumień obiektów.
  • keep_alive: kontroluje, jak długo model pozostanie załadowany w pamięci po żądaniu (domyślnie: 5 minut).

Przykłady użycia

Przykład 1: Żądanie czatu (streaming)

Zapytanie:
Wysłanie wiadomości czatu z odpowiedzią w formie strumienia:

curl http://localhost:11434/api/chat -d '{
  "model": "llama3.2",
  "messages": [
    {
      "role": "user",
      "content": "dlaczego niebo jest niebieskie?"
    }
  ]
}'

Odpowiedź:
Zwracany jest strumień obiektów JSON:

{
  "model": "llama3.2",
  "created_at": "2023-08-04T08:52:19.385406455-07:00",
  "message": {
    "role": "assistant",
    "content": "Niebo",
    "images": null
  },
  "done": false
}

Ostateczna odpowiedź:

{
  "model": "llama3.2",
  "created_at": "2023-08-04T19:22:45.499127Z",
  "done": true,
  "total_duration": 4883583458,
  "load_duration": 1334875,
  "prompt_eval_count": 26,
  "prompt_eval_duration": 342546000,
  "eval_count": 282,
  "eval_duration": 4535599000
}

Przykład 2: Żądanie czatu (bez streaming)

Zapytanie:
Wysłanie wiadomości czatu bez strumienia:

curl http://localhost:11434/api/chat -d '{
  "model": "llama3.2",
  "messages": [
    {
      "role": "user",
      "content": "dlaczego niebo jest niebieskie?"
    }
  ],
  "stream": false
}'

Odpowiedź:

{
  "model": "llama3.2",
  "created_at": "2023-12-12T14:13:43.416799Z",
  "message": {
    "role": "assistant",
    "content": "Cześć! Jak się masz dzisiaj?"
  },
  "done": true,
  "total_duration": 5191566416,
  "load_duration": 2154458,
  "prompt_eval_count": 26,
  "prompt_eval_duration": 383809000,
  "eval_count": 298,
  "eval_duration": 4799921000
}

Wyjaśnienie

  • Generowanie odpowiedzi w czacie: Umożliwia interaktywną komunikację z modelem AI, co jest przydatne w różnych aplikacjach, takich jak chatboty, asystenci wirtualni czy systemy wsparcia klienta. Użytkownik może zadawać pytania lub prowadzić rozmowę, a model generuje odpowiedzi w czasie rzeczywistym.
  • Streaming: Opcja ta pozwala na otrzymywanie odpowiedzi na bieżąco, co jest szczególnie przydatne w dłuższych interakcjach, gdzie można dostarczać odpowiedzi kawałek po kawałku.
  • Parametry: Umożliwiają dostosowanie interakcji z modelem, na przykład przez wybór modelu, zapamiętywanie kontekstu rozmowy, czy kontrolowanie formatu odpowiedzi.

Dzięki tym funkcjom Ollama staje się potężnym narzędziem do budowania inteligentnych aplikacji, które mogą skutecznie komunikować się z użytkownikami i dostarczać wartościowe informacje.

Potrzebujesz więcej informacji?

Odwiedź https://ollama.com/ i zajrzyj do dokumentacji. Będę także starł się wkrótce pokazać Ci jak wykorzystać Ollama i dostępnie w niej modele językowe do ciekawych rozwiązań. Dzięki Ollama nasze działania SEO będą w stanie wejść na zupełnie nowy poziom!

Tak, ten wpis powstał z pomocą AI. To chyba oczywiste, że wpis o AI musi powstać z pomocą AI 😉