Запуск нейросети DeepSeek R-1 на OpenScaler

Запуск нейросети DeepSeek R-1 на OpenScaler

Часть I – Использование Ollama

На сегодняшний день технологии искусственного интеллекта все больше проникают в нашу не только рабочую (в виде множества ИИ агентов интегрированных во все что только можно, практически в весь инструментарий – от IDE разработчика ПО и заканчивая “умным” ассистентом в ВКС решениях) но и повседневную жизнь, в виде голосовых помощников, финансовых ассистентов в приложениях банков, умных колонок и прочих атрибутов техномагии. Хорошо это или плохо, каждый волен решать сам но в одном можно быть уверенным, что данные технологии уже прочно вошли в нашу жизнь. Большие языковые модели (LLM) такие как DeepSeek, активно применяются в бизнесе, науке, образовании и даже в повседневном общении. Их развитие открывает новые возможности для оптимизации процессов, повышения эффективности работы и создания инновационных продуктов. В условиях стремительного роста цифровых технологий каждая компания и каждый пользователь стремятся использовать самые передовые решения для достижения успеха.

            Во многом развитие и применение ИИ функционала внутри операционной системы является одним из ключевых векторов развития китайского свободного программного обеспечения разрабатываемого под эгидой Open Atom Foundation. В частности разработчики нашего родительского дистрибутива openEuler разработали стек технологий Intelligent Boom ориентированный на работу с ИИ решениями, о нем подробнее можно прочитать на сайте разработчиков по ссылке https://www.openeuler.org/en/projects/intelligence/

Мы в свою очередь, стараемся не отставать от тренда, те кто следят за нашими публикациями уже успели ознакомиться с нашими опытами по запуску и работе с моделью Qwen опубликованными в начале прошлого года – запуском модели и использованием фреймворка Ollama а также с использованием Kserve а также запуска бота генерации команд ShellOracle

На сей раз мы предлагаем вам обратить внимание на последнюю на момент написания статьи версию языковой модели DeepSeek R-1, следующие несколько статей будут посвящены различным вариантам ее локального запуска на нашем дистрибутиве OpenScaler версии 24.03 SP2.

Языковая модель DeepSeek R-1

Согласно официальному сайту разработчиков:

Проект DeepSeek зародился в условиях стремительного развития китайской IT-индустрии и необходимости создания конкурентоспособной нейросети, способной работать на мировом уровне. Основной идеей разработчиков было создание инструмента, который бы не только конкурировал с западными аналогами, но и предлагал уникальные решения для анализа данных. Цель проекта – предоставить возможность пользователям получать качественную и оперативную аналитику, автоматизировать рутинные задачи и улучшить процесс принятия решений в различных областях. За созданием DeepSeek стоит сплочённая команда высококвалифицированных специалистов из Китая, объединяющих опыт в области машинного обучения, программирования и анализа больших данных. Используемые технологии включают глубокое обучение, нейронные сети, алгоритмы обработки естественного языка и современные вычислительные архитектуры. Такой междисциплинарный подход позволил разработчикам объединить лучшие практики и инновационные решения для создания эффективного инструмента.

DeepSeek R1 – это новейшая версия китайской нейросети, сочетающая мощные алгоритмы машинного обучения и удобный интерфейс. Эта платформа обеспечивает высокую скорость обработки данных и точное распознавание паттернов, что делает DeepSeek R1 идеальным решением для аналитики, создания чат-ботов и автоматизации бизнес-процессов. Благодаря интеграции с DeepSeek API, разработчики могут легко внедрять функционал DeepSeek R1 в свои проекты. Нейросеть поддерживается на русском языке, что позволяет использовать DeepSeek R1 как для профессиональных задач, так и для начинающих пользователей.

Запуск DeekSeek R-1 на основе фреймворка Ollama

В принципе, когда речь заходит о применении LLM все вспоминают общедоступные облачные сервисы или внешние модели доступные для интеграции по API. Для большинства пользователей этого вполне достаточно но зачастую могут быть факторы явно мешающие применению “внешних” сервисов – к примеру, это могут быть вопросы приватности и безопасности передаваемых данных, скорость сетевого соединения или общий интерес к тому как это работает “внутри” и желание разобраться.

В качестве наиболее простого варианта локального запуска модели мы предлагаем воспользоваться фреймворком Ollama. Ollama предоставляет простой интерфейс как через командную строку, так и через API, что делает его удобным как для разработчиков, так и для тех, кто только начинает знакомство с LLM. Фреймворк позволяет запускать LLM локально на вашем компьютере, устраняя необходимость отправки данных на сторонние серверы, что обеспечивает конфиденциальность и безопасность данных.

В качестве операционной системы мы будем использовать OpenScaler 24.03 LTS SP2 и сервер Huawei Atlas 2288H V5 со следующими характеристиками:

  • 2x CPU – Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz
  • RAM – 256GB

Согласно официальным требованиям, в зависимости от типа выбранной модели технические требования следующие:

Версия модели

Процессор

Оперативная память

Дисковое пространство

DeepSeek-R1-Distill-Qwen-1.5B

>=4 ядра (рекомендуется 8)

>=16ГБ

>=60ГБ

DeepSeek-R1-Distill-Qwen-7B

>= 8 ядер (рекомендуется 16)

>=16ГБ

>=60ГБ

DeepSeek-R1-Distill-Llama-8B

>=16 ядер (рекомендуется 32)

>=16ГБ

>=60ГБ

Автоматический метод установки

Самый простой с точки зрения выполняемых шагов путь установки. Пройдем его на основе выбранной нами версии модели DeepSeek-R1-Distill-Qwen-7B.

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

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

 

Picture1

 Запустим модель используя команду:

ollama run deepseek-r1:7b

Picture2

По завершении процесса модель будет запущена и предоставлен CLI интерфейс взаимодействия с моделью со строкой приглашения “Send Message”.

 

Узнать о возможностях интерфейса можно введя команду /?

 

Picture3

Самостоятельная установка

Если предпочитаете ручной метод установки то предлагается выполнить следующие шаги:

Загрузите фреймворк Ollama требуемой версии

Для X86 архитектуры выполните команду:

wget https://github.com/ollama/ollama/releases/download/v0.5.7/ollama-linux-amd64.tgz

Или для архитектуры ARM:

wget https://github.com/ollama/ollama/releases/download/v0.5.7/ollama-linux-arm64.tgz

Распакуйте загруженный архив в каталог /usr используя следующую команду:

tar -xzvf ollama-linux-amd64.tgz -C /usr/

Далее в зависимости от возможностей вашего аппаратного обеспечения необходимо самостоятельно скачать требуемую версию модели c сайта https://www.modelscope.cn/models в нашем случае это DeepSeek-R1-Distill-Qwen-7B:

wget https://www.modelscope.cn/models/unsloth/DeepSeek-R1-Distill-Qwen-7B-GGUF/resolve/master/DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf

Следующим шагом необходимо самостоятельно создать сервис systemd для запуска Ollama:

cat <<EOF | tee /etc/systemd/system/ollama.service >/dev/null

[Unit]

Description=Ollama Service

After=network-online.target

[Service]

ExecStart=/usr/bin/ollama serve

User=ollama

Group=ollama

Restart=always

RestartSec=3

Environment=”PATH=\$PATH”

[Install]

WantedBy=default.target

EOF

Перечитаем конфигурацию сервисов и запустим вновь созданный сервис Ollama:

systemctl daemon-reload

systemctl enable ollama –now

Следующим шагом необходимо создать Modelfile описывающий параметры модели:

cat <<EOF | tee ./Modelfile >/dev/null

FROM ./DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf

TEMPLATE “””{{- if .System }}{{ .System }}{{ end }}

{{- range $i, $_ := .Messages }}

{{- $last := eq (len (slice $.Messages $i)) 1}}

{{- if eq .Role “user” }}< | User | >{{ .Content }}

{{- else if eq .Role “assistant” }}< | Assistant | >{{ .Content }}{{- if not $last }}< | end_of_sentence | >{{- end }}

{{- end }}

{{- if and $last (ne .Role “assistant”) }}< | Assistant | >{{- end }}

{{- end }}”””

SYSTEM “”

PARAMETER temperature 0.7

PARAMETER top_p 0.7

PARAMETER top_k 30

PARAMETER num_ctx 4096

EOF

И в заключении создадим инстанс модели и запустим его:

ollama create -f ./Modelfile deepseek-r1:7b

ollama run deepseek-r1:7b