Microsoft brengt klein taalmodel Phi-4 met 14 miljard parameters uit

Microsoft heeft een nieuwe generatie van zijn kleine taalmodel Phi aangekondigd. Phi-4 telt 14 miljard parameters en zou vooral goed zijn in wiskundige vraagstukken. Phi-4 komt vanaf volgende week ook beschikbaar via Hugging Face.

Microsoft zegt dat het model voornamelijk goed is in het oplossen van wiskundige problemen. Het zou op dat vlak gemiddeld veel hoger scoren dan alternatieve kleine taalmodellen zoals Llama en GPT-4o, maar zelfs ook beter dan llm's zoals Gemini Pro 1.5 en Claude 3.5 Sonnet. Microsoft heeft het model bij wijze van proef getest op vraagstukken van de American Mathematics Competitions van de Amerikaanse Mathematical Association.

Microsoft Phi-4

Phi-4 is vooralsnog alleen nog via Azure AI Foundry te gebruiken, het nieuwe ontwikkelaarsplatform van Microsoft zelf. Dat kan voorlopig alleen nog onder een Microsoft Research License Agreement, maar 'volgende week' komt het model ook beschikbaar via AI-platform Hugging Face, al is het onduidelijk onder welk licentiemodel dat gebeurt.

Het model is een opvolger van het vorige model dat Microsoft eerder dit jaar aankondigde. Dat model, Phi-3 Mini, telde 3,8 miljard parameters. Dat zijn er relatief weinig en veel minder dan Phi-4, dat er volgens Microsoft 14 miljard telt. Microsoft geeft verder weinig details over het model, behalve dat het dat heeft getraind op 'synthetische datasets van hoge kwaliteit'.

Microsoft Phi-4 2

Door Tijs Hofmans

Nieuwscoördinator

13-12-2024 • 12:40

27

Submitter: wildhagen

Reacties (27)

27
27
11
3
0
15
Wijzig sortering
Is de ratio voor het 'thuisgebruik' nu ongeveer 1gb vram per 1 mld. parameters? Hier stille hoop dat mijn 3060 met 12gb vram nog niet te oud is :+
Ligt in belangrijke mate aan quatization en de grootte van de context. Ga je het model op int4 draaien, int8, fp16? Daar zit een factor 4 geheugen al tussen. Hoe dit Phi model van Microsoft zich gedraagt ken ik verder nog niet, maar het ziet er heel interessant uit. Ik zou niet direct de handdoek in de ring willen gooien voor kleine context en int4 op 12 GB VRAM, maar als je grotere plannen hebt dan kun je best eens uit je VRAM lopen ja.
Weet ook niet hoe goed deze modellen draaien op een AMD GPU, die hebben natuurlijk al wat langer en meer 16 GB, 20 GB en volgens mij ook 24GB exemplaren. Zoiets is misschien nog een beetje betaalbaar te krijgen. Anders zie je ook nog altijd wel 3090 gebruikt worden vanwege de 24GB RAM, en als straks de 5xxx series uit zijn komen daar vermoedelijk ook weer de nodige van op V&A voorbij. Geruchtenmolen suggereert 32GB voor de 5090, vermoedelijk zijn er genoeg mensen weer die dan de 24GB modellen achter zich laten omwille van wat die 32GB VRAM voor hen extra mogelijk maakt.

[Reactie gewijzigd door OruBLMsFrl op 13 december 2024 14:23]

Llama 3.3 70B is 42GB en past dus ook niet op een 5090 32GB.
Tegelijk kun je nu wel al iets met 24GB VRAM zolang je daarnaast maar genoeg RAM hebt, en met 32GB gaat dat alleen maar beter worden die verhoudingen.
https://aleksandarhaber.c...-70b-on-a-local-computer/

En twee videokaarten is natuurlijk ook nog altijd een optie, waarbij met wat meer context en toch altijd ook wat verlies in dubbele elementen in het VRAM van elke videokaart ook een dual 5090 dan weer heel interessant gaat worden, met PCI-E 5.0 gaat het veel sneller tussen videokaarten onderling en met in totaal 64GB VRAM kun je dan allerlei dingen optimaliseren. 42GB laten passen in 2x24GB zal al aardig krap zijn toch met voornoemde overlap.
https://usersguidetoai.co...d-setup-guide-2024-06-02/
Een LLM loopt voor elke deel-woord alle 70B parameters af (berekening tegen al die parameters). Als die niet in 1x in het video geheugen passen moet er voor elke deel-woord geheugen gewisseld worden.
Het geheugen van een GPU wisselen kost meerdere cycles. Een GPU is geoptimaliseerd om op het zelfde stukje geheugen zo veel mogelijk berekeningen achter elkaar te doen.

Dus als de betekening voor de LLM niet in je GPU geheugen past wordt het antwoord vele malen trager, soms wel 200x.

Dus ook dan geldt niet 2 video kaarten dus 2x het aantal VRAM, veel modellen kun je simpelweg niet in 2-en splitsen voor 1 betekening. En dus versnellen niet of nauwelijks met 2 kaarten.

Dus ja, het kan, maar praktisch is anders.

De laatste link gaat over al weer een aangepaste versie van het originele model. En 17 deel-woorden (tokens) per seconde op twee 3090 is nog steeds erg traag t.o.v. een model dat in het geheugen van dezelfde GPU past.

Ter vergelijking llama3.1 8B op een 3060 geeft 60 tokens per seconden.

[Reactie gewijzigd door djwice op 14 december 2024 13:08]

Dat ligt ook wel heel erg aan je doel en gebruik natuurlijk. Als je een 70B model wil omdat 8B modellen gewoon niet de kwaliteit leveren die je zoekt, dan is de performance van een 8B model verder irrelevant. En 10 tokens per seconde wordt toch vaak wel als interactief werkbaar gezien.

Vaak worden modellen opgedeeld in verschillende lagen voor combinatie gebruik en is dan een deel van de lagen op de GPU en een deel op de CPU. Uiteraard (lang) niet zo snel als volledig GPU, maar eerder zoiets 10x langzamer dan 100x. DDR5-6400 dual channel heeft nog best wat bandbreedte. Doe je dat voor 45% van je lagen op de CPU als je GPU met 24GB maar de helft trekt van je 42GB model is dus de helft van je execution time CPU en systeem RAM, dat overheerst dan fors. Maar met een theoretische 32GB 5090 hoef je nog maar 25% op de CPU te doen dus gaat dat al bijna dubbel zo veel tokens per seconde opleveren, ondanks dat het maar 8GB VRAM extra is.

En van 1,5 tokens per seconde naar 3 tokens per seconde blijft iets meer batch processing dan lekker interactief, maar je krijgt wel nog tijdens iets ander werk doen je antwoord, en dus inhoudelijk van veel hogere kwaliteit.

Enige nog een beetje te betalen voor grotere modellen is een Apple M2/M3/M4 pro en max van wat ik hoor. 200-600GB/s geheugen bandbreedte en 64GB totaal unified geheugen past die 42GB van zo een model best prima in opeens. En 48 of 64GB single GPU VRAM voor consumenten lijkt echt nog ver weg, zelfs op xx90 tier praat je dan over meerdere generaties als het zo doorgaat als nu. Dan wordt 6090 ook 32GB en pas 7090 met 48GB, tenzij AMD of Intel daarin gaan stunten natuurlijk, dan zal NVidia overstag moeten gaan.

[Reactie gewijzigd door OruBLMsFrl op 14 december 2024 16:39]

Je moet de hele token per keer hebben. Dat betekent dat het langzaamste deel de snelheid van elke token zal bepalen. Een CPU kan veel minder snel de berekeningen doen dan de GPU en de bandbreedte van het geheugen beperkt.

Probeer een model voor de grap eerst op een 45 TOPS NPU en daarna het zelfde model op je CPU. Dan gaat het van seconden naar uren rekentijd.
Behalve op een Mac, waar heb je dan NPU van 45 TOPS die niet via systeem RAM werkt? Volgens mij gaat dat ook allemaal om kleinere modellen, niet 70B?
Ja de context maakt enorm veel uit, maar ollama heeft sinds afgelopen week ondersteuning voor context quantisatie (KV Quantisation). Dus je kan buiten het model zelf ook de context quantiseren. Tot nu toe was die altijd fp16.: https://github.com/ollama/ollama/releases/tag/v0.5.0

Als je int8 gebruikt dan scheelt dat de helft!

En ja ze draaien goed op AMD, ik heb zelf een AMD. Je moet wel een GPU hebben die ROCm ondersteunt, dat zijn niet alle AMD GPU's.

Overigens kan je ook meerdere GPU's gebruiken. Alleen dat kan wel wat vertraging opleveren omdat er dan meer over de PCIe bus moet gaan tussen de GPU's. Bij een enkele GPU wordt de PCI vrijwel alleen gebruikt voor het uploaden van het model naar de GPU maar wordt het infereren direct binnen de GPU gedaan zonder dat er veel data overgestuurd hoeft te worden.

[Reactie gewijzigd door Llopigat op 13 december 2024 16:24]

VRAM (GB) = Parameters (mld.) × (Precision / 8 ) × 1.2, dus ik denk dat ie met int4 precision wel zou kunnen passen

[Reactie gewijzigd door AbuFalafel op 13 december 2024 14:26]

Denk toch echt dat dit de toekomst gaat zijn. Een LLM voor het prompten en gespecialiseerde modellen voor de "intelligentie". Al is het alleen maar vanwege het energieverbruik
Ik denk dat we gewoon 1 globaal model hebben waar we vragen aan kunnen stellen, en dat globale model dan uitzoekt welke specialisatie hiervoor nodig is, en de vraag door delegeert naar het gespecialiseerde model.
Dat denk ik ook. Want een LLM is een taalmodel, en is dus goed in het “aan elkaar rijgen” van woorden tot een geheel dat (hopelijk) zinnig en relevant is. En dat ook andersom kan, dus het analyseren van onze zinnen. Maar taal is geen wiskunde. Dat zijn weer andere modellen. Een LLM kan dan functioneren als de interface tussen ons en de gespecialiseerde modellen.
Als we zien zoals dat soort platformen tot nu toe werken, hoop ik dat we dat globale model dan niet aan de vrije markt overlaten...
Ja lijkt al een behoorlijke tijd de consensus in het vak, een soort grootschalige mixture of experts. Kleine modellen met finetunes voor de specifieke functies. Ik kan mij indenken dat je in een bedrijf op een gegeven moment meerdere tientallen LLMs hebt, elk met finetune voor andere functies. Waarschijnlijk een classifier welke de juiste LLM kiest voor de taak die de gebruiker instuurt.
Veelal wordt een dergelijke setup nu ook al gebruikt door een generieke LLM te gebruiken om een prompt te maken voor een gespecialiseerd model. Zeker bij generatieve modellen is dat over het algemeen sneller en meer gedetailleerd dan deze zelf op te stellen.
Ik denk eerder dat er slimmer geheugens nodig zijn voor modellen. RAG en cascades vind ik niet elegant.

Het model moet met een zelf geleerde index kunnen zoeken in een groot geheugen. Een inherent deel van het trainen en niet een samengeraapt zootje. Natuurlijk zijn de gewichten van de modellen al een geheugen, maar dat kan vermoed ik efficiënter .
Ik vraag mij af wat het voordeel is van deze bedrijven om al deze taalmodellen gratis ter beschikking te stellen. Weet iemand dat? Is het een phonehome functie die de input van de gebruiker terug synced? Of is het om de mensen te laten wennen aan dit soort modellen?

Want om deze modellen te maken/trainen zijn veel resources nodig (al wordt het steeds goedkoper) en mij is geleerd, is iets gratis dan ben jij het product. Dus wat is het voordeel van het gratis verspreiden van deze modellen?
Ik denk naamsbekendheid. We zitten nog in de beginfase van AI. De modellen volgen elkaar nog redelijk snel op en het gebruik is nog redelijk beperkt. Als je nu investeert en zorgt dat mensen AI associeren met jou product, dan ben je op de (middel)lange termijn misschien één van de grote spelers die hier grof aan verdienen.
Daarnaast is de groep die zo'n model lokaal gaat draaien ook erg beperkt, maar dat zijn wel de early adopters die de rest later kunnen beinvloeden en overtuigen jouw product te nemen. De meesten zullen bij vrienden en familie bekend staan als "degene bij wie je moet zijn bij vragen over computers".

Dus ik denk dat Microsoft dit voornamelijk als onderzoek en investering ziet en nog niet zozeer als volwaardig product. Desondanks verdienen ze er natuurlijk wel aan via Azure en wellicht andere producten waar het in gebruikt wordt.
Producten die gebruik maken van deze modellen moeten ergens gehost worden en niet iedereen is in staat om die infrastructuur te hebben of die enorme bedragen neer te leggen die deze hardware kost. Via Azure zullen ze er wel iets aan verdienen.

En dan heb je natuurlijk nog de enorme input die ze krijgen als gebruikers zelf gaan finetunen, modellen beter maken, experimenteren,…

[Reactie gewijzigd door simplicidad op 13 december 2024 13:48]

Ik denk dat je goed zit met de veronderstelling van "ET phone home" en dat je zelf het product bent.
Anderzijds gaat het m.i. waarschijnlijk er ook om een "dominante" positie op de markt te "kopen" om zoveel mogelijk de concurrentie weg te drukken en om uiteindelijk de winst te maximaliseren voor de aandeelhouders.
Ik denk dat het vooral om naamsbekendheid gaat, modellen op Hugging Face zijn open source en ze zijn volledig lokaal te runnen, Microsoft biedt de modellen uiteraard ook tegen betaling op Azure aan als je de hardware niet hebt. Vaak hebben bedrijven naast de gratis modellen ook een aparte klasse van betaalde modellen, denk aan Gemma en Gemini van Google.
Ik verwacht om feedback te kunnen ontvangen. Er komen dagelijks tientallen modellen uit op Huggingface. (waarom sommige dan op Tweakers komen weet ik even niet.) Veel van die modellen hebben hele specifieke doelen, zoals bijvoorbeeld deze.

Door feedback te ontvangen van gebruikers, kun je heel veel leren en je datasets op aansturen denk ik? Het is voor Microsoft natuurlijk ook zoeken hoe ze dit moeten doen. Dit is wezenlijk output van research. Ze kunnen of die research alleen zelf gebruiken en niet doorhebben wat de zwaktes zijn die anderen vinden en dus in een kast stoppen, of ze kunnen het publiceren.

Phone home lijkt mij niet? Je kunt ze volledig offline gebruiken met gratis (open source) software.
Ik denk gewoon commerciële logica. Als je iets beter kunt maken of evengoed voor dezelfde prijs dan heb je iets in de hand. Je begint gratis want als niemand weet hoe goed t werkt heb je weinig. Dus heb je of gratis begin of gratis aantal tokens om te beginnen. Dan op termijn als iedereen zegt je moet het hebben wordt het ineens zoveel per maand of bij een proplus pakket inbegrepen van dergelijke services
Hopelijk draait ie vlotjes binnen het VRAM van een RTX5080 of AMD GPU, anders RTX4090 en is er geen RTX5090 voor nodig.
Hmm als hij echt zo goed is, is dat wel interessant. Met 14b parameters een stuk beter presterend dan 70b llama?

Maar dit soort tests zijn niet altijd een goede weergave van de werkelijke gebruikservaring. Tot nu toe is llama nog echt de topper voor mij (van de lokaal draaiende modellen)

Op dit item kan niet meer gereageerd worden.