Dit achtergrond artikel is onderdeel van de longread over het finetunen van modellen.
<Terug naar overzicht Artikelen:
🔧 Deel 2: Praktische stap voor stap guide
Achtergrond:
🤖 LLM’s lokaal draaien - 2 simpele methodes
🛣️ LLM’s lokaal draaien - De weg naar ondevice LLM’s
💻 LLM’s lokaal draaien - Je systeem in relatie tot de modelspecificaties
⚖️ Wat is lora?
Inleiding
Mocht je op mijn finetuning gids zijn gestuit en het onderwerp echt helemaal voor het eerst zien, dan zou je behoefte kunnen hebben aan een korte uitleg over het lokaal draaien van een LLM. Indien je dit al eens gedaan hebt kun je dit artikel overslaan. In de stappen hieronder heb ik twee methodes beschreven hoe je LLM’s lokaal kunt gebruiken. Je hoeft je geen zorgen te maken over complexiteit, het is super eenvoudig!
Stap 1: het kiezen van een model
waar moet je zoeken?
LLM’s zijn er in allerlei soorten en maten. Ze verschillen qua grootte, qua data waarop ze getraind zijn, wie ze getraind heeft, hoe ze onder de motorkap zijn ingericht en ga zo maar door. Al die variabelen hebben consequenties voor de output die de LLM’s genereren. De bekendste en handigste plek om modellen te vinden is Huggingface. Huggingface is een Github-achtig platform, maar dan voor AI. Naast LLM’s vind je er ook diffusion models, modellen voor video, voice, etcetera. Ook kun je er bijvoorbeeld datasets vinden waarmee je je AI model kunt trainen. Op het moment van schrijven bevinden zich op Huggingface maarliefst 1.062.085 modellen.
Waar zoek je naar?
Om te bepalen welke van al deze modellen het best is voor jouw situatie is het goed om twee dingen voor jezelf op een rijtje te zetten:
1: Waar ben ik van plan het model primair voor te gebruiken?
Zoals je kunt begrijpen heeft de usecase invloed op de modelkeuze. Als je vooral van plan bent vragen te stellen over code, of om het model te gebruiken als een progammeerhulp, dan kun je een model kiezen dat gespecialiseerd is in coderen, of zelfs in de progammeertaal van je keuze. Als je alleen Nederlands met het model wil chatten, kan het nuttig zijn om te kijken naar een model met ondersteuning voor de Nederlandse taal (Note: dit zijn er niet heel veel, maar soms begrijpen de modellen ondanks het ontbreken van een label voor Nederlands, Nederlands nog wel voldoende). Ook het taaktype, bijvoorbeeld chat, of het labelen van gegevens kan een selectiecriterium zijn.
2: Welke modellen kunnen draaien op mijn systeem?
Het draaien van een LLM kost behoorlijk wat rekenkracht en waarschijnlijk kun je niet alle modellen die je zou willen installeren. In dit artikel ga ik daar wat dieper op in. Kort samengevat kun je als je een computer met minder intern geheugen (RAM) hebt, minder grote modellen draaien.
En verder…
Los van deze situatie specifieke variabelen zijn er nog wat algemene tips die je bij de keuze voor je model in de gaten kunt houden:
1: Er zijn een heleboel leaderboards en benchmarks voor LLM’s. Het loont om voor je een model download te kijken of dit model goed scoort op die leaderboards. Je kunt dat bijvoorbeeld hier of hier doen.
2: Het aantal downloads kan ook een goede indicator zijn, maar let er wel op dat je dan een niet te lange periode pakt. De ontwikkeling qua modellen gaat razend snel, en een model dat 3 maand terug het beste was, kan inmiddels van alle kanten zijn ingehaald.
3: YouTube kan je goed op weg helpen. Er zijn een heleboel YouTube pagina’s waarin makers modellen testen en hun review op Youtube plaatsen. Als je content liever audiovisueel consumeert dan dat je de Modelcard leest, is het simpel intypen van de modelnaam in de youtube zoekbalk vaak voldoende om uitgebreide reviews van het model te zien.
Een paar suggesties om je op weg te helpen
Om je op weg te helpen een paar suggesties van mijn kant (Note: ik schrijf dit op 20 oktober 2024, het lijstje hieronder zal snel gedateerd zijn doordat er betere modellen zijn verschenen)
Llama 3.2-3B-Instruct
De Llama modellen zijn modellen die Meta (moederbedrijf Facebook) vanaf februari 2023 op de markt brengt. De meest recente versie is van ongeveer een maandje terug is Llama 3.2. Er zijn verschillende versies van het model beschikbaar die al starten bij slechts 1 miljard parameters, wat klein genoeg is voor bijna iedereens apparatuur.
Wij kiezen 1 slagje groter, de 3B versie, wat nogsteeds ruim past op de meeste moderne computers. Daarnaast kiezen we de Instruct versie, je zult dit label bij veel modellen tegenkomen. Het betekent dat het model speciaal is getraind met "instructies" als input. Dat betekent dat het beter in staat is om op een natuurlijke en gerichte manier te reageren wanneer je het een specifieke taak of opdracht geeft. Denk aan scenario's zoals vragen beantwoorden, iets uitleggen, of stappenplannen volgen. Dit maakt het geschikter voor toepassingen zoals chatbots en assistentie-taken.
📅 Release: 25-09-2024
👷🏼♂️ Maker: Meta
🤗 Modelcard: 🔗
Phi 3.5-mini-instruct
Phi is een model van Microsoft dat ons beeld van kleine modellen behoorlijk heeft veranderd. Microsoft heeft bij de training van Phi een aantal zeer innovatieve trainingsmethodes toegepast, waar ik in dit artikel wat meer over geschreven heb.
Ik heb gekozen voor een variant met een vergelijkbaar aantal parameters (3,8B), maar er zijn ook van dit model een heleboel variaties. waar je uit kunt kiezen. Zo heeft Microsoft ook een variant waarin er is gekozen voor een MoE architectuur, dat wil zeggen “mixture of experts”, wat je een klein beetje kunt vergelijken met een router based agentic applicatie, maar dan in het model zelf; een “router” of “gate” bepaalt op basis van de input welk deel van de gewichten, of welke expert, het meest geschikt is om de vraag te beantwoorden en de beantwoording vindt plaats in deze subset van de totale gewichten van het model, wat zorgt voor een efficiënte uitvoering. Een andere optie is een model dat kan omgaan met een veel grotere contextwindow (128k).
📅 Release: 18-09-2024
👷🏼♂️ Maker: Microsoft
🤗 Modelcard: 🔗
Ministral 8B-Instruct-2410
Mistral is een Europees (Frans) bedrijf dat modellen bouwt. Ze hebben 1 van de populairste opensource modellen tot nu toe op hun conto met Mistral 7B.
Dit model is door Mistral een beetje gepresenteerd als de opvolger van die Mistral 7B. Het model scoort erg goed op benchmarks die te maken hebben met coderen. Ik heb in dit geval een iets grotere variant gekozen, van 8B parameters.
📅 Release: 18-10-2024
👷🏼♂️ Maker: Mistral
🤗 Modelcard: 🔗
Stap 2: Software downloaden
Er zijn enorm veel methodes voor het lokaal draaien van LLM’s ik heb er hier 2 uitgewerkt. Welke methode je kiest hangt af van je voorkeuren.
🦙Ollama:
- Ollama is wat minimalistischer en werkt out of the box vanuit de terminal.
- Sinds kort een nog betere integratie met HuggingFace (🔗)
- Heel veel gebruikt, dus online veel te vinden over integraties
- Alleen GGUF
🔬LM Studio :
- biedt wat meer functionaliteiten en werkt met een GUI
- Ondersteunt naast GGUF ook MLX
- Geeft handige info over de geschiktheid van bepaalde modellen voor je systeem
- Is minder gebruikt dan Ollama
Ollama
- Installeer Ollama via de website of met
brew install ollama
- Open je terminal en gebruik het commando
ollama run
voor het model dat je wilt gebruiken. De eerste keer zal het je model ook downloaden.
ollama run llama3.2:3b
Het makkelijkst is om een model te kiezen dat je ziet bij de featured sectie op hun website.
Je kunt ook modellen kiezen die daar niet staan, die je hebt gevonden op Huggingface, daarbij is de voorwaarde wel dat de modellen het gguf
formaat hebben. Bijvoorbeeld:
Deze versie van Ministral in gguf format is nog niet toegevoegd en gezien de meldingen ook nog niet helemaal afgetest:
We kunnen het model toch gebruiken in Ollama door de url van dit model te gebruiken:
ollama run hf.co/bartowski/Ministral-8B-Instruct-2410-HF-GGUF-TEST:Q6_K
Good to know:
De Ollama Github repo bevat enorm veel handige voorbeelden hoe je de lokale modellen kunt integreren in applicaties. Ook is er een lijst van GUI’s te vinden, als je niet via de terminal wilt chatten. 🔗
LMStudio
- Installeer LM studio via de website of met
brew install --cask lm-studio
- In LMStudio kun je na het downloaden klikken op het zoek icoontje aan de linkerkant, wat ervoor zorgt dat een scherm opent waar je modellen kunt selecteren:
- Download het model van je voorkeur; na het downloaden kun je er mee chatten:
..en dat is alles!
Er zijn nog veel meer opties, maar dit geeft voor nu voldoende mogelijkheden. Lees de rest van de gids om te zien hoe je de modellen kunt finetunen voor jouw specifieke toepassing.