Настройка локального ИИ помощника на Ollama + Open-WebUI

📅 18 Июн 2024 18:42 | 👁 875 | 🕐 5 мин.

Появился интерес попробовать использовать локально нейросети. После не продолжительного поиска в интернете на эту тему, было решено попробовать сделать на Ollama.

Содержание

  1. Введение
  2. Установка и настройка Ollama
  3. Загрузка языковых моделей Ollama
  4. Установка и настройка Open — Web-UI

Введение

Ollama — является открытым фреймворком для локального развертывания и управления мощными языковыми моделями (LLM), такими как Llama 3, Phi 3, Mistral, Gemma и другими, на вычислительных ресурсах пользователя. Оно позволяет установить и запустить выбранную модель без необходимости использования облачных сервисов, а также предоставляет доступ к этой модели через простое API.

Open WebUI — это расширяемый , многофункциональный и удобный автономный веб-интерфейс, предназначенный для работы полностью в автономном режиме. Он поддерживает различные программы LLM, включая Ollama и API-интерфейсы, совместимые с OpenAI.

Интерфейс Open - Web-UI

Интерфейс Open — Web-UI

Теперь когда мы знаем что есть что, можно приступить к установки. Кстати нужно отметить, что запускать мы будем не на GPU, а на CPU, так как стенда с хорошими производительными видео картами у меня нет, но есть дешевый тестовый сервер:

  • CPU: Intel Xeon E5-2680 v3 2.50GHz 12 core 24 threads x 2
  • RAM: 64GB DDR4

Установка и настройка Ollama

Запускать Ollama мы будем на Debian GNU/Linux 12 (bookworm).

Установка достаточно простая, есть скрипт для автоматической установки. И собственно вся установка сводится к одной строчке.

Собственно на этом вся установка завершена, если нужна более подробная информация по ручной установки, то можно обратиться к официальной документации по установки на linux.

Так как мы будем разворачивать Open — Web-UI на другой машине, то нам необходимо настроить Ollama так, чтоб он принимал запросы не только на локальном(по умолчанию), но и на сетевом интерфейсе. Для этого нам необходимо отредактировать сервис запуска ollama.service следующим образом, добавив директиву OLLAMA_HOST в Environment.

Теперь нам необходимо обновить настройки сервиса и запустить Ollama:

Проверяем что сервис слушает запросы на всех интерфейсах:

Так же если перейти в браузер по адресу машины на которой стоит ollama с портом 11343, как пример http://<IP_адрес_ollama>:11434, то мы увидим надпись «Ollama is running» что свидетельствует о том, что сервис запущен и готов к работе.

Загрузка языковых моделей Ollama

Собственно говоря Ollama это фреймворк, который позволяет запускать различные языковые модели типа LLAMA3(от Meta), Mistral AI, Phi3(от Microsoft), весь список доступных моделей можно посмотреть на официальной странице Ollama на github или в библиотеки моделей.

Что нужно знать о моделях для их запуска. Первое это размер модели, чем больше модель, тем больше оперативной памяти она будет требовать, а так же будет более чувствительной к вычислительным ресурсам. Модели более 7b(это приблизительно 7 миллиардов весов и связей) лучше запускать на видеокартах, так как производительность TPS(количество генерируемых токенов в секунду) на CPU будет очень низкой.

Сама загрузка моделей происходить достаточно просто:

После команды ollama run <нужная_модель> начнется загрузка модели. После загрузки запустится выбранная модель и прям в консоли можно начинать чатиться и задавать вопросы языковой модели. Но это не совсем удобно и поэтому мы установим Open-Web-UI.

Так же стоит отметить, языковые модели занимают достаточно много дискового пространства и по умолчанию находятся /usr/share/ollama/models, если вы планируете использовать множество языковых моделей, то вам возможно потребуется изменить место их хранения.

Для этого есть специальная директива OLLAMA_MODELS, она так же как и OLLAMA_HOST добавляется в параметры сервиса в Environment.

Альтернативный вариант — это сделать симлинк, но это не совсем правильный вариант.

Установка и настройка Open — Web-UI

Open Web-UI будем устанавливать на отдельную машину через Docker образ. Так как изначально я взял чистую машину, выполняем стандартные манипуляции по обновлению системы, устанавливаем Docker и запускаем контейнер с Open-Web-UI.

Обновление системы Debian GNU/Linux 12 (bookworm):

После обновления системы по документации установки Docker на Linux устанавливаем Docker.

Согласно документации удаляем все ненужные зависимости:

Далее нам необходимо добавить репозитории Docker и установить официальные GPG ключи репозиториев:

После установки ключей и настройки репозиториев мы можем установить сам Docker:

Теперь можем запустить контейнер с Open-Web-UI, исходя из документации Open-Web-UI, нам необходимо запустить контейнер следующим образом:

Стоит обратить внимание на параметр OLLAMA_BASE_URL, так как Ollama у нас запущена другом узле, нам необходимо указать fqdn имя или IP адрес нашего сервера Ollama, в нашем случае это IP адрес, так же обязательно нужно указать протокол  — http://<IP_адрес_ollama>:11434.

После этого вы можете войти в браузере на страницу http://<IP_адрес_Open-Web-UI>:3000 и пройти регистрацию в качестве администратора, после чего можно начинать использовать языковые модели и задавать им свои вопросы.

Первый запуск Open Web-UI

Первый запуск Open Web-UI

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

Касательно моделей, я пробовал работать с моделями llama3:8b и mistral:7b, из личных наблюдений, mistral лучше поддерживает русский язык. На CPU отвечают достаточно быстро эти модели, попробовал модель codestral:22b, вот тут уже сложнее идут ответы и по хорошему нужна видеокарта.

Поделиться

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

(Required)