Как пользоваться Ollama в Linux для начинающих

Травыч

МируМир☮️
Регистрация
01.06.2025
Сообщения
9 151
Реакции
20 449
Баллы
113

Как пользоваться Ollama в Linux для начинающих​


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

Но у такого подхода есть и проблемы. Аппаратные возможности персональных компьютеров довольно ограничены, поэтому возможности моделей, запущенных локально, будут значительно меньше, чем тех, которые доступны в облаке. В этой статье мы рассмотрим что это такое, как это работает, а также как использовать Ollama для запуска моделей искусственного интеллекта локально.

Содержание статьи

Необходимые основы​

Ollama имеет достаточно простой интерфейс командной строки, а загрузить и запустить модель можно выполнив несколько команд. Поэтому начать работать с этим инструментом довольно просто. Реализовано это всё на основе llama.cpp, а модели AI сохранены в формате GGUF (GPT Generated Unified Format), но нам этим заниматься не нужно, так как загрузку моделей и конфигурирование llama.cpp берёт на себя Ollama.

Но для того чтобы понять какие модели можно запускать, а какие нет на вашем компьютере, вам нужно знать некоторые основы. Если очень упростить, модель искусственного интеллекта это огромный набор чисел, расположенных в виде определенной структуры и часто скомбинированных в большое количество слоев. Количество этих чисел и есть количество параметров модели.

Когда мы выполняем запрос к модели, наш запрос также конвертируется в числа, и эти числа умножаются на числа, которые были в модели. Конечно, это не простая операция, и всё это происходит с учётом структуры связей в модели и её слоёв, после чего мы получаем результат. Это очень упрощённо и, возможно, не совсем точно, но отражает в общих чертах происходящий процесс.

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

Размер модели​

Для каждой модели на сайте ollama указывается количество параметров и её размер:

how-to-use-ollama-1-1024x665.png

Конечно, можно загружать в память видеокарты только часть модели, если там не хватает видеопамяти, а все остальное хранить в оперативной памяти. Ollama поддерживает это по умолчанию. Но тогда скорость взаимодействия с моделью падает в десятки раз, так как компьютеру приходится часто обращаться к оперативной памяти и процессору, которые не такие быстрые как видеокарта.

Поэтому разработчики моделей стараются создавать модели различных размеров, например 1b, 4b, 12b, 27b. Здесь b означает миллиард. 12b означает - 12 миллиардов параметров. Если будем использовать для хранения числа с плавающей точкой Float16 (FP16), то в полном размере модель на 12 миллиардов параметров будет занимать 12 000 000 000 * 2 байта = 24 гигабайта. Это максимальная точность, с которой в ollama доступны модели. Учитывая, что нужно еще где-то разместить данные запроса (контекст), то для запуска такой модели нам понадобилась бы видеокарта более чем на 24 гигабайта видеопамяти.

Квантование​

Видеокарты с большим объемом памяти стоят довольно дорого, поэтому была придумана квантизация. Точность чисел, из которых состоит модель, уменьшается. Так сказать, обрезается хвост, и число, которое занимало 2 байта, начинает занимать байт или даже половину. Это, конечно, влияет на качество работы модели, и чем более квантизована модель - тем хуже она будет работать, но тем меньше памяти будет требовать. Вот кванты, которые поддерживаются ollama:

Конечно, существуют различные модификации методов квантизации, которые позволяют улучшить качество работы моделей при той же экономии памяти, но я не буду здесь о них писать. При выборе модели на сайте Ollama можно выбрать квант в выпадающем списке:

how-to-use-ollama-2-1024x665.png

Оптимально использовать fp16 для production, а для тестов и всего остального можно пользоваться q4. Например, модель gemma3 на 12 миллиардов параметров занимает 24 Гб, а в Q4 уже 8.8 Гб, что означает возможность её запуска на RTX 3060, имеющей 12 Гб видеопамяти.

Этого будет достаточно для того чтобы понять какую модель можно загружать, а теперь давайте перейдем непосредственно к установке Ollama.

Установка Ollama​

Для установки Ollama достаточно открыть сайт https://ollama.com/ и нажать кнопку Download. Откроется страница, на которой будет команда установки для любого дистрибутива Linux. Фактически это curl команда, которая загрузит и запустит скрипт установки ollama в вашей системе. На момент написания статьи команда выглядит так:

curl -fsSL https://ollama.com/install.sh | sh
how-to-use-ollama-3-1024x665.png

После завершения выполнения сценария установки можно проверить что служба ollama запущена:

sudo systemctl status ollama
how-to-use-ollama-4-1024x665.png

Как использовать ollama​

После этого можно переходить к использованию. Прежде всего давайте рассмотрим как загрузить модель.

Загрузка модели​

Модель нужно выбрать на сайте Ollama с помощью поиска. Например gemma3:

how-to-use-ollama-5-1024x665.png

Далее в выпадающем списке выбираем количество параметров и квантизацию модели, например 12b, по умолчанию обычно используется квантизация Q4_K_M:

how-to-use-ollama-6-1024x665.png

Чтобы посмотреть все доступные варианты нужно перейти на вкладку tags:

how-to-use-ollama-7-1024x665.png

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

how-to-use-ollama-8-1024x665.png

И справа напротив выпадающего списка видим команду для запуска модели, в которой указано её название:

how-to-use-ollama-9-1024x665.png

Можно сразу же выполнить предложенную команду, и она не только загрузит её, но и запустит чат с ней в терминале. Или же можно просто загрузить модель с помощью команды pull:

ollama pull gemma3:12b
how-to-use-ollama-10-1024x665.png

Также можно полностью указать квант, который берем из названия тега:

ollama pull gemma3:12b-it-q4_K_M

Запуск модели в терминале​

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

ollama list
Чат с нужной моделью можно запустить в терминале с помощью той же команды run:

ollama run gemma3:12b
Здесь можно задавать вопросы для общения с моделью. Например: Кто создал ядро Linux:

how-to-use-ollama-11-1024x665.png

Ollama может загружать модели как в видеопамять, так и выгружать часть слоев в оперативную память, если видеопамяти не хватает. Это всё происходит без вашего участия. Если вы используете видеокарту Nvidia, то для проверки использования видеопамяти можно воспользоваться утилитой nvidia_smi:

nvidia_smi
how-to-use-ollama-12-1024x665.png

Здесь можно видеть, что чуть больше 8 Гб видеопамяти использует Ollama, а значит модель загружена в видеопамять.

Статистика использования​

При использовании искусственного интеллекта размер запросов (промптов), которые вы передаете в модель, а также ответов, которые получаете, измеряется не в количестве символов, а в количестве токенов. Обычно на слово приходится около полутора-двух токенов. Вы можете включить вывод статистики в чате с помощью команды:

/set verbose
В статистике можно увидеть не только количество полученных и сгенерированных токенов, но также скорость генерации, количество токенов в секунду в поле eval rate:

how-to-use-ollama-13-1024x665.png
 
Назад
Верх