Open LLMs implementeren met LLAMA-CPP Server: Een stapsgewijze handleiding
Open LLMs implementeren met LLAMA-CPP Server: Een stapsgewijze handleiding. Leer hoe je de LLAMA-CPP-server installeert en instelt om open-source grote taalmodellen te bedienen, waarbij je verzoeken doet via cURL, de OpenAI-client en het Python-verzoekenpakket. Optimaliseer voor lokale en externe implementatie.
15 februari 2025

Ontgrendel de kracht van open-source grote taalmodellen (LLM's) met deze uitgebreide gids over het implementeren van LLAMA-CPP Server. Ontdek hoe u meerdere gebruikers efficiënt kunt bedienen met één LLM, waarbij u de prestaties en toegankelijkheid voor uw AI-aangedreven toepassingen optimaliseert.
LLAMA-CPP installeren
De LLAMA-CPP-server starten
Verzoeken naar de LLAMA-CPP-server verzenden
De LLAMA-CPP-server aanpassen
Interactie met de LLAMA-CPP-server via verschillende methoden
Conclusie
LLAMA-CPP installeren
LLAMA-CPP installeren
De eenvoudigste manier om aan de slag te gaan met LLAMA-CPP is om de Homebrew-pakketbeheerder te gebruiken om het te installeren. Dit werkt native op zowel macOS- als Linux-machines. Om LLAMA-CPP te installeren op een Windows-machine, moet je gebruik maken van Windows Subsystem for Linux (WSL).
Om LLAMA-CPP te installeren met Homebrew, voer je de volgende opdracht uit in je terminal:
brew install llama-cpp
Deze opdracht zal het LLAMA-CPP-pakket downloaden en installeren op je systeem. Zodra de installatie is voltooid, kun je beginnen met het gebruik van de llama-server
-opdracht om je LLM-modellen te serveren.
De LLAMA-CPP-server starten
De LLAMA-CPP-server starten
Om de LLAMA-CPP-server te starten, volg je deze stappen:
-
Installeer LLAMA-CPP met behulp van de Homebrew-pakketbeheerder:
brew install llama.cpp
Deze opdracht installeert LLAMA-CPP op je Mac- of Linux-machine. Voor Windows-gebruikers moet je WSL (Windows Subsystem for Linux) gebruiken om LLAMA-CPP te installeren.
-
Start de LLAMA-CPP-server door de volgende opdracht uit te voeren:
llama-server --model <hugging-face-repo-id> --model-file <quantization-file>
Vervang
<hugging-face-repo-id>
door de Hugging Face-opslagplaats-ID van het model dat je wilt serveren, en<quantization-file>
door het specifieke kwantificatiebestand dat je wilt gebruiken (bijvoorbeeld de 4-bit gekwantificeerde versie in GGML-formaat). -
De LLAMA-CPP-server zal standaard luisteren naar binnenkomende verzoeken op
localhost:8080
. Je kunt het host-adres en de poort aanpassen met behulp van de beschikbare opties, zoals--host
en--port
. -
De server ondersteunt verschillende configuratie-opties, waaronder het instellen van het maximale contextvenster, de batchgrootte en meer. Je kunt deze opties verkennen door
llama-server --help
uit te voeren. -
Zodra de server draait, kun je ermee communiceren met behulp van verschillende methoden, zoals cURL, de OpenAI-client of het Python
requests
-pakket, zoals in de vorige secties gedemonstreerd.
Verzoeken naar de LLAMA-CPP-server verzenden
Verzoeken naar de LLAMA-CPP-server verzenden
Er zijn verschillende manieren om te communiceren met de LLAMA-CPP-server en verzoeken naar het geserveerde model te sturen:
-
Met de cURL-opdracht:
curl -X POST -H "Content-Type: application/json" -d '{"prompt": "Hello, how are you?", "max_tokens": 50}' http://localhost:8080/v1/chat/completions
Dit stuurt een POST-verzoek naar het chat-completie-eindpunt dat op de lokale host op poort 8080 draait.
-
Met de OpenAI-client:
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)
Dit gebruikt de OpenAI-client om te communiceren met de LLAMA-CPP-server, die compatibel is met de OpenAI-API.
-
Met het Python Requests-pakket:
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())
Dit gebruikt het Python Requests-pakket om een POST-verzoek naar het chat-completie-eindpunt te sturen.
De LLAMA-CPP-server aanpassen
De LLAMA-CPP-server aanpassen
LLAMA-CPP biedt een zeer aanpasbare server waarmee je het gedrag van je LLM-implementatie kunt afstemmen. Hier zijn enkele van de belangrijkste opties die je kunt configureren:
-
Max Context Window: Je kunt de maximale grootte van het contextvenster voor de LLM definiëren, wat de maximale lengte van de invoersequentie bepaalt die het model kan verwerken.
-
Batchgrootte: LLAMA-CPP ondersteunt het bundelen van prompts, waardoor je meerdere invoeren tegelijkertijd kunt verwerken voor verbeterde doorvoer. Je kunt de batchgrootte configureren om de prestaties te optimaliseren.
-
Host-adres: Standaard luistert de LLAMA-CPP-server op
localhost
, maar je kunt het host-adres wijzigen om de server vanaf andere machines op je netwerk toegankelijk te maken. -
Poort: De server luistert standaard op poort
8080
, maar je kunt een andere poort opgeven indien nodig. -
Model-pad: LLAMA-CPP stelt je in staat om het pad aan te passen waarvan het de LLM-modelbestanden laadt, waardoor je flexibiliteit krijgt in de organisatie van je modelactiva.
-
Embedding-modellen: Naast taalmodellen kan LLAMA-CPP ook embedding-modellen serveren, waardoor je zowel tekstgeneratie- als tekstcoderingsmogelijkheden in je applicaties kunt integreren.
-
Metrische gegevens bijhouden: De LLAMA-CPP-server kan verschillende metrische gegevens bijhouden, zoals verzoeklatentie en doorvoer, om je te helpen bij het bewaken en optimaliseren van de prestaties van je implementatie.
Interactie met de LLAMA-CPP-server via verschillende methoden
Interactie met de LLAMA-CPP-server via verschillende methoden
Om te communiceren met de LLAMA-CPP-server kunnen we verschillende methoden gebruiken:
-
Met de cURL-opdracht:
- Stuur een POST-verzoek naar het
chat completion
-eindpunt dat oplocalhost
draait. - Geef de benodigde headers op en het data-object met de prompt en het gewenste aantal te genereren tokens.
- Het antwoord bevat de gegenereerde tekst, evenals informatie over het generatieproces, zoals temperatuur, top-P, top-K en voorspelde tokens per seconde.
- Stuur een POST-verzoek naar het
-
Met de OpenAI-client:
- Maak een OpenAI-client aan met de basis-URL ingesteld op de URL van de lokale LLAMA-CPP-server.
- Gebruik het chat-completie-eindpunt-client en geef de modelnaam op (bijv.
chat-gpt-3.5
). - Stel de systeemprompt en de gebruikersprompt in, en doe dan het verzoek naar de server.
- Het antwoord wordt geretourneerd in hetzelfde formaat als de OpenAI-API.
-
Met het Requests-pakket (Python):
- Definieer de URL en headers voor het POST-verzoek.
- Stuur meerdere verschillende berichten naar de server en observeer hoe deze de verzoeken gelijktijdig verwerkt.
- De server zal de verzoeken in de wachtrij plaatsen en ze één voor één verwerken, zonder overbelast te raken.
Conclusie
Conclusie
In deze video hebben we de installatie en het gebruik van LlamaCPP, een krachtig open-source project voor het serveren van open-source grote taalmodellen, onderzocht. We hebben geleerd hoe we LlamaCPP op onze lokale machine kunnen installeren, de server kunnen starten en ermee kunnen communiceren met behulp van verschillende methoden, waaronder cURL, de OpenAI-client en het Python Requests-pakket.
We hebben ook de verschillende configuratieopties in LlamaCPP besproken, waardoor we de server kunnen aanpassen aan onze specifieke behoeften, zoals het instellen van het maximale contextvenster, de batchgrootte en het host-adres. Daarnaast hebben we gezien hoe LlamaCPP metrische gegevens kan bijhouden, waardoor het een geschikte keuze is voor productieomgevingen.
Tenslotte hebben we de praktische toepassingen van LlamaCPP aangestipt, vooral in de context van het implementeren van grote taalmodellen voor verschillende use cases. We hebben het Rasa-framework als een potentiële toepassing genoemd en een link naar een gerelateerde cursus in de videobeschrijving gegeven.
Overall heeft deze video een uitgebreide introductie tot LlamaCPP en zijn mogelijkheden geboden, waardoor je de kennis hebt om open-source grote taalmodellen op je lokale machine of in een productieomgeving te gaan serveren.
FAQ
FAQ