U vraagt, wij geven antwoord!

Apps & Gidsen

Je eigen LLaMa 2 in Linux

Stap 1. Besturingssysteem voorbereiden

Cache en pakketten bijwerken

Laten we de pakketcache bijwerken en je besturingssysteem upgraden voordat je begint met het instellen van LLaMa 2. Houd er rekening mee dat we voor deze gids Ubuntu 22.04 LTS als besturingssysteem gebruiken:

sudo apt update && sudo apt -y upgrade

Ook moeten we Python Installer Packages (PIP) toevoegen, als het nog niet aanwezig is in het systeem:

sudo apt install python3-pip

Nvidia-stuurprogramma's installeren

Je kunt het geautomatiseerde hulpprogramma gebruiken dat standaard in Ubuntu-distributies zit:

sudo ubuntu-drivers autoinstall

Je kunt de Nvidia-stuurprogramma's ook handmatig installeren met behulp van onze stapsgewijze handleiding. Vergeet niet de server opnieuw op te starten:

sudo shutdown -r now

Stap 2. Modellen ophalen bij MetaAI

Officieel verzoek

Open het volgende adres in je browser: https://ai.meta.com/resources/models-and-libraries/llama-downloads/

Vul alle noodzakelijke velden in, lees de gebruikersovereenkomst en klik op de knop Agree and Continue. Na een paar minuten (uren, dagen) ontvang je een speciale download-URL, die je toestemming geeft om modellen voor een periode van 24 uur te downloaden.

Het archief klonen

Controleer voor het downloaden de beschikbare opslagruimte:

df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs            38G  3.3M   38G   1% /run
/dev/sda2        99G   24G   70G  26% /
tmpfs           189G     0  189G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/nvme0n1    1.8T   26G  1.7T   2% /mnt/fastdisk
tmpfs            38G  8.0K   38G   1% /run/user/1000

Als je niet-gemounte lokale schijven hebt, volg dan de instructies in Schijfpartitionering in Linux. Dit is belangrijk omdat de gedownloade modellen erg groot kunnen zijn en je hun opslaglocatie van tevoren moet plannen. In dit voorbeeld hebben we een lokale SSD aangekoppeld in de map /mnt/fastdisk. Laten we deze openen:

cd /mnt/fastdisk

Maak een kopie van het oorspronkelijke LLaMa archief:

git clone https://github.com/facebookresearch/llama

Als je een toestemmingsfout tegenkomt, verleen dan gewoon toestemmingen aan de gebruikerergpu:

sudo chown -R usergpu:usergpu /mnt/fastdisk/

Downloaden via script

Open de gedownloade map:

cd llama

Voer het script uit:

./download.sh

Plak de URL van MetaAI en selecteer alle benodigde modellen. We raden aan alle beschikbare modellen te downloaden om te voorkomen dat je opnieuw om toestemming moet vragen. Als je echter een specifiek model nodig hebt, download dan alleen dat model.

Snelle test via voorbeeld app

Om te beginnen kunnen we controleren of er componenten ontbreken. Als er bibliotheken of toepassingen ontbreken, zal de pakketbeheerder deze automatisch installeren:

pip install -e .

De volgende stap is het toevoegen van nieuwe binaries aan het PATH:

export PATH=/home/usergpu/.local/bin:$PATH

Voer het demovoorbeeld uit:

torchrun --nproc_per_node 1 /mnt/fastdisk/llama/example_chat_completion.py --ckpt_dir /mnt/fastdisk/llama-2-7b-chat/ --tokenizer_path /mnt/fastdisk/llama/tokenizer.model --max_seq_len 512 --max_batch_size 6

De toepassing maakt een rekenproces aan op de eerste GPU en simuleert een eenvoudige dialoog met typische verzoeken, waarbij antwoorden worden gegenereerd met behulp van LLaMa 2.

Stap 3. Haal llama.cpp op

LLaMa C++ is een project gemaakt door de Bulgaarse natuurkundige en softwareontwikkelaar Georgi Gerganov. Het heeft veel nuttige hulpprogramma's die het werken met dit neurale netwerkmodel eenvoudiger maken. Alle onderdelen van llama.cpp zijn open source software en worden gedistribueerd onder de MIT-licentie.

Kloon de repository

Open de werkmap op de SSD:

cd /mnt/fastdisk

Kloon de repository van het project:

git clone https://github.com/ggerganov/llama.cpp.git

Apps compileren

Open de gekloonde map:

cd llama.cpp

Start het compilatieproces met de volgende opdracht:

make

Stap 4. Tekst-generatie-webui ophalen

Kloon de repository

Open de werkmap op de SSD:

cd /mnt/fastdisk

Kloon de repository van het project:

git clone https://github.com/oobabooga/text-generation-webui.git

Vereisten installeren

Open de gedownloade map:

cd text-generation-webui

Controleer en installeer alle ontbrekende onderdelen:

pip install -r requirements.txt

Stap 5. PTH omzetten naar GGUF

Algemene formaten

PTH (Python TorcH) - Een geconsolideerd formaat. In wezen is het een standaard ZIP-archief met een geserialiseerde PyTorch-statuswoordenboek. Dit formaat heeft echter snellere alternatieven zoals GGML en GGUF.

GGML (Georgi Gerganov’s Machine Learning) - Dit is een bestandsformaat gemaakt door Georgi Gerganov, de auteur van llama.cpp. Het is gebaseerd op een gelijknamige bibliotheek, geschreven in C++, die de prestaties van grote taalmodellen aanzienlijk heeft verbeterd. Het is nu vervangen door het moderne GGUF formaat.

GGUF (Georgi Gerganov’s Unified Format) - Een veelgebruikt bestandsformaat voor LLM's, ondersteund door verschillende toepassingen. Het biedt verbeterde flexibiliteit, schaalbaarheid en compatibiliteit voor de meeste gebruikssituaties.

script llama.cpp converteren.py

Bewerk de parameters van het model voordat het wordt geconverteerd:

nano /mnt/fastdisk/llama-2-7b-chat/params.json

Corrigeer "vocab_size": -1 naar "vocab_size": 32000. Sla het bestand op en sluit af. Open vervolgens de map llama.cpp:

cd /mnt/fastdisk/llama.cpp

Voer het script uit dat het model zal converteren naar GGUF formaat:

python3 convert.py /mnt/fastdisk/llama-2-7b-chat/ --vocab-dir /mnt/fastdisk/llama

Als alle voorgaande stappen juist zijn, krijg je een bericht als dit:

Wrote /mnt/fastdisk/llama-2-7b-chat/ggml-model-f16.gguf

Stap 6. WebUI

WebUI starten

Open de map:

cd /mnt/fastdisk/text-generation-webui/

Voer het startscript uit met enkele nuttige parameters:

  • --model-dir geeft het juiste pad naar de modellen aan
  • --share creëert een tijdelijke publieke link (als je geen poort wilt doorsturen via SSH)
  • --gradio-auth voegt autorisatie toe met een login en wachtwoord (vervang user:wachtwoord door je eigen)
./start_linux.sh --model-dir /mnt/fastdisk/llama-2-7b-chat/ --share --gradio-auth user:password

Na een succesvolle lancering ontvang je een lokale en tijdelijke share link voor toegang:

Running on local URL:  http://127.0.0.1:7860
Running on public URL: https://e9a61c21593a7b251f.gradio.live

Deze share link verloopt over 72 uur.

Het model laden

Autoriseer in de WebUI met de geselecteerde gebruikersnaam en wachtwoord en volg deze 5 eenvoudige stappen:

  1. Navigeer naar het tabblad Model.
  2. Selecteer ggml-model-f16.gguf in het vervolgkeuzemenu.
  3. Kies hoeveel lagen je wilt berekenen op de GPU (n-gpu-layers).
  4. Kies hoeveel threads je wilt starten (threads).
  5. Klik op de knop Load.
Loading the model

Het dialoogvenster starten

Verander de tab in Chat, typ je vraag en klik op Generate:

Start the dialog

Zie ook:



Bijgewerkt: 28.03.2025

Gepubliceerd: 20.01.2025