Führen Sie mehrere LLMs lokal mit Lama-Swap ausFühren Sie mehrere LLMs lokal mit Lama-Swap aus
Bild von Autor | Ideogramm

Das Ausführen mehrerer großer Sprachmodelle kann nützlich sein, sei es zum Vergleich von Modellausgaben, zum Einrichten eines Fallbacks für den Fall, dass dies fehlschlägt, oder das Anpassen des Verhaltens (z. B. die Verwendung eines Modells für die Codierung und ein anderes für technisches Schreiben). So verwenden wir in der Praxis oft LLMs. Es gibt Apps wie Poe.com Das bietet diese Artwork von Setup. Es ist eine einzige Plattform, auf der Sie mehrere LLMs ausführen können. Aber was ist, wenn Sie alles vor Ort tun, API -Kosten sparen und Ihre Daten privat halten möchten?

Hier taucht das eigentliche Downside auf. Wenn Sie dies einrichten, bedeutet dies normalerweise, verschiedene Ports zu jonglieren, separate Prozesse ausführen und manuell zwischen ihnen wechseln. Nicht ideally suited.

Das ist genau der Schmerz Lama-Swap löst. Es handelt sich um einen Open-Supply-Proxy-Server, der superleicht (nur ein einzelner Binärdatum) ist, und können Sie leicht zwischen mehreren lokalen LLMs wechseln. In einfachen Worten hört es für API-Anrufe im OpenAI-Stil auf Ihrem Laptop zu und startet automatisch den richtigen Modellserver basierend auf dem von Ihnen angeforderten Modell. Lassen Sie uns aufschlüsseln, wie es funktioniert und ein Schritt-für-Schritt-Setup durchläuft, um es auf Ihrem lokalen Laptop zum Laufen zu bringen.

# Wie Lama-Swap funktioniert

Konzeptionell sitzt LLAMA-SWAP als Sensible Router vor Ihren LLM-Servern. Wenn eine API -Anfrage eintrifft (z. B. a POST /v1/chat/completions Rufen Sie an), es schaut sich das an "mannequin" Feld in der JSON -Nutzlast. Anschließend lädt es den entsprechenden Serverprozess für dieses Modell und schaltet ein anderes Modell bei Bedarf ab. Zum Beispiel, wenn Sie zum ersten Mal das Modell anfordern "A" und dann ein Modell anfordern "B"Lama-Swap stoppt den Server automatisch für „A“ und startet den Server für „B“, sodass jede Anforderung vom richtigen Modell bedient wird. Dieser dynamische Austausch erfolgt clear, sodass die Kunden die erwartete Reaktion sehen, ohne sich über die zugrunde liegenden Prozesse zu sorgen.

Standardmäßig ermöglicht Lama-Swap nur ein Modell gleichzeitig (es entlädt andere beim Wechsel). Mit seiner Gruppenfunktion können Sie dieses Verhalten jedoch ändern. Eine Gruppe kann mehrere Modelle auflisten und ihr Tauschverhalten steuern. Zum Beispiel Einstellung swap: false In einer Gruppe bedeutet alle Gruppenmitglieder zusammen, ohne zu entladen. In der Praxis können Sie eine Gruppe für Schwergewichtsmodelle (jeweils nur eine aktive) und eine andere „parallele“ Gruppe für kleine Modelle verwenden, die Sie gleichzeitig laufen möchten. Auf diese Weise können Sie die volle Kontrolle über die Nutzung der Ressourcen und die Parallelität auf einem einzelnen Server haben.

# Voraussetzungen

Stellen Sie vor dem Begin sicher, dass Ihr System Folgendes hat:

  • Python 3 (> = 3,8): Benötigt für grundlegende Skripten und Werkzeuge.
  • Homebrew (auf macOS): Die Set up von LLM -Laufzeiten erleichtert. Zum Beispiel können Sie die installieren lama.cpp Server mit:

Dies liefert die llama-server Binär für die lokale Internet hosting -Modelle.

  • lama.cpp (llama-server): Der OpenAI-kompatible Server binär (über Homebrew installiert oder aus der Quelle erstellt), das das LLM-Modell tatsächlich ausführt.
  • Umarmt das Gesicht Cli: Zum Herunterladen von Modellen direkt auf Ihre lokale Maschine, ohne sich auf der Web site anzumelden oder Modellseiten manuell zu navigieren. Installieren Sie es mit:
pip set up -U "huggingface_hub(cli)"
  • {Hardware}: Jede moderne CPU wird funktionieren. Für eine schnellere Inferenz ist eine GPU nützlich. (Bei Apple Silicon Macs können Sie auf der CPU laufen oder versuchen Pytorch’s MPS -Backend für unterstützte Modelle. Unter Linux/Home windows mit NVIDIA -GPUs können Sie Docker/CUDA -Container zur Beschleunigung verwenden.)
  • Docker (Non-obligatory): Um die vorgefertigten Docker-Bilder auszuführen. Ich habe mich jedoch für diesen Leitfaden entschieden, da diese Bilder hauptsächlich für X86 (Intel/AMD) -Systeme entwickelt wurden und nicht zuverlässig auf Macs von Apple Silicon (M1/M2) arbeiten. Stattdessen habe ich die Naked-Steel-Installationsmethode verwendet, die direkt auf MacOS ohne Container-Overhead funktioniert.

Zusammenfassend benötigen Sie eine Python -Umgebung und einen lokalen LLM -Server (wie den Server „llama.cpp`). Wir werden diese verwenden, um zwei Beispielmodelle auf einer Maschine zu hosten.

# Schritt-für-Schritt-Anweisungen

// 1. Installieren von Lama-Swap

Laden Sie die neueste Lama-Swap-Veröffentlichung für Ihr Betriebssystem von der herunter GitHub veröffentlicht Seite. Zum Beispiel konnte ich sehen v126 Als letzte Veröffentlichung. Führen Sie die folgenden Befehle aus:

# Step 1: Obtain the proper file
curl -L -o llama-swap.tar.gz 
  https://github.com/mostlygeek/llama-swap/releases/obtain/v126/llama-swap_126_darwin_arm64.tar.gz
Output:
  % Whole    % Obtained % Xferd  Common Pace   Time    Time     Time  Present
                                 Dload  Add   Whole   Spent    Left  Pace
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 3445k  100 3445k    0     0  1283k      0  0:00:02  0:00:02 --:--:-- 5417k

Extrahieren Sie nun die Datei, machen Sie sie ausführbar und testen Sie sie, indem Sie die Model überprüfen:

# Step 2: Extract it
tar -xzf llama-swap.tar.gz

# Step 3: Make it executable
chmod +x llama-swap

# Step 4: Check it
./llama-swap --version
Output:
model: 126 (591a9cdf4d3314fe4b3906e939a17e76402e1655), constructed at 2025-06-16T23:53:50Z

// 2. Herunterladen und Vorbereiten von zwei oder mehr LLMs

Wählen Sie zwei Beispielmodelle zum Ausführen. Wir werden verwenden Qwen2.5-0.5b Und Smollm2-135m (kleine Modelle) von Umarmtes Gesicht. Sie benötigen die Modelldateien (in Gguf oder ähnliches Format) auf Ihrer Maschine. Zum Beispiel mit der umarmenden Gesichts -CLI:

mkdir -p ~/llm-models

huggingface-cli obtain bartowski/SmolLM2-135M-Instruct-GGUF 
  --include "SmolLM2-135M-Instruct-Q4_K_M.gguf" --local-dir ~/llm-models

huggingface-cli obtain bartowski/Qwen2.5-0.5B-Instruct-GGUF 
  --include "Qwen2.5-0.5B-Instruct-Q4_K_M.gguf" --local-dir ~/llm-models

Dies wird:

  • Erstellen Sie das Verzeichnis llm-models im Residence -Ordner Ihres Benutzers
  • Laden Sie die GGUF -Modelldateien sicher in diesen Ordner herunter. Nach dem Obtain können Sie bestätigen, dass es da ist:

Ausgabe:

SmolLM2-135M-Instruct-Q4_K_M.gguf
Qwen2.5-0.5B-Instruct-Q4_K_M.gguf

// 3. Erstellen einer Lama-Swap-Konfiguration

Lama-Swap verwendet eine einzige YAML-Datei, um Modelle und Serverbefehle zu definieren. Erstellen a config.yaml Datei mit solchen Inhalten:

fashions:
  "smollm2":
    cmd: |
      llama-server
      --model /path/to/fashions/llm-models/SmolLM2-135M-Instruct-Q4_K_M.gguf
      --port ${PORT}

  "qwen2.5":
    cmd: |
      llama-server
      --model /path/to/fashions/llm-models/Qwen2.5-0.5B-Instruct-Q4_K_M.gguf
      --port ${PORT}

Ersetzen /path/to/fashions/ mit Ihrem tatsächlichen lokalen Weg. Jeder Eintrag unter fashions: gibt einen Ausweis (wie "qwen2.5") und eine Hülle cmd: seinen Server ausführen. Wir verwenden llama-server (aus llama.cpp) mit --model Hinweis auf die GGUF -Datei und --port ${PORT}. Der ${PORT} Makro fordert Lama-Swap mit, dass er jedem Modell automatisch einen kostenlosen Port zuweisen soll. Der teams Abschnitt ist non-compulsory. Ich habe es für dieses Beispiel weggelassen, so dass Lama-Swap standardmäßig nur ein Modell gleichzeitig ausführt. Sie können viele Optionen professional Modell (Aliase, Zeitüberschreitungen usw.) in dieser Konfiguration anpassen. Weitere Informationen zu den verfügbaren Optionen finden Sie in der Vollständige Konfigurationsbeispieldatei.

// 4. Laufen Lama-Swap

Mit dem binären und config.yaml Bereit, starten Sie Lama-Swap und zeigen auf Ihre Konfiguration:

./llama-swap --config config.yaml --listen 127.0.0.1:8080

Dadurch startet der Proxy -Server auf localhost:8080. Es wird lesen config.yaml und (zunächst) keine Modelle laden, bis die erste Anfrage eintrifft. Lama-Swap wird nun API-Anfragen am Port behandeln 8080sie an die angemessenen zugrunde liegenden weiterleiten llama-server Prozess basierend auf dem "mannequin" Parameter.

// 5. mit Ihren Modellen interagieren

Jetzt können Sie API-Aufrufe im OpenAI-Stil tätigen, um jedes Modell zu testen. Installieren JQ Wenn Sie es nicht haben, bevor Sie die folgenden Befehle ausführen:

// Verwenden von Qwen2.5

curl -s http://localhost:8080/v1/completions 
  -H "Content material-Kind: utility/json" 
  -H "Authorization: Bearer no-key" 
  -d '{
        "mannequin": "qwen2.5",
        "immediate": "Person: What's Python?nAssistant:",
        "max_tokens": 100
      }' | jq '.selections(0).textual content'
Output:
"Python is a well-liked general-purpose programming language. It's simple to study, has a big commonplace library, and is suitable with many working methods. Python is used for internet growth, knowledge evaluation, scientific computing, and machine studying.nPython is a language that's standard for internet growth because of its simplicity, versatility and its use of contemporary options. It's utilized in a variety of functions together with internet growth, knowledge evaluation, scientific computing, machine studying and extra. Python is a well-liked language within the"

// Mit Smollm2

curl -s http://localhost:8080/v1/completions 
  -H "Content material-Kind: utility/json" 
  -H "Authorization: Bearer no-key" 
  -d '{
        "mannequin": "smollm2",
        "immediate": "Person: What's Python?nAssistant:",
        "max_tokens": 100
      }' | jq '.selections(0).textual content'
Output:
"Python is a high-level programming language designed for simplicity and effectivity. It is identified for its readability, syntax, and flexibility, making it a well-liked alternative for inexperienced persons and builders alike.nnWhat is Python?"

Jedes Modell reagiert nach seiner Ausbildung. Das Schöne an Lama-Swap ist, dass Sie nichts manuelles neu starten müssen-verändern Sie einfach die "mannequin" Feld, und es behandelt den Relaxation. Wie in den obigen Beispielen gezeigt, werden Sie sehen:

  • qwen2.5: Eine ausführlichere, technische Antwort
  • smollm2: Eine einfachere, prägnantere Antwort

Das bestätigt, dass Lama-Swap die Anfragen an das richtige Modell weiterleitet!

# Abschluss

Glückwunsch! Sie haben Lama-Swap eingerichtet, um zwei LLMs auf einer Maschine auszuführen, und Sie können nun über API-Anrufe im Fliegen zwischen ihnen wechseln. Wir haben einen Proxy installiert, eine YAML-Konfiguration mit zwei Modellen vorbereitet und gesehen, wie Lama-Swap-Routen das richtige Backend anfordern.

Nächste Schritte: Sie können dies um einbezogen werden:

  • Größere Modelle (wie TinyLlamaAnwesend Phi-2Anwesend Mistral)
  • Gruppen für die gleichzeitige Portion
  • Integration mit LangchainAnwesend Fastapioder andere Frontenden

Viel Spaß beim Erforschen verschiedener Modelle und Konfigurationen!

Kanwal Mehreen ist ein Ingenieur für maschinelles Lernen und technischer Schriftsteller mit einer tiefgreifenden Leidenschaft für die Datenwissenschaft und die Schnittstelle von KI mit Medizin. Sie hat das eBook „Produktivität mit Chatgpt maximieren“. Als Google -Era -Gelehrte 2022 für APAC setzt sie sich für Vielfalt und akademische Exzellenz ein. Sie wird auch als Teradata -Vielfalt in Tech Scholar, MITACS Globalink Analysis Scholar und Harvard Wecode Scholar anerkannt. Kanwal ist ein leidenschaftlicher Verfechter der Veränderung, nachdem er Femcodes gegründet hat, um Frauen in STEM -Bereichen zu stärken.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert