Статья про то, как легко установить и запустить локальные Open SourceAI🤖 модели с помощью 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 у вас не установлена, выполните в терминале:
BASH
sudo apt update && sudo apt install -y curl
Нажмите, чтобы развернуть и увидеть больше
Перед запуском таких скриптов из интернета рекомендуется проверять их на безопасность.
👇Под спойлером инструкция, как проверить скрипт на безопасность
1) Просмотр содержимого скрипта:
BASH
curl -fsSL https://ollama.com/install.sh | less
Нажмите, чтобы развернуть и увидеть больше
2) Сравнение хэш-суммы скрипта по ссылке и скрипта из официального репозитория с помощью sha256sum:
3) Загрузка скрипта на бесплатный онлайн-сервис — VirusTotal, который проверяет файлы и ссылки на наличие вредоносного кода, вирусов, троянов, червей, шпионского ПО и прочих угроз.
Сохраняем скрипт в файл в домашней директории пользователя (это действие безопасно):
После осознания своих дальнейших действий, открываем терминал и выполняем:
BASH
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 доступны и менее требовательные модели, но они редко разговаривают на русском языке🤷♂️.
На странице модели указана команду для её загрузки/запуска:
BASH
ollama run deepseek-coder-v2
Нажмите, чтобы развернуть и увидеть больше
⚠️Если у вас окажется недостаточно ОЗУ вы получите такую ошибку при запуске:
После загрузки файлов параметров, запустится консольный режим интерактивного взаимодействия с моделью. Тут можно задавать различные вопросы и ставить задачи. Например:
Напиши bash функцию, которая принимает цвет как 1-й аргумент, а 2-м переданный текст и выводит на экран текст в этом цвете.
Проверим функцию в соседнем терминале:
Работает, что уже не плохо😉!
Посмотреть список установленных на компьютере моделей можно с помощью команды:
BASH
ollama list
Нажмите, чтобы развернуть и увидеть больше
Удалить выбранную модель можно так:
BASH
ollama rm deepseek-coder-v2
Нажмите, чтобы развернуть и увидеть больше
💡Файлы моделей хранятся в /usr/share/ollama/.ollama/models.
Загрузить последнюю версию модели так:
BASH
ollama pull deepseek-coder-v2:latest
Нажмите, чтобы развернуть и увидеть больше
После запуска сервис ollama работает в фоне и слушает порт 11434 на локальном интерфейсе:
BASH
ss -tlnp | grep 11434
Нажмите, чтобы развернуть и увидеть больше
По этому адресу можно отправлять API запросы, например, с помощью curl+jq:
BASH
# установка jq - утилиты для работы с jsonsudo 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 функцию для быстрого обращения из консоли:
Вероятно вы заметили, что при первом запросе к ИИ в сеансе, ollama загружает параметры модели в ОЗУ. Чем их больше, соответственно тем дольше они загружаются. Если вы располагаете достаточным количеством оперативной и видео памяти, то для увеличения скорости ответов можно настроить автозагрузку модели в память при старте графического сеанса пользователя.
Один из вариантов автозапуска приложений при входе — создать специальный .desktop файл в директории ~/.config/autostart:
BASH
cat << EOF > ~/.config/autostart/ollama.desktop
[Desktop Entry]
Type=Application
Name=Ollama
Comment=Запуск ollama при старте системы
Exec=env OLLAMA_KEEP_ALIVE="-1" bash -c 'ollama run deepseek-coder-v2 ping &> /dev/null'
Terminal=false
X-GNOME-Autostart-enabled=true
X-GNOME-Autostart-Delay=60
EOF
Нажмите, чтобы развернуть и увидеть больше
Переменная OLLAMA_KEEP_ALIVE="-1" сообщает ollama не выгружать параметры модели из памяти. Подробнее про процесс загрузки/выгрузки читайте в документации.
Параметр X-GNOME-Autostart-Delay=60 устанавливает задержку перед выполнением команды.
💡 Совет
💡При необходимости выгрузить модель из памяти, воспользуйтесь командой:
BASH
ollama stop deepseek-coder-v2
Нажмите, чтобы развернуть и увидеть больше
Для проверки работы автозагрузки необходимо перезайти на рабочий стол.
GUI для работы с Ollama
Для удобной работы с ollama доступно много разных графических интерфейсов. Одним из популярных и функциональных является проект — open-webui.
open-webui — это веб-интерфейс для взаимодействия с локальными языковыми моделями (LLM), такими как те, что запускает ollama: llama, deepseek и др. В двух словах — это как ChatGPT, но с блэкджеком и пингвинами локальными AI моделями.
Бэкенд open-webui написан на Python, поэтому его можно установить с помощью pip/pipx. Воспользуемся вторым.
💡pipx — это инструмент для установки и запуска Python-приложений в изолированной среде (venv), которую он автоматически создает и настраивает под каждую программу.
Пакет pipx есть в стандартных репозиториях Debian 12. Устанавливаем обычным способом:
BASH
sudo apt install -y pipx
Нажмите, чтобы развернуть и увидеть больше
Теперь с его помощью выполним установку open-webui:
⚠️Имейте ввиду, что open-webui весит примерно 8Гб. Установка займет какое-то время.
BASH
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:
BASH
# временно добавляем exportPATH="$PATH:$HOME/.local/bin"open-webui serve
Нажмите, чтобы развернуть и увидеть больше
Теперь открываем браузер и переходим по адресу: http://localhost:8080. Задаем имя, почту и пароль администратора:
И наконец попадаем в окно чата. Как видно, UI подключился в Ollama и DeepSeek уже используется в качестве модели по умолчанию:
Довольно знакомый интерфейс🤔
Давайте проверим работу модели (и включим тёмную тему в настройках😎):
Выглядит неплохо👌.
Чтобы open-webui стартовал автоматически при входе в систему создадим специальный .desktop файл в директории автозапуска:
Для проверки автозапуска необходимо перезайти в графический сеанс пользователя.
Альтернатива Ollama и open-webui — LM Studio
⚠️Ворнинг!⚠️ Прошу обратить внимание, что LM Studio являются проприетарным ПО. Это ограничивает прозрачность обработки данных.
LM Studio — это также настольное GUI приложение для локального запуска и общения с языковыми моделями (LLM). Из коробки предлагается и бэкенд для запуска ИИ и интерфейс для взаимодействия с ним.
Для deb based систем разработчики LM Studio подготовили установочный пакет. Чтобы установить приложение переходим на страницу загрузки и скачиваем его:
После открываем его и устанавливаем:
Запустить LM Studio можно из главного меню:
Пропускаем экран приветствия:
Нажимаем на кнопку выбора моделей:
Вбиваем в поиске название нужной модели, в моем примере deepseek coder v2 lite:
И нажимаем «Загрузить»:
Теперь модель доступна к использованию:
Всё работает👍.
Заключение
Не забывайте благодарить ИИ, если он вам помог. Кто знает, вдруг этот факт когда-то сохранит вашу жизнь🙄.
Комментарии