Distribuera Open LLMs med LLAMA-CPP Server: En steg-för-steg-guide

Distribuera Open LLMs med LLAMA-CPP Server: En steg-för-steg-guide. Lär dig hur du installerar och konfigurerar LLAMA-CPP-servern för att betjäna öppna källkods-språkmodeller i stor skala, genom att göra förfrågningar via cURL, OpenAI-klient och Pythons requests-paket. Optimera för lokal och fjärrbaserad distribution.

24 februari 2025

party-gif

Frigör kraften hos öppna källkods-storspråkmodeller (LLM) med denna omfattande guide om att distribuera LLAMA-CPP-server. Upptäck hur du effektivt kan betjäna flera användare med en enda LLM, optimera prestanda och tillgänglighet för dina AI-drivna applikationer.

Installera LLAMA-CPP

Det enklaste sättet att komma igång med LLAMA-CPP är att använda Homebrew-pakethanteraren för att installera den. Detta fungerar ursprungligen både på macOS- och Linux-datorer. För att installera LLAMA-CPP på en Windows-dator måste du använda Windows Subsystem for Linux (WSL).

För att installera LLAMA-CPP med Homebrew, kör följande kommando i din terminal:

brew install llama-cpp

Detta kommando kommer att ladda ner och installera LLAMA-CPP-paketet på ditt system. När installationen är klar kan du börja använda llama-server-kommandot för att serva dina LLM-modeller.

Starta LLAMA-CPP-servern

För att starta LLAMA-CPP-servern, följ dessa steg:

  1. Installera LLAMA-CPP med hjälp av Homebrew-pakethanteraren:

    brew install llama.cpp
    

    Detta kommando kommer att installera LLAMA-CPP på din Mac eller Linux-dator. För Windows-användare måste du använda WSL (Windows Subsystem for Linux) för att installera LLAMA-CPP.

  2. Starta LLAMA-CPP-servern genom att köra följande kommando:

    llama-server --model <hugging-face-repo-id> --model-file <quantization-file>
    

    Ersätt <hugging-face-repo-id> med Hugging Face-lagringsplatsen för den modell du vill serva, och <quantization-file> med den specifika kvantiseringsfilen du vill använda (t.ex. den 4-bitars kvantiserade versionen i GGML-format).

  3. LLAMA-CPP-servern kommer att börja lyssna efter inkommande förfrågningar på localhost:8080 som standard. Du kan anpassa värdadressen och porten med hjälp av tillgängliga alternativ, som --host och --port.

  4. Servern stöder olika konfigurationsalternativ, inklusive att ställa in det maximala kontextfönstret, batchstorleken och mer. Du kan utforska dessa alternativ genom att köra llama-server --help.

  5. När servern körs kan du interagera med den med olika metoder, som cURL, OpenAI-klienten eller Python requests-paketet, som visats i de tidigare avsnitten.

Göra förfrågningar till LLAMA-CPP-servern

Det finns flera sätt att interagera med LLAMA-CPP-servern och göra förfrågningar till den serverade modellen:

  1. Använda cURL-kommandot:

    curl -X POST -H "Content-Type: application/json" -d '{"prompt": "Hello, how are you?", "max_tokens": 50}' http://localhost:8080/v1/chat/completions
    

    Detta kommer att göra en POST-förfrågan till chat completion-slutpunkten som körs på den lokala värden på port 8080.

  2. Använda OpenAI-klienten:

    import openai
    
    openai.api_base = "http://localhost:8080/v1"
    openai.Model.list()
    
    response = openai.ChatCompletion.create(
        model="chat-gpt-3.5",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "Hello, how are you?"}
        ]
    )
    
    print(response.choices[0].message.content)
    

    Detta använder OpenAI-klienten för att interagera med LLAMA-CPP-servern, som är kompatibel med OpenAI-API:et.

  3. Använda Python Requests-paketet:

    import requests
    
    url = "http://localhost:8080/v1/chat/completions"
    headers = {"Content-Type": "application/json"}
    data = {
        "prompt": "Hello, how are you?",
        "max_tokens": 50
    }
    
    response = requests.post(url, headers=headers, json=data)
    print(response.json())
    

    Detta använder Python Requests-paketet för att göra en POST-förfrågan till chat completion-slutpunkten.

Anpassa LLAMA-CPP-servern

LLAMA-CPP tillhandahåller en mycket anpassningsbar server som låter dig finslipa beteendet för din LLM-distribution. Här är några av de nyckelalternativ du kan konfigurera:

  1. Max kontextfönster: Du kan definiera den maximala storleken på kontextfönstret för LLM, vilket avgör den maximala längden på inmatningssekvensen som modellen kan bearbeta.

  2. Batchstorlek: LLAMA-CPP stöder batching av prompter, vilket låter dig bearbeta flera indata samtidigt för förbättrad genomströmning. Du kan konfigurera batchstorleken för att optimera prestandan.

  3. Värdadress: Som standard lyssnar LLAMA-CPP-servern på localhost, men du kan ändra värdadressen för att göra servern tillgänglig från andra datorer på ditt nätverk.

  4. Port: Servern lyssnar på port 8080 som standard, men du kan ange en annan port vid behov.

  5. Modellsökväg: LLAMA-CPP låter dig anpassa sökvägen från vilken den läser in LLM-modellfilerna, vilket ger dig flexibilitet i hur du organiserar dina modellresurser.

  6. Inbäddningsmodeller: Förutom språkmodeller kan LLAMA-CPP även serva inbäddningsmodeller, vilket låter dig integrera både textgenerering och textenkodning i dina applikationer.

  7. Mätningsspårning: LLAMA-CPP-servern kan spåra olika mätvärden, som förfrågningslatens och genomströmning, för att hjälpa dig övervaka och optimera prestandan för din distribution.

Interagera med LLAMA-CPP-servern med olika metoder

För att interagera med LLAMA-CPP-servern kan vi använda olika metoder:

  1. Använda cURL-kommandot:

    • Gör en POST-förfrågan till chat completion-slutpunkten som körs på localhost.
    • Ange nödvändiga rubriker och dataobjektet som innehåller prompten och önskat antal tokens att generera.
    • Svaret kommer att innehålla den genererade texten samt information om genereringsprocessen, som temperatur, top-P, top-K och förutsagda tokens per sekund.
  2. Använda OpenAI-klienten:

    • Skapa en OpenAI-klient med bas-URL:en inställd på URL:en för den lokala LLAMA-CPP-servern.
    • Använd chat completion-slutpunktsklienten och ange modellnamnet (t.ex. chat-gpt-3.5).
    • Ange systemprompten och användarprompten, och gör sedan förfrågan till servern.
    • Svaret kommer att returneras i samma format som OpenAI-API:et.
  3. Använda Requests-paketet (Python):

    • Definiera URL:en och rubrikerna för POST-förfrågan.
    • Skicka flera olika meddelanden till servern och observera hur den bearbetar förfrågningarna parallellt.
    • Servern kommer att köa förfrågningarna och bearbeta dem en i taget, utan att bli överbelastad.

Slutsats

I den här videon har vi utforskat installationen och användningen av LlamaCPP, ett kraftfullt open source-projekt för att serva open source-baserade stora språkmodeller. Vi har lärt oss hur man installerar LlamaCPP på vår lokala dator, startar servern och interagerar med den med olika metoder, inklusive cURL, OpenAI-klienten och Python requests-paketet.

Vi har också diskuterat de olika konfigurationsalternativ som finns i LlamaCPP, vilket låter oss anpassa servern efter våra specifika behov, som att ställa in det maximala kontextfönstret, batchstorleken och värdadressen. Dessutom har vi sett hur LlamaCPP kan spåra mätvärden, vilket gör den lämplig för produktionsmiljöer.

Avslutningsvis har vi berört de praktiska tillämpningarna av LlamaCPP, särskilt i samband med distribution av stora språkmodeller för olika användningsfall. Vi har nämnt Rasa-ramverket som en potentiell tillämpning och har lämnat en länk till en relaterad kurs i videobeskrivningen.

Sammanfattningsvis har den här videon gett en omfattande introduktion till LlamaCPP och dess funktioner, och utrustade dig med kunskapen för att börja serva open source-baserade stora språkmodeller på din lokala dator eller i en produktionsmiljö.

FAQ