Ollama — Локальный ИИ на вашем Linux ПК

Ollama — Локальный ИИ на вашем Linux ПК

Приветствую!

Статья про то, как легко установить и запустить локальные Open Source AI🤖 модели с помощью Ollama🦙 на ПК под управлением Linux🐧.

ИИ уже стал частью повседневной жизни IT-специалистов, и сегодня я предлагаю вам присоединиться к этому тренду🧑‍💻, но с бОльшим акцентом на конфиденциальность🛡️.

Подписывайтесь на наш телеграм @r4ven_me📱, чтобы не пропустить новые публикации на сайте😉. А если есть вопросы или желание пообщаться по тематике — заглядывайте в Вороний чат @r4ven_me_chat🧐.

Действия из статьи были протестированы в среде дистрибутивов Linux Mint 22 (Ubuntu 24) и LMDE6 (Debian 12) на ПК вот такой конфигурации.

Для чего нужны локальные AI модели?

Из очевидных преимуществ можно выделить:

  • Конфиденциальность — все данные обрабатываются и хранятся локально на вашем компьютере;
  • Независимость от внешних сервисов — может работать без подключения к интернету;
  • Гибкость — можно менять модели, настраивать их под себя;
  • Экономия финансов — не нужно платить за API или подписки (особенно когда нет даже возможности провести оплату🤷‍♂️).

Помимо перечисленного выше, мой интерес к Ollama связан с возможностью применять локальные модели в качестве AI ассистента/агента. Например, для интеграции с ShellGPT или редактором кода Neovim с этим плагином.

Что такое LLM и Ollama

Ollama — это open source инструмент и платформа для локального запуска и взаимодействия с LLM (Large Language Models, большие языковые модели) на вашем компьютере🧑‍💻. Данный софт позволяет легко и удобно работать с такими моделями, как LLaMA, DeepSeek, Mistral, Gemma и другими. И все это без подключения к облаку или даже интернету🌐.

Для корректной работы с моделями вам потребуется наличие GPU — видеокарты (чем мощнее, тем лучше). Можно использовать CPU, но в этом случае производительность будет значительно ниже😐.

Установка Ollama в Debian

💡По умолчанию установка и настройка ollama в Linux выполняется с помощью терминала. Если вы предпочитаете исключительно GUI, рассмотрите вариант, описанный в пункте «Альтернатива Ollama и open-webui — LM Studio» ниже.

На официальном сайте проекта Ollama, в разделе загрузок для Linux систем, предлагается выполнить установку программы с помощью shell скрипта. Скрипт скачивается с помощью утилиты curl и сразу передается на выполнение командному интерпретатору (sh или bash).

💡Если утилита curl у вас не установлена, выполните в терминале:

sudo apt update && sudo apt install -y curl

Перед запуском таких скриптов из интернета рекомендуется проверять их на безопасность.

👇Под спойлером инструкция, как проверить скрипт на безопасность

1) Просмотр содержимого скрипта:

curl -fsSL https://ollama.com/install.sh | less

2) Сравнение хэш-суммы скрипта по ссылке и скрипта из официального репозитория с помощью sha256sum:

curl -fsSL https://ollama.com/install.sh | sha256sum

curl -fsSL https://raw.githubusercontent.com/ollama/ollama/main/scripts/install.sh | sha256sum

3) Загрузка скрипта на бесплатный онлайн-сервис — VirusTotal, который проверяет файлы и ссылки на наличие вредоносного кода, вирусов, троянов, червей, шпионского ПО и прочих угроз.

Сохраняем скрипт в файл в домашней директории пользователя (это действие безопасно):

curl -fsSL https://ollama.com/install.sh -o ~/install.sh

Затем идем в раздел загрузок VirusTotal и отправляем на анализ сохраненный ранее файл: install.sh.

После проверки сервис предоставит подробную информацию об анализе файла-скрипта с описанием, что он делает:

Основные действия скрипта установки Ollama:

  1. Создание системного пользователя ollama с домашней директорией /usr/share/ollama;
  2. Добавление пользователя в группы render и video;
  3. Добавление текущего пользователя в группу ollama;
  4. Настройка и запуск службы Systemd;
  5. Обработка случаев без Systemd;
  6. Установка бинарного файла в /usr/local/bin;

После осознания своих дальнейших действий, открываем терминал и выполняем:

curl -fsSL https://ollama.com/install.sh | sh
Успешная установка Ollama для ПК с GPU от AMD

Если у вас нет дискретного GPU, то вы получите подобное уведомление:

В таком случае работать ollama будет, но с меньшей производительностью😥.

Выбор модели и запуск в консоли

Переходим в раздел Models официального сайта проекта Ollama для поиска нужной модели. Проект предоставляет возможность скачать и использовать большое их количество.

💡Список поддерживаемых моделей смотрите тут.

В данной статье я рассмотрю лишь пример с моделью, которая неплохо разговаривает по-русски и ориентирована на работу с различными языками программирования, в том числе и языками оболочек, таких как Shell/Bash/Zsh и др — deepseek-coder-v2. Да, одна из вариаций той самой нашумевшей китайской ИИ модели с открытым исходным кодом👌.

Данная модель имеет ~16 млрд. параметров, занимает ~9Гб дискового пространства и требует ~10Гб ОЗУ во время роботы. Поэтому обязательно перед установкой убедитесь, что у вас достаточно свободных ресурсов.

💡На сайте Ollama доступны и менее требовательные модели, но они редко разговаривают на русском языке🤷‍♂️.

На странице модели указана команду для её загрузки/запуска:

ollama run deepseek-coder-v2

⚠️Если у вас окажется недостаточно ОЗУ вы получите такую ошибку при запуске:

После загрузки файлов параметров, запустится консольный режим интерактивного взаимодействия с моделью. Тут можно задавать различные вопросы и ставить задачи. Например:

Напиши bash функцию, которая принимает цвет как 1-й аргумент, а 2-м переданный текст и выводит на экран текст в этом цвете.

Проверим функцию в соседнем терминале:

Работает, что уже не плохо😉!

Посмотреть список установленных на компьютере моделей можно с помощью команды:

ollama list

Удалить выбранную модель можно так:

ollama rm deepseek-coder-v2

💡Файлы моделей хранятся в /usr/share/ollama/.ollama/models.

Загрузить последнюю версию модели так:

ollama pull deepseek-coder-v2:latest

После запуска сервис ollama работает в фоне и слушает порт 11434 на локальном интерфейсе:

ss -tlnp | grep 11434

По этому адресу можно отправлять API запросы, например, с помощью curl+jq:

# установка jq - утилиты для работы с json
sudo apt install -y jq

curl -s http://localhost:11434/api/generate -d '{
  "model": "deepseek-coder-v2",
  "prompt": "Сколько будет 150+150",
  "stream": false   
}' | jq -r .response

Можно сделать удобную shell функцию для быстрого обращения из консоли:

ai() {
  local model="deepseek-coder-v2"
  local prompt="$*"
  local host="http://localhost:11434"
  
  if [ -z "$prompt" ]; then
    echo "Usage: ai <your question>"
    return 1
  fi

  curl -s "$host/api/generate" -d '{
    "model": "'"$model"'",
    "prompt": "'"$prompt"'",
    "stream": false
  }' | jq -r .response
}

Добавьте ее в ваш .*shrc файл и пользуйтесь😇:

Юморист из него так себе🤷‍♂️.

⚠️Обратите внимание, что при первом запросе в сеансе, ollama загружает параметры модели в ОЗУ. Чем их больше, соответственно тем дольше они загружаются.

GUI для работы с Ollama

Для удобной работы с ollama доступно много разных графических интерфейсов. Одним из популярных и функциональных является проект — open-webui.

open-webui — это веб-интерфейс для взаимодействия с локальными языковыми моделями (LLM), такими как те, что запускает ollama: llama, deepseek и др. В двух словах — это как ChatGPT, но с блэкджеком и пингвинами локальными AI моделями.

Бэкенд open-webui написан на Python, поэтому его можно установить с помощью pip/pipx. Воспользуемся вторым.

💡pipx — это инструмент для установки и запуска Python-приложений в изолированной среде (venv), которую он автоматически создает и настраивает под каждую программу.

Пакет pipx есть в стандартных репозиториях Debian 12. Устанавливаем обычным способом:

sudo apt install -y pipx

Теперь с его помощью выполним установку open-webui:

⚠️Имейте ввиду, что open-webui весит примерно 8Гб. Установка займет какое-то время.

pipx install open-webui

💡pipx установит open-webui в локальную директорию пользователя ~/.local/pipx/venvs/open-webui и сделает символьную ссылку в ~/.local/bin/open-webui.

💡Альтернативные способы установки смотрите тут. Удалить open-webui можно командой: pipx uninstall open-webui.

Для запуска open-webui из консоли необходимо, чтобы директория ~/.local/bin была добавлена в системную переменную $PATH. Добавляем ее по необходимости и запускаем UI:

# временно добавляем 
export PATH="$PATH:$HOME/.local/bin"

open-webui serve

Теперь открываем браузер и переходим по адресу: http://localhost:8080. Задаем имя, почту и пароль администратора:

И наконец попадаем в окно чата. Как видно, UI подключился в Ollama и DeepSeek уже используется в качестве модели по умолчанию:

Довольно знакомый интерфейс🤔

Давайте проверим работу модели (и включим тёмную тему в настройках😎):

Выглядит неплохо👌.

Чтобы open-webui стартовал автоматически при входе в систему создадим специальный .desktop файл в директории автозапуска:

cat << EOF > ~/.config/autostart/open-webui.desktop
[Desktop Entry]
Type=Application
Name=Open WebUI
Comment=Запуск open-webui при старте системы
Exec=bash -c '$HOME/.local/bin/open-webui serve'
Terminal=false
X-GNOME-Autostart-enabled=true
EOF

Для проверки автозапуска необходимо перезайти в графический сеанс пользователя.

Альтернатива Ollama и open-webui — LM Studio

⚠️Ворнинг!⚠️
Прошу обратить внимание, что LM Studio являются проприетарным ПО. Это ограничивает прозрачность обработки данных.

LM Studio — это также настольное GUI приложение для локального запуска и общения с языковыми моделями (LLM). Из коробки предлагается и бэкенд для запуска ИИ и интерфейс для взаимодействия с ним.

Для deb based систем разработчики LM Studio подготовили установочный пакет. Чтобы установить приложение переходим на страницу загрузки и скачиваем его:

После открываем его и устанавливаем:

Запустить LM Studio можно из главного меню:

Пропускаем экран приветствия:

Нажимаем на кнопку выбора моделей:

Вбиваем в поиске название нужной модели, в моем примере deepseek coder v2 lite:

И нажимаем «Загрузить»:

Теперь модель доступна к использованию:

Всё работает👍.

Заключение

Не забывайте благодарить ИИ, если он вам помог. Кто знает, вдруг этот факт когда-то сохранит вашу жизнь🙄.

Заглядывайте в нашу телегу📱и чат💬
Всех благ✌️
That should be it. If not, check the logs 🙂

Полезные материалы

Подписаться
Уведомить о
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии