Ihr eigenes Vicuna unter Linux
Dieser Artikel führt Sie durch den Prozess der Bereitstellung einer einfachen LLaMA-Alternative auf einem LeaderGPU-Server. Zu diesem Zweck werden wir das FastChat-Projekt und das frei verfügbare Vicuna-Modell verwenden.
Vorinstallation
Bereiten wir die Installation von FastChat vor, indem wir das Paket-Cache-Repository aktualisieren:
sudo apt update && sudo apt -y upgrade
Installieren Sie die Nvidia-Treiber automatisch mit dem folgenden Befehl:
sudo ubuntu-drivers autoinstall
Sie können diese Treiber auch manuell mit unserer Schritt-für-Schritt-Anleitung installieren. Starten Sie dann den Server neu:
sudo shutdown -r now
Der nächste Schritt ist die Installation von PIP (Package Installer for Python):
sudo apt install python3-pip
FastChat installieren
Von PyPi
Es gibt zwei Möglichkeiten, FastChat zu installieren. Sie können es direkt von PyPi aus installieren:
pip3 install "fschat[model_worker,webui]"
Von GitHub
Alternativ können Sie das FastChat-Repository von GitHub klonen und es installieren:
git clone https://github.com/lm-sys/FastChat.git
cd FastChat
Vergessen Sie nicht, PIP zu aktualisieren, bevor Sie fortfahren:
pip3 install --upgrade pip
pip3 install -e ".[model_worker,webui]"
FastChat ausführen
Erster Start
Um einen erfolgreichen ersten Start zu gewährleisten, empfiehlt es sich, FastChat manuell direkt von der Kommandozeile aus aufzurufen:
python3 -m fastchat.serve.cli --model-path lmsys/vicuna-7b-v1.5
Dabei wird automatisch das gewünschte Modell, das mit dem Parameter --model-path angegeben werden muss, abgerufen und heruntergeladen. Die 7b steht für ein Modell mit 7 Milliarden Parametern. Dies ist das leichteste Modell, das für GPUs mit 16 GB Videospeicher geeignet ist. Links zu Modellen mit einer größeren Anzahl von Parametern finden Sie in der Readme-Datei des Projekts.
Nun haben Sie die Möglichkeit, direkt in der Befehlszeilenschnittstelle mit dem Chatbot zu kommunizieren oder eine Webschnittstelle einzurichten. Es enthält drei Komponenten:
- Controller
- Arbeiter
- Gradio-Webserver
Dienste einrichten
Lassen Sie uns jede Komponente in einen separaten systemd-Dienst umwandeln. Erstellen Sie 3 separate Dateien mit dem folgenden Inhalt:
sudo nano /etc/systemd/system/vicuna-controller.service
[Unit]
Description=Vicuna controller service
[Service]
User=usergpu
WorkingDirectory=/home/usergpu
ExecStart=python3 -m fastchat.serve.controller
Restart=always
[Install]
WantedBy=multi-user.target
sudo nano /etc/systemd/system/vicuna-worker.service
[Unit]
Description=Vicuna worker service
[Service]
User=usergpu
WorkingDirectory=/home/usergpu
ExecStart=python3 -m fastchat.serve.model_worker --model-path lmsys/vicuna-7b-v1.5
Restart=always
[Install]
WantedBy=multi-user.target
sudo nano /etc/systemd/system/vicuna-webserver.service
[Unit]
Description=Vicuna web server
[Service]
User=usergpu
WorkingDirectory=/home/usergpu
ExecStart=python3 -m fastchat.serve.gradio_web_server
Restart=always
[Install]
WantedBy=multi-user.target
Systemd aktualisiert seine Daemon-Datenbank normalerweise während des Systemstarts. Sie können dies jedoch auch manuell mit dem folgenden Befehl tun:
sudo systemctl daemon-reload
Fügen wir nun drei neue Dienste zum Startvorgang hinzu und starten sie sofort mit der Option --now:
sudo systemctl enable vicuna-controller.service --now && sudo systemctl enable vicuna-worker.service --now && sudo systemctl enable vicuna-webserver.service --now
Wenn Sie jedoch versuchen, eine Webschnittstelle unter http://[IP_ADDRESS]:7860 zu öffnen, wird eine völlig unbrauchbare Schnittstelle ohne verfügbare Modelle angezeigt. Um dieses Problem zu beheben, beenden Sie den Webinterface-Dienst:
sudo systemctl stop vicuna-webserver.service
Führen Sie den Webdienst manuell aus:
python3 -m fastchat.serve.gradio_web_server
Hinzufügen einer Authentifizierung
Diese Aktion ruft ein weiteres Skript auf, das das zuvor heruntergeladene Modell in einer Gradio-internen Datenbank registrieren wird. Warten Sie ein paar Sekunden und unterbrechen Sie den Prozess mit der Abkürzung Ctrl + C. Wir werden uns auch um die Sicherheit kümmern und einen einfachen Authentifizierungsmechanismus für den Zugriff auf das Webinterface aktivieren. Öffnen Sie die folgende Datei, wenn Sie FastChat von PyPI installiert haben:
sudo nano /home/usergpu/.local/lib/python3.10/site-packages/fastchat/serve/gradio_web_server.py
oder
sudo nano /home/usergpu/FastChat/fastchat/serve/gradio_web_server.py
Blättern Sie bis zum Ende. Finden Sie diese Zeile:
auth=auth,
Ändern Sie sie, indem Sie einen beliebigen Benutzernamen oder ein beliebiges Passwort eingeben:
auth=(“username”,”password”),
Speichern Sie die Datei und beenden Sie sie mit Ctrl + X. Starten Sie schließlich die Webschnittstelle:
sudo systemctl start vicuna-webserver.service
Öffnen Sie http://[IP_ADDRESS]:7860 in Ihrem Browser und genießen Sie FastChat mit Vicuna:
Siehe auch:
Aktualisiert: 20.01.2025
Veröffentlicht: 17.07.2024