Ga naar hoofdinhoud

LlaMA-Factory WebUI: Beginnersgids voor het finetunen van LLM’s

Leer LLM’s finetunen op eigen datasets, prestaties evalueren en modellen naadloos exporteren en serven met het low/no-code framework van LLaMA-Factory.
· 12 min lezen

Verken met AI

In deze tutorial verkennen we hoe je het Llama 3 8B-model kunt finetunen met de LlaMA-Factory WebUI op de Wikipedia Q&A-dataset. We beginnen met een introductie van de LlaMA-Factory WebUI, gevolgd door de installatie in de Google Colab-omgeving. Zodra alles is ingesteld, lopen we door het proces om het Llama 3 8B-model op de dataset te finetunen en evalueren we vervolgens de prestaties via de chatinterface.

Gaandeweg leer je ook hoe je eigen datasets laadt, modellen samenvoegt en exporteert naar Hugging Face. Tot slot bespreken we hoe je het gefinetunede model kunt deployen, zodat het toegankelijk is via de OpenAI API.

Je kunt praktische kennis opdoen over populaire AI-onderwerpen zoals ChatGPT, large language models, generatieve AI en meer door de AI Fundamentals skill track te volgen. 

LLM’s finetunen met LlaMA-Factory WebUI omslagafbeelding

Afbeelding door auteur | Canva

Wat is LlaMA-Factory?

hiyouga/LLaMA-Factory is een open-sourceproject waarmee je meer dan 100 large language models (LLM’s) kunt finetunen via een WebUI-interface. Het biedt een complete set tools en scripts voor finetuning, chatbots, serving en benchmarking van LLM’s. 

LLaMA-Factory is speciaal ontworpen voor beginners en niet-technische professionals die open-source LLM’s willen finetunen op hun eigen datasets zonder complexe AI-concepten te hoeven leren. Gebruikers hoeven alleen een model te kiezen, hun dataset toe te voegen en een paar parameters aan te passen om het trainingsproces te starten. 

Na afloop van de training kun je in dezelfde webapplicatie het model testen en het vervolgens exporteren naar Hugging Face of lokaal opslaan. Dit biedt een snelle en efficiënte manier om LLM’s lokaal te finetunen.

Aan de slag met LlaMA-Factory WebUI

In deze sectie leren we hoe je LlaMA-Factory WebUI installeert en start in Google Colab en Microsoft Windows. 

Google Colab biedt toegang tot gratis GPU’s, dus als je laptop geen GPU heeft of CUDA niet is geïnstalleerd, raad ik aan om te beginnen met een Colab-notebook. 

  1. Start de Google Colab-notebook met het runtime-type “T4 GPU”. 
  2. Typ in de codecel het volgende commando om de GitHub-repository van LLaMA-Factory te clonen en alle benodigde Python-pakketten te installeren. 
%cd /content/
%rm -rf LLaMA-Factory
!git clone https://github.com/hiyouga/LLaMA-Factory.git
%cd LLaMA-Factory
%ls
%pip install -e .[torch,bitsandbytes]
  1. Om toegang te krijgen tot modellen en datasets moet je inloggen op de CLI van Hugging Face. Maak daarvoor een nieuwe access token aan via de instellingen van Hugging Face: klik op "Access Tokens" en maak een nieuw token voor Google Colab.

Genereer de nieuwe Hugging Face access token

  1. Maak de Hugging Face-omgevingsvariabele aan via de Colab-functie "Secrets", waarmee we op een veilige manier omgevingsvariabelen in de notebook kunnen gebruiken.

De omgevingsvariabele instellen in Google Colab met Secrets.

  1. Log in op de Hugging Face Hub met de Huggion Face access token. 
from huggingface_hub import login
from google.colab import userdata
hf_token = userdata.get("HUGGINGFACE_TOKEN")
login(token = hf_token)
  1. Start de LLaMA-Factor WebUI met de llamafactory-cli. We stellen GRADIO_SHARE=1 in zodat we een openbare link kunnen genereren om de webapp te openen. 
%cd /content/LLaMA-Factory/
!GRADIO_SHARE=1 llamafactory-cli webui
  1. Klik op de openbare URL om de WebUI in een nieuw tabblad te openen. 

Llama factor webui openbare URL

De LLAMA-Factory WebUI oogt eenvoudig maar heeft veel opties en tabbladen. Die verkennen we in de volgende sectie. 

Llama Factory WebUI draait op Google Colab

Heb je problemen met het starten van je eigen LlaMA-Factory WebUI? Raadpleeg dan de Google Colab-notebook.

LlaMA-Factory WebUI draaien op Windows

Als je LlaMA-Factory WebUI lokaal op Windows wilt draaien, moet je een vooraf gebouwde versie van de bitsandbytes-bibliotheek installeren. Deze ondersteunt CUDA 11.1 tot 12.2, dus kies de juiste releaseversie op basis van je CUDA-versie.

  1. Ga naar je Windows-terminal en gebruik Git om de LLaMA-Factory GitHub-repository te clonen.
  2. Installeer alle benodigde Python-pakketten.
  3. Installeer de bitsandbytes-bibliotheek voor Windows.
$ git clone https://github.com/hiyouga/LLaMA-Factory.git

$ cd LLaMA-Factory

$ pip install -e .[torch,bitsandbytes]

$ pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.41.2.post2-py3-none-win_amd64.whl
  1. Start de LLaMA-Factory WebUI.
$ llamafactory-cli webui
  1. Vergeet niet in te loggen bij Hugging Face via de CLI met een access token. 
$ huggingface-cli login

LlaMA-3 8B Chat finetunen met LlaMA-Factory WebUI

In deze sectie komt geen code aan te pas. We kiezen het model en de dataset voor finetuning, passen wat parameters aan en klikken op een paar knoppen voor sneller trainen. 

Wil je de theorie achter het finetunen van large language models begrijpen? Lees dan deze uitgebreide gids: Finetunen van Large Language Models.

De dataset en het model kiezen

We finetunen het unsloth/llama-3-8b-bnb-4bit-model op de Microsoft/wiki_qa-dataset. De dataset bevat meerdere kolommen, zoals hieronder weergegeven, maar we gebruiken de kolommen “question” en “answer” voor het finetunen van het model. 

Wiki_QA-datasetrepository op de Hugging Face Hub.

Bron: microsoft/wiki_qa | Wiki Question Answering-corpus van Microsoft

We kunnen het volledige LLaMA-3-8B instructiemodel niet laden in de gratis versie van Google Colab. In plaats daarvan laden we de 4-bit gequantiseerde versie van hetzelfde model, beschikbaar gesteld door Unsloth. 

Om dit te doen, kies je bij modelnaam voor "Custom" en plak je de repositorylink "unsloth/llama-3-8b-bnb-4bit" in het modelpad.

Model en dataset instellen in de LlaMA-Factory WebUI

We kunnen meerdere datasets selecteren om ons model te finetunen. Voor deze tutorial gebruiken we echter alleen de “Wikiqa”-dataset, die je eenvoudig kunt kiezen uit een vooraf gedefinieerde dataset, zoals hierboven getoond. 

De trainingsparameters aanpassen 

Pas de training-arguments van het model aan door omlaag te scrollen. We stellen de volgende parameters in:

  • Learning rate op 4e-5
  • Epochs op 1,0
  • Max samples op 1000 om de training te versnellen

De rest van de argumenten laten we op de standaardwaarden. Deze waarden kun je aanpassen om het gedrag van het gefinetunede model te beïnvloeden. 

trainingsparameters instellen in de LlaMA-Factory WebUI

We kunnen ook de LoRa-rank en andere LoRa-gerelateerde configuraties wijzigen. Voor deze tutorial laten we alle overige instellingen op de standaardwaarden.

LoRA-configuraties instellen in de LlaMA-Factory WebUI

Het trainingsproces starten

Scroll verder naar beneden voor de trainingsconfiguratie. Vul de outputdirectory en het configuratiepad in en klik op de knop “Start”. De verliesgrafiek verschijnt na enige tijd, omdat LlaMA-Factor eerst het model en de dataset downloadt en laadt; dit kan minstens 5 minuten duren.

Het trainingsproces starten in de LlaMA-Factory WebUI

Zodra het model volledig is geladen en de training start, zie je visualisaties in de verliesgrafiek. Zoals we zien neemt het verlies geleidelijk af naarmate het aantal stappen toeneemt, wat goed is.

Halverwege de modeltraining in de LlaMA-Factory WebUI

Wanneer de training klaar is, zie je linksonder het eindbericht. Zoals we zien is het verlies geleidelijk afgenomen en afgevlakt na 45 stappen.

Model finetunen voltooid in de LlaMA-Factory WebUI

Ben je data scientist of developer, dan kun je je model ook eenvoudig finetunen met Python. 

We hebben een gedetailleerde gids voor technische lezers die LlaMA-3 willen trainen: Llama 3 finetunen en lokaal gebruiken: een stapsgewijze gids.

Het gefinetunede model evalueren

Om het gefinetunede model te evalueren, wissel je van menu “Train” naar “Chat”. Ga daarna naar het “Checkpoint path” en laad de opgeslagen gefinetunede adapter. 

het Checkpoint path instellen in de LlaMA-Factory WebUI

Klik daarna op de knop “Load model” en wacht enkele seconden tot het model is geladen. 

het opgeslagen gefinetunede model laden

Scroll naar beneden naar het chat-invoerveld en stel een algemene vraag over een bergketen. 

Een eenvoudige vraag typen in het chatvak.

Als resultaat krijg je een simpel en helder antwoord, vergelijkbaar met de "wiki_qa"-dataset.

Antwoord gegenereerd door het gefinetunede Llama-3-model

Laten we nog een vraag stellen. We zien dat het model uitstekend presteert. Binnen 30 minuten hebben we het model gefinetuned, iets wat met de Transformer-bibliotheek meer dan 4 uur had gekost. Geweldig. 

Antwoord gegenereerd door het gefinetunede Llama-3-model

Soms is finetunen niet de oplossing voor alle LLM-problemen. Lees daarom de RAG vs Fine-Tuning: een complete tutorial met praktische voorbeelden en ontdek wat het beste voor jou werkt.

Extra functies van LlaMA-Factory WebUI

Naast finetunen en testen biedt het LLaMA-Factory-ecosysteem verschillende kernfuncties, zoals finetunen met eigen data, modellen samenvoegen en exporteren, en het deployen van gefinetunede modellen met VLLM. 

Aangepaste dataset

Om een eigen dataset toe te voegen, pas je simpelweg het bestand data/dataset_info.json aan. Daarna is deze beschikbaar in de LLaMA-Factory WebUI. 

Voor gedetailleerde informatie over het vereiste formaat van datasetbestanden en hoe je het dataset_info.json-bestand wijzigt, raadpleeg de documentatie data/README.md. 

Je kunt datasets gebruiken van de Hugging Face- of ModelScope-hubs, of de dataset vanaf je lokale schijf laden.

dataset_info.json-bestand geopend in Google Colab.

Voorbeeldweergave van het bestand data/dataset_info.json

Het model samenvoegen en exporteren 

We kunnen de gefinetunede LoRA-adapter eenvoudig samenvoegen met het volledige model en exporteren naar de Hugging Face Hub via het tabblad “Export”. 

Pas de maximale shardgrootte aan, stel het exportdirectorypad in en geef de repository-ID op de Hugging Face Hub en het exportapparaat op. Het samenvoegen en uploaden van alle modelfiles naar de Hugging Face Hub duurt enkele minuten.

Let op: de gratis versie van Colab biedt slechts 12GB RAM, terwijl het samenvoegen van de LoRA van een model met 8 miljard parameters minstens 16GB RAM vereist. Daarom kan deze handeling niet in de gratis versie van Colab worden uitgevoerd.

Het model samenvoegen en exporteren naar de Hugging Face Hub

Het gefinetunede model samenvoegen en exporteren naar Hugging Face Hub

Deployen met OpenAI-achtige API en vLLM

LlaMA-Factory wordt geleverd met het vLLM-framework voor model serving en deployment. Met het volgende commando kunnen we het Llama-3-8B-Instruct-model serven en er toegang toe krijgen via de OpenAI Python API of RestAPI. 

$ API_PORT=8000 llamafactory-cli api examples/inference/llama3_vllm.yaml

Je kunt het bestand zelfs aanpassen of je eigen .yaml-bestand maken om je gefinetunede model in productie te serven. Je hoeft alleen het pad op te geven naar de modelfolder, lokaal of op de Huggin Face Hub. 

Inhoud van het bestand llama3_vllm.yaml.

Bron: hiyouga/LLaMA-Factory (github.com)

Zoek je een vergelijkbare low-codeoplossing om LLM’s te finetunen, specifiek het proprietaire GPT-4o-model? We hebben een uitgebreide gids voor je. Bekijk onze stapsgewijze tutorial hier: OpenAI’s GPT-4 finetunen: een stapsgewijze gids.

Conclusie

De LLaMA-Factory WebUI maakt het proces eenvoudiger voor zowel beginners als experts. Je hoeft slechts een paar parameters aan te passen om het model op een eigen dataset te finetunen. Met dezelfde interface kun je het model testen en exporteren naar Hugging Face of lokaal opslaan. Zo kun je het model later in productie deployen met het LLaMA-Factory CLI-commando api. Zo simpel is het. 

In plaats van honderden regels code te schrijven en finetuningproblemen te debuggen, kun je met een paar klikken vergelijkbare resultaten behalen.

In deze tutorial leerden we over de LLaMA-Factory WebUI en hoe je het LLaMA-3-8B-Instruct-model finetunet op een Wikipedia Q&A-dataset met dit framework. Daarnaast testten we het gefinetunede model met het ingebouwde chatbotmenu en verkenden we de extra functies die LLaMA-Factory biedt.

Leer LLM’s finetunen met Python en schrijf je gratis in voor het aankomende webinar Fine-Tuning Your Own Llama 3 Model.

Abid Ali Awan

Auteur

Abid Ali Awan

Als gecertificeerd data scientist haal ik met passie het maximale uit de nieuwste technologie om innovatieve machinelearning-toepassingen te bouwen. Met een sterke achtergrond in spraakherkenning, data-analyse en -rapportage, MLOps, conversationele AI en NLP heb ik mijn vaardigheden aangescherpt in het ontwikkelen van intelligente systemen die echt impact maken. Naast mijn technische expertise ben ik ook een sterke communicator met een talent om complexe concepten terug te brengen tot heldere, beknopte taal. Daardoor ben ik uitgegroeid tot een veelgelezen blogger over data science, waar ik mijn inzichten en ervaringen deel met een groeiende community van data-professionals. Op dit moment richt ik me op contentcreatie en redactie, waarbij ik met large language models werk aan krachtige en aansprekende content die zowel bedrijven als individuen helpt het beste uit hun data te halen.

Onderwerpen

Gerelateerd