Zu sein, Beginnend mit lokaler KI

Seit einigen Monaten bastele ich an einer lokalen und Open-Source-KI; und ich wollte Ihnen in einer Reihe von Beiträgen einige seiner Möglichkeiten in unserem täglichen Leben vorstellen.. Aber in diesem ersten Dokument werden wir sehen, wie wir es einrichten können und einige grundlegende Vorstellungen von seinen Möglichkeiten..

 

die erste, Wenn Sie so denken, erzähle ich Ihnen, warum ich es derzeit verwende, damit es Ihnen vielleicht eine Idee gibt.; vorerst, ausschließlich zur Textgenerierung, kann arm sein, aber es ist eine sehr weite Welt. Dies deckt den Erhalt einer Benachrichtigung oder eines Warnsystems ab, Dadurch wird die Warnung menschlicher gestaltet oder es kann vorgeschlagen werden, wo mit der Lösung begonnen werden kann.. Um regelmäßig E-Mails zu versenden, E-Mails, die meine Organisation täglich verschickt, monatlich… Nun, es gibt ihnen eine weitere Note, füttert sie mit bestimmten Daten und macht sie sehr real. Auch für das Hausautomationssystem, ermöglicht es mir, Gespräche mit Home zu führen, alarmiert mich, mit der Stimme, verschiedene Phrasen…

vorerst, ich sagte:, Text zu generieren; aber die Möglichkeiten sind vielfältig, B. die Anbindung an Datenbanken, und die es uns ermöglicht, Abfragen in natürlicher Sprache durchzuführen. Oder die Möglichkeit, Gespräche und Fragen zu einem Dokument zu starten, das wir an die KI gesendet haben, oder ein Bild und beschreiben Sie uns, was Sie sehen… Im gesamten Dokument werde ich einige einfache Beispiele nennen, damit etwas Angenehmes getan werden kann..

 

 

die zweite, gut, wie heißt das… Wie Sie sich vorstellen können, gibt es viele Optionen und Möglichkeiten., Ich werde mit Ihnen darüber reden Zu sein (Open-Source-Bibliothek für KI-Modelle und -Anwendungen). Ollama wird uns die Nutzung von LLM ermöglichen (Großes Sprachmodell), nämlich, Sprachmodelle, die für KI trainiert wurden, Sie können Open Source oder kostenpflichtig sein, wäre 100% offline o nein, schmecken. Je nachdem, welches LLM wir verwenden, benötigen wir natürlich mehr oder weniger Strom., nämlich, Sie verfügen über eine GPU, sodass die Reaktionen sofort erfolgen. Wir können die Ollama-API verwenden, um Fragen aus der Ferne mit anderen Systemen zu stellen, sehr, sehr kraftvoll. Und ich empfehle Sie weiter Öffnen Sie die WebUI wie man die GUI für Ollama anwendet, Mit unserem Browser verfügen wir also über die Schnittstelle, die Sie erwarten, um bequem mit Ihrer KI arbeiten zu können.

 

ich sagte:, Wir benötigen eine GPU, um die bestmögliche Leistung zu erzielen, Dies hängt vom verwendeten LLM und den GB ab, die jedes Modell benötigt., Auf diese Weise erhalten Sie sofort Antworten. Die kompatible Hardware ist recht umfangreich. (NVIDIA, AMD, Apple M1…), Ich verlasse dich Hier ist deine Liste.

 

Ich werde den Artikel in unterteilen:

 

Schnelle Installation von Ollama und Open WebUI unter Windows, Mac o Linux

Si lo que pretendes es probarlo, ya y rápido, esta es la opción, ya que podrás instalar Ollama en tu Linux, Mac o Windows, por si la quieres correr en local, con tu GPU. Iremos a la web de descargas de Ollama, seleccionaremos nuestro SO y nos lo descargamos, Nächster, Next e Instalado.

En Linux nos lo bajaremos e instalaremos de la siguiente manera:

curl -fsSL https://ollama.com/install.sh | Sch
>>> Downloading ollama...
######################################################################## 100,0%##O#-#
>>> Installing ollama to /usr/local/bin...
>>> Creating ollama user...
>>> Adding ollama user to render group...
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
>>> Enabling and starting ollama service...
Created symlink /etc/systemd/system/default.target.wants/ollama.service → /etc/systemd/system/ollama.service.
>>> NVIDIA GPU installed.

 

Und wir können, wenn wir wollen, direkt ein LLM aus der Shell herunterladen und es ausprobieren.:

Ollama Run Mistral
Manifest ziehen
Ziehen e8a35b5937a5... 100% ▕███████████████████████████████████████ ██████████ ████████████████████████████████████████ ████████▏ 4.1 GB
Ziehen 43070e2d4e53... 100% ▕███████████████████████████████████████ ██████████ ████████████████████████████████████████ ████████▏  11 KB
e6836092461f ziehen... 100% ▕███████████████████████████████████████ ██████████ ████████████████████████████████████████ ████████▏   42 B
ziehen ed11eda7790d... 100% ▕███████████████████████████████████████ ██████████ ████████████████████████████████████████ ████████▏   30 B
f9b1e3196ecf ziehen... 100% ▕███████████████████████████████████████ ██████████ ████████████████████████████████████████ ████████▏  483 B
verifying sha256 digest
writing manifest
removing any unused layers
success
>>> hola
 Hola! That means "hello" in Spanish.

 

Si queremos que responda a consultas API deberemos editar el fichero del servicionano /etc/systemd/system/ollama.serviceañadiendo:

Environment="OLLAMA_HOST=0.0.0.0:11434"

 

Y recargamos el servicio:

sudo systemctl daemon-reload
sudo systemctl restart ollama

 

Y si queremos tener la GUI para gestionar nuestra IA desde el navegador deberemos montar Open WebUI, lo más rápido y cómodo en un contenedor de Docker:

Git-Klon https://github.com/open-webui/open-webui.git
cd open-webui/
sudo docker compose up -d

 

Y ya podremos abrir el navegador atacando a la IP de la máquina al puerto 3000tcp (standardmäßig).

 

 

 

Ollama und Open WebUI auf einer Linux-VM in Proxmox mit Docker installieren

Y esta parte os cuento el porquéMi idea es tener una máquina para IA centralizada, eine Maschine, auf die verschiedene Systeme verweisen können, um unterschiedliche Abfragen zu stellen, für sie, muss eine virtuelle Maschine sein (wegen der Vorteile, Hochverfügbarkeit, Sicherungskopie, Schnappschüsse…), eine VM, an die wir die Grafikkarte weiterleiten und die GPU dafür hat. Hierfür verwenden wir Proxmox, (Eines Tages sprachen wir über den Selbstmord von VMware) und die VM wird ein Ubuntu-Server sein 24.04. Und da sind wir, Dabei werden VM Ollama und Open WebUI in Docker-Containern ausgeführt.

Ich überlasse Ihnen die Schritte, die ich zum Passthrough der Grafikkarte in Proxmox befolgt habe, Ich weiß nicht, ob sie am korrektesten sind, aber es funktioniert perfekt.

Nach der Installation von Proxmox 8.2, Konfigurieren Sie es minimal, nachdem Sie die Proxmox VE-Postinstallation der Proxmox VE-Hilfsskripte ausgeführt haben, Wir werden Proxmox anweisen, diese PCIe-Grafik nicht zu verwenden, Wir beginnen mit der Bearbeitung von GRUB ‚nano /etc/default/grub‘ und wir ändern die folgende Zeile:

#GRUB_CMDLINE_LINUX_DEFAULT="ruhig"
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt vfio_iommu_type1 initcall_blacklist=sysfb_init"
INTEL --> GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
AMD --> GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"

 

Y ejecutamos

update-grub

 

Añadimos los siguientes módulos connano /etc/modules‘:

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

 

Bloqueamos los drivers connano /etc/modprobe.d/blacklist.conf‘:

blacklist nouveau
blacklist nvidia
blacklist nvidia*
blacklist radeon

 

Apuntamos los IDs con: ‚spci -n -s 01:00‘, como podréis ver, si hay algún curioso, en mi caso es una NVIDIA RTX 3060 12GB conectada al PCIe 1.

01:00.0 0300: 10von:2504 (rev a1)
01:00.1 0403: 10von:228e (rev a1)

 

Wir bearbeiten ‚nano /etc/modprobe.d/vfio.conf

options kvm ignore_msrs=1x
options vfio-pci ids=10de:2504,10von:228e disable_vga=1

 

Wir bearbeiten ‚nano /etc/modprobe.d/kvm.conf

options kvm ignore_msrs=1

 

Y finalmente editamosnano /etc/modprobe.d/iommu_unsafe_interrupts.conf

options vfio_iommu_type1 allow_unsafe_interrupts=1"

 

Ich habe euch bereits gesagt, dass ich wahrscheinlich noch einige Schritte für den Grafikkarten-Passthrough in Proxmox habe, Aber nach dem Neustart des Hosts werden Sie sehen, wie Sie die GPU perfekt zu einer VM hinzufügen können.

 

Der nächste Schritt, wird darin bestehen, die VM in Proxmox zu erstellen, Ich hinterlasse Ihnen einige Dinge, die ich berücksichtigt habe; Tab ‚System‘ wir müssen angeben ‚q35‘ ähnlicher Maschinentyp, und in den BIOS-Optionen wählen ‚OVMF (UEFI)‘,

 

In der Registerkarte ‚Erinnerung‘ Wir müssen das Häkchen entfernen ‚Ballongerät‘

 

In den CPU-Optionen, Bearbeiten der Prozessoren, in Art, Wir müssen mindestens x86-64-v3 wählen.

 

 

Sobald die VM erstellt ist, können wir ihr ein PCI-Gerät hinzufügen, Wir bearbeiten die Hardware des MV und „Hinzufügen“ > „PCI Device“. Marcamos Alle Funktionen, ROM-Leiste, Primäre GPU und PCI-Express.
Natürlich werden wir an diese Grafikkarte einen Monitor anschließen, um das Betriebssystem zu installieren (Ubuntu-Server 24.04) und es auf dem Bildschirm sehen. Tendremos que hacer también passthrough de un teclado/ratón USB para hacer la instalación.

 

A continuación podremos instalar el SO en la MV, deberemos tener en cuenta de instalar los drivers, en Ubuntu Desktop creo que se instalan durante la instalación y en el Server también marcando un ‚Tick‘, andernfalls, de todas formas podremos instalarlos:

sudo ubuntu-drivers install
sudo apt-get update
sudo apt-get upgrade
sudo reboot

 

Tras reiniciar la MV vemos si ha cargado correctamente concat /proc/driver/nvidia/version

NVRM version: NVIDIA UNIX x86_64 Kernel Module 535.171.04 Tue Mar 19 20:30:00 koordinierte Weltzeit 2024
GCC version:

 

Continuaríamos con la instalación de Docker (offizielle doc) en la MV Ubuntu:

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && Echo "$VERSION_CODENAME") download.docker.com/linux/ubuntu" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 

Debemos instalar ahora el NVIDIA Container Toolkit (offizielle doc) y lo habilitamos para Docker:

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update
sudo apt -y install nvidia-container-toolkit
sudo systemctl restart docker
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

 

Y ya es hora de desplegar los contenedores de Ollama y Open WebUI, für sie:

Git-Klon https://github.com/open-webui/open-webui.git
cd open-webui/

 

Y le añadimos estos cambios al contenedor de Ollama, para que pueda usar la gráfica y nos abra el puerto para las APIs (nano docker-compose.yaml):

Laufzeit: nvidia
environment:
  - NVIDIA_VISIBLE_DEVICES=all
ports:
  - 11434:11434

 

Y finalmente descargamos y arrancamos los contenedores:

sudo docker compose up -d

 

Y ya podremos abrir el navegador atacando a la IP de la máquina virtual, al puerto 3000tcp (standardmäßig).

 

Zugriff über Open Web UI und erste Schritte

La primera vez que accedamos a Open WebUI podremos crearnos una cuenta al pulsar en „Melden Sie sich an“, Wir erstellen ein Konto, indem wir einfach unseren Namen eingeben, E-Mail und Passwort, klicken Sie auf „Ein Konto erstellen“.

 

Und von hier aus können wir interagieren, Wie wir sehen, können wir neue Chats erstellen und fragen, was wir brauchen., 

 

Das erste und wichtigste wird sein, die großen Sprachmodelle herunterzuladen (LLM), von ‚Konfiguration‘ > ‚Modelle‘ wir können sie direkt von Ollama.com extrahieren, wir schreiben zum Beispiel Mistral:7b, Obwohl ich Ihnen natürlich empfehlen werde, das zu besuchen Top am häufigsten genutztes LLM, Es reicht aus, das Modell zu schreiben, das uns interessiert, und wir klicken auf das Download-Symbol. Ich empfehle dir (heute) Lama3, Es ist ein echter Pass.

 

Wir warten, während es heruntergeladen wird… und natürlich können wir so viele runtergehen, wie wir wollen.

 

Und indem wir einen neuen Chat erstellen, können wir jedes heruntergeladene Modell auswählen, um mit der Interaktion zu beginnen.

 

und nichts, wir fingen an herumzualbern, Wir können Ihnen jede Frage stellen….

 

Bilderkennung

Wenn wir beispielsweise das Llama2 LLM verwenden, können wir Ihnen in einem Gespräch oder per API ein Bild senden und Sie bitten, es uns zu beschreiben., ein tolles Beispiel mit einem Grafana-Snip… Ich werde Ihnen keine weiteren Hinweise geben…

Interactuando con documentos

Um ein weiteres schnelles Beispiel seiner Möglichkeiten zu sehen… von ‚Unterlagen‘ Wir können jedes Dokument hochladen und dann Gespräche über seinen Inhalt führen. Sie können ein Buch hochladen und ihm Fragen oder Ratschläge stellen, gehen, Es kommt darauf an, worum es in dem Buch geht.… Oder dieses einfache Beispiel, dass ich ein technisches Dokument einer Active Directory-Migration hochlade, und…

Und dann können wir Sie im Chat zu einem bestimmten Dokument befragen, indem wir das eingeben # und Auswahl des Tags, das wir dem Dokument hinzugefügt haben. ehrfürchtige…

mehr

Und gut zum Fertigstellen des Dokuments., Wir werden Dinge in der Zukunft sehen, es sieht wirklich gut aus, nicht nur das, was wir gesehen haben, wenn nicht alle Möglichkeiten zum Beispiel mit der API und der Möglichkeit, jedes System mit unserer KI zu integrieren. Sichere KI, lokal, frei, Ollama ist gekommen, um zu bleiben!

In zukünftigen Beiträgen, Dank dieser API können wir Centreon-Benachrichtigungen integrieren, de Elasticsearch, unseres Smart Homes mit Home Assistant, Und ja, rufen Sie sie an und stellen Sie ihr Fragen, Steuern Sie jedes Heimgerät auf intuitive Weise, Erhalten Sie sehr merkwürdige Benachrichtigungen und eine lange usw…

Wenn wir beispielsweise mit Curl eine Beispielabfrage durchführen möchten:

locken http://localhost:11434/api/generate -d '{ "Modell-": "Mistral:7b", "prompt": "Kennen Sie Athletic Bilbao??", "Strom": falsch }'
    {"Modell-":"Mistral:7b","hergestellt in":"2024-03-29T12:38:07.663941281mit","Antwort":" ja, Ich kenne den Athletic Club de Bilbao, ist ein spanischer Profifußballverein mit Sitz in der Stadt Bilbao, Baskenland. Es wurde gegründet am 14 Oktober 1894 und spielt derzeit in der LaLiga, die erste spanische Fußballliga. Er ist bekannt für seinen philosophischen Spielstil., die der Entwicklung von Aufstiegsspielern aus den unteren Kategorien des Vereins Priorität einräumt. Ihr Stadion ist das San Mamés."

Oder Sie können Parameter eingeben, um das Modell auszuwählen, die Temperatur so, dass es mehr oder weniger halluziniert, Längengrade… Wir werden weitere Beispiele sehen:

locken http://XXX.XXX.XXX.XXX:11434/api/generate -d '{ "Modell-": "Mistral:7b", "prompt": "Kennen Sie Athletic Bilbao??", "Strom": falsch, "Temperatur": 0.3, "maximale Länge": 80}'

gut, Ich mische mich nicht mehr ein, Um einen Eindruck von den Möglichkeiten zu bekommen, denke ich, dass es sich lohnt 🙂 Wir werden noch mehr Dinge sehen und erkunden. Und die Wahrheit ist, dass ich einige Dinge weglassen muss, weil ich sie in meinem Unternehmen verwende und es sich um Differenzwerte handelt, von denen man oft schon weiß, was mit konkurrierenden Lieferanten passiert.…

Ich umarme dich und wünsche dir eine schöne Woche!

Hector Herrero
Letzte Artikel von Hector Herrero (Alle anzeigen)