Disclaimer: Welkom bij onze TechBlog!
Dit is een artikel in ons TechBlog. Ons Techblog bevat artikelen, geschreven door onze developers, over dingen die ze zijn tegengekomen tijdens hun werkzaamheden. Deze artikelen gaan (meestal) over een technisch onderwerp, en zijn met name bedoeld om te vermaken en (soms) te informeren. Maar als je op zoek bent naar serieuze kost, moet je ergens anders zijn.

vr. 14 mrt. Auteur: Jeroen Mimpen

Taalmodellen in actie - Deel 3: Llama's onder de loep

In het vorige artikel startte ik mijn zoektocht naar een klein LLM model die mijn (wizard) database diagram van snake_case naar PascalCase om kon zetten. Het eerste model dat ik probeerde (Gemma2 9b) bleek na het uitbreiden van mijn prompt met een voorbeeld (few-shot prompting) al meteen een succespercentage van 100% te behalen.

Maar Gemma is natuurlijk niet het enige model op de markt. Sterker nog: ik zie vaak door de bomen het bos niet meer: iedere week worden er weer nieuwe modellen aangekondigd. Dus de resultaten van Gemma zijn een mooi beginpunt: hoe verhouden deze zich tot andere modellen?

Ik had inmiddels mijn test-framework alweer verder uitgebreid, met ondersteuning voor het verzamelen van resultaten van de verschillende modellen. Waarbij ik per model test met een prompt zonder voorbeeld (zero shot) en een prompt met voorbeeld (few shot).

Llama

Het eerste model dat ik wou gaan testen was Llama3. Net als Gemma2 is dit een open-weights model, maar dan gemaakt door Meta (het bedrijf achter Facebook, WhatsApp en Instagram).

Er zijn meerdere versies van Llama3. We beginnen met llama3-8b-8192. Dit model is uitgebracht op 18 april 2024, en is het kleinste Llama3 model. De release van Llama3, met name het grootste model (405B), werd ten tijde van deze release vergeleken met de nieuwste modellen van OpenAI, en werd door velen gezien als een omslagpunt in het AI landschap, waarop dit soort capabele modellen voor 'iedereen' (met voldoende compute-capaciteit) beschikbaar werden.

Hoe deed Llama het?

De oorspronkelijke release van Llama3 was 2 maanden eerder dan Gemma2. Google schreef bij deze release dat Gemma2 het beste model was (binnen deze grootte). Dit blijkt ook uit onze testresultaten, want het succes percentage ligt inderdaad lager bij llama.

Hier is de groei in capaciteiten tussen modellen goed zichtbaar. De modellen zijn grofweg even groot, maar Gemma doet het een stuk beter.

Maar Meta zat niet stil, en Llama3 had gedurende het vorige jaar nog 3 releases van dit model.

De reis naar het kleinste model

Op 25 september 2024 bracht Meta de Llama3.2 model familie uit. Deze werden uitgebracht met een 1B en 3B variant - dus een stuk kleiner dan de 8B variant die we hierboven hadden getest. Deze modellen zijn bedoeld om bijvoorbeeld op mobiele apparaten te kunnen draaien. En via de Groq API zijn ze ook razendsnel (met 3100 en 2800 tokens per second).

De resultaten zijn interessant. We zien hier nu echt wat het 'grens-model' is waarop deze taak nog mogelijk is. Het 1B model kreeg het zonder voorbeeld niet voor elkaar om ook maar 1 keer een succes te behalen. En zelfs met een voorbeeld ging het maar 3 keer goed.

Als we dan naar het 3B model kijken zien we weer een vooruitgang - want dit 3B model werkt bijna net zo goed als het 8B model, die een aantal maanden ouder is. We zien ook hier weer hoe uitzonderlijk krachtig het meegeven van een voorbeeld is, want het succespercentage gaat van 18 naar 91.

Waarover hallucineert een Llama?

De output van het 1B model is een mooie kandidaat om hallucinaties te tonen. Waar de grotere modellen 'begrijpelijke' fouten maken (zoals een id niet Id noemen, of een integer juist wel een Integer), is dit een model dat wat 'creatiever' wordt in zijn output.

In de output van 1B ontstaan namelijk geheel nieuwe tabellen, zoals enchanted_artifacts en bookkeeper_events. Als het aan deze Llama ligt, gaan we dus een heel ander avontuur beleven.

# Llama3 1B hallucineert hier een compleet nieuwe tabel: 

Table enchanted_artifacts {
  id pascal-case_id
  potion_id pascal-case_id
  artifact_type integer
  name string
  description string
  quantity integer
  created_at daterm
  updated_at daterm
}

Llama 3.3

Uit interesse heb ik ook nog het nieuwste Llama model getest: llama-3.3-70b. Dit model kwam uit op 6 december 2024, en is vergeleken met onze eerdere modellen vrij groot.

Met zo'n hoog succespercentage kan je de vraag stellen: moeten we dan niet gewoon ALTIJD dit model gebruiken? Het model is immers een stuk beter. Maar dit is dus een afweging die je kunt maken. Want dit model is bijna 8 keer zo groot als Gemma2, en kost qua prijs bij Groq bijvoorbeeld bijna 3 keer zoveel om te draaien.

Ook is Gemma2 een sneller model om te uit te voeren. Daarnaast is dit grotere model op veel computers niet eens MOGELIJK om lokaal te draaien. Afhankelijk van de taak kan het vinden van het juiste model dus een groot onderdeel daarvan zijn, en voldoende tijd investeren in het bedenken van goede prompt maakt daarbij het verschil.

Qwen 2.5 - Aan dat soort resultaten kan ik wel (q)wennen

Een model van Alibaba Cloud, uitgebracht in november 2024. Een 32B model, waarvan Alibaba Cloud zegt dat het GPT-4 niveau capaciteiten heeft. Dit is erg indrukwekkend voor een model van deze grootte, en leuk om te testen.

De resultaten waren niet heel onverwacht, maar de kleine discrepancy (94 van de 100 bij zero-shot) lijkt toch erop te wijzen dat GPT4o in ieder geval nog wat beter is.

Er is ook een coder variant van het model beschikbaar. Hiervan zou je verwachten dat het zeer geschikt is voor deze taak, maar dat bleek niet zo te zijn. Blijkbaar is de taak die wij vragen niet code-adjacent genoeg om het uberhaupt ook maar 1 keer goed te doen. Het enige andere model die 100% zero-shot failure rate had was het Llama 3.2 1B model. Dit laat goed zien dat het specialiseren van een model het veel minder geschikt kan maken voor andere taken.

Wel is het geven van 1 enkel voorbeeld weer voldoende om dit verschil behoorlijk recht te trekken. Maar toch is dit model duidelijk niet de 'juiste tool' voor de job.

Mixtral 8x7b - Ik heb hier mixed feelings over

Het model mixtral-8x7b werd in december 2023 uitgebracht door het franse Mistral AI, en is een tijdje 1 van mijn favoriete modellen geweest, vanwege de (open source) beschikbaarheid van het model en hoe krachtig het was, met name voor het genereren van code.

Dit model heeft een MoE architectuur - dit betekent dat het niet 1 model is, maar een verzameling (of eigenlijk dus mix) van modellen. In dit geval is het terug te lezen in de naam: het zijn 8 modellen van 7B parameters. Tijdens het voorspellen van het volgende token worden er 2 modellen gekozen die dit afhandelen.

Dit model is een mooi voorbeeld van de razendsnelle ontwikkeling van LLM modellen. Het was een indrukwekkend model toen het uitgebracht werd, maar we zien bij onze (Wizard) use-case een succes percentage van slechts 50%. Dat betekent dat Gemma2 9B, die enkele maanden later uit kwam, het al een stuk beter deed, ondanks dat die een stuk kleiner was.

Volgende keer

In dit artikel heb ik het kleinst mogelijke model gevonden voor mijn taak, en daarnaast vergelijkingen gemaakt tussen verschillende modellen. Maar enkele maanden geleden kwam er een nieuwe speler en een nieuw 'concept', die de hele markt op zijn kop wist te zetten. Namelijk: Deepseek en reasoning models.

Hier gaan we het over hebben in ons volgende artikel in deze reeks.