• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Deepseek R1'i Yerel Olarak Çalıştırın: OpenWebUI + Ollama [Homelab]

Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,481
Баллы
155
Günümüzde yerel AI eğitimi ve kullanımı gibi konuların oldukça önem kazandığından önceki yazılarımda bahsetmiştim. Bu rehberde, önceki rehberimizde kurduğunuz

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

üzerinden web arayüzü kullanarak nasıl yerel Deepseek R1 modeli çalıştırabileceğinizi göreceksiniz.

Çalışmayı yapmak için ekran kartı olan bir VM/host ihtiyacı bulunmamaktadır, GPU yerine CPU üzerinden çalışabileceğiniz yerler belirtilmiştir. Eğer CPU ile çalışacaksanız, NVIDIA ile ilgili adımları atlayabilir, doğrudan "Docker Compose ile Konteyner Orkestrasyonu" başlığından devam edebilirsiniz.

Gereksinimler:


Bu kılavuz boyunca standart bir Linux server OS kurulumu yapmış olduğunuzu varsayacağım. Bu rehber özelinde Fedora 41 Server Edition üzerinden ilerlenecektir.

VM Özellikleri


CPU: 4 vCPU
Ekran Kartı: NVIDIA GTX 1050 Tİ
RAM: 8GB
Disk: 64GB
Konuk İşletim Sistemi : Fedora 41 Server Edition

Başlangıç

Adım 1 : Fedora Server Üzerinde Gerekli Araçların Kurulması


Temel olarak Docker Engine ve Docker Compose üzerinden süreçleri ilerleteceksiniz.

Sunucunuza root veya sudoers grubuna üye bir kullanıcı ile "sudo" yetkisi
olan bir kullanıcı ile SSH yapın.

Adım 1.1 : Docker Kurulumu


Docker, uygulamaları ve tüm bağımlılıklarını izole bir şekilde çalıştırmak için kullanılan, hafif ve taşınabilir konteyner teknolojisidir.

Docker'ı sunucunuza kurmanız için Docker CE repolarını sisteminize ekleyin:


sudo dnf -y install dnf-plugins-core
sudo dnf-3 config-manager --add-repo

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



Ardından Docker Engine son sürümünü yükleyin:


sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

İşlem tamamlandıktan sonra Docker servisini başlatın ve aktif hale getirin:


sudo systemctl enable --now docker
Adım 1.2 :Docker'ı Root Olmayan Bir Kullanıcı Olarak Yönetmek


Docker Engine bir TCP bağlantı noktasına değil, bir Unix soketine bağlanır. Varsayılan olarak, Unix soketine sahip olan root kullanıcıdır ve diğer kullanıcılar yalnızca "sudo" kullanarak erişebilir.

Aşağıdaki işlemler ile kullanıcınızı "docker" grubuna ekleyerek kullanıcınıza yetki verebilir, "sudo" kullanmadan docker kullanabilirsiniz.

*UYARI ! * Bu grup root seviyesinde kullanıcınızı yetkilendirebilir. Sistem güvenliğinizi nasıl etkilediğini öğrenmek istiyorsanız,

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

inceleyin.

Aşağıdaki komut ile docker grubunu oluşturun:


sudo groupadd docker

Ardından kullanıcınızı gruba ekleyin:


sudo usermod -aG docker $USER

Oturumunuzu kapatıp açtıktan sonra değişiklikler etkili olacaktır, aşağıdaki komutu kullanarak da aktive edebilirsiniz:


newgrp docker

Ardından aşağıdaki komut ile Docker'ın başarı ile kurulduğunu kontrol edin:


docker run hello-world

Aşağıdaki gibi bir çıktı vermelidir:


fserver@localhost:~$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
e6590344b1a5: Pull complete
Digest: sha256:c41088499908a59aae84b0a49c70e86f4731e588a737f1637e73c8c09d995654
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



For more examples and ideas, visit:

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.


Adım 2 : SELinux'un Kapatılması


SELinux (Security-Enhanced Linux), Linux sistemlerinde erişim kontrolünü daha sıkı ve ayrıntılı hale getirmek için kullanılan, zorunlu erişim kontrolü (MAC) sağlayan bir güvenlik modülüdür. Bazı sağıtımlarda AppArmor isimli sistem de benzer görevi üstlenebilir.

NVIDIA ekran kartını containerlere aktarma konusunda sorunlu bir süreç yaşamamak adına test ortamımızda geçici olarak kapatacağız.

Aşağıdaki komutu kullanarak SELinux yapılandırma dosyasına erişin:


sudo vi /etc/selinux/config

Ardından aşağdaki satırı;


SELINUX=enforcing

Bu şekilde değiştirin;


SELINUX=disabled

Ardından sunucunuzu yeniden başlatın:


sudo reboot now

Bu komut ile kontrol edin:


fserver@localhost:~$ sestatus
SELinux status: disabled
NVIDIA Container Toolkit


NVIDIA Container Toolkit, kullanıcıların GPU hızlandırmalı container oluşturmasına ve çalıştırmasına olanak tanıyan bir kütüphaneler bütünüdür.

Adım 1 : NVIDIA Container Toolkit Yüklenmesi


DNF repolarını yapılandırın:


curl -s -L

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

| \
sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo

Ardından NVIDIA Container Toolkit paketlerini yükleyin:


sudo dnf install -y nvidia-container-toolkit

Paketler yüklendikten sonra container runtime yapılandırmasını yapın:


sudo nvidia-ctk runtime configure --runtime=docker

Ardından Docker servisinizi restart edin:


sudo systemctl restart docker

Aşağıdaki komut ile işlemleri doğrulayın:


sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

Çıktı aşağıdaki gibi olmalıdır:


Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
0622fac788ed: Pull complete
Digest: sha256:6015f66923d7afbc53558d7ccffd325d43b4e249f41a6e93eef074c9505d2233
estart dockerStatus: Downloaded newer image for ubuntu:latest
Mon May 12 19:01:45 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.144 Driver Version: 570.144 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce GTX 1050 Ti Off | 00000000:01:00.0 Off | N/A |
| 0% 38C P8 N/A / 72W | 11MiB / 4096MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+

Tebrikler, başarı ile containerlerinizde NVIDIA kartınızı çalıştırdınız !

Docker Compose ile Konteyner Orkestrasyonu


Docker Compose, çoklu Docker konteynerini tek bir YAML dosyasıyla tanımlayıp birlikte çalıştırmayı sağlayan bir orkestrasyon aracıdır.

Bu araç ile tüm containerlerimizi ayağa kaldıracağız.

Adım 1 : Docker Compose Geliştirme Ortamını Yapılandırın


Kullanıcımın ev dizininde bir klasör açıyorum ve orada compose için bir YAML oluşturuyorum:


cd
mkdir localDeepseek
cd localDeepseek
touch docker-compose.yaml

Ardından burada containerlerimizi oluşturacağız.

Adım 1.1 : Ollama AI Backend Yapılandırması


Ollama, büyük dil modellerini (LLM) yerel olarak kolayca çalıştırmayı sağlayan, basit komutlarla model indirme ve yönetim imkanı sunan bir araçtır.

docker-compose.yaml dosyasını açın:


vi docker-compose.yaml

Ve Ollama containerini eklemek için dosyanın içini doldurun :

NOT ! YAML dosyası, girinti-çıkıntı duyarlıdır !


version: "3.8"

services:
ollama:
image: ollama/ollama
ports:
- 11434:11434 #ollama varsayılan olarak 11434/TCP kullandığından portları açıyoruz.
command: serve
volumes:
- ollama:/root/.ollama #Ollama modellerini depoladığımız noktayı volume olarak yönlendiriyoruz.
runtime: nvidia # NVIDIA GPU desteği için gerekli,!!! CPU için kaldırın!!!

volumes:
ollama:
Adım 1.2 : OpenWebUI ile Web Arayüzü Yapılandırması


OpenWebUI, kullanıcıların web tarayıcısı üzerinden yapay zeka modellerini yönetmesini ve etkileşimde bulunmasını sağlayan açık kaynaklı bir kullanıcı arayüzüdür.

docker-compose.yaml dosyasını açın ve OpenWebUI ile ilgili satırları ekleyin:


vi docker-compose.yaml

Ve Ollama containerini eklemek için dosyanın içini doldurun, son hali aşağıdaki gibi olmalıdır :


version: "3.8"

services:
ollama:
image: ollama/ollama
ports:
- 11434:11434 #ollama varsayılan olarak 11434/TCP kullandığından portları açıyoruz.
command: serve
volumes:
- ollama:/root/.ollama #Ollama modellerini depoladığımız noktayı volume olarak yönlendiriyoruz.
runtime: nvidia # NVIDIA GPU desteği için gerekli

webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- 8080:8080 # 8080 portundan dışarı açacağız.
environment:
- OLLAMA_BASE_URL=

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

#Docker Compose servis isminden DNS çözer. 11434 açmıştık, bağlantısını yapıyoruz.
volumes:
- open-webui:/app/backend/data #Verilerin kalıcı olması için Volume bağladık
depends_on:
- ollama # Ollama açılmadan webui açılmayacak.

volumes:
ollama:
open-webui:

Ardından dosyanızı kaydedin ve çıkın.

Adım 1.3 : Docker Compose ile Containerlerin Çalıştırılması


Aşağıdaki komut ile çalıştırın:


docker compose up -d

İlk çalıştırdığınızda imajlar ineceğinden internet hızınıza bağlı olarak uzun sürebilir.

Aşağıdaki komut ile healty olmasını bekleyin -unhealthy durumda başlayabilir, biraz bekleyin.-(up time 2 dk bulabiliyor):


watch -n .1 docker ps -a

Çıktı aşağıdaki gibi olmalıdır:


CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b747790b7431 ghcr.io/open-webui/open-webui:main "bash start.sh" 8 minutes ago Up 7 minutes (healthy) 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp localdeepseek-webui-1
561e6827843e ollama/ollama "/bin/ollama serve" 8 minutes ago Up 7 minutes 0.0.0.0:11434->11434/tcp, [::]:11434->11434/tcp localdeepseek-ollama-1

Ardından tarayıcınıza sunucuzun IP adresinden gidin:


http://<serverIP>:8080

Karşılama ekranında yönetici hesabınızı oluşturun ve ana ekrana gelin:


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



Tebrikler, web arayüzüne bağlandınız !

Deepseek R1 İndirilmesi ve Kullanımı


Çeşitli Deepseek modellerine Ollama sayfasından ulaşabilirsiniz.

DeepSeek-R1:1.5B, DeepSeek tarafından geliştirilen ve yaklaşık 1.5 milyar parametreye sahip, açık kaynaklı, küçük boyutlu bir büyük dil modelidir. Biz de hafif olması için rehberberimizde bu modeli kullanacağız.

Adım 1 : Docker Exec İle Ollama Üzerinden Modeli İndirin


Aşağıdaki komut ile ollama container ID öğrenin:


docker ps -a

Çıktıdaki Container ID ile aşağıdaki komutu çalıştırın:


docker exec <containerID> ollama run deepseek-r1:1.5b

Model , 1.1 GB olduğu için internet hızınıza bağlı olarak zaman alabilir.

Adım 2 : WebUI Üzerinden Modeli Kullanın ve GPU'yu Kontrol Edin


Web arayüzüne geri dönün ve sayfayı yenileyin. Sol üstte modeli göreceksiniz:


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



Fedora Server üzerinde aşağıdaki komutu girin:


watch -n .1 nvidia-smi

Ardından bir prompt girin:


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



Ve komut penceresinden NVIDIA ekran kartının kullanıldığını doğrulayın:


Every 0.1s: nvidia-smi localhost.localdomain: Mon May 12 23:07:04 2025
Mon May 12 23:07:04 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.144 Driver Version: 570.144 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce GTX 1050 Ti Off | 00000000:01:00.0 Off | N/A |
| 0% 45C P8 N/A / 72W | 1537MiB / 4096MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 70689 C /usr/bin/ollama 1524MiB |
+-----------------------------------------------------------------------------------------+

*Tebrikler, Deepseek R1'i yerel olarak çalıştırdınız !
*


Sonuç


Rehber boyunca Proxmox üzerinde GPU Passthrough altyapısına uygun hale getirilmiş bir VM üzerinde Deepseek R1'i NVIDIA GPU ile yerel olarak çalıştırma adımlarını ele aldık.

Sonraki yazılarımda OpenWebUI ve Cloudflare Tunnel ile dışarıdan erişim ile ilgili rehberimi genişleteceğim, kaçırmak istemiyorsanız takipte kalın.


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу